Buffer Insertion EcoAddRepeater
Buffer Insertion EcoAddRepeater
Application Note
Buffer insertion using ecoAddRepeater
In
Encounter Digital Implementation (EDI)
system
Contents
Purpose.............................................................................. 3
Audience ............................................................................ 3
Acronym List ...................................................................... 3
1. Command introduction ................................................ 4
1.1. Required options ................................................................................................ 4
1.2. Impact on wires .................................................................................................. 6
PAGE 2
Purpose
This document is targeted to users who want to do eco changes to the design with
Encounter Digital Implementation System (EDI System). It will introduce the features
and usages of eco interactive commands from Cadence Design Systems, Inc.
Audience
The document is intended for users with and without experience in EDI System. It will
describe in detail the features of interactive eco commands.
Acronym List
Acronym
EDI System
ECO
Full version
Encounter Digital Implementation System
Engineering change order
PAGE 3
1. Command introduction
The command ecoAddRepeater is used to add either a single buffer or two inverters on a
net. Its behavior can be controlled by command setEcoMode.
Its options:
-cell <list of cells>
{-net <netName> | -term <inst1/term1 inst2/term2 >}
[-loc {x y | x1 y1 x2 y2} [-radius m]] |
[-relativeDistToSink <value> [-radius m]] |
[-offLoadSlack ns [-radius m]] |
[-noPlace] |
[-offLoadAtLoc {x y}]
[-name <instName>]
[-evaluateAll | -evaluateOnly]
[-hinstGuide]
[-bufOrient {R0 | R90 | R180 | R270 | MX | MX90 | MY | MY90}]
[-newNetName <netName>]
Examples:
E.g.1.1.1. Inst b0 has three loads b1, b2 and b3. Use below commands to buffer all sink
terms.
PAGE 4
E.g.1.1.2. Inst b0 has three loads b1, b2 and b3. Use below command to buffer only terms
b1/A and b2/A.
<CMD> ecoAddRepeater cell BUFX1 term {b1/A b2/A}
This command will add buffer on the common net which is connected to b1/A and b2/A.
PAGE 5
Figure 4: After buffer insertion only buffer terms b1/A and b2/A
Wire status:
- The wires will stay ROUTED status if the given location is appropriate.
Wire routing:
- Command ecoAddRepeater itself will not route the net, it just cuts net wires.
- User needs to run ecoRoute to route the net in later stage.
PAGE 6
Examples:
E.g.1.2.1. Using ecoAddRepeater to buffer net ff0_o, the wires of net ff0_o will be cut by
default.
<CMD> ecoAddRepeater cell BUFX1 net ff0_o
Before ecoAddRepeater:
PAGE 7
Insert buffer:
- By default, the buffer will be inserted close to the driver.
Examples:
E.g. 2.1.1 Buffer net ff0_o which has only one driver in_ff0/Q and one sink in_ff1/D.
<CMD> ecoAddRepeater cell BUFX6 net ff0_o
Or
<CMD> ecoAddRepeater cell BUFX6 term in_ff1/D
Or
<CMD> ecoAddRepeater cell BUFX6 term in_ff0/Q
After ecoAddRepeater:
PAGE 8
E.g. 2.1.2 Insert inverter pair close to the driver with setEcoMode spreadInverter false.
<CMD> setEcoMode spreadInverter false
<CMD> ecoAddRepeater cell INVX6 net ff0_o
After ecoAddRepeater:
Option loc:
- When insert inverter pair:
If user specifies two locations, then two inverters will be placed at the specified
locations.
If user only specifies one location, then the first inverter will be placed at the
specified location, the second inverter will abut the first inverter.
Option relativeDistToSink:
- It specifies the location of the buffer/inverter pair based on its distance from the
sink or the driver pin. The fraction is based on the length of the wire.
- It controls the distance between inserted buffer/inverter pair and driver/sink only
when the net is a 2-pins net (net only has one driver and one sink).
- The value specified should be a number between 0 and 1.
A low value (0.1) places the buffer/inverter pair near the sink.
A high value (0.9) places the buffer/inverter pair near the driver.
PAGE 9
So, for 2-pins nets having only one driver and one sink, user can use either
relativeDistToSink or loc. For nets having more than one sink, user can only use loc.
Examples:
E.g. 2.2.1 Buffer net ff0_o which has only one driver in_ff0/Q and one sink in_ff1/D, place
the buffer close to the sink.
<CMD> ecoAddRepeater cell BUFX6 net ff0_o relativeDistToSink 0.1
Or
<CMD> ecoAddRepeater cell BUFX6 net ff0_o loc {24.210 41.100}
After ecoAddRepeater:
E.g. 2.2.2 Buffer net ff0_o which has only one driver in_ff0/Q and one sink in_ff1/D, place
the inverter pair close to the sink.
<CMD> ecoAddRepeater cell INVX6 net ff0_o relativeDistToSink 0.1
Or
<CMD> ecoAddRepeater cell INVX6 net ff0_o loc {24.210 41.100}
PAGE 10
After ecoAddRepeater:
Examples:
Spread buffers evenly.
E.g. 2.4.1 Add several buffers on a net and spread them evenly.
<CMD>
<CMD>
<CMD>
<CMD>
Or
<CMD>
<CMD>
<CMD>
<CMD>
ecoAddRepeater
ecoAddRepeater
ecoAddRepeater
ecoAddRepeater
cell
cell
cell
cell
BUFX6
BUFX6
BUFX6
BUFX6
net
net
net
net
ff0_o
ff0_o
ff0_o
ff0_o
loc
loc
loc
loc
{29.210
{40.210
{51.210
{62.210
42.100}
42.100}
42.100}
42.100}
PAGE 11
After ecoAddRepeater:
PAGE 12
Examples:
PAGE 13
E.g. 3.2 Evaluate for all available cell types which have same function with specified cell.
<CMD> ecoAddRepeater cell BUFX12 net ff0_o evaluateAll
---- Cell: tsmc18/BUFX8 (view: dtmf_view_setup) ---Through-object Slack: -0.033
Max Tran
Slack: 2.6093
---- Cell: tsmc18/BUFX12 (view: dtmf_view_setup) ---Through-object Slack: -0.037
Max Tran
Slack: 2.5951
---- Cell: tsmc18/BUFX16 (view: dtmf_view_setup) ---Through-object Slack: -0.045
Max Tran
Slack: 2.5811
---- Cell: tsmc18/CLKBUFX8 (view: dtmf_view_setup) ---Through-object Slack: -0.052
Max Tran
Slack: 2.6175
---- Cell: tsmc18/BUFX20 (view: dtmf_view_setup) ---Through-object Slack: -0.054
Max Tran
Slack: 2.5665
---- Cell: tsmc18/BUFX4 (view: dtmf_view_setup) ---Through-object Slack: -0.057
Max Tran
Slack: 2.6006
---- Cell: tsmc18/CLKBUFX12 (view: dtmf_view_setup) ---Through-object Slack: -0.061
Max Tran
Slack: 2.5872
---- Cell: tsmc18/CLKBUFX16 (view: dtmf_view_setup) ---Through-object Slack: -0.074
Max Tran
Slack: 2.5772
---- Cell: tsmc18/BUFX3 (view: dtmf_view_setup) ---Through-object Slack: -0.074
Max Tran
Slack: 2.5789
---- Cell: tsmc18/CLKBUFX4 (view: dtmf_view_setup) ---Through-object Slack: -0.083
Max Tran
Slack: 2.5971
PAGE 14
- The batch mode starts with setEcoMode batchMode true and ends with
setEcoMode batchMode false.
The use model is:
setEcoMode batchMode true
ecoAddRepeater
ecoChangeCell
ecoDeleteRepeater
setEcoMode batchMode false
Name
Example
New buffer/inverters
FE_ECOC<number>_<net name>
FE_ECOC0_ff0_o
New net
FE_ECON<number>_<net name>
FE_ECON0_ff0_o
PAGE 15
and
name
- If the cell is inverter, the name of the first inverter connected to original driver is
named as <baseName>, the second inverter driven by the first inverter will use
the specified prefix FE_<prefix>C<number>_<net name>.
If user specifies setEcoMode prefixName <prefix>, the name of new net name is
FE_<prefix>N<number>_<net name>, like FE_MYECON2_ff0_o if the specified
prefix is MYECO.
PAGE 16
The buffer insertion affects a net which cannot be optimized. User can run
"reportIgnoredNets -outfile ignored.rpt" to output a list of nets which cannot be
optimized in the design.
Nets cannot be buffered:
dontTouchNets:
Nets set as don't touch by the set_dont_touch SDC constraint.
externalNets:
Nets connected to I/O pad or area I/O instances.
topLevelPotentialTriStateNets:
Nets connecting tri-state drivers to top-level I/Os.
specialNets:
Nets that have the attribute specialnet.
analogNets:
Nets that have the attribute analog.
noDriverNets
:
Nets that do not have a driver.
Fixed Wires/Cover Wires:
Nets that have a Fixed/Cover wire attribute.
The default location for the added buffer is not compatible with the reference
power domain. User can use option loc to specify the location manually.
There may be an existing MSV violation on the net (the driver PD is incompatible
with the sink PD).
The location requires an AOB. To insert always-on buffer, user need to set
"setOptMode -addAOFeedThruBuffer true".
PAGE 17