Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Comments?
Send comments on the documentation by going
to http://solvnet.synopsys.com, then clicking
Enter a Call to the Support Center.
Disclaimer
SYNOPSYS, INC., AND ITS LICENSORS MAKE NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH
REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
Registered Trademarks ()
Astro, Synopsys, AMPS, Cadabra, CATS, CSim, Design Compiler, DesignWare, Fablink, Formality, HSPICE, iNPhase, Leda, MAST, ModelTools, NanoSim, OpenVera, PathMill, Photolynx, Physical Compiler, Powermill,
PrimeTime, PWA, SELID, SiVL, SNUG, SolvNet, System Compiler, TetraMAX, TimeMill, VCS, Vera, WaveCalc, and
YIELDirector are registered trademarks of Synopsys, Inc.
Trademarks ()
AFGen, Apollo, Astro-Rail, Astro-Xtalk, Aurora, AvanWaves, Columbia, Columbia-CE, Cosmos, CosmosEnterprise,
CosmosLE, CosmosScope, CosmosSE, DC Expert, DC Professional, DC Ultra, Design Analyzer, Design Vision,
DesignerHDL, Direct Silicon Access, Discovery, Eclypse, Encore, Galaxy, HANEX, HDL Compiler, Hercules,
Hierarchical Optimization Technology, HSIMplus, HSPICE-Link, iN-Tandem, i-Virtual Stepper, Jupiter, Jupiter-DP,
JupiterXT, JupiterXT-ASIC, Liberty, Libra-Passport, Library Compiler, Magellan, Mars, Mars-Xtalk, Milkyway,
ModelSource, Module Compiler, Planet, Planet-PL, Polaris, Power Compiler, Raphael, Raphael-NES, Saturn,
Scirocco, Scirocco-i, Star-RCXT, Star-SimXT, Taurus, TSUPREM-4, VCS Express, VCSi, VHDL Compiler, VirSim,
and VMC are trademarks of Synopsys, Inc.
SM
Service Marks ( )
MAP-in, SVP Caf, and TAP-in are service marks of Synopsys, Inc.
SystemC is a trademark of the Open SystemC Initiative and is used under license.
ARM and AMBA are registered trademarks of ARM Limited.
Saber is a registered trademark of SabreMark Limited Partnership and is used under license.
All other product or company names may be trademarks of their respective owners.
ii
Contents
Chapter 1: Overview of route_opt ................................................................4
Chapter 2: Configuring route_opt.................................................................6
Basic Router Setup ......................................................................................6
Setting the route_opt Strategy .....................................................................7
Chapter 3: Variables that Affect route_opt .................................................11
Chapter 4: Behavior of route_opt in Different Modes.................................14
Chapter 5: Tips and Tricks .........................................................................17
Fixing Hold Violations.................................................................................17
Fixing Static Noise Violations.....................................................................18
Delta Slew Ignore or Fix?........................................................................18
Appendix A: route_opt Matrix.....................................................................20
Appendix B: SFP Utility ..............................................................................22
Appendix C: IC Compiler Reference Methodology (ICC-RM) ....................23
iii
Note:
The only_* options are mutually exclusive and require the incremental option.
Synopsys, Inc.
Page 4
As of the Z-2007.03 release, the basic routing commands have been integrated into the
route_opt command via the initial_route_only and stage options, to ensure
consistent timing throughout the route and postroute phases. When used alone, the
initial_route_only option encompasses all three router phases such that global
routing, track assignment, and detail routing are performed. You can use the stage
option with initial_route_only to limit the stage of routing being performed.
The following sequence replaces the use of the core routing commands:
route_opt initial_route_only stage global
route_opt initial_route_only stage track
route_opt initial_route_only stage detail
You must run global routing and track assignment before using the detail route stage
option, because route_opt initial_route_only stage detail invokes only
the detail router. An easier way to accomplish the above command sequence is:
route_opt initial_route_only
After running these commands, you can run the following commands (assuming that
crosstalk delta delay is enabled):
route_opt -initial_route_only -stage detail
route_opt -inc -xtalk_reduction
Synopsys, Inc.
Page 5
Use report_route_options to verify the settings. Settings are persistent and saved
in the CEL view.
Synopsys, Inc.
Page 7
The recommended setting for the static noise and crosstalk prevention thresholds is 25
percent of VDD.
The max_transition_mode option controls delta slew reporting and fixing. The
normal_slew mode does not report or fix delta delay violations. When you enable
total_slew mode, delta delays are reported and fixed during maximum transition
violation fixing. Enabling delta slew can result in longer runtimes so be sure that you
understand the concept and requirements of delta slew. Refer to Chapter 6, Tips and
Tricks for more details about delta slew.
Use the report_si_options command to verify the settings. The settings are
persistent and are saved in the CEL view.
Another important command that has a direct effect on the behavior of route_opt is
the set_extraction_options command. The extraction engine is an integral part of
route_opt, as it is invoked throughout the route_opt process. Therefore, it is
important to understand the options that control extraction.
The set_extraction_options command usage is as follows (default settings are
highlighted in blue):
Usage: set_extraction_options
[-max_cap_scale number] (max capacitance scaling factor
Default: 1.0)
[-min_cap_scale number] (min capacitance scaling factor
Default: 1.0)
[-max_res_scale number] (max resistance scaling factor
Default: 1.0)
[-min_res_scale number] (min resistance scaling factor
Default: 1.0)
[-max_ccap_scale number] (max coupling capacitance scaling
factor Default: 1.0)
[-min_ccap_scale number] (min coupling capacitance scaling
factor Default: 1.0)
[-max_ccap_thres capacitance] (max coupling capacitance
threshold Default: 0.0001 pF)
[-min_ccap_thres capacitance] (min coupling capacitance
threshold Default: 0.0001 pF)
[-max_ccap_ratio number] (max coupling capacitance ratio
Default: 0.001)
[-min_ccap_ratio number] (min coupling capacitance ratio
Default: 0.001)
[-max_net_ccap_thres capacitance]
(max net-to-net coupling capacitance threshold
Default: 0.003 pF)
[-min_net_ccap_thres capacitance]
(min net-to-net coupling capacitance threshold
Default: 0.003 pF)
[-max_net_ccap_ratio number] (max net-to-net coupling
capacitance ratio Default: 0.03)
[-min_net_ccap_ratio number] (min net-to-net coupling
capacitance ratio Default: 0.03)
[-max_process_scale number]
(max process scaling factor
Default: 1.0)
[-min_process_scale number]
(min process scaling factor
Default: 1.0)
[-no_obstruction]
(do not consider obstructions)
[-no_break_segments]
(break wire segments)
[-max_segment_length length] (maximum wire segment length
Default: 50 um)
[-real_metalfill_extraction none | floating | grounded |
auto] (metal fill extraction mode)
[-virtual_shield_extraction false | true]
(virtual_shield extraction or not)
Synopsys, Inc.
Page 9
[-fan_out_thres number]
(fanout net threshold
Default: 1000)
[-default]
(restore all extraction options to
default)
For example, to perform a more pessimistic extraction, enter the following commands:
set_extraction_options \
-max_cap_scale 1.2 -min_cap_scale 1.1 \
-max_ccap_scale 1.2 -min_ccap_scale 1.1 \
-max_res_scale 1.2 -min_res_scale 1.1
extract_rc
10
routeopt_disable_cpulimit [true|false]
When set to true, disables automatic CPU limit threshold. The automatic
CPU limit corresponds to when violations are within 2-3% of the cell
count.
routeopt_drc_over_timing [true|false]
When set to true, runs DRC fixing with DRC as the highest cost.
routeopt_preserve_routes [true|false]
Synopsys, Inc.
Page 11
Reports the progress of optimization during the DRC and hold fixing
phases. Reports the reasons why certain violations aren't fixed, along
with the possible reasons: the net segments are in the high cell density
region above 95%; degrades other high priority cost functions; or no
solution is found by the algorithm. Set the value to 31 to enable this
reporting.
Caution:
This results in increased messaging in the log file and, consequently,
larger log file sizes.
With the exception of the routeopt_verbose variable, you can use the printvar
command to check the variable settings.
For example,
icc_shell> printvar routeopt*
routeopt_checkpoint = "false"
routeopt_disable_cpulimit = "false"
There is a new density-based area recovery engine that is enabled if you run
route_opt inc only_area_recovery. This new engine optimizes in high
density areas with greater than 95 percent utilization. The previous behavior was
to ignore these high density areas.
If the cell slack falls within the area critical range, it is not selected as a candidate
for area optimization. When set to the default value (infinite), all cells are possible
candidates. You can override the default by setting the
physopt_area_critical_range variable. A typical value for the area critical
range is five percent of the critical clock period.
icc_shell> set physopt_area_critical_range value
Extraction settings
If you see optimistic hold time results in IC Compiler as compared to PrimeTime
SI, set the si_use_partial_grounding_for_min_analysis variable to
true. (This variable is available as of version A-2007.12.)
icc_shell> set si_use_partial_grounding_for_min_analysis true
Synopsys, Inc.
Page 13
Synopsys, Inc.
Page 14
route_opt wire_size
1. Global routing, track assignment, detail routing, and search and repair
2. One loop of on-route/ECO routing without signal integrity (medium effort)
3. One loop of on-route/ECO routing with signal integrity (medium effort) and
wire sizing using any existing nondefault routing rules
route_opt power
1. Global routing, track assignment, detail routing, and search and repair
2. One loop of on-route/ECO routing without signal integrity (medium effort)
3. One loop of on-route/ECO routing with signal integrity (medium effort)
4. One loop of power optimization (low-effort sizing only, even if no footprint
information is availalble in the library)
Furthermore, if you specify:
route_opt -size_only -effort low
The route_opt command executes only a footprint swap.
route_opt size_only -effort medium
The route_opt command executes an in-place size-only optimization.
route_opt size_only effort high
The route_opt command enables cell sizing, even if these cells overlap with
other cells, invoking the legalizer to clean up the overlaps.
Based on the above behavior, medium effort is the best one to start with, because low
effort does not give you much QoR improvement and high effort can lead to
convergence issues.
There is also a subtle difference between the -incremental and
-skip_initial_route options. From above, with signal integrity enabled
(set_si_options delta_delay true), route_opt behaves in the following way:
1.
Global routing, track assignment, detail routing, and search and repair
2.
3.
Synopsys, Inc.
Page 15
-skip_initial_route
With crosstalk delta delay enabled, route_opt incremental runs only step 3, the
signal-integrity-based topological optimization:
route_opt incremental
1. One loop of on-route/ECO routing with signal integrity
-skip_inital_route
Running route_opt incremental without signal integrity enabled runs only one
pass of non-signal-integrity-based topological optimization and ECO routing:
route_opt incremental
1. One loop of on-route/ECO routing without signal integrity
Appendix A contains a reference matrix that outlines the different steps performed during
route_opt depending on the effort level and whether the -incremental option is used.
Remember to check the route_opt strategy, common router options, signal integrity
options, and extraction options to verify the settings. During route_opt, ROPT
messages are echoed to the log file that will help you to identify what route_opt is
doing. It is easy to run grep i ropt on the log file for debug purposes.
The next chapter discusses more specific flows during postroute optimization.
16
You can re-enable hold fixing by setting the fix_hold attribute again:
set_fix_hold [all_clocks]
The following commands show an example flow for preroute and postroute hold fixing
during route_opt:
set_fix_hold [list of clocks]*
set_route_opt_strategy fix_hold_mode all
route_opt inc or route_opt inc only_hold
* If you are using area recovery, hold buffers are removed unless the set_fix_hold
constraint is applied to the design.
Some other variables related to hold fixing are:
set_prefer min gate_list
set_fix_hold_options: -prioritize min and preferred_buffer
(allows buffering for hold fixing during size-only optimization)
If delta delay is enabled, you also need to enable minimum delta delay, which is done by
using the set_si_options command.
Synopsys, Inc.
Page 17
Beware that the default behavior of PrimeTIme SI and IC Compiler differ with respect to
delta slew. Make sure that your customer understands what delta slew is and how it is
modeled and fixed. If delta slew consideration is desired, which in most cases it is, it is
important to verify that the IC Compiler settings match the PrimeTIme SI settings.
Otherwise there could be miscorrelation between the PrimeTIme SI and IC Compiler
results. In PrimeTime version A-2007.12, the
timing_si_exclude_delta_slew_for_transition_constraint variable was
added to help match the behavior of PrimeTIme and IC Compiler.
18
Synopsys, Inc.
Page 19
Synopsys, Inc.
Page 20
Synopsys, Inc.
Page 21
Contact your local AC for the latest version and detailed application notes about SFP.
22
Synopsys, Inc.
Page 23
Synopsys, Inc.
Page 1