Sei sulla pagina 1di 25

Field Guide to route_opt in

IC Compiler Version A-2007.12


Version A-2007.12, January 2008

Comments?
Send comments on the documentation by going
to http://solvnet.synopsys.com, then clicking
Enter a Call to the Support Center.

Copyright Notice and Proprietary Information


Copyright 2008 Synopsys, Inc. All rights reserved. This software and documentation contain confidential and
proprietary information that is the property of Synopsys, Inc. The software and documentation are furnished under a
license agreement and may be used or copied only in accordance with the terms of the license agreement. No part of
the software and documentation may be reproduced, transmitted, or translated, in any form or by any means,
electronic, mechanical, manual, optical, or otherwise, without prior written permission of Synopsys, Inc., or as
expressly provided by the license agreement.

Right to Copy Documentation


The license agreement with Synopsys permits licensee to make copies of the documentation for its internal use only.
Each copy shall include all copyrights, trademarks, service marks, and proprietary rights notices, if any. Licensee
must assign sequential numbers to all copies. These copies shall contain the following legend on the cover page:
This document is duplicated with the permission of Synopsys, Inc., for the exclusive use of
__________________________________________ and its employees. This is copy number __________.

Destination Control Statement


All technical data contained in this publication is subject to the export control laws of the United States of America.
Disclosure to nationals of other countries contrary to United States law is prohibited. It is the readers responsibility to
determine the applicable regulations and to comply with them.

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

Chapter 1: Overview of route_opt


The route_opt core command is an encoded procedure that performs routing and
postroute optimization in order to provide a user-friendly method for design closure.
Many designs require more than one pass of route_opt; therefore, this application
note explains the basic core command and various ways to use the components of the
route_opt command. This application note does not provide details about breaking
down the route_opt command into the basic commands: route_global,
route_track, and route_auto. As of the Z-2007.03 release, these basic commands
are no longer recommended; they have been incorporated into the route_opt core
command by using the -stage option. Please refer to the route_opt command
options described below for more information about this option.
The route_opt command usage is as follows (default settings are highlighted in blue):
Usage: route_opt
# Run route_opt
[-effort string]
(low | medium | high (default is medium))
[-xtalk_reduction]
(Enable rc_reduction during routing - off)
[-only_xtalk_reduction](Run only xtalk reduction - off)
[-skip_initial_route] (Skip the initial routing step - off)
[-initial_route_only] (Only run initial route: GR, TA, DR - off)
[-stage string]
(global | track | detail - off)
[-power]
(Enable Power Optimization - off)
[-incremental]
(Run incremental route_opt flow. Skip
initial routing - off)
[-size_only]
(Run size_only optimization only - off)
[-num_cpus number]
(The number of CPUs to distribute detail
route and search_repair : Range: -1 to 63)
[-optimize_wire_via]
(Enable optimization route pattern routing
- off)
[-area_recovery]
(Run area recovery - off)
[-wire_size]
(Enable wire_size during optimization
- off)
[-only_wire_size]
(Run timing optimization only with
wire_size - off)
[-only_hold_time]
(Run hold timing optimization only - off)
[-only_area_recovery] (Run area optimizations - off)
[-only_design_rule]
(Run logical design rule fixing, no timing
opt - off)
[-only_power_recovery] (Run footprint swapping - off)

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

The following example runs track assignment followed by optimization:


route_opt initial_route_only stage track
route_opt inc stage track

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

Chapter 2: Configuring route_opt


This chapter describes how to configure route_opt. It contains the following sections:
Basic Router Setup
Setting the route_opt Strategy

Basic Router Setup


The router settings that are common to all of the routing engines are controlled by using
the set_route_options command. These options are considered when the
route_opt command executes. These settings drive the global routing, track
assignment, and detail routing phases. The blue font indicates the default values for the
various options.
The set_route_options command usage is as follows (default settings are highlighted in
blue):
Usage: set_route_options
# set common route options
[-default]
(resets to the default options)
[-groute_timing_driven true | false]
(global route timing driven)
[-groute_timing_driven_weight number]
(global route timing weight. Range: 1 to 7
Default: 4)
[-groute_skew_control true | false]
(global route skew control)
[-groute_skew_weight number]
(global route skew weight. Range: 0 to 10
Default: 5)
[-groute_congestion_weight number]
(global route congestion weight. Range: 1 to 12
Default: 4)
[-groute_clock_routing normal | comb | balanced]
(global route clock topology)
[-groute_incremental true | false]
(incremental global route)
[-track_assign_timing_driven true | false]
(track assign timing driven)
[-track_assign_timing_driven_weight]
(track assign timing driven weight.
Range: 1 to 10 Default: 1)
[-droute_connect_tie_off true | false]
(connect tie off)
[-droute_connect_open_nets true | false]
(connect open nets)

[-droute_reroute_user_wires true | false]


