Tempus 14.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
2
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Content .. Contd. 7. Routing Congestion-aware Optimization 8. Selected Endpoints Optimization Special Sections
What’s New in Tempus 14.1 TSO EDI 14.1 – Signoff Timing Closure using Tempus 14.1 TSO
3
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
1. Feature Overview
4
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Tempus TSO Advanced Capabilities Address the timing closure challenges introduced from the increased analysis complexities and capacities! Standard Features
Tempus
Built-in signoff delay and SI analysis
Distributed or concurrent MMMC
Physically aware optimization
Legalized / DRC clean placement directives
Hierarchical or flat ECO generation
Optimized MMMC timing graph for fast and high capacity optimization
Graph or path based optimization
Common timing engine within implementation
New Features in Tempus TSO 14.1
5
On-route buffering
Master / Clone support
Multi-threaded ECO db generation
20nm/16nm design rule compliant
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Place and route
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 Closure Flow In a flat design flow, Tempus Timing Signoff Optimization (TSO) is for final signoff timing closure
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
POST ROUTE FLOW
Timing, Mode Setup
JTAG/Cell Placement
POST CTS FLOW
Load Floorplan
PRE CTS FLOW
DESIGN INITIALIZATION
Design Import
Scan Defintion
Timing Analysis Tempus TSO ECO Timing Analysis
Timing Met?
GDSII
6
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Hierarchical Timing Closure Flow
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
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Design Initialization Pre-CTS Flow Post-CTS Flow Post-Route + SI Flow Model Generation Timing Met?
ASSEMBLY & SIGNOFF
Clock / Latency Specification
JTAG / Cell Placement
BLOCK IMPLEMENTATION
DESIGN INITIALIZATION
7
Load Floorplan
VIRTUAL PROTOTYPING
Design Import
TOP IMPLEMENTATION
In a hierarchical design flow, Tempus TSO is for final full-chip signoff timing closure
Assemble Design Signoff Extraction Timing Analysis Tempus TSO ECO on full flat DB Signoff Extraction Timing Analysis
GDSII
Why Tempus TSO? Motivations overview In signOff environment, designers always find some remaining timing violations that must be cleaned up : - Block level vs top level timing analysis do not match. Timing model difference. - Timing budgeting is not precise or not always done (for Hold timing). - Over fixing is killing, thus counting on SignOff stage to catch/fix real violations. - Additional corners or modes added in SignOff stage. - Implementation tools cannot optimize timing with full SignOff STA precision
Complementary solution to the timing closure at implementation stage. Need for such feature to fix remaining violation in SignOff STA environment
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
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Tempus TSO Features Highlights Feature highlights - Focus on timing convergence by being MMMC-aware, STA SignOff aware and SI-aware - By default this feature is Physical-aware. No placement legalization needed - Concurrent and distributed timing analysis. Highly scalable - Smart Bottleneck analysis algorithm to target minimal netlist change - The local density and routing congestion are considered when adding buffers - Support for MSV and Hierarchical based designs (including different row height) - Native support for replicated hierarchies (also named Master/Clone optimization) - Need only one single ECO loop to close timing - Very large capacity in netlist size (>200M gates) and number of active views timed (>100)
Input data • Technology data • Design data • Physical data (Can load EDI DB)
9
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
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
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
Front-to-back Physical Aware Timing Closure
Logical only SignOff ECO Timing Closure Why would you accept to lose accuracy/predictability when reaching SignOff stage ? 10
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Physical Aware Synthesis Routing aware Placement & Timing Optimization Physical & Routing Aware SignOff ECO Timing Closure Predictable and convergent flow !
RC-EDI-Tempus Front to Back implementation flow
Routing aware Placement & Timing Optimization
Traditional Front to Back implementation flow
Physical Aware Synthesis
Benefit of Tempus TSO Physical-awareness The goal is to improve correlation between evaluated timing during ECO and real timing after place&route loop by : -
Performing legal location checks during buffer insertion and output coordinates in the ECO file to be reused by the implementation tool.
-
Taking in account routing information when adding buffer.
Buffer insertion
Legalization
Legalization
Non-Physical Mode
Buffer insertion
Physical Mode 11
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Difficult to predict the timing impact of placement refinement !
Buffer is already getting legal location from Tempus
No move would happen later on in place&route
Routing estimations are more precise
On Which Design Style Can It Be Used? Hierarchical flow
Block implementation
Interface CPU1 B U S
CPU2
Very large flat netlist
CPU R A M
• Fix the inter-partition timing violations, after assembling the design, on the full flat DB • Small amount but large violations to be fixed Challenge is on capacity, TAT and TopLevel buffering
Network
• Fix the real remaining violations in SignOff STA tool to avoid adding pessimism in implementation tool • Timing violations to fix are probably small and not too many. Can recover leakage.
• Flat implementation of very large netlist where Hold fixing only done with SignOff ECO feature to avoid capacity/runtime issue
Need precise fixing without creating any Setup violations and make usage of physical-aware techniques
Above several 100k violations to be fixed with physical-aware techniques in reasonable runtime and Mem
Integrated solution enables Signoff Timing Closure in different design methodologies 12
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Tempus TSO Architecture Logical Design
MMMC Views
Physical Design
Physically aware for legalized placement Tempus TSO
Distributed MMMC Timing/SI Analysis
view 1
view 2
view 3
Optimization across all parameters to eliminate new violations
view n
MMMC Optimization Engine Hold
Leakage
P&R System
DRV
Distributed processing maximizes analysis performance
Setup
ECO file
Single-pass MMMC Signoff ECOs with simultaneous optimization across all MMMC views 13
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
2. Use Model
14
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Tempus TSO ECO Flow Tempus cockpit
Distributed SignOff Timing Analysis Tempus TSO
ECO file
Convergent timing closure flow
(eco_edi.tcl)
EDI cockpit + QRC
ECO Route SignOff RC Extraction
SPEF files
Verilog
Tempus cockpit
Distributed SignOff Timing Analysis 15
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Timing reported in Tempus after optimization step will be very close to the one measured at the end of the full P&R flow
The ECO File Result From Tempus TSO
16
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
The Tempus TSO Use Model • Use model overview : Simple command to access all the timing/power optimization capabilities Tool will automatically switch the Physical-aware when Physical data are loaded Reusing the distributed processing management settings already available (and used by D-MMMC)
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
eco_opt_design [-hold] [-drv] [-leakage] [-setup] \ [-help] [-analysis_script
] To run either DRV or Hold or Setup and Leakage optimization
17
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Main Command For Tempus TSO eco_opt_design [-hold] [-drv] [-leakage] [setup] [-analysis_script ] [-help] • Description: This command triggers the MMMC SignOff ECO. depending on the set_eco_opt_mode settings, it will either auto generate the ECO timing db or load existing one, then proceed to the timing fixing phase and finally output an ECO file and detailed diagnostics. The –analysis_script option is mandatory (see next slide).
• 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:
eco_opt_design -hold –analysis_script sta.tcl This will perform Hold fixing while not degrading Setup timing.
• Notes: It is important to correctly set up the timing environment and multiCPU settings before running this command. 18
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Main Command Mandatory Option (1/2) eco_opt_design –analysis_script • Description: This mandatory option allows to provide a file containing instructions to load the SPEF files for every active RC corner. This file may also contain information to enable SI analysis, when needed.
• Example of file to be passed to –analysis_script option: read_spef -rc_corner rc_max max.spef.gz read_spef -rc_corner rc_min1 min1.spef.gz read_spef -rc_corner rc_min2 min2.spef.gz
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
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Main Command Mandatory Option (2/2) eco_opt_design –analysis_script
• Example of file to be passed to –analysis_script option for SPEF loading + SI analysis settings: read_spef -rc_corner rc_max max.spef.gz read_spef -rc_corner rc_min1 min1.spef.gz read_spef -rc_corner rc_min2 min2.spef.gz set_delay_cal_mode -SIAware true
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
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Fixing DRV Timing Violations eco_opt_design -drv -analysis_script • Description: When specifying the -drv option, eco_opt_design will fix the max_cap and max_tran violations by ensuring minimal Setup timing impact. The fixing is done through buffering by default, but also through resizing as an optional technique.
• Fixing method: Buffering (default) and resizing.
• Examples:
set_eco_opt_mode –resize_inst true eco_opt_design –drv –analysis_script spef.tcl
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
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Fixing Hold Timing Violations eco_opt_design -hold -analysis_script • Description: When specifying the –hold option, eco_opt_design will fix the Hold timing violations by ensuring no Setup or DRV timing degradation. The following Hold fixing capabilities are worth to mention :
Perform Vth swapping (sizing between cells of the same physical footprint)
Taking advantage of “Hold Friendly” and de-skewed sequential elements
Ability to resize existing buffers in to delay cells
• Fixing method: Buffering (default), Vth swapping and resizing. • Examples:
set_eco_opt_mode –swap_inst true eco_opt_design –hold –analysis_script spef.tcl
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
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Fixing Setup Timing Violations eco_opt_design -setup -analysis_script • Description: When specifying the -setup option, eco_opt_design will fix the Setup timing violations by ensuring no impact on Hold timing and DRV. The fixing is done through Vth swapping by default, but also through resizing and buffering as optional technique.
• Fixing method: Vth swapping (default), buffering and resizing. • Example:
set_eco_opt_mode –resize_inst true –add_inst true eco_opt_design –setup –analysis_script spef.tcl
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.
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Reducing Leakage Power eco_opt_design -leakage -analysis_script • Description: When specifying the -leakage option, eco_opt_design will reduce leakage power by ensuring no impact timing and DRV. The power reduction is done through Vth swapping on combinational cells by default, but also on sequential elements as an optional technique.
• Examples:
eco_opt_design –leakage –analysis_script spef.tcl
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 don’t_touch attribute on those instances. The command set_power_analysis_mode -view allows to choose in which corner must be used to collect the leakage power numbers (can be a non-active view).
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Two supported use model flows Fixing timing with embedded Distributed TA •
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
•
This is the simplest use model since all is automated.
•
It requires that the number of CPUs available is superior or equal to the amount of Setup + Hold unique active views.
Fixing on existing ECO timing DB
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.
•
This approach leads to a smaller memory footprint than above one.
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Script Example of Embedded TA Mode TSO Timing fixing with embedded Distributed TA using Physical-aware mode: Read_view_definition $viewdef_file read_lib –lef $lef read_verilog $netlist set_top_module read_def $def_file set_distribute_host -local set_multi_cpu_usage -localCpu 8
When both LEF and DEF files are provided or initial data loaded with read_design –physical_data, the tool will automatically run in Physical-aware mode
set_eco_opt_mode –buffer_cell_list “BUFX1 BUFX2 BUFX4 BUFX6 BUFX8 DLYX1 DLYX2 DLYX4" eco_opt_design –hold –analysis_script sta.tcl
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
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Script Example of 2-pass flow Session 2
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
Timing fixing using previously generated ECO timing DB : source loadDesign.tcl set_analysis_view –setup [list $setup_views] \ –hold [list $hold_views] set_distribute_host –local set_multi_cpu_usage -localCpu 8 set_eco_opt_mode –load_eco_opt_db mySignOffTGDir
Content example for sta.tcl :
Same script can be used
read_spef -rc_corner rc_max max.spef.gz read_spef -rc_corner rc_min1 min1.spef.gz read_spef -rc_corner rc_min2 min2.spef.gz set_eco_opt_mode –save_eco_opt_db mySignOffTGDir write_eco_opt_db
eco_opt_design –hold –analysis_script sta.tcl OR eco_opt_design –drv –analysis_script sta.tcl OR eco_opt_design –leakage –analysis_script sta.tcl
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
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
3. Incremental Timing Closure
28
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Incremental ECO Functionality Example 1 Scenario: Customer wants to fix Hold first at Top level and then at Block level
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
set_dont_touch PTN* true
DRV fixing ECO1
Buffer cell list with DLY*
Hold fixing ECO1
Hold fixing ECO2
Hold fixing ECO1
set_dont_touch PTN* false
Setup fixing ECO3
Allow only Vth swapping
Hold fixing ECO2
Setup fixing ECO2
Very flexible use model which allows any combination of DRV, Hold and Setup optimization in one single Tempus session 29
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Incremental ECO Functionality (2) set_eco_opt_mode -allow_multiple_incremental true • Description: This option allows the user to run several eco_opt_design commands in a row using the same initial ECO Timing DB. In the same session, the user can fix Setup, Hold and DRV violations. An ECO file is generated per eco_opt_design call.
• Default: false • Example:
set_eco_opt_mode –load_eco_opt_db ECOdb set_eco_opt_mode –allow_multiple_incremental true set_eco_opt_mode -eco_file_prefix DRV_FIX eco_opt_design –drv –analysis_script spef.tcl set_eco_opt_mode -eco_file_prefix HOLD_FIX eco_opt_design –hold –analysis_script spef.tcl
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.
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
4. Hierarchical Timing Closure
31
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Hierarchical Design Chip Finishing Top Level and block level Verilog/DEF/SPEF are loaded in Tempus to perform full flat timing analysis in MMMC Tempus TSO can perform timing optimization in any of the following way:
Fix timing at Top Level only
Fix timing at Top Level and in any, or all, partitions
Interface Top Level
M E M
CPU
.v .def .spef
.v .def .spef
B U S
.v .def .spef
.v .def .spef
Top Level fixing only
.v .def .spef
Tempus Interface CPU1
Native support for replicated hierarchies
CPU2
B U S
M E M
Buffering is logical and physical hierarchy aware
Tempus TSO
Partition interface is unchanged ECO Top Level 32
ECO Interface
ECO CPU
ECO MEM
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
ECO BUS
Can output an ECO file per partitions/topLevel
Generating a Per-Partition ECO File set_eco_opt_mode -partition_list_file • Description: The -partition_list_file option allows the user to select the modules that should be treated as partitions. The file provided to this option must contain a list of cells name of such modules. The eco_opt_design would then generate an ECO file per top and partitions (with relative locations).
• Default: empty • Examples:
set_eco_opt_mode –partition_list_file partition.txt eco_opt_design –hold –analysis_script spef.tcl
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 don’t_touch on that module. To perform top level only buffering, one need to apply don’t_touch on every partitions.
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Assembling a Design in Tempus merge_hierarchical_def
• 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:
merge_hierachical_def {top.def ptn1.def}
This will assemble the ptn1 block level database to the top level database already in memory.
34
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Hierarchical Chip Finishing Example Example for a design with two partitions (ptn1 and ptn2) : read_lib $liberty read_lib –lef “$cell_lef ptn1.lef ptn2.lef” read_verilog “my_top.v ptn1.v ptn2.v” set_top_module my_top merge_hierarchical_def {my_top.def ptn1.def ptn2.def source viewDefinition_and_derating.tcl
set_eco_opt_mode –load_eco_opt_db myECODB set_eco_opt_mode –partition_list_file partition.txt eco_opt_design –hold –analysis_script spef.tcl
Content example for partition.txt : tdsp_core test_control
Content example for spef.tcl : read_spef -rc_corner rc_max “my_top_max.spef ptn1_max.spef ptn2_max.spef” read_spef -rc_corner rc_min1 “my_top_min1.spef ptn1_min1.spef ptn2_min1.spef” read_spef -rc_corner rc_min2 “my_top_min2.spef ptn1_min2.spef ptn2_min2.spef”
Notes : 1) Must provide pointer to ECO DB since D-MMMC cannot be used with merge_hierarchical_def’s 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
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
5. Path-based Analysis Optimization
36
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Path-based Analysis Mode Support Tempus TSO supports timing optimization in Path Based Analysis including SI mode The different types of Path Based Analysis supported are : aocv : Re-timing the timing critical paths using the AOCV derating factors path_slew_propagation : Re-timing the timing critical paths using the actual slews for the path aocv_path_slew_propagation : Combination of re-timing with aocv + path_slew_propagation waveform_propagation : Re-timing with waveform effect taken into consideration during delayCal Hold fixing in PBA (path_slew_propagation) vs GBA Gain in added area
Gain in number of inserted buffers
Design 1
4.7%
4.3%
Design 2
0.4%
0.45%
Design 3
2.3%
2.8%
Design 4
5.7%
6.6%
Applying Path Based Analysis allows to remove some timing pessimism and leads the tool to fix only the real timing violations 37
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Path-based Analysis leakage power results
High Speed Core design, 32nm technology Analysis Mode
Total Leakage
Graph Based Analysis
300mW
Path Based Analysis
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
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
18% Improvement
Path-based Analysis Mode Support • PBA related options: set_eco_opt_mode \ -retime # Default = -check_type early | late # Default = -max_slack # Default = -max_paths # Default = -nworst # Default =
“” 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
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
6. Routing Congestion-aware Optimization
40
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Routing aware buffering for Hold fixing set_eco_opt_mode –routing_congestion_aware true • Description: The –routing_congestion_aware option allows to force the buffering to avoid inserting buffers in areas where routing congestion is already very high. The goal is to not cause new routing DRC due to ECO buffering as well as avoiding routing detour for new ECO nets.
• Default: false • Examples:
set_eco_opt_mode –routing_congestion_aware true eco_opt_design –hold –analysis_script spef.tcl
This will perform Hold fixing in routing congestion aware mode.
• 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.
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Routing-aware Buffering For Hold Fixing (2) Customer example
Default mode
Initial DB • New routing DRC hotspot created • Setup timing degradation
Congestion map
SETUP : WNS = -0.8ns, TNS = -10ns HOLD : WNS = -0.6ns, TNS = -2.3ns Routing DRC = 324
Routing DRC markers
Congestion aware mode • No new routing DRC • Very limited Setup timing impact
SETUP : WNS = -0.8ns, TNS = -4ns HOLD : WNS = -0.9ns, TNS = -96ns Routing DRC = 40
42
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
SETUP : WNS = -0.8ns, TNS = -5.6ns HOLD : WNS = -0.8ns, TNS = -26ns Routing DRC = 25
7. Master Clone Optimization
43
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Master/Clone timing optimization Overview • Hierarchical implementation with Master/Clones • Common blocks/duplicated functionality built and verified once (master) and instantiated multiple times (clones) in design • Keeping a non-uniquified netlist makes easier the scope and breadth of late logic changes, reducing the critical path turn-around time and re-verification required to achieve final signoff • Reduces work load and data storage
• 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
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Why does Master/Clone support help ? No Master/Clone support • Only top level is optimized • All CPU modules will be dont_touch
Cpu1 Cpu2 (cellA)
(cellA)
Top Cpu3 Cpu4 (cellA)
(cellA)
Uniquified netlist Cpu1 Cpu2 (cellA1) (cellA2)
Top Cpu3 Cpu4 (cellA3) (cellA4)
With Master/Clone support Cpu1 Cpu2 (cellA)
(cellA)
Top Cpu3 Cpu4 (cellA)
45
(cellA)
Timing optimization with sub-optimal QOR • Top and CPUs are optimized • Each CPU will get a unique ECO file • ECOs from one CPU may degrade timing when applied on the other CPUS Which CPU ECO file for implementation ? • Top and CPUs are optimized • One ECO file for all CPUs • ECOs generated are valid for each CPUs timing context Optimal timing closure for full flat timing !
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Master/Clone timing optimization Definitions - Tool is able to fix DRV/Hold/Setup/leakage with buffering/resizing/VthSwapping. - Only one unique DEF/Verilog for a Master/Clone, even after timing optimization. There is only one ECO file per Master/Clone. - Timing closure happens outside master/clone as much as possible. - Timing closure can happen inside master/clone but also on boundary paths. - Any netlist change done in a Clone is checked in every other Clone to ensure no timing degradation and no placement violation in their respective physical context . - Performance and capacity are maintained :
QOR of eco_opt_design with clones should be as close as possible to what would be obtained on the uniquified netlist or with customer’s manual flow which consist in optimizing only one clones (others are dont_touch) and then replicate the ECO in all clones identically.
TAT of eco_opt_design with clones should be similar to same design with uniquified netlist. 46
No impact on memory usage
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Basic example of Master/Clones implementation Z1
Top Block1 (cellA)
(CellA) Block2 (cellA) FF2
FF2
O1
FF1
FF1
In1
O1
In1 Z2
T1
I0
I1
• Physical/timing context is different for every Clones boundary • Timing optimization must work on any kind of paths : from FF1 to FF2 on all clones or inter-clones paths too (if any) from Top/T1 to Block1/FF1 and from Top/T1 to Block2/FF1 from Block1/FF2 to Top/Z1 and from Block2/FF2 to Top/Z2 Paths crossing multiple clones like Block1/FF2 to Block2/FF1
• Buffering can happen on any nets, even nets crossing clones boundary.
47
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
How to enable Master/Clone support ? set_eco_opt_mode –optimize_replicated_modules true • Description: By enabling the –optimize_replicated_modules option, the tool will be able to optimize timing in the replicated modules. Any netlist change will be checked against each clone’s timing and physical context to ensure that no violations are created. In this mode only one ECO file is generated per group of clones. It is mandatory to list the cell name of the clones inside the file provided to –partition_list_file option.
• Default: false • Examples:
set_eco_opt_mode –optimize_replicated_modules true set_eco_opt_mode –partition_list_file partitions.txt eco_opt_design –hold –analysis_script spef.tcl
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
The design must be assembled in EDI (through assembleDesign command) or in Tempus (through the read_partition command).
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Mechanism to load Master/Clone design Two possible flows EDI restoreDesign
Tempus assembleDesign
Load top level data read_partition
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
Run first EDI to assemble the design, block by block, and then run Tempus to load the full DB to perform ECO fixing.
Run Tempus to assemble the design, block by block, and then run ECO fixing
The read_def command in Tempus should not be used to assemble a hierarchical design 49
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Master/Clones flow use model Example for a design with two clones (Block1 and Block2) : read_lib $liberty read_lib –lef “$all_lef” read_verilog “my_top.v cellA.v” set_top_module my_top
Design example: Or
Top
read_design top.enc \ –physical_data
Block1 (cellA) Block2 (cellA)
merge_hierachical_def {my_top.def cellA.def} source viewDefinition_and_derating.tcl set_eco_opt_mode –load_eco_opt_db myECODB set_eco_opt_mode –partition_list_file partition.txt set_eco_opt_mode -optimize_replicated_modules true
Content of partition.txt : eco_opt_design –hold –analysis_script spef.tcl
cellA
Content example for spef.tcl : read_spef -rc_corner rc_max “my_top_max.spef cellA_max.spef” read_spef -rc_corner rc_min1 “my_top_min1.spef cellA_min1.spef” read_spef -rc_corner rc_min2 “my_top_min2.spef cellA_min2.spef”
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.
Full ECO loop flow for Master/Clones Tempus cockpit
Distributed SignOff Timing Analysis MMMC SignOff ECO (with Master/Clones) ECO file Top_edi.tcl
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
Distributed SignOff Timing Analysis 51
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Master/Clones implementation with rotation Top
Block1 (cellA)
Block2 (cellA)
Block3 (cellA)
Block4 (cellA)
• Clones can be mirrored on the X or Y direction : R0 , R180 , MX and MY • No support for R90 /R270 rotation (which is anyway not recommended by foundries)
52
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
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)
• Master/Clones can be inside any level of hierarchy and part of different modules (size/shape) • Timing optimization gives priority to netlist change at higher hierarchy levels, to limit impact on clones. • A net can drive multiple clones in multiple hierarchies
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
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
• Multiple levels of Master/Clones can be assembled • Timing optimization and placement supports such scenario • Timing optimization gives priority to netlist change at higher hierarchy levels, to limit impact on clones.
Master/Clones with Channel-less floorplan T/B1/A0 (cellC)
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)
• No netlist change possible at Top. ECO allowed only in sub-blocks • Timing optimization gives priority to netlist change at higher hierarchy levels • By construction, ECO buffering does maintain Logical/Physical Hierarchy
54
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Master/Clone impact on log verbosity • Reporting information on how many clones were detected for the cells listed in the –partition_list_file option.
• Current log : *info: reading partition list file partitions.txt **WARN: Ignoring multi-instantiated partition seq_logic *info: 1 clock net
excluded from eco_opt_design operation.
**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
excluded from eco_opt_design operation.
*info: following replicated instances will be optimized in Master-Clone mode *info: module seq_logic (4 replicated instances)
55
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Master/Clone impact on failure diagnostic • In the diagnostic report, each failure category will now also report how many nets are in replicated hierarchies. • Without Master/Clone support : *info: *info: *info:
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.
• With Master/Clone support : *info: 4615 net(s) ( 615 master clone net(s) ): Could not be fixed because they would "degrade design setup WNS". *info: 47 net(s) ( 47 master clone net(s) ): Could not be fixed because they would "Degrade DRV violations". *info:
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
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
8. Selected Endpoints Optimization
57
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Selected endpoints optimization & Margins specification • Supported for hold/setup optimization • Endpoint based inclusion/exclusion per view • Endpoint based slack adjustment per view (both +ve and -ve adjustments ) •Option to fix only register to register paths • Specification of endpoints can be done by: o list of space separated endpoints : E1 E2 E3 o E* for all endpoints o slack range : (specified in nanosecond) • View specification can be done by: o View name o V* for all views ( may not be applicable in some scenarios )
58
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Endpoint based inclusion/exclusion per view Use model: set_eco_opt_mode -select_hold_endpoints set_eco_opt_mode -select_setup_endpoints Format : include/exclude create a file ( for inclusion/exclusion for hold ) where lines starting with # are comments and would be skipped # Exclude endpoints inst1/SE and inst2/SE from view VIEW1 VIEW1 exclude inst1/SE inst2/SE # Include only the endpoints that have slacks >= -0.5 ns and <= 0.04 ns for view VIEW2 VIEW2 include -0.5 0.04 59
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Endpoint specific slack adjustment per view Use Model: set_eco_opt_mode -specify_hold_endpoints_margin set_eco_opt_mode -specify_setup_endpoints_margin Format : is a float value and is in nanoseconds. Margin value is subtracted from the endpoint slack so a positive margin means that the endpoint slack would be degraded by the margin amount.
60
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Endpoint specific slack adjustment per view Contd. • Create a file for hold or setup margins where lines starting with # are comments and would be skipped
# Apply margin of 0.1ns to all endpoints that have slacks between ( inclusive ) -0.07 to -0.03 for all views V* 0.1 -0.07 -0.03 # Apply margin of 0.2 nanosecond to all endpoints for view VIEW1 VIEW1 0.2 E* # Apply margin of 0.6 ns to endpoints inst1/SE and inst2/SE in view VIEW2 VIEW2 0.6 inst1/SE inst2/SE
61
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Priority Order for Margin Specification • View specific margin for endpoint where view and endpoints are both specified by names ( view is not V*, endpoint is not E* or slack range ) VIEW1 0.05 inst1/SE • Margin for a specific endpoint ( endpoint is specified by name ) for all views V* 0.02 inst1/SE • View specific margin for endpoints specified as slack range VIEW2 0.05 -0.02 0.5 • Margin for endpoints specified as slack range for all views V* 0.05 -0.02 0.5 • View specific margin for all endpoints ( specified as E* ) VIEW1 0.03 E* •Margin specified for all views for all endpoints V* 0.01 E* 62
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Register to Register paths optimization • Fix only register to register paths during hold/setup fixing • Other selected endpoint configurations would be ignored in this mode. • Timing for non register to register paths for fixing mode ( hold or setup ) would be adjusted to 0 but the timing for other mode ( setup during hold fixing/hold during setup fixing ) is not affected. Use Model: set_eco_opt_mode -optimize_core_only
63
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Available Transforms in TSO • Buffer Addition o set_eco_opt_mode -add_inst • Cell
Resize (Upsize only for setup/DRV and buffer to delay for hold) o set_eco_opt_mode –resize inst
• VT Swap o set_eco_opt_mode –swap_inst
64
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
What’s New in Tempus 14.1 TSO
65
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
What’s New
1. Improved Setup timing optimization 2. Along the route buffering 3. Allowing instances overlap 4. New solution to assemble very large hierarchical design 5. Miscellaneous
66
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Improved QOR/TAT/MEM for Setup fixing • The Setup timing closure algorithm has been re-worked. It is highly recommended to run it with Vth-swapping, resizing and buffering turned on. set_eco_opt_mode –swap_inst true –resize_inst true –add_inst true
• Average CPU runtime improvement of 2X and Memory reduction of 10%
• Improved Quality of Results for Setup fixing (average over 31 designs) : Similar or better WNS 5 %TNS improvement 50 % less instances resized CPU runtime reduction in 14.1 vs 13.2 25 % less inserted buffers on 31 real customer designs
90% 80% 70% 60%
TBD
50% 40% 30% 20%
2x gain
10% 0% 1 67
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Enabling buffering along the route set_eco_opt_mode -along_route_buffering true • Description: When set to “true”, eco_opt_design will use nodes location provided through the parasitic data in order to be able to insert buffers along the routing topology and not only at the start or the end of the net. This helps to better balance the slew or the load for long nets, which is typically needed for Setup timing optimization or DRV fixing.
• Default: false • Examples:
set_eco_opt_mode –along_route_buffering true eco_opt_design –drv –analysis_script spef.tcl
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.
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Along the route buffering example Designer received a late functional ECO change which is causing a long net to be routed over the floorplan to reach the IO boundary …
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
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Along the route buffering example (2) Designer received a late functional ECO change which is causing a long net to be routed over the floorplan to reach the IO boundary …
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
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
How to generate node locations in parasitic • Generating node locations is done by default using EDI RC/TQRC/IQRC engines. That information is saved automatically inside the RCDB file. • Standalone QRC can generate SPEF with node location. One needs to apply the following option in the QRC command file : output_db -type spef -subtype starN
Note: To pass a command file to QRC when running it from EDI cockpit : setExtractRCMode –qrcCmdFile
• StarRC can also generate SPEF with nodes location. • SPEF files containing nodes location must be loaded with the –starN option of read_spef command. • A SPEF with node location will have extra lines with *N prefix in CONN section: *CONN *I *15488:Z O *C 71.65 237.505 *L 0 *D MUX2_X1 *I *15465:D I *C 73.035 236.08 *L 0.00316 *D SDFFR_X1 *N *907:2 *C 72.675 236.95 //CDNZ 1 *N *907:3 *C 72.675 236.95 //CDNZ 2 *N *907:4 *C 72.675 235.76 //CDNZ 2 71
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Allowing instances overlap during ECO fixing set_eco_opt_mode –legal_only false • Description: When set to “false”, eco_opt_design will not check for legal location although Physical data are provided. It will behave like in a pure Logical mode flow, meaning that Physical data will be ignored so it might create instance overlap and will not check local density when inserting buffers.
• Default: true • Examples:
set_eco_opt_mode –legal_only false eco_opt_design –hold –analysis_script spef.tcl
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.
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Support for context aware rules At 20nm/16nm nodes, placement rules are getting more complex : -
Special/Power nets check Double patterning check Diffusion layers check Implant layer check Pin access check Special DRC check Filler gap check
All those are honored during Tempus ECO timing closure. Same code is shared between EDI and Tempus
Filler Gap rule : set_place_mode -fillerGapEffort high –fillerGapMinGap 0.18
Initial floorplan
Buffer insertion
Instances are abutted Gap not large enough
Honoring all placement rules during ECO closure leads to great timing predictability 73
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Min gap rule honored
Tempus – How to Quickly Ramp-up? • Go to http://support.cadence.com • Search for “Tempus Rapid Adoption Kit” (also called RAK)
74
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Tempus Summary • Productivity – ECO efficiency via P&R integration
• Advanced node signoff support – 16nm support – Statistical modeling (SOCV)
• Accelerate Time-to-Closure – Improve PPA with PBA-based optimization – Advanced ECO capability
Tempus 14.1 – The New Standard in Timing Signoff & Closure 75
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
EDI 14.1 – Signoff Timing Closure using TSO
76
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Agenda Why TSO inside EDI Architecture overview
New commands / options Use model summary Miscellaneous information Template scripts
77
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Why the need of TSO in EDI EDI routeDesign
How to hanlde netlist with +50M insts ?
optDesign –postRoute
Does this timing match exactly what I would get in Tempus signOff ?
optDesign –postRoute -hold timeDesign -signOff
What if there are replicated hierarchies in design ?
What if I need to enable many MMMC views for SignOff ? GDSII
How can I enable Path Based Analysis mode ?
Need a solution to time and optimize a design in SignOff mode from EDI cockpit 78
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
TSO within EDI cockpit signOff RC extract
QRC
CPU1
CPU n
Two new commands to time and optimize the design in signOff mode
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
optDesign –postRoute -hold setSignoffOptMode ... Tempus/QRC
Tempus/QRC
Tempus
Tempus
CPU1
CPU n
Setup/Hold Timing Graph
Setup/Hold Timing Graph
signoffTimeDesign signoffOptDesign
Same overall use model as timeDesign and optDesign 79
CPU n
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Timing Reports GDSII
TSO within EDI cockpit (2)
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
optDesign –postRoute -hold
TSO ecoRoute
setSignoffOptMode ... Tempus/QRC
signoffOptDesign
QRC
signOff RC extract CPU1
RCDB
GDSII
Tempus
If no ECO Timing DB are available, the signoffOptDesign command will auto generate them under the hood
CPU n
Tempus
CPU1
CPU n
Setup/Hold Timing Graph
Setup/Hold Timing Graph
Timing Reports 80
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
SignOff STA and Opt on existing parasitic With –reportOnly option, EDI will save RCDB that will then be used by Tempus slaves
EDI spefIn –rc_corner r1 r1.spef spefIn –rc_corner r2 r2.spef
RCDB
spefIn –rc_corner r3 r3.spef Tempus signoffTimeDesign -reportOnly signoffOptDesign -hold
GDSII
81
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Tempus
CPU1
CPU n
Setup/Hold Timing Graph
Setup/Hold Timing Graph
ECO Timing DB
Timing Reports
ECO routing and extraction manually EDI signoffOptDesign –hold -noEcoRoute
In case specific steps/options should be performed before/during ECO routing, this step can be called manually
ecoRoute extractRC signoffTimeDesign –reportOnly -noEcoDb
To avoid running QRC in signOff mode, you can choose any other mode and call it manually
GDSII
Flexible flow to accommodate any specific methodology before/during/after ECO routing or parasitic extraction
82
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Apply SignOff STA settings early in the flow EDI Any settings that would be mandatory for User may replace blocks signOff be ILM/Libs STA by realshould netlist and enable all views needed set earlier in the flowforto SignOff STA ensure best possible timing convergence
setDelayCalMode setAnalysisMode timeDesign -postRoute optDesign -postRoute optDesign –postRoute -hold setSignoffOptMode ... signoffTimeDesign signoffOptDesign -hold
GDSII
83
Maybe not all the signoff STA related settings would be honored in the postRoute stage, but at least EDI will have a knowledge on what will be ultimately applied for the signoff flow steps
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Passing specific settings to Tempus slaves User can pass any specific SignOff STA options/globals to Tempus slaves through a TCL file
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
Note : The sta.tcl file may even contain commands/options to reset Tempus settings to their default and then re-apply fresh ones, to avoid reusing EDI specific data
84
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Tempus
Timing Reports
Signoff Timing analysis in EDI using GTD Global Signoff Timing Debug
EDI routeDesign
Choose between any path_group analysis
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
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Enabling PBA timing analysis and opt EDI setSignoffOptMode \ -retime aocv_path_slew_propagation -check_type both signoffTimeDesign
This will generate Signoff STA and ECO Timing DB in Path Based Analysis mode for both Setup and Hold
Note : user can also directly call signoffOptDesign which would then auto generate the ECO Timing DB in PBA mode • Options specific to PBA mode: signoffOptMode –retime #default “none” To enable PBA and select the mode –checkType #default “early” To select whether PBA is applied to Setup or Hold or both –maxSlack #default 0 To specify max slack to be considered for retiming –maxPaths #default 500000 To specify max number of paths to be retimed in total –nworst #default 50 To specify number of paths to be retimed for each endpoint
The runtime in PBA mode is proportional to the amount of paths to be retimed. You should adjust above values depending on the actual timing state 86
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Typical examples of optimization in signOff Example to fix Hold violations reported in signOff STA mode
EDI
Example to fix DRV, Setup and Hold violations in incremental mode on a signOff STA
EDI
Example to optimize leakage in signOff STA mode
EDI
routeDesign
routeDesign
routeDesign
optDesign –postRoute
optDesign –postRoute
optDesign –postRoute
optDesign –postRoute -hold
optDesign –postRoute -hold
optDesign –postRoute -hold
setSignoffOptMode ...
setSignoffOptMode ...
setSignoffOptMode ...
signoffOptDesign -hold
signoffOptDesign –drv -noEcoRoute
signoffOptDesign -leakage
setSignoffOptMode ... signoffOptDesign –setup -noEcoRoute
GDSII
setSignoffOptMode ... signoffOptDesign -hold
GDSII
87
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
GDSII
Summary of the use model (1/2) Two new commands with similar use model as timeDesign/optDesign signoffTimeDesign -help -noEcoDb -noExpandedViews -outDir -reportOnly
# # # # #
Prints out the command usage Do not generate ECO Timing DB Do not print expanded timing per view Reports would be saved in this directory Skip parasitic extraction
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
# # # # # #
Prints out the command usage DRV Fixing Hold Fixing Leakage Fixing No ECO-routing after optimization Setup Fixing
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
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Summary of the use model (2/2) One new command to pilot them, with same use model as set_eco_opt_mode already available in Tempus setSignoffOptMode -addInst true -bufferCellList {} -checkType early -drvMargin 0 -ecoFilePrefix {} -fixHoldAllowSetupTnsDegrade false -fixHoldWithMargin 0 -holdTargetSlack 0 -loadEcoOptDb ecoTimingDB -maxPaths 500000 -maxSlack 0 -numReportPaths 50 -nworst 50 -optimizeCoreOnly false -optimizeSequentialCells false -partitionListFile {} -postStaTcl {} -prefixName ESO -preStaTcl preStaTcl.tcl -resizeInst false -retime none -routingCongestionAware false -saveEcoOptDb ecoTimingDB -setupTargetSlack 0 -swapInst false -verbose false 89
# 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
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
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
• It is recommended to use Tempus14.1 with this new feature, but using Tempus13.2 is also supported • By default, all timing reports are stored in signoffTimingReports/ directory • In PBA mode, if “-checkType both” is used, Setup view names must be different from Hold view names • The timeDesign –signoff command will be obsolete in EDI14.1
90
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.
Some template scripts GBA Signoff STA followed by Setup and Hold opt source postRoute.enc setMultiCpuUsage -localCpu 6 setSignoffOptMode -preStaTcl preStaTcl.tcl signoffTimeDesign signoffOptDesign -setup -noEcoRoute signoffOptDesign –hold
Note : The preStaTcl.tcl script allows user to apply any Signoff STA related settings or even to reset any set*mode commands
GBA Signoff STA followed by Setup opt all based on TQRC source postRoute.enc setMultiCpuUsage -localCpu 6 setExtractRCMode -coupled true -engine postRoute -effortLevel medium extractRC setSignoffOptMode -preStaTcl preStaTcl.tcl signoffTimeDesign -reportOnly signoffOptDesign -setup -noEcoRoute ecoRoute extractRC signoffTimeDesign –reportOnly -noEcoDb
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
Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.