0% found this document useful (0 votes)
2K views17 pages

Buffer Insertion EcoAddRepeater

ecos in encounter
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2K views17 pages

Buffer Insertion EcoAddRepeater

ecos in encounter
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

Cadence Design Systems, Inc.

Application Note
Buffer insertion using ecoAddRepeater
In
Encounter Digital Implementation (EDI)
system

Version - EDI 13.2


Jan 2014

Buffer Insertion using ecoAddRepeater in 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

2. Control repeater location ............................................. 8


2.1. Insert repeater close to the driver....................................................................... 8
2.2. Insert repeater close to the sink ......................................................................... 9
2.3. Insert several repeaters and spread them evenly ............................................ 11

3. Evaluate timing effect ................................................ 13


4. Speed up buffer insertion .......................................... 14
5. Control buffer name and new net name .................... 15
5.1. Control buffer/inverter name............................................................................. 15
5.2. Control new net name ...................................................................................... 16

6. Possible reasons for buffer insertion failure .............. 16

COPYRIGHT 2013, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED.

PAGE 2

Buffer Insertion using ecoAddRepeater in EDI System

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

COPYRIGHT 2013, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED.

PAGE 3

Buffer Insertion using ecoAddRepeater in EDI System

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>]

1.1. Required options


The cell option and net/-term are required:
-cell <list of cells>
{-net <netName> | -term <inst1/term1 inst2/term2 >}

The cell option:


- It requires only buffer or inverter cell.

The term option:


- It could be driver term or sink term.
- It accepts term list, terms in the list should be connected to a common net.
Command ecoAddRepeater will buffer the common net.

The net option:


- It requires the net name with hierarchy.

Examples:

How to buffer all sink terms.

E.g.1.1.1. Inst b0 has three loads b1, b2 and b3. Use below commands to buffer all sink
terms.

COPYRIGHT 2013, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED.

PAGE 4

Buffer Insertion using ecoAddRepeater in EDI System

<CMD> ecoAddRepeater cell BUFX6 net n0


Or
<CMD> ecoAddRepeater cell BUFX6 term b0/Y
Or
<CMD> ecoAddRepeater cell BUFX6 term {b1/A b2/A b3/A}
Before buffer insertion:

Figure 1: Before buffer insertion


After buffer insertion:

Figure 2: After buffer insertion buffer all sink terms

How to buffer some of sink terms.

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.

COPYRIGHT 2013, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED.

PAGE 5

Buffer Insertion using ecoAddRepeater in EDI System

Before buffer insertion:

Figure 3: Before buffer insertion


After buffer insertion:

Figure 4: After buffer insertion only buffer terms b1/A and b2/A

1.2. Impact on wires


The command will cut the net wires by default.

How to assign wires:


- The part of wires close to the driver will be assigned to the original net.
- The part close to the sink will be assigned to the new created net.

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.

COPYRIGHT 2013, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED.

PAGE 6

Buffer Insertion using ecoAddRepeater in EDI System

Examples:

How ecoAddRepeater cut wires.

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:

Figure 5: Before ecoAddRepeater


After ecoAddRepeater:

Figure 6: After ecoAddRepeater


In figure 6, the wire of net ff0_o is cut. The part of wire close to driver is assigned to
original net ff0_o, the part of wire close to sink is assigned to new created net
FE_ECON0_ff0_o. User needs to run ecoRoute to route net ff0_o and FE_ECON0_ff0_o.
COPYRIGHT 2013, CADENCE DESIGN SYSTEMS, INC.
ALL RIGHTS RESERVED.

PAGE 7

Buffer Insertion using ecoAddRepeater in EDI System

2. Control repeater location


2.1. Insert repeater close to the driver
There is difference between adding buffer and inverter pair.

Insert buffer:
- By default, the buffer will be inserted close to the driver.

Insert inverter pair:


- Buffer net which has more than one sink:
By default, the inverter pair will be inserted close to the driver.
- Buffer net which only has one driver and one sink:
By setting setEcoMode spreadInverter false, the inverter pair will be inserted
close to the driver.

Examples:

Insert buffer close to the driver.

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:

Figure 7: Add buffer close to driver


COPYRIGHT 2013, CADENCE DESIGN SYSTEMS, INC.
ALL RIGHTS RESERVED.

PAGE 8

Buffer Insertion using ecoAddRepeater in EDI System

Insert inverter pair close to the driver.

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:

Figure 8: Add inverter pair close to driver

2.2. Insert repeater close to the sink


User can use loc or relativeDistToSink to control the location for added buffer.

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.

COPYRIGHT 2013, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED.

PAGE 9

Buffer Insertion using ecoAddRepeater in EDI System

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:

Insert buffer close to the sink.

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:

Figure 9: Add buffer close to sink

Insert inverter pair close to the sink.

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}

COPYRIGHT 2013, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED.

PAGE 10

Buffer Insertion using ecoAddRepeater in EDI System

After ecoAddRepeater:

Figure 10: Add inverter pair close to sink

2.3. Insert several repeaters and spread them evenly


User can use option relativeDistToSink and loc. For nets having only one sink, user can
use either relativeDistToSink or loc. For nets having more than one sink, user can only
use loc.
Refer to section 2.2 in this application note to get tips about options loc and
relativeDistToSink.

Examples:
Spread buffers evenly.
E.g. 2.4.1 Add several buffers on a net and spread them evenly.
<CMD>
<CMD>
<CMD>
<CMD>