(detail route reroute user wires)
[-droute_CTS_nets normal | minor_change_only]
(detail route change CTS nets)
[-droute_single_row_column_via_array center | optimize]
(single row col via array)
[-droute_stack_via_less_than_min_area forbid | add_metal_stub]
(stack via less than min area)
[-droute_stack_via_less_than_min_area_cost number]
(add metal stub cost. Range: 0 to 10 Default: 0)
[-poly_pin_access auto | off]
(poly pin access)
[-drc_distance diagonal | manhattan]
(drc distance)
[-same_net_notch ignore | check_and_fix]
(check same net notch)
[-fat_wire_check quick | merge_then_check]
(check fat wire)
[-merge_fat_wire_on preroute_only | signal_routing_too]
(merge fat wire on)
[-fat_blockage_as thin_wire | fat_wire]
(treat fat blockages as)
[-wire_contact_eol_rule ignore | check_and_fix]
(check end of line rule)

Use report_route_options to verify the settings. Settings are persistent and saved
in the CEL view.

Setting the route_opt Strategy


The route_opt algorithm is designed to ensure consistent timing throughout the flow;
by default, it uses timing-driven global routing and crosstalk-aware track assignment.
This default behavior can be overridden by using the set_route_options and
set_si_options commands.
The optimization algorithms used during route_opt depend on the strategy that you
set. The route_opt strategy is controlled by a configuration command called
set_route_opt_strategy, and it guides how postroute optimizations are run.

Synopsys, Inc.

Page 7

The set_route_opt_strategy command usage is as follows (default settings are


highlighted in blue):
Usage: set_route_opt_strategy
# set route_opt strategy
[-default]
(reset to default options)
[-fix_hold_mode all | route_base]
[-xtalk_reduction_loops number]
(Range: -1 to 10 Default: 2 (medium
effort)
[-route_run_time_limit number]
(Default: -1 (unlimited))
[-search_repair_loops number]
(Default: 10)
[-optimize_wire_via_search_repair_loops number]
(Default: 5)
[-route_drc_threshold number]
(Default: 3000)
[-eco_route_search_repair_loops number]
(Default: 5)

Use the report_route_opt_strategy command to verify the strategy settings. The


stategy settings are not persistent and are not saved in the CEL view.
You can run the route_opt command in either crosstalk or non-crosstalk mode and
therefore its behavior is dependent on the set_si_options settings.
The set_si_strategy command usage is as follows (default settings are highlighted in
blue):
Usage: set_si_options
# define si options for optimization & analysis
[-delta_delay true | false]
[-static_noise true | false]
[-timing_window true | false]
[-min_delta_delay true | false]
(use only if delta_delay set to true)
[-static_noise_threshold_above_low percentage]
(Default: 0.35 (%))
[-static_noise_threshold_below_high percentage]
(Default: 0.35 (%))
[-route_xtalk_prevention true | false]
[-route_xtalk_prevention_threshold voltage]
(Default: 0.45 (volts)]
[-analysis_effort low | medium]
(low effort runs faster using an adaptive
calculation method)
[-max_transition_mode normal_slew | total_slew]

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

IC Compiler supports the following parasitic files:


SBPF can be used for analysis and optimization (preferred)
SPEF can be used only for analysis
PARA support is via a PARA view generated by StarRCXT only

10

Chapter 3: Variables that Affect


route_opt
IC Compiler provides variables that can help to improve results and can provide help
when debugging the route and postroute flow. This chapter outlines the usage of these
variables. Please contact your local AC for more information about variables that can
help in your design flow.
Offical route_opt variables have routeopt_ as a prefix and are known as the
routeopt variable group. These variables are described below. The default value for each
variable is highlighted in blue.
routeopt_checkpoint [true|false]

When set to true, enables checkpointing during route_opt.

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.

Works exclusively with the -only_design_rule option.


set routeopt_drc_over_timing true
route_opt inc only_design_rule

routeopt_preserve_routes [true|false]

Synopsys, Inc.

Binds route segments that result from topology-based optimization such


that the ECO router can find a solution similar to the one that existed prior
to the optimization.

Improves correlation between pre- and post-optimization routing and


therefore improves timing convergence.

Page 11

routeopt_verbose [none | 31]

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"

The following attributes and variables also affect route_opt:


Critical range
The default critical range value in route_opt is 50% of the worst negative slack
(WNS) per path group. You can override this value by using the
set_critical_range command.
icc_shell> set_critical_range value

Power critical range


The physopt_power_critical_range variable defines the power critical
range. A typical value for the power critical range is four percent of the critical
clock period.
icc_shell> set physopt_power_critical_range value

Area critical range


Area recovery creates resources that subsequent postroute optimizations can
use. Use area recovery early in the route_opt process because this option
disturbs placement and therefore disrupts existing routes. If crosstalk is
considered, area recovery helps to minimize crosstalk effects as it downsizes
cells.
12

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

Chapter 4: Behavior of route_opt in


Different Modes
The behavior of the route_opt command varies depending on the options used and
the corresponding settings as discussed in Chapter 2. This chapter describes what
happens during the route_opt command in some common scenarios. (The following
scenarios assume that signal integrity has been enabled by using the set_si_options
delta_delay true command.)
route_opt
1. Runs routing through search and repair (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)
route_opt xtalk_reduction
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 crosstalk reduction (nondefault routing rule spacing)
4. One loop of on-route/ECO routing with signal integrity (medium effort)
route_opt xtalk_reduction effort high
1. Global routing, track assignment, detail routing, and search and repair
2. One loop of on-route/ECO routing without signal integrity (high effort)
3. One loop of crosstalk reduction (nondefault routing rule spacing)
4. One loop of on-route/ECO routing with signal integrity (high effort)
route_opt -optimize_wire_via xtalk_reduction
1. Global routing, track assignment, detail routing, and search and repair
2. Wire length and wire optimization
3. One loop of on-route/ECO routing without signal integrity (medium effort)
4. One loop of crosstalk reduction (nondefault routing rule spacing)
5. One loop of on-route/ECO routing with signal integrity (medium effort)

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.

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)

