Parasitics estimation#
Parasitics estimation commands are described below.
Commands#
Note
Parameters in square brackets
[-param param]are optional.Parameters without square brackets
-param2 param2are required.
Set Wire RC#
The set_wire_rc command sets the resistance and capacitance used to estimate
delay of routing wires. Separate values can be specified for clock and data
nets with the -signal and -clock flags. Without either -signal or
-clock the resistance and capacitance for clocks and data nets are set.
# Either run
set_wire_rc -clock ... -signal ... -layer ...
# Or
set_wire_rc -resistance ... -capacitance ...
set_wire_rc
[-clock]
[-signal]
[-data]
[-corner corner]
[-layers layers_list]
or
set_wire_rc
[-h_resistance res]
[-h_capacitance cap]
[-v_resistance res]
[-v_capacitance cap]
or
set_wire_rc
[-clock]
[-signal]
[-data]
[-corner corner]
[-layer layer_name]
or
set_wire_rc
[-resistance res]
[-capacitance cap]
Options#
Switch Name |
Description |
|---|---|
|
Enable setting of RC for clock nets. |
|
Enable setting of RC for signal nets. |
|
Use the LEF technology resistance and area/edge capacitance values for the layers. The values for each layers will be used for wires with the prefered layer direction, if 2 or more layers have the same prefered direction the avarege value is used for wires with that direction. This is used for a default width wire on the layer. |
|
Use the LEF technology resistance and area/edge capacitance values for the layer. This is used for a default width wire on the layer. |
|
Resistance per unit length, units are from the first Liberty file read. |
|
Capacitance per unit length, units are from the first Liberty file read. |
|
Resistance per unit length for horizontal wires, units are from the first Liberty file read. |
|
Capacitance per unit length for horizontal wires, units are from the first Liberty file read. |
|
Resistance per unit length for vertical wires, units are from the first Liberty file read. |
|
Capacitance per unit length for vertical wires, units are from the first Liberty file read. |
Set Layer RC#
The set_layer_rc command can be used to set the resistance and capacitance
for a layer or via. This is useful if these values are missing from the LEF file,
or to override the values in the LEF.
set_layer_rc
[-layer layer]
[-via via_layer]
[-resistance res]
[-capacitance cap]
[-corner corner]
Options#
Switch Name |
Description |
|---|---|
|
Set layer name to modify. Note that the layer must be a routing layer. |
|
Select via layer name. Note that via resistance is per cut/via, not area-based. |
|
Resistance per unit length, same convention as |
|
Capacitance per unit length, same convention as |
|
Process corner to use. |
Report Layer RC#
The report_layer_rc command reports the layer resistance and capacitance values used
for parasitics estimation. These values were previously set with the set_layer_rc
command or they originate from the LEF.
report_layer_rc
[-corner corner]
Options#
Switch Name |
Description |
|---|---|
|
Process corner to report. |
Estimate Parasitics#
Estimate RC parasitics based on placed component pin locations. If there are
no component locations, then no parasitics are added. The resistance and capacitance
values are per distance unit of a routing wire. Use the set_units command to check
units or set_cmd_units to change units. The goal is to represent “average”
routing layer resistance and capacitance. If the set_wire_rc command is not
called before resizing, then the default_wireload model specified in the first
Liberty file read or with the SDC set_wire_load command is used to make parasitics.
After the global_route command has been called, the global routing topology
and layers can be used to estimate parasitics with the -global_routing
flag.
The optional argument -spef_file can be used to write the estimated parasitics using
Standard Parasitic Exchange Format.
estimate_parasitics
-placement|-global_routing
[-spef_file spef_file]
Options#
Switch Name |
Description |
|---|---|
|
Either of these flags must be set. Parasitics are estimated based after placement stage versus after global routing stage. |
|
Optional. File name to write SPEF files. If more than one corner is available for the design, the files will be written as filename_corner.spef. |
Useful Developer Commands#
If you are a developer, you might find these useful. More details can be found in the source file or the swig file.
Command Name |
Description |
|---|---|
|
Check if the |
|
Check wire capacitance for corner. |
|
Get layer RC values. |
|
Set layer RC values. |
Example scripts#
Examples scripts demonstrating how to run parasitics estimation on a sample design as follows:
./test/make_parasitics1.tcl
Regression tests#
There are a set of regression tests in ./test. For more information, refer to this section.
Simply run the following script:
./test/regression
Limitations#
FAQs#
Check out GitHub discussion about this tool.
License#
BSD 3-Clause License. See LICENSE file.