ecoAddRepeater cell BUFX6 net ff0_o relativeDistToSink 0.2


ecoAddRepeater cell BUFX6 net ff0_o relativeDistToSink 0.25
ecoAddRepeater cell BUFX6 net ff0_o relativeDistToSink 0.33
ecoAddRepeater cell BUFX6 net ff0_o relativeDistToSink 0.5

Or
<CMD>
<CMD>
<CMD>
<CMD>

ecoAddRepeater
ecoAddRepeater
ecoAddRepeater
ecoAddRepeater

cell
cell
cell
cell

BUFX6
BUFX6
BUFX6
BUFX6

COPYRIGHT 2013, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED.

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

Buffer Insertion using ecoAddRepeater in EDI System

After ecoAddRepeater:

Figure 11: Spread buffers

Spread inverters evenly.


For inverter pair insertion, if the net has only one sink, the two inverters will spread evenly
along the net wire by default. Or user can use loc to specify the two inverters locations.
E.g. 2.4.2 Spread inverters.
<CMD> ecoAddRepeater cell INVX6 net ff0_o
Or
<CMD> ecoAddRepeater cell INVX6 net ff0_o loc {36.210 42.100
55.210 42.100}
After ecoAddRepeater:

Figure 12: Spread inverters

COPYRIGHT 2013, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED.

PAGE 12

Buffer Insertion using ecoAddRepeater in EDI System

3. Evaluate timing effect


Before user commits the buffer insertion operation, user can evaluate the timing effect
first.
Command ecoAddRepeater provides two options which can be used for timing
evaluation:
[-evaluateAll | -evaluateOnly]
With these two options:
- The buffer insertion operation will not be applied. Tool will just do timing
evaluation by assuming that the buffer is added.
- If user doesnt specify location, tool will assume that the buffer will be placed at
the default location.
The difference between these two options:

The evaluateAll option:


- Tool evaluates timing for all available buffers.
- User should specify only one cell type with cell when using -evaluateAll.

The evaluateOnly option:


- It only evaluates timing for the specified buffer cell types.
- User can specify cell list when using -evaluateOnly, tool will evaluate timing for
all specified buffer cell types listed in the list.

Examples:

Example for evaluateOnly option.

E.g. 3.1 Evaluate for specified cell types.


<CMD> ecoAddRepeater cell {BUFX12 BUFX16} net ff0_o evaluateOnly
---- Cell: tsmc18/BUFX12 (view: dtmf_view_setup) ---Through-object Slack: -0.039
Max Tran
Slack: 2.5951
---- Cell: tsmc18/BUFX16 (view: dtmf_view_setup) ---Through-object Slack: -0.048
Max Tran
Slack: 2.5811

COPYRIGHT 2013, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED.

PAGE 13

Buffer Insertion using ecoAddRepeater in EDI System

Example for evaluateAll option.

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

4. Speed up buffer insertion


When thousands of ecoAddRepeater need to run, user can use batch mode to reduce the
run time.

How to use batch mode?

COPYRIGHT 2013, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED.

PAGE 14

Buffer Insertion using ecoAddRepeater in EDI System

- 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

What do we need to pay attention to when using batch mode?


- User need to remember to set setEcoMode batchMode false after finishing
eco commands.
- The eco commands here in batch mode can only be ecoAddRepeater,
ecoDeleteRepeater and ecoChangeCell. Do not run other commands in batch
mode.

Why batch mode can speed up buffer insertions?


- In batch mode, lots of initialization and cleanup work will happen only once
instead of at each eco command.
- Timing update will also happen only once at the end of the batch mode.

5. Control buffer name and new net name


The default naming convention of ecoAddRepeater:
Objects

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

5.1. Control buffer/inverter name


User can control buffer/inverter name by option prefixName of setEcoMode or option
name of ecoAddRepeater.
The name of ecoAddRepeater requires instance base name without hierarchy.

User only specifies setEcoMode prefixName <prefix>:

COPYRIGHT 2013, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED.

PAGE 15

Buffer Insertion using ecoAddRepeater in EDI System

- The name of new buffer or inverters is FE_<prefix>C<number>_<net name>, like


FE_MYECOC2_ff0_o if the specified prefix is MYECO.

User only specifies name <baseName> of ecoAddRepeater:


- If the cell is buffer, the name of new buffer is <baseName>.
- 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 is named
as FE_ECOC<number>_<net name>.

User only specifies name <baseName> of ecoAddRepeater:


- If the cell is buffer, the name of new buffer is <baseName>.
- 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 default name FE_ECOC<number>_<net name>.

User specifies both setEcoMode prefixName <prefix>


<baseName> of ecoAddRepeater:
- If the cell is buffer, the name of new buffer is <baseName>.

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>.

5.2. Control new net name


User can control new net name by option prefixName of setEcoMode or option
newNetName of ecoAddRepeater.
The -newNetName of ecoAddRepeater requires net base name without hierarchy.

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.

If user specifies -newNetName <netBaseName> of ecoAddRepeater, the name


of new net name is <netBaseName>.

6. Possible reasons for buffer insertion failure


There are several possible reasons for buffer insertion failure.

COPYRIGHT 2013, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED.

PAGE 16

Buffer Insertion using ecoAddRepeater in EDI System

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".

The command ecoAddRepeater doesnt support master/clone. Tool tries to add a


buffer to a hierarchy instance, but this hierarchy instance is instantiated from a
master module who has multiple clones.

COPYRIGHT 2013, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED.

PAGE 17

You might also like