Professional Documents
Culture Documents
1 Training:
Timing Signoff Optimization (TSO)
June 2014
Content
1. Feature Overview
2. Use Model
3. Incremental Timing Closure
4. Hierarchical Timing Closure
5. Path-based Analysis Optimization
6. Master Clone Optimization
Content .. Contd.
7. Routing Congestion-aware Optimization
8. Selected Endpoints Optimization
Special Sections
1. Feature Overview
Tempus
On-route buffering
Physically
aware ECO
2-3
Iteration
Physical
view
(LEF/
DEF)
Tempus TSO
Distributed
MMMC
delay
calculation
and STA
Physicallyaware
optimization
Hold, DRV,
setup,
leakage
Timing closed
Timing
Met?
Post CTS
Setup/Hold Fixing
Timing
Met?
Physical
Verification
Routing
Post Route
Setup/Hold Fixing
SI
Setup/Hold Fixing
SIGNOFF
Pre CTS
Setup Fixing
Clock Tree
Synthesis
Timing, Mode
Setup
JTAG/Cell
Placement
Load
Floorplan
DESIGN INITIALIZATION
Design Import
Scan
Defintion
Timing Analysis
Tempus TSO
ECO
Timing Analysis
Timing
Met?
GDSII
Timing
Setup
Partition
Definition
Partition Pin
Assignment
Design
Initialization
Pre-CTS
Flow
Post-CTS
Flow
Post-Route
Flow
SI
Setup/Hold Fixing
Timing
Met?
Opt Virtual /
Budgeting
Partitioning
Design
Initialization
Pre-CTS
Flow
Post-CTS
Flow
Post-Route
+ SI Flow
Model
Generation
Timing
Met?
Clock / Latency
Specification
JTAG / Cell
Placement
BLOCK IMPLEMENTATION
DESIGN INITIALIZATION
Load
Floorplan
VIRTUAL PROTOTYPING
Design Import
TOP IMPLEMENTATION
Assemble
Design
Signoff Extraction
Timing Analysis
Tempus TSO
ECO
on full flat DB
Signoff Extraction
Timing Analysis
GDSII
Technology trend
The timing environment is getting more and more complex :
- Many clocks because of many functions.
- Complicated timing exception because of many functions.
- Large number of MMMC views ( > 100 views).
- Large Hierarchical and MSV designs ( > 100M gates) .
This is leading to runtime and memory explosion. There is a need for a more
efficient data management to allow increasing tool capacity.
8
Input data
Technology data
Design data
Physical data
(Can load EDI DB)
Tempus TSO
Buffering, Vth Swapping and Sizing
Violations fixed :
Hold timing violations
Setup timing violations
Design Rule Violations
(max_cap/max_tran)
Leakage power reduction
Output data
Detailed reporting on all ECOs
being performed
Detailed diagnostic report on
remaining violations not fixed
Standard format ECO file
Final timing summary reports
Logical only
SignOff ECO
Timing
Closure
Why would you accept to
lose accuracy/predictability
when reaching SignOff
stage ?
10
Physical
Aware
Synthesis
Routing
aware
Placement
&
Timing
Optimization
Physical &
Routing Aware
SignOff ECO
Timing
Closure
Predictable and
convergent flow !
Routing
aware
Placement
&
Timing
Optimization
Physical
Aware
Synthesis
Performing legal location checks during buffer insertion and output coordinates in the
ECO file to be reused by the implementation tool.
Buffer
insertion
Legalization
Legalization
Non-Physical Mode
Buffer
insertion
Physical Mode
11
Block implementation
Interface
CPU1
B
U
S
CPU2
CPU
R
A
M
Network
MMMC
Views
Physical
Design
view 1
view 2
view 3
view n
Leakage
P&R
System
DRV
Distributed processing
maximizes analysis
performance
Setup
ECO file
2. Use Model
14
ECO file
Convergent
timing closure
flow
(eco_edi.tcl)
ECO Route
SignOff RC Extraction
SPEF files
Verilog
Tempus cockpit
Timing reported
in Tempus after
optimization step
will be very close
to the one
measured at the
end of the full
P&R flow
16
set_multi_cpu_usage/set_distribute_host
To set the distributed MMMC environment
write_eco_opt_db
To save ECO Timing DB files, containing timing information per view
set_eco_opt_mode
To pilot ECO timing closure with any specific options
17
Output:
This command will generate the eco_edi.tcl file which should be used in
EDI to perform place&route. It also generates eco_tempus.tcl file which can
be sourced in Tempus to do timing analysis after ECOs
Example:
Notes:
It is important to correctly set up the timing environment and multiCPU settings
before running this command.
18
This will instruct the tool on how to load the SPEF files.
Notes:
When no SI analysis instruction are provided, the tool will perform
non-SI signOff timing analysis.
The file provided through -analysis_script option should be similar to the file one
would use for D-MMMC (and provided through -script option for
command distribute_views )
19
This will instruct the tool on how to load the SPEF files and
what are the settings that should be used for SI analysis.
Notes:
To perform SI analysis/fixing, SPEF must contain the coupling capacitance data.
20
Examples:
This will perform DRV fixing by using buffering and resizing techniques.
set_eco_opt_mode drv_margin -0.1
eco_opt_design drv analysis_script spef.tcl
This will perform DRV fixing on all the max_cap/max_tran violations that are violating by more
than 10% of the target.
21
Perform Vth swapping (sizing between cells of the same physical footprint)
This will perform Hold fixing by using Vth swapping and buffering techniques.
set_eco_opt_mode swap_inst true resize_inst true
eco_opt_design hold analysis_script spef.tcl
This will perform Hold fixing by using Vth swapping, buffering and resizing techniques on
combinational cells.
22
This will perform Setup fixing by using Vth swapping , buffering and resizing techniques.
Notes:
23
When resizing instances, tool will look for legal locations so that the ECO file generated would
not lead to any overlapping instances.
Examples:
This will perform Leakage power reduction by performing Vth swapping on combinational cells.
set_eco_opt_mode -optimize_sequential_cells true
eco_opt_design leakage analysis_script spef.tcl
This will perform Leakage power reduction by performing Vth swapping on all standard cells
Notes:
24
Instances marked as Fixed can be Vth swapped. To avoid that, one can apply dont_touch
attribute on those instances.
The command set_power_analysis_mode -view <view> allows to choose in which
corner must be used to collect the leakage power numbers (can be a non-active view).
In this mode the tool will load the design/libraries data, run Distributed TA to collect the
timing information per view, then optimize timing and finally re-time the design based
on the ECO change committed
It requires that the number of CPUs available is superior or equal to the amount of
Setup + Hold unique active views.
25
In this mode the tool will load the design/libraries data, then read the previously
generated ECO timing db, then optimize timing and report the final timing based on the
evaluated timing.
This allows the user to run fixing on many more views, since there is no limit in the
amount of active views.
Note :
The sta.tcl must contain read_spef command for every active rc_corner, and SI
analysis settings in case SI timing is requested for SignOff
26
Session 1
ECO timing DB generation using D-MMMC :
set_distribute_host local
set_multi_cpu_usage -localCpu 8
Same script
can be used
distribute_read_design \
-design_script loadDesign.tcl -outdir .
distribute_views -views $setup_and_hold_views \
-script sta.tcl
Same script
can be used
Note :
The eco_opt_design command will automatically skip the set_eco_opt_mode and
write_eco_opt_db commands from sta.tcl file since ECO timing DB information is already provided.
The loadDesign.tcl must contain Physical data to ensure fixing is done in Physical-Aware mode
27
28
Tempus
Example 2
Scenario: Customer wants to
fix DRV, then Hold and then
Setup in one session
Tempus
Example 3
Scenario: Customer wants to
fix Hold with specific buffers
and then fix Setup with Vth
Swapping only
Tempus
Very flexible use model which allows any combination of DRV, Hold and Setup
optimization in one single Tempus session
29
Default: false
Example:
This will perform DRV fixing followed by Hold fixing, while giving a different prefix for the ECO files.
Notes:
30
The leakage option is not supported in incremental mode and no intermediate timing reports
can be done in betweens eco_opt_design commands.
The ECO files must then be later sourced in the same order as they were generated.
31
Interface
Top
Level
M
E
M
CPU
.v
.def
.spef
.v
.def
.spef
B
U
S
.v
.def
.spef
.v
.def
.spef
.v
.def
.spef
Tempus
Interface
CPU1
CPU2
B
U
S
M
E
M
Tempus TSO
ECO
Interface
ECO
CPU
ECO
MEM
ECO
BUS
Default: empty
Examples:
This will perform Hold fixing and treat every cell listed in the partition.txt file as partition.
Notes:
33
It is mandatory that the modules that must be treated as partitions are of type FENCE.
To avoid doing any ECO in a given partition, one need to apply dont_touch on that module.
To perform top level only buffering, one need to apply dont_touch on every partitions.
Description: This command allows the user to load DEF files for the modules that is
currently treated as a black box (represented by LEF/LIB). This command is needed for
Hierarchical designs in order to assemble the top level database with all the block level
databases. The tool will automatically create a FENCE for every partition loaded.
Default: empty
Examples:
This will assemble the ptn1 block level database to the top level database already in memory.
34
Notes :
1) Must provide pointer to ECO DB since D-MMMC cannot be used with merge_hierarchical_defs
based flow.
2) When loading one full flat DEF/Verilog, the partition LEFs must not be provided, but the full flat DEF has
to contain FENCEs definition for the modules that should be treated as partitions.
35
36
Design 1
4.7%
4.3%
Design 2
0.4%
0.45%
Design 3
2.3%
2.8%
Design 4
5.7%
6.6%
Total Leakage
300mW
264mW
Sequential
cells
Combinational
cells
25mW
191mW
18mW
164mW
12%
Improvement
Block Level
1.2M instances, 45nm technology, 95% of initial low VT cells
7 Hold views and 7 Setup views
Analysis Mode
Number of Cells
swapped
% of Low VT to HVT
conversion
Setup degradation
MSV or Placement
violations
GBA-SI
0.8M
75%
None
None
PBA-SI
1M
93%
None
None
38
18%
Improvement
early
0
500000
50
Notes : Those options are only honored when set_eco_opt_mode retime is being activated.
Examples:
set_eco_opt_mode -retime path_slew_propagation -check_type late
write_eco_opt_db
This will generate ECO DB with Setup timing being done in PBA path_slew_propagation mode
set_eco_opt_mode -retime aocv
write_eco_opt_db
This will generate ECO DB with Hold timing being done in PBA aocv mode
39
6. Routing Congestion-aware
Optimization
40
Default: false
Examples:
Notes:
41
This option may lead to worse Hold timing closure when design has routing congestion but it will
limit potential Setup timing degradation and routing DRC increase after full place&route loop.
This option applies only for Hold fixing since this is where buffer count inserted is usually high.
Default mode
Initial DB
New routing DRC hotspot created
Setup timing degradation
Congestion map
42
43
A cloned block is implemented such that it can operate in the worst-case corner
scenario in any of its instantiation but once assembled in its top level, the full flat
STA might reveal new timing violations.
Master/Clones timing optimization is needed because each clone can have:
Different physical environments ( like different IO loads )
Different timing environments (like change in clock slew/skew/OCV between blocks and
flat)
Different Signal Integrity environments
44
Cpu1 Cpu2
(cellA)
(cellA)
Top
Cpu3 Cpu4
(cellA)
(cellA)
Uniquified netlist
Cpu1 Cpu2
(cellA1) (cellA2)
Top
Cpu3 Cpu4
(cellA3) (cellA4)
(cellA)
Top
Cpu3 Cpu4
(cellA)
45
(cellA)
Top
Block1 (cellA)
(CellA)
Block2 (cellA)
FF2
FF2
O1
FF1
FF1
In1
O1
In1
Z2
T1
I0
I1
Buffering can happen on any nets, even nets crossing clones boundary.
47
Default: false
Examples:
This will perform Hold fixing and the replicated modules of the cell listed in the partition list file will be
treated as clones.
Notes:
48
Tempus
assembleDesign
Encounter DB
Tempus
read_design
ECO fixing
running in
Master/Clone
aware mode
set_eco_opt_mode
eco_opt_design
set_eco_opt_mode
eco_opt_design
The read_def command in Tempus should not be used to assemble a hierarchical design
49
Design example:
Or
Top
read_design top.enc \
physical_data
Content of partition.txt :
eco_opt_design hold analysis_script spef.tcl
cellA
Notes :
1)
2)
3)
50
Must provide pointer to ECO DB since embedded D-MMMC ECO flow cannot be used with
merge_hierarchical based flow.
Mandatory to provide the partition LEF when loading the top level design. A basic LEF for a block can
be easily generated using lefOut in EDI
When replicated instances have different orientation, the design must be assembled in EDI or in
Tempus, because loading one full flat DEF/Verilog will not work.
Copyright 2014 Cadence Design Systems, Inc. All Rights Reserved.
ECO file
cellA_edi.tcl
Design example:
Top
Block1 (cellA) Block2 (cellA)
EDI + QRC
EDI + QRC
ECO Route
ECO Route
SignOff RC
Extraction
SignOff RC
Extraction
SPEF files
Verilog
SPEF files
Verilog
Tempus cockpit
Block1 (cellA)
Block2 (cellA)
Block3 (cellA)
Block4 (cellA)
52
Master/Clones at multi-levels
Top
T/B1/A0 (cellC)
T/B1/A1 (cellC)
T/B1/A3 (cellC)
T/B1/A2 (cellC)
T/B1 (cellA)
T/B2 (cellB)
T/B2/A0 (cellC)
T/A0 (cellC)
Top
T/B1/A0 (cellC)
T/B1/A1 (cellC)
T/B1/A3 (cellC)
T/B1/A2 (cellC)
T/B2/A0 (cellC)
T/B2/A1 (cellC)
T/B2/A3 (cellC)
T/B2/A2 (cellC)
T/B1 (cellA)
T/B2 (cellA)
53
T/B1/C0 (cellD)
T/B1 (cellA)
T/B1/A1 (cellC)
T/B1/A2 (cellC)
T/B1/C1 (cellD)
T/B1/A3 (cellC)
T/B2/A0 (cellC)
T/B2/C0 (cellD)
T/B0 (cellB)
T/B2 (cellA)
T/B2/A1 (cellC)
T/B2/A2 (cellC)
T/B2/C1 (cellD)
T/B2/A3 (cellC)
T/B3/A0 (cellC)
T/B3/C0 (cellD)
T/B3 (cellA)
T/B3/A1 (cellC)
T/B3/A2 (cellC)
T/B3/C1(cellD)
T/B3/A3 (cellC)
54
Current log :
*info: reading partition list file partitions.txt
**WARN: Ignoring multi-instantiated partition seq_logic
*info: 1 clock net
**WARN: (ENCECO-560):
Netlist is not unique. Cell "seq_logic" is a multiinstantiated cell. Uniquify your netlist to avoid the problem.
*info: 4 ununiquified hinsts
New log :
*info: reading partition list file partitions.txt
*info: 1 clock net
55
4000 net(s): Could not be fixed because they would "degrade design setup WNS".
32 net(s): Could not be fixed because hold improving moves not found.
662 net(s): Could not be fixed because they are in or around non-unique modules.
32 net(s): Could not be fixed because hold improving moves not found.
For each remaining violated cloned net, the clone causing the reason for not
fixing the violation is printed .
CPU1/N122 (In context CPU3)
CPU2/N23143 (In context CPU3)
Note : Failure report on nets inside clones is printed only one time and not as
many times as there are clones.
56
57
58
60
61
63
VT Swap
o set_eco_opt_mode swap_inst
64
65
Whats New
66
90%
80%
70%
60%
TBD
50%
40%
30%
20%
2x gain
10%
0%
1
67
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Default: false
Examples:
This will perform DRV fixing in a mode where buffering will also be able to insert buffers along
the route topology.
Notes:
68
To benefit from this feature, user must provide parasitic data containing node locations. See next
slides.
Traditional approach would only insert a buffer at the start or/and end of this net,
or insert buffers somewhere intermediate by loosing Signoff timing accuracy.
69
In Tempus14.1, buffering can happen all along the route topology with signoff
parasitic and timing accuracy. This greatly helps to close Setup/DRV violations
on such cases where buffering needs more flexibility.
70
Note: To pass a command file to QRC when running it from EDI cockpit :
setExtractRCMode qrcCmdFile <file>
Default: true
Examples:
This will perform Hold fixing more aggressively by ignoring the Physical data and not checking
for legal location.
Notes:
72
The recommended flow is to first run ECO fixing in the legal-only mode (which is the default
mode) and then, if failure catalogue is reporting many remaining violated nets due to missing
legal location, you may perform an incremental run by setting the -legal_only to false.
An ECO file generated with set_eco_opt_mode legal_only false will require
placement refinement when sourcing it in the implementation tool and that can have some
negative impact on timing.
Initial floorplan
Buffer
insertion
Instances are
abutted
Gap not large
enough
74
Tempus Summary
Productivity
ECO efficiency via P&R integration
Accelerate Time-to-Closure
Improve PPA with PBA-based optimization
Advanced ECO capability
76
Agenda
Why TSO inside EDI
Architecture overview
77
How to
hanlde
netlist with
+50M insts ?
optDesign postRoute
What if I need to
enable many MMMC
views for SignOff ?
GDSII
QRC
CPU1
CPU n
RCDB
Tempus
ECO Timing DB
Tempus
CPU1
CPU n
Setup/Hold
Timing Graph
Setup/Hold
Timing Graph
TSO
EDI
ecoRoute
routeDesign
ECO
Timing DB
Timing
Reports
QRC
signOff RC extract
CPU1
optDesign postRoute
RCDB
Tempus/QRC
Tempus
Tempus
CPU1
CPU n
Setup/Hold
Timing Graph
Setup/Hold
Timing Graph
signoffTimeDesign
signoffOptDesign
CPU n
Timing Reports
GDSII
QRC
signOff RC extract
CPU1
CPU n
RCDB
Tempus
Tempus
EDI
routeDesign
CPU1
CPU n
Setup/Hold
Timing Graph
Setup/Hold
Timing Graph
optDesign postRoute
ECO Timing DB
TSO
ecoRoute
setSignoffOptMode ...
Tempus/QRC
signoffOptDesign
QRC
signOff RC extract
CPU1
RCDB
GDSII
Tempus
CPU n
Tempus
CPU1
CPU n
Setup/Hold
Timing Graph
Setup/Hold
Timing Graph
Timing Reports
80
EDI
spefIn rc_corner r1 r1.spef
spefIn rc_corner r2 r2.spef
RCDB
GDSII
81
Tempus
CPU1
CPU n
Setup/Hold
Timing Graph
Setup/Hold
Timing Graph
ECO Timing DB
Timing Reports
ecoRoute
extractRC
signoffTimeDesign reportOnly -noEcoDb
GDSII
82
setDelayCalMode
setAnalysisMode
timeDesign -postRoute
optDesign -postRoute
optDesign postRoute -hold
setSignoffOptMode ...
signoffTimeDesign
signoffOptDesign -hold
GDSII
83
QRC
signOff RC extract
CPU1
CPU n
RCDB
Tempus
EDI
setSignoffOptMode\
-preStaTcl sta.tcl
signoffTimeDesign
CPU1
CPU n
sta.tcl
sta.tcl
Setup/Hold
Timing Graph
Setup/Hold
Timing Graph
ECO
Timing DB
84
Tempus
Timing
Reports
EDI
routeDesign
optDesign postRoute
optDesign postRoute -hold
setSignoffOptMode ...
Path Histogram
(pass/fail)
signoffTimeDesign
Paths groups
Machine Readable
timing reports
Paths List
load_timing_debug_report
Note: The Global Timing Debug can also be called after signoffOptDesign
since that command will generate .mtarpt files too.
Example to visualize Hold violated paths in GTD :
foreach mtarpt_file [glob -nocomplain signoffTimingReports/*_early_detailed.mtarpt] \
{load_timing_debug_report -NAME early $mtarpt_file}
analyze_paths_by_view
85
EDI
EDI
Example to optimize
leakage in signOff STA
mode
EDI
routeDesign
routeDesign
routeDesign
optDesign postRoute
optDesign postRoute
optDesign postRoute
setSignoffOptMode ...
setSignoffOptMode ...
setSignoffOptMode ...
signoffOptDesign -hold
signoffOptDesign -leakage
setSignoffOptMode ...
signoffOptDesign setup -noEcoRoute
GDSII
setSignoffOptMode ...
signoffOptDesign -hold
GDSII
87
GDSII
#
#
#
#
#
Description: This command will generate signoff STA reports and ECO Timing DB for
both Setup and Hold timing mode.
signoffOptDesign
-help
-drv
-hold
-leakage
-noEcoRoute
-setup
#
#
#
#
#
#
Description: This command will optimize timing or leakage based on Signoff STA timing.
When using noEcoRoute option, user can make multiple incremental call
to this command to fix DRV/Setup/Hold violations in incremental mode.
88
# default=true
# default=""
# {early late both}, default=early
# default=0
# default=""
# default=false
# default=0
# default=0
# default=
# default=500000
# default=0
# default=50
# default=50
# default=false
# default=false
# default=""
# default=""
# default=ESO
# default=""
# default=false
# {none aocv path_slew_propagation
aocv_path_slew_propagation waveform_propagation
aocv_waveform_propagation}, default=none
# default=false
# default=ecoTimingDB
# default=0
# default=false
# default=false
Miscellaneous information
For large designs or when many views are enabled, make sure to have enough
CPUs available to distribute STA and multi-thread it too.
The methodology is to enable only the dominant views during postRoute optimization
stage, while all views can be enabled for the Signoff optimization stage
Apply the command setMultiCpuUsage to select how many local CPU or machines
should be used to perform Signoff STA.
Ex : setMultiCpuUsage -remoteHost 3 -cpuPerRemoteHost 4
90
Signoff STA followed by Hold opt in PBA Setup and PBA Hold
source postRoute.enc
setMultiCpuUsage -localCpu 6
setSignoffOptMode -preStaTcl preStaTcl.tcl
setSignoffOptMode -retime aocv_path_slew_propagation checkType both
signoffTimeDesign
signoffOptDesign hold
91