Synopsys, Inc.

Page 15

When crosstalk delta delay is enabled, route_opt skip_initial_route executes


only steps 2 and 3 above (no initial route):
route_opt

-skip_initial_route

1. One loop of on-route/ECO routing without signal integrity


2. One loop of on-route/ECO routing with signal integrity

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

Without crosstalk delta delay (signal integrity) enabled (set_si_options


delta_delay false), route_opt incremental and route_opt
skip_initial_route behave the same way.

Running route_opt skip_initial_route without signal integrity enabled runs


two passes of non-signal-integrity-based optimization and ECO routing
route_opt

-skip_inital_route

1. Two loops of on-route/ECO routing without signal integrity

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

Chapter 5: Tips and Tricks


The route_opt command encompasses a huge portion of the place and route process
and therefore it is necessary to require control over what is fixed and what is left
untouched. Furthermore, with shrinking technologies, process rules require that more
attention be paid to correct-by-construction designs.

Fixing Hold Violations


By default, route_opt does route-based hold-fixing, which means that hold violations
are fixed after the initial global route. If you set the hold-fixing mode to all by running
the set_route_opt_strategy fix_hold_mode all command, route_opt
does both preroute and route-based hold fixing.
To disable hold fixing, run the following command:
remove_attribute [get_clock *] fix_hold

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

Fixing Static Noise Violations


Enable static noise analysis by running the following command:
set_si_options static_noise true static_noise_threshold value

(value specified as a voltage value, not a percentage)


When you run the route_opt command, static noise violations are fixed during
topological optimization (which is also known as on-route optimization).
When you run the route_opt xtalk_reduction, static noise violations are fixed
during crosstalk reduction and during topological optimization.

Delta Slew Ignore or Fix?


Delta slew can be either respected or ignored, depending on your design and your
requirements. Enabling delta slew is not always desired due to the runtime impact and
whether or not it is really understood with the effects applied to the design. There are
also doubts as to whether libraries accurately model delta slew. Delta slew should not
affect delta delay.
By default, delta slew is on only for worst negative slack (WNS) and total negative slack
(TNS), but not for maximum transition violations, so that during DRC fixing, the optimizer
sees the violation without delta slew.
As of the Y-2006.06-SP4 release, both delta slew reporting and fixing are controlled by
using set_si_options max_transition_mode. This is taken into consideration
only during the DRC fixing phase.
To disable delta slew reporting and fixing:
set_si_options max_transition_mode normal_slew

To enable delta slew reporting and fixing:


set_si_options max_transition_mode total_slew

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

For example, to consider delta slew in both IC Compiler and PrimeTIme,


1. Enable delta slew in IC Compiler by setting the maximum transition mode to
total_slew (by default, delta slew is off).
set_si_options \
-delta_delay true \
-min_delta_delay true \
-max_transition_mode total_slew

2. Enable delta slew in PrimeTIme (by default, delta slew is enabled):


set timing_si_exclude_delta_slew_for_transition_constraint false

Refer to the PrimeTIme and IC Compiler documentation for more details.

Synopsys, Inc.

Page 19

Appendix A: route_opt Matrix


On the following page is a matrix that describes the steps performed during the stages of
route_opt. Refer to this matrix and the description of route_opt behavior in Chapter 4.

Synopsys, Inc.

Page 20

Synopsys, Inc.

Page 21

Appendix B: SFP Utility


The Suggestive Fact Profile (SFP) utility can identify probable design problems and
assist in tuning the flow based on the design needs. Data shows that more than 90
percent of the issues filed against route_opt could have been debugged using SFP.
As of version 3.0, SFP can generate reports starting at the placement stage.
Example Usage:
source sfp.ver3.1.tcl
create_sfp stage pre_clock_opt

Contact your local AC for the latest version and detailed application notes about SFP.

22

Appendix C: IC Compiler Reference


Methodology (ICC-RM)
The ICC-RM scripts are released and documented for each major IC Compiler release.
The recommended usage of route_opt and other commands is exemplified in the
reference methodology scripts. Refer to the following application note, which is available
on SolvNet:
https://solvnet.synopsys.com/retrieve/021624.html

Synopsys, Inc.

Page 23

Synopsys, Inc.

Page 1

Potrebbero piacerti anche