StarRC™ Parasitic Explorer User Guide
StarRC™ Parasitic Explorer User Guide
Guide
Version U-2022.12-SP4, June 2023
Copyright and Proprietary Information Notice
© 2023 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc.
and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All
other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is
strictly prohibited.
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 reader’s 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.
Trademarks
Synopsys and certain Synopsys product names are trademarks of Synopsys, as set forth at
https://www.synopsys.com/company/legal/trademarks-brands.html.
All other product or company names may be trademarks of their respective owners.
Free and Open-Source Licensing Notices
If applicable, Free and Open-Source Software (FOSS) licensing notices are available in the product installation.
Third-Party Links
Any links to third-party websites included in this document are for your convenience only. Synopsys does not endorse
and is not responsible for such websites and their practices, including privacy practices, availability, and content.
www.synopsys.com
Contents
New in This Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
Related Products, Publications, and Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Customer Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Parasitic Explorer Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
Parasitic Explorer Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
Command Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Man Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
User Interface Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13
Parasitic Explorer Session Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
The Command Log File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
The Parasitic Explorer Shell Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Entering Commands Interactively . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
Using Command Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Tcl Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Parasitic Explorer Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Error, Warning, and Information Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Design Object Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Listing Attribute Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Reporting All Attribute Values for an Object . . . . . . . . . . . . . . . . . . . . . . . . 20
Reporting Specific Attribute Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3
Feedback
Contents
4
Feedback
Contents
gui_show_parasitics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
gui_show_short_regions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
report_bounding_box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .116
report_compare_nets_rc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
report_compare_symmetric_nets_capacitance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
report_coupling_capacitors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
report_coupling_capacitors_between_nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
report_dominant_layer_in_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
report_ground_capacitors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
report_hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129
report_instance_coordinate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
report_instances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
report_length_layerwise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .133
report_net_connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
report_nonphysical_resistors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137
report_P2P_ElmoreDelay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
report_p2p_per_layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
report_parasitics_profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
report_ratio_aggressor_signal_coupling_to_ground_coupling . . . . . . . . . . . . . . . . 143
report_point_to_point_resistance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
report_resistors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
report_total_net_capacitance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
report_rc_components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .152
report_rc_corner_ratios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
report_routed_nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
scale_parasitics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
set_layout_database_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
set_power_ground_nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
starrc_gpd_read_opens_shorts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
start_gui . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
write_parasitics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Other Supported Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
5
Feedback
Conventions
The following conventions are used in Synopsys documentation.
Convention Description
Courier bold Indicates user input—text you type verbatim—in examples, such
as
prompt> write_file top
Edit > Copy Indicates a path to a menu command, such as opening the Edit
menu and choosing Copy.
Customer Support
Customer support is available through SolvNetPlus.
Accessing SolvNetPlus
The SolvNetPlus site includes a knowledge base of technical articles and answers to
frequently asked questions about Synopsys tools. The SolvNetPlus site also gives you
access to a wide range of Synopsys online services including software downloads,
documentation, and technical support.
To access the SolvNetPlus site, go to the following address:
https://solvnetplus.synopsys.com
If prompted, enter your user name and password. If you do not have a Synopsys user
name and password, follow the instructions to sign up for an account.
If you need help using the SolvNetPlus site, click REGISTRATION HELP in the top-right
menu bar.
1
Overview
The Parasitic Explorer tool helps you query parasitic resistors and capacitors stored in a
parasitic database (GPD) created by the StarRC extraction tool.
The overview of the Parasitic Explorer tool includes the following topics:
• Parasitic Explorer Features
• Parasitic Explorer Documentation
• Parasitic Explorer Session Management
• The Parasitic Explorer Shell Interface
Command Help
The help command provides concise information about Parasitic Explorer commands. You
can display a list of commands or view the syntax of a specific command.
The help * command shows a list of commands, organized by command group:
starrc_shell> help *
...
Default Command Group:
add_to_collection, all_inputs, all_instances
...
You can use wildcards to restrict the scope of the list or to find the name of a command
that you cannot remember exactly. For example, to find all commands that contain the
string “capacitor,” enter
starrc_shell> help *capacitor*
get_ground_capacitors # Find parasitic ground capacitors
get_coupling_capacitors # Find parasitic coupling capacitors
...
For a concise description of a command, enter help with the command name:
starrc_shell> help get_ground_capacitors
get_ground_capacitors # Get ground capacitor collection objects
To see the full command syntax, including options and arguments, use the -verbose
option:
starrc_shell> help get_ground_capacitors -verbose
get_ground_capacitors # Get ground capacitor collection objects
[-filter expression] (Filter collection with 'expression')
[-quiet] (Suppress all messages)
[-parasitic_corners corner_name] (Parasitic corner selection)
An alternate method to display the same information is to enter the command name
directly with the -help option:
starrc_shell> get_ground_capacitors -help
get_ground_capacitors # Get ground capacitor collection objects
[-filter expression] (Filter collection with 'expression')
[-quiet] (Suppress all messages)
[-parasitic_corners corner_name] (Parasitic corner selection)
[-all_parasitic corners] (Select all parasitic corners)
[-of_objects objects] (Get ground capacitors of these nets)
[-from_node from_node] (From pin, port, or net internal node)
[-to_node to_node] (To pin, port, or net internal node)
Man Pages
To find descriptive information about a command, variable, or system message, use the
man command at the starrc_shell> prompt during a Parasitic Explorer session. Type
man followed by the command name, variable name, or message code.
Man pages for commands follow a standard format that includes the syntax, a description
of each option and argument, a general description of the command and its usage,
examples, and a list of related commands and variables.
Man pages for variables show the name, value type (string, list, Boolean, integer, or
floating-point number), the default, and a description of the variable and its effects.
Man pages for error, warning, and information messages include the name, a brief
description, and some suggestions for followup actions. To view the man page for an error
message, use the man command with the message code. Type uppercase letters for the
error code.
Note:
Some man pages are shared with the PrimeTime static timing analysis tool.
Some information in the man pages might not be valid for the Parasitic Explorer
tool.
starrc_shell>
To end a Parasitic Explorer session, enter the quit or exit command at the prompt:
starrc_shell> exit
Maximum memory usage for this session: 0.72 MB
CPU usage for this session: 0 seconds
Diagnostics summary: 2 errors
The error message lists up to three possible matches. To list all of the commands that
match the ambiguous abbreviation, use the help function with a wildcard pattern. For
example,
starrc_shell> help all_in_*
all_inputs # Create a collection of all input ports in a design
all_instances # Create a collection of all instances of a design
You can split long commands across multiple lines by using the backslash (\) continuation
character or by clicking the Enter key while a command is still incomplete. In this case, the
tool displays the secondary prompt for each additional line of the command. The default
secondary prompt is a question mark. For example,
starrc_shell> alias my_cap_report {get_ground_capacitors \
? -of_objects list_of_nets}
In this user guide, a command that cannot fit on one line is shown on multiple lines with
the continuation character. However, the secondary prompt is omitted from the examples.
To execute a script upon startup, use the -file option (short form -f):
% starrc_shell -f file_name
You can create scripts that use variables, loops, and conditional execution. The flow
control commands if, while, for, foreach, break, continue, and switch determine the
execution order of other commands.
Any line of text in a script file that begins with the pound sign (#) is a comment. Any text
from a semicolon and pound sign (;#) to the end of a line is also considered to be a
comment.
You can redirect the output to a file. The following command runs the Tcl script named
rc_analysis.tcl and redirects all output and error messages to the file result_file.out.
% starrc_shell -file rc_analysis.tcl > result_file.out
If your script contains a syntax error, the tool stops and waits for input unless the
sh_continue_on_error variable is set to true.
End the script with the quit or exit command. Otherwise, the starrc_shell prompt
does not appear, and you do not know when the script has finished executing. If your
script does not end with the quit command, the tool waits for input. Type quit or exit to
end the session.
Tcl Commands
Commands are statements that cause actions, such as defining values, executing
analysis, or displaying reports. The result of the command is displayed. When there is
no specific resulting output, commands return a 1 to indicate success and a 0 to indicate
failure. For example:
starrc_shell> read_parasitics -keep_capacitive_coupling -format gpd gpd
1
Command examples in this user guide do not always show the return value.
For some commands, the result is a collection. For example, the result of the get_ports
command is a collection of ports. The following command creates a collection of all ports
whose names begin with the letters IN .
starrc_shell> get_ports IN*
{"IN1", "IN2", "IN3", "IN4"}
After the command executes, the collection handle is displayed. The collection handle is
an automatically-generated name for the collection of objects created by the command. If
you want to use the objects in additional operations, set the collection to a variable or nest
it within another command.
Enclose each nested command in square brackets. For example, the report_attribute
command lists the attributes attached to one or more specified input ports. The following
example creates a collection of input ports with the get_ports command and passes the
result to the report_attribute command:
starrc_shell> report_attribute [get_ports IN*] -application
Even if a command accepts a design object name (or list of names) directly, it is good
practice to use the get_* commands to create the collection to ensure that the collection
contains only items of the specified type.
If object names contain escape characters, use the -exact option with the get_*
command to specify the names. For example:
report_ground_capacitors -of_objects [get_nets -exact {net\\[0\\]}
The output of some commands is a report. By default, the display scrolls through the entire
report. To pause between screens of text (similar to the more command in the operating
system), set the sh_enable_page_mode variable to true.
To view a long report in this mode, press the space bar to view each successive screen.
To cancel a long report and return to the starrc_shell prompt, type the letter q .
You can interrupt a command in progress by typing the Ctrl+C key sequence.
Computationally intensive commands might take some time to stop. Typing Ctrl+C multiple
times terminates the shell and returns to the operating system prompt.
You can use the set_app_var command instead of the set command when you set the
value of an application variable. In this case, if the tool does not recognize the variable
name, the tool issues a warning and defines a new user variable with the given name:
starrc_shell> set_app_var abc value
Error: Variable 'abc' is not an application variable. Value will still
be set in Tcl. (CMD-104)
Information: Defining new variable 'abc'. (CMD-041)
When you set an application variable, the displayed result is the new setting for the
variable:
starrc_shell> set sh_enable_page_mode true
true
If you attempt to set an application variable to an invalid value, the tool issues an error
message. For example,
starrc_shell> set sh_enable_page_mode maybe
Error: can't set "sh_enable_page_mode": invalid value:
use true or false
Use error_info for more info. (CMD-013)
To determine the current setting for a variable, use the printvar command. For example,
starrc_shell> printvar sh_enable_page_mode
sh_enable_page_mode = "false"
You can use one or more wildcard characters (*) to view a group of variables. For
example, to see a list of variables whose names include the string “corner,” enter
starrc_shell> printvar *corner*
parasitic_corner_name = ""
Attributes Description
get_attribute Retrieves the value of one attribute associated with one object.
report_attribute Displays the values of all attributes associated with one or more objects.
****************************************
Report : List of Attribute Definitions
...
****************************************
Properties:
A - Application-defined
U - User-defined
I - Importable from design/library (for user-defined)
S - Settable
B - Subscripted
****************************************
Report : Attribute
...
****************************************
2
Using the Parasitic Explorer Tool
You can work with the Parasitic Explorer tool using a Tcl shell or a graphical user interface.
For information about using the Parasitic Explorer tool, see the following topics:
• Creating a GPD for Parasitic Explorer Tool Use
• Using The Interactive StarRC Shell
• Using DSPF Netlist File
• Analyzing and Debugging in Gate-Level Flow
• Analysing and Debugging in Transistor-Level Flow
• Using Tcl Commands in StarRC Shell
To ensure that information about specific shorts is available for the Parasitic Explorer tool,
you can create a file that contains the additional layout information for specified nets or
regions. Use one of the following methods during the extraction:
• Use the -write_short_regions option with the StarXtract command. For example:
%StarXtract -write_short_regions -nets_file file_name cmd_file
The nets file contains a list of net names separated by spaces or line breaks.
• Specify a region of interest by using the -window option. The arguments llx, lly,
urx, and ury are the lower-left x-coordinate, lower-left y-coordinate, upper-right x-
coordinate, and upper-right y-coordinate. For example:
%StarXtract -write_short_regions -window llx lly urx ury cmd_file
◦ resistance_max
◦ resistance_min
◦ resistance_multicorner
• Running single-corner extraction stores the following attribute:
◦ resistance
3. If the GPD contains multiple corners, specify the corner name by setting the
parasitic_corner_name variable:
starrc_shell> set parasitic_corner_name corner_name
5. Specify the current design, which is the name used in the BLOCK command in the
StarRC command file that is used for extraction.
starrc_shell> current_design design_name
6. Use Parasitic Explorer commands to find the parasitics associated with design objects.
starrc_shell> get_coupling_capacitors ...
starrc_shell> get_ground_capacitors ...
starrc_shell> get_resistors ...
8. Use Tcl commands to perform general functions such as storing parasitics into user
variables, operating on those variables, and writing data into a custom report.
starrc_shell> set aggr_cap ...
starrc_shell> set new_cap [expr $aggr_cap ...
starrc_shell> echo ...
starrc_shell> puts ...
You can also create Tcl scripts to carry out complex or repetitive tasks.
Application Examples
These commands are examples of how to work with parasitic objects retrieved from a
GPD and are not necessarily complete Tcl scripts.
Example 1
The following Tcl code finds wire segments with width less than 5 nm.
foreach_in_collection net [get_nets *] {
foreach_in_collection res [get_resistors -of_objects $net] {
if { [get_attribute $res width] < 0.005 } {
puts [format "Net:%s ResNodes:%d-%d Width:%g" \
[get_attribute $net full_name] \
[get_attribute $res node1_index] \
[get_attribute $res node2_index] \
]
}
}
}
Example 2
The following Tcl code finds the total net wire length by layer. Assume that variable $net is
already set as in Example 1.
array set netLen {}
foreach_in_collection res [get_resistors -of_objects $net] {
set res_lyr [get_attribute $res layer_name]
set res_len [get_attribute $res length]
if {[info exists netLen($res_lyr)]} {
set $netLen($res_lyr) [expr {$res_len + $netLen($res_lyr)}]
} else {
set netLen($res_lyr) $res_len
}
}
foreach key [array names netLen] {
if {$netLen($key) > 0} {
puts [format "(%s %g)" $key $netLen($key)]
}
}
Example 3
The following Tcl code finds the top 100 nets with the largest ratio of ground capacitance
between parasitic corners.
array set gcap_ratio {}
foreach_in_collection net [get_nets *] {
set gcap1 0
set gcap2 0
foreach_in_collection gcap [get_ground_capacitors -of_objects $net \
-parasitic_corners "cworst cbest"] {
set gcap1 [expr $gcap1 + [lindex [get_attribute $gcap \
capacitance] 0]]
set gcap2 [expr $gcap2 + [lindex [get_attribute $gcap \
capacitance] 1]]
}
set gcap_ratio([get_attribute $net name]) [expr $gcap1/$gcap2]
}
set cntr 0
foreach {net_name gcap_ratio} [eval {lsort -stride 2 -real -index 1 \
-decreasing [array get gcap_ratio]}] {
puts "Net:$net_name Ratio:$gcap_ratio"
incr cntr
if {$cntr >= 100} {
break
}
}
1. Start the Parasitic Explorer tool by entering starrc_shell at the operating system
prompt.
% starrc_shell
3. Specify the current design, which is the name used in the BLOCK command in the
StarRC command file that is used for extraction.
starrc_shell> current_design design_name
4. Use Parasitic Explorer commands to find the parasitics associated with design objects.
starrc_shell> get_coupling_capacitors ...
starrc_shell> get_ground_capacitors ...
starrc_shell> get_resistors ...
NDM or LEF/DEF
design database
StarRC
GPD
For information to analyze and debug parasitics, see the following topics:
• Setting Up the Gate-Level Flow
• Displaying Parasitic Elements in a Layout View
• Viewing Open and Short Errors With the Error Browser GUI
• Managing Open and Short Errors Using Summary View
• Analyzing Open and Short Errors
• Reporting Power Net Names in Short Summary File
3. Source the starrc_shell_init.tcl file to read the parasitics from the GPD and specify the
current design:
starrc_shell> source <gpd_directory>/starrc_shell_init.tcl
4. Source the starrc_shell_load_layout.tcl file to read the physical design database and
check the physical database for consistency:
starrc_shell> source <gpd_directory>/starrc_shell_load_layout.tcl
5. Invoke the GUI. The StarRC - Layout window appears (Figure 3). The original terminal
screen is still accessible.
starrc_shell> start_gui
Figure 3 StarRC Parasitic Explorer GUI Layout Window for Gate-Level Flow
Specify a net
or corners, or
select types of parasitcs
to display
When you use the command line (Figure 41) to run gui_show_parasitics command,
you can use options of the gui_show_parasitics command to restrict the displayed
parasitics. For example, you can select a specific net, specify which corners to use,
and disable the display of certain types of parasitics. See Chapter 4, Parasitic Explorer
Command Reference for more information about the command.
4. Click Apply (Figure 5) to view the specified net (Figure 6 and Figure 10).
5. Zoom in to the location of the net to view the annotated RC elements by using
the Zoom tool (in the View menu) or the + keyboard shortcut. Flylines represent
resistors, squares represent ground capacitors, and diamonds represent pin capacitors
(Figure 7).
6. Hover the pointer over a parasitic element to display the element attributes (Figure 8).
7. Left-click on an element to populate the Query pane with the element attributes
(Figure 9).
8. Use the Query icon (Figure 10) to query resistance, ground capacitance, and coupling
capacitance and view design and net parasitics after choosing Show Parasitics
(Figure 4). Also, click on the following tabs to select and deselect check box to view
appropriate types of parasitics for the specified net:
◦ Query: Displays information of resistor and capacitor with ground capacitance and
coupling capacitance.
◦ View Settings: Displays layer and setting information.
10. When you are done examining the parasitic elements, close the GUI window.
11. Exit the StarRC shell session with the quit or exit command.
starrc_shell> quit
Viewing Open and Short Errors With the Error Browser GUI
For a gate-level flow, you can use the Parasitic Explorer error browser to examine opens
and shorts found by the StarRC tool during extraction.
The general procedure for using the error browser GUI is as follows:
1. Set up the gate-level flow (see Setting Up the Gate-Level Flow and Figure 3).
2. Choose View > Error Browser (Figure 11).
4. Select a net from the list in the Error Browser dialog box and click Apply.
The selected net is displayed (Figure 14 for an open net. A flyline indicates the location
of the open error.
5. To examine and debug shorts, select a shorted net from the error browser. An X
appears on the layout at the location of the short. If a net is shorted in multiple
locations, each short is listed in the error browser. You can navigate through the shorts
by clicking on them in the error browser.
6. You can also select a net by name. In the layout window, choose Select > By Name. In
the Select by Name dialog box, select the design object type and enter a name in the
Name field.
7. Display the noncritical material in the region immediately surrounding the short
(Figure 16 by using the following command:
starrc_shell> gui_show_short_regions -gpd <gpd_dir>
You can view the net name and layer information of every shape in the short region by
clicking on the object and looking at the InfoTip or the Query pane (Figure 17).
For more examples to view open and short errors using Tcl command, see
starrc_gpd_read_opens_shorts.
8. When you are done examining the nets, close the GUI window.
9. Exit the StarRC shell session with the quit or exit command.
starrc_shell> quit
See Also
• Analyzing Open and Short Errors
• Managing Open and Short Errors Using Summary View
• starrc_gpd_read_opens_shorts
start_gui
# Reads the opens and shorts information to display the summary view
starrc_gpd_read_opens_shorts -gpd <gpd_dir> -summary_view
Table 2 lists the shorts error types and the respective color of X markers to categorize and
prioritize shorts and open errors. Figure 18 shows X markers in the summary view.
Table 2 Shorts and Open Error Types With Color of X
Markers
For more examples to view open and short errors using Tcl command, see
starrc_gpd_read_opens_shorts.
See Also
• Analyzing Open and Short Errors
• Viewing Open and Short Errors With the Error Browser GUI
• Reporting Power Net Names in Short Summary File
Example 4 Generating Error file (.err) to Use in the Error Browser GUI
starrc_shell> starrc_gpd_read_opens_shorts -gpd my.gpd -type short \
-window 55,1634,1825,2175 -short_types (net unselectable \
nonselected skip_cell fill blockage)
-error_file my_wrapper.err
****************************************
Report : Error counts
****************************************
Short errors : 19292
short to net : 12079
short to fill : 358
short to blockage : 6816
short to unselectable net : 39
See Also
• Managing Open and Short Errors Using Summary View
• Viewing Open and Short Errors With the Error Browser GUI
• starrc_gpd_read_opens_shorts
Example 5 shows a portion of a report for the net structure shown in Figure 19.
Figure 19 Identifies Power Nets Between Short NET4 and Open NET1
NET6
Short
Blockage
Open P
I
N Macro
NET2
Short P Spacing F
O I
W L
E N Fill short L
R E
T
5
Example 5 Reports Shorts From Extracted Signal Nets to Non-Extracted Power Net
Short between NET6 and power net vss Layer=M6 Bbox=(447.052,436.477), \
(447.097,436.477)
Open between NET2 and power net vss Layer=M6 Bbox=(447.052,436.477), \
(447.097,436.477)
StarRC
GPD
For information to analyze and debug parasitics, see the following topics:
• Accessing the Interoperable Process Design Kit (iPDK)
• Setting Up the Transistor-Level Flow
• Loading and Analyzing GPD Parasitics
• Viewing and Analyzing Open and Short Errors
• Analyzing Parasitics Using StarRC Virtuoso Integration
Note:
Save the lib.defs file in your working directory.
For detailed information about iPDK and setting up the lib.def and technology files, see the
Custom Compiler documentation on SolvNetPlus.
3. Source the starrc_shell_init.tcl file to read the parasitics from the GPD and specify the
current design:
starrc_shell> source <GPD_DIR>/starrc_shell_init.tcl
current_design <design_name>
Note:
Set the environment variable before you use the starrc_explorer &
command. Otherwise, the GUI might not display the menus correctly.
5. Set the existing Custom Compiler shell (custom_shell) at the Unix path as shown in the
following example:
% set path = (/global/apps/customcompiler_2020.12-SP1/bin $path)
Or
% module load customcompiler
3. Select a GPD directory from your local folder in the GPD Path box (Figure 23).
6. Select a net from the list to display all resistors and capacitors and highlight a resistor
or capacitor segment to analyze RC elements (Figure 25).
Highlight a object
t ttttto remove
5. Select a short error from the list to list and display all shorts for a specific net
(Figure 30).
You can expand or highlight to analyze and debug the open and short errors in the
Layout Editor window.
The Virtuoso Integration tool displays StarRC Parasitic Probing window (Figure 32).
3. Choose either GPD or SPF from the DataBase drop-down menu to select either the
GPD or a SPF file and load the file.
If the Skip Power Nets check box is selected, the Parasitic Explorer tool does not load
the power nets before loading the GPD or the SPF file.
4. Select layout from the Parasitic/Layout View drop-down menu to view annotations in
the layout view after loading the GPD or the SPF file.
To browse and select any file or folder, click (near Load) to browse through
directories and select the required GPD file.
The StarRC shell is launched in the background if the GPD loads correctly.
After loading the GPD, PE Mode appears in the StarRC Parasitic Probing window
(Figure 34).
Before loading the GPD or the SPF file, you can also set any commands as needed
in the StarRC shell in the PE Additional Options window. To do this, click PE Options
to open the PE Additional Options window. The specified commands are run in the
StarRC shell.
3. Click More Query under PE Mode to open the More Parasitic Explorer Functions
window.
For more information, see Accessing Additional Parasitic Explorer Functions in
Probing.
Querying Resistance
To query resistance, choose either Net or Node from the P2P RESISTANCE drop-down
menu. The default is Net. Select the node or net name either by performing one of the
following methods:
• Selecting from the extracted view by clicking Query.
In Figure 35, for example, to see additional information about NODE1 and NODE2 in the
Parasitic Netlist Browser NODE window,
• Click B1 under NODE1 (Figure 36)
• Click XI1| X14|M1|G under NODE2 (Figure 37)
After specifying node pairs, click Display for the tool to list point-to-point resistance
between the nodes (Figure 35).
After specifying the Net name, click Display for the tool to list point-to-point resistance
between different pairs of nodes on the specified net.
Querying Capacitance
To query capacitance, choose either Total, Net to Net, or All Couplings from the
Capacitance drop-down menu. The default is Total, which is total capacitance. Then,
select the node or net name either by performing one of the following methods:
• Selecting from the extracted view by clicking Query.
For Total, the total capacitance for the specified net is displayed (Figure 38).
For Net to Net, the net-to-net capacitance lists coupling capacitance of NET1 and NET2.
For All Couplings, the all coupling capacitances on the specified net are displayed.
To know when PE Mode appears in the StarRC Parasitic Probing window, see Loading a
GPD or a SPF File.
From the More Parasitic Explorer Functions (Figure 40) window, you can perform any of
the following tasks:
• Click GPD Properties and specify a GPD directory in the GPD Database box, and
click Query to view the properties of the uploaded GPD directory.
• Click Report Attributes and specify a Tcl command in the Report Attributes for box,
and click Query to display the report.
• Click Report Instances and specify a cell name in the Filter box, and click Query to
display details of instances based on the specified filter.
• Click Report Resistors and specify a net name in the Report Resistors resistance
for Nets box, and click Query to report resistance of the specified net.
• Click Report Net Connectivity and specify a net name in the Report Connectivity for
Nets box, and click Query to report names of ports, pins, and cells of the specified net
with their direction and x and y-coordinates.
2. Specify net patterns in the Net #1 Pattern and Net #2 Pattern field respectively,
and click Query to compare capacitance of the specified symmetric nets.
For information about using the options in Symmetric Nets Comparison, see
the report_compare_symmetric_nets_capacitance.
• Click RC Scaler to open the GPD RC Scaler window to
◦ Specify the configuration file in the RC Scaler Config File field and edit if needed
When you click OK or Apply, the scale_parasitics command is run in the StarRC
shell. For more information, see scale_parasitics.
◦ Specify the name of the output scaled GPD that can be subsequently converted into
a SPF or SPEF file
• Click User Defined TCL and specify the required files in the following fields.
PE_TCL_FILE: lock_name/label_name/design/database/example.tcl
PE_TCL_COMMAND: CommandA CommandB
2. User Defined TCL: Choose the command from the drop-down and click Query.
For example, the commands specified with the PE_TCL_COMMAND (see
Example 8) are listed in the drop-down.
To save the results after querying, click Export Results to File or click Clear to
remove all the settings specified in the User Defined TCL window.
For more information about specific Parasitic Explorer Tcl commands, see Chapter 4,
Parasitic Explorer Command Reference.
To run Tcl commands in the StarRC shell,
1. Set up the gate-level flow (see Setting Up the Gate-Level Flow and Figure 3)..
2. Create a collection of all open nets by using the starrc_open net attribute:
starrc_shell> get_nets -filter "starrc_open==true"
{"min_lsb/cnt_blk1/n184",
"min_lsb/cnt_blk1/n191",
"min_lsb/cnt_blk1/n195"}
3. Create a collection of all shorted nets by using the starrc_short net attribute:
starrc_shell> get_nets -filter "starrc_short==true"
{"sec_lsb/cnt_blk1/n157",
"sec_lsb/conv_blk1/n16"}
4. Report a collection object of shorts or opens. Each object is associated with an error
class, which is either open_locator or short, and the object class drc_error.
starrc_shell> report_attribute -application \
[get_drc_errors -error_data starrc_openshort.err] -nosplit
******************************
Report: Attribute
Design: toprt
Version: P-2019.03
Date: Mon Feb 11 18:23:34 2019
******************************
5. Report a collection of error types. Each object is associated with an error class, which
is either open_locator or short, and the object class drc_error_type.
starrc_shell> report_attribute -application \
[get_drc_error_types -error_data starrc_openshort.err]
******************************
Report: Attribute
Design: toprt
Version: P-2019.03
Date: Mon Feb 11 19:03:12 2019
******************************
...
toprt lsb/blk1/n184 string object_class drc_error_type
...
6. Exit the StarRC shell session with the quit or exit command.
starrc_shell> quit
3
Working With the Parasitic Database
The Parasitic Explorer tool provides commands to examine properties of the GPD itself.
For information about GPD commands, see the following topics:
• Querying GPD Data Stored on Disk
• Reporting GPD Properties
• Setting GPD Annotation Properties
• Getting GPD Corners and Layers
• Changing the Default Capacitance and Resistance Units
The -layers option lists the layers present in the GPD for the specified design. For
example:
starrc_shell> report_gpd_properties -layers -gpd MyDesignA.gpd
...
Layer information:
Name Properties Value
-------------------------------------------------------
SUBSTRATE id 0
SUBSTRATE is_via No
poly id 1
poly is_via No
M1 id 2
M1 is_via No
...
The -parasitic_corners option lists the corners present in the GPD for the specified
design. For example:
starrc_shell> report_gpd_properties -parasitic_corners -gpd MyDesignA.gpd
...
Corner information:
Name Properties Value
------------------------------------------------------------------
CMINW125 process_name /mydata/mypara/grd.min
CMINW125 temperature 125
CMINW125 global_temperature 25
CMINB40 process_name /mydata/mypara/grd.min
CMINB40 temperature -40
CMINB40 global_temperature 25
...
For example, the following command sets both absolute and relative thresholds for filtering
coupling capacitors:
starrc_shell> set_gpd_config -gpd my_design1.gpd \
-absolute_coupling_threshold 3.0e-3 \
-relative_coupling_threshold 0.03
To report the GPD configuration that has been set, use the report_gpd_config
command:
starrc_shell> report_gpd_config -gpd my_design.gpd
...
Property Value
--------------------------------------------------------
absolute_coupling_threshold 0.003000
relative_coupling_threshold 0.030000
coupling_threshold_operation and
netlist_select_nets *
netlist_type {RCC *}
selected_parasitic_corners TYP25 CWORST110 CBEST0
...
To include reporting of options that were set in the StarRC tool during parasitic extraction,
use the -include_starrc_options option:
starrc_shell> report_gpd_config -gpd my_design.gpd
-include_starrc_options
...
Property Value StarRC
------------------------------------------------------------------------
absolute_coupling_threshold 0.003000 N
relative_coupling_threshold 0.030000 N
coupling_threshold_operation and N
netlist_select_nets * N
netlist_type {RCC *} N
selected_parasitic_corners TYP25 CWORST110 CBEST0 N
netlist_compress true Y
dp_string true Y
netlist_connect_section false Y
pin_delimiter / Y
netlist_name_map true Y
netlist_incremental false Y
To display the units used by the current design, use the report_unit command:
starrc_shell> report_unit
****************************************
Report : units
Design : simple
Version: U-2022.12-SP4
Date : Fri May 19 11:55:27 2023
****************************************
Units
--------------------------------------------------------
Capacitive_load_unit : 1e-15 Farad
Current_unit : 0.001 Amp
Resistance_unit : 1 Ohm
Time_unit : 1e-09 Second
Voltage_unit : 1 Volt
4
Parasitic Explorer Command Reference
This section provides reference information for Parasitic Explorer commands and
variables.
• report_hierarchy
• report_instance_coordinate
• report_instances
• report_length_layerwise
• report_net_connectivity
• report_nonphysical_resistors
• report_P2P_ElmoreDelay
• report_p2p_per_layer
• report_parasitics_profile
• report_ratio_aggressor_signal_coupling_to_ground_coupling
• report_point_to_point_resistance
• report_resistors
• report_total_net_capacitance
• report_rc_components
• report_rc_corner_ratios
• report_routed_nets
• scale_parasitics
• set_layout_database_options
• set_power_ground_nets
• starrc_gpd_read_opens_shorts
• start_gui
• write_parasitics
• Other Supported Commands
check_layout_database
Reads the physical library and design files and checks the data for correctness and
consistency.
Syntax
check_layout_database
check_parasitics_consistency
The StarRC tool provides a parasitic netlist checker that operates on an SPF file to verify
the output of a netlist in a transistor-level flow.
To verify the output of the parasitic netlist, use the check_parasitics_consistency
command.
For detailed information to use the command, see the StarRC User Guide and Command
Reference.
get_coupling_capacitors
Creates a collection of the coupling capacitors associated with one or more nets.
Syntax
get_coupling_capacitors
[-filter expression]
[-quiet]
[-parasitic_corners corner_names]
[-all_parasitic_corners]
-of_objects nets | -from node1 -to node2
Arguments
-of_objects nets list Specifies the nets for which to return the coupling
capacitors.
-from node1 string Specifies a pin, port, or net internal node. The tool
returns the coupling capacitors between this node and
the node specified in the -to option, which must both
belong to the same net.
-to node2 string Specifies a pin, port, or net internal node. The tool
returns the coupling capacitors between this node and
the node specified in the -from option.
Description
You can specify a node by a pin name, a port name, or a node index. To specify a node
index, use the format net_name:node_ID. For a given net, valid node IDs are from 1 to
N inclusive, where N is the number of net nodes. Note that in the GPD and in SPEF files
generated from a GPD, node numbering begins at 0 and ends at N-1.
You must use either the -of_objects option or both the -from and -to options.
Examples
The following command finds the coupling capacitors attached to net abc:
starrc_shell> get_coupling_capacitors -of_objects abc
_sel15
The following command finds the coupling capacitors attached to all nets whose names
begin with ABC and returns only those capacitors whose aggressor node name is XYZ:1.
starrc_shell> get_coupling_capacitors -of_objects ABC* \
-filter "aggressor_node_name == XYZ:1"
_sel16
After the command executes, the collection handle is displayed. In the examples, _sell5
and _sell 6 are collection handles. The collection handle is an automatically-generated
name for the collection of objects created by the command. If you want to use the objects
in additional operations, you must set the collection to a variable or nest it within another
command.
The following command saves the coupling capacitors of net abc into a variable named
abc_cc:
starrc_shell> set abc_cc get_coupling_capacitors -of_objects abc
aggressor_layer_id integer The layer ID of the ITF file (nxtgrd file) for the aggressor
net
aggressor_layer_name string The layer name of the ITF file (nxtgrd file) for the
aggressor net
aggressor node_index integer The index value of the node where the coupling
capacitor connects to the aggressor net. Every node
on a net has a unique index from 1 to N, where N is the
total number of nodes on that net.
layer_id integer The layer ID in the nxtgrd file for the victim net
layer_name string The layer name in the nxtgrd file for the victim net
net collection The victim net associated with the coupling capacitor
node_ground_ collection The ground capacitor associated with the victim node of
capacitor the coupling capacitor
node_index integer The index value of the node where the coupling
capacitor connects to the victim net
get_elmore_delay
Calculates the effective Elmore delay between two nodes.
Syntax
get_elmore_delay
[-quiet corner_names]
[-parasitic_corners corner_names]
[-all_parasitic_corners]
[-from node1]
[-to node2]
Arguments
-from node1 string Specifies a pin, port, or net internal node. The tool
returns the coupling capacitors between this node and
the node specified in the -to option, which must both
belong to the same net.
-to node2 string Specifies a pin, port, or net internal node. The tool
returns the coupling capacitors between this node and
the node specified in the -from option.
Description
You can specify a node by a pin name, a port name, or a node index. To specify a node
index, use the net_name:node_ID format. For a given net, valid node IDs are from 1 to
N inclusive, where N is the number of net nodes. Note that in the GPD and in SPEF files
generated from a GPD, node numbering begins at 0 and ends at N-1.
Elmore delay is an approximation to the RC delay of a net. For a specific pair of pins, the
signal direction can affect the delay.
For more information, see the Comparing the Elmore Delay section in the StarRC User
Guide and Command Reference.
Examples
The following example calculates the Elmore delay from the my_port port to the sec/blk1/
U41/my_pin pin of the my_port net for all parasitic corners:
starrc_shell> get_elmore_delay -from my_port -to sec/blk1/U41/my_pin
-all_parasitic_corners
[46.2063,47.808,44.0004]
The following example calculates the Elmore delay from the my_port port to the sec/blk1/
U41/my_pin pin of the my_port net for the typ parasitic corner:
starrc_shell> get_elmore_delay -from my_port -to sec/blk1/U41/my_pin
-parasitic_corners typ
46.2063
get_ground_capacitors
Creates a collection of the ground capacitors for one or more nets.
Syntax
get_ground_capacitors
[-filter expression]
[-quiet]
[-parasitic_corners corner_names]
[-all_parasitic_corners]
-of_objects nets | -from node1 -to node2
Arguments
-all_parasitic_ none Queries all corners that are present in the GPD.
corners
-of_objects nets list Specifies the nets for which to retrieve the ground
capacitors.
-from node1 string Specifies a pin, port, or net internal node. The tool
returns the ground capacitors between this node and
the node specified in the -to option, which must both
belong to the same net.
-to node2 string Specifies a pin, port, or net internal node. The tool
returns the ground capacitors between this node and
the node specified in the -from option.
Description
You can specify a node by a pin name, a port name, or a node index. To specify a node
index, use the format net_name:node_ID. For a given net, valid node IDs are from 1 to
N inclusive, where N is the number of net nodes. Note that in the GPD and in SPEF files
generated from a GPD, node numbering begins at 0 and ends at N-1.
You must use either the -of_objects option or both the -from and -to options.
Attributes of Ground Capacitors
Object properties are stored in attributes. Table 4 lists the attributes available for ground
capacitors, which have the object class ground_capacitor.
Table 4 Ground Capacitor Attributes
node_index integer The index value of the node at which the ground
capacitor connects to the net. Every node on a net has
a unique index from 1 to N, where N is the total number
of nodes on that net.
Examples
The following command finds the ground capacitors attached to net abc:
starrc_shell> get_ground_capacitors -of_objects abc
_sel15
The following command finds the ground capacitors attached to all nets whose names
begin with ABC and returns only those capacitors whose layer ID is 12.
starrc_shell> get_ground_capacitors -of_objects ABC* \
-filter "layer_id == 12"
_sel23
get_instances
Creates a collection of the instances (cells) associated with one or more nets. Valid only
for transistor-level GPDs.
Syntax
get_instances
[-filter expression]
Arguments
Description
The command checks instance or device information of a GPD parasitic database.
Attributes of Instances
Object properties are stored in attributes. Table 5 lists the attributes available for
instances.
The commands in the StarRC command file control whether some properties of cells are
stored in the GPD during extraction. If the properties are not stored in the GPD, they are
not available in subsequent Parasitic Explorer attribute queries.
Table 5 Instance Attributes
name string The cell name, which can be controlled by the INSTANCE_TYPE
command for layout or schematic cells names used for
instances.
Examples
The following examples show how to set expressions using the get_instances -filter
command.
starrc_shell> get_instances -filter “width>0.2 || model_name=~*cap*”
starrc_shell> get_instances -filter “length<0.1 && nfin>5”
starrc_shell> get_instances -filter "properties_string=~*AREA*"
starrc_shell> get_instances -filter "orientation==90“
starrc_shell> get_instances -filter "name==M0"
starrc_shell> get_instances -filter ""name==\"XIsingle_cell<7>/XI58/XM0@7
The following example lists all instances from the parasitic file:
starrc_shell> get_instances
_se12
starrc_shell> sizeof_collection _sel12
208
See Also
• report_instances
get_eeq_port
Gets the information of electrically equivalent ports.
Examples
The following example shows the electrically equivalent (EEQ) ports information.
starrc_shell> get_eeq_port
================ ======== ======== ============= =============
PORTS NETNAME LAYER X_COORDINATE Y_COORDINATE
================ ======== ======== ============= =============
portA portA M1_mask1 2.000000 11.000000
SNPS_EEQ_portA_1 portA M5 1.000000 15.000000
SNPS_EEQ_portA_2 portA M1_mask2 1.500000 19.000000
portC portC M1_mask1 1.000000 31.000000
SNPS_EEQ_portC_1 portC M5 1.000000 45.000000
get_point_to_point_resistance
Returns the equivalent resistance (in kohm) of the parasitic resistors between two nodes
of a net.
Syntax
get_point_to_point_resistance
[-quiet]
[-parasitic_corners corner_names]
[-all_parasitic_corners]
-from node1 -to node2
Arguments
-all_parasitic_ none Queries all corners that are present in the GPD.
corners
-from node1 string Specifies a pin, port, or net internal node as the path
startpoint. You must use the -from and -to options together.
-to node2 string Specifies a pin, port, or net internal node as the path
endpoint. You must use the -from and -to options together.
Description
You can specify a node by a pin name, a port name, or a node index. To specify a node
index, use the format net_name:node_ID. For a given net, valid node IDs are from 1 to
N inclusive, where N is the number of net nodes. Note that in the GPD and in SPEF files
generated from a GPD, node numbering begins at 0 and ends at N-1.
Examples
The following example shows how to read the parasitics, find the equivalent resistance,
and report the resistance value in kohm:
starrc_shell> read_parasitics -keep_capacitive_coupling
-format gpd cell.gpd
1
starrc_shell> current_design DESIGN
Loading parasitic explorer environment...
get_resistors
Creates a collection of the parasitic resistors for one or more nets.
Syntax
get_resistors
[-filter expression]
[-quiet]
[-parasitic_corners corner_names]
[-all_parasitic_corners]
-of_objects nets | -from node1 -to node2
Arguments
-all_parasitic_ none Queries all corners that are present in the GPD
corners
-of_objects nets list Specifies the nets for which to retrieve the parasitic
resistors.
-from node1 string Specifies a pin, port, or net internal node. The tool
returns the parasitic resistors between this node and
the node specified in the -to option, which must both
belong to the same net.
-to node2 string Specifies a pin, port, or net internal node. The tool
returns the parasitic resistors between this node and
the node specified in the -from option.
Description
You can specify a node by a pin name, a port name, or a node index. To specify a node
index, use the format net_name:node_ID. For a given net, valid node IDs are from 1 to
N inclusive, where N is the number of net nodes. Note that in the GPD and in SPEF files
generated from a GPD, node numbering begins at 0 and ends at N-1.
You must use either the -of_objects option or both the -from and -to options. The
-from and -to options are valid for nets that contain loops between the nodes.
◦ resistance_max
◦ resistance_min
◦ resistance_multicorner
• Running single-corner extraction stores the following attribute:
◦ resistance
Table 6 Parasitic Resistor Attributes
area float The via area in square microns. Populated only if the
is_via attribute is true; mutually exclusive with the
length and width attributes.
is_via_array Boolean The value is true if the resistor is part of a via array.
layer_name string The layer name of the ITF (nxtgrd) layer. If resistor
detail is not available in the GPD, the layer_id
and layer_name attributes are estimated using the
associated ground capacitor layers.
node1_index integer The index of node 1, one of two nodes at which the
parasitic resistor connects to the net. Each node on
a net has a unique index from 1 to N, where N is the
total number of nodes on the net.
node2_index integer The index of node 2, one of two nodes at which the
parasitic resistor connects to the net.
Examples
For example, the following command finds the parasitic resistors attached to net abc:
starrc_shell> get_resistors -of_objects abc
{"resistor"}
The following command finds the parasitic resistors between nodes 10 and 20 of net abc:
starrc_shell> get_resistors -from_node abc:10 -to_node abc:20
{"resistor"}
gui_clear_parasitics
Clears parasitics annotated on a net.
Syntax
gui_clear_parasitics
[nets]
[-all]
Arguments
gui_show_parasitics
Highlights parasitics for a specified set of nets.
Syntax
gui_show_parasitics
[-parasitic_corners corner_name]
[-all_parasitic_corners]
[-aggressor_net agg_net]
[-nores]
[-nocg]
[-nocc]
[-novia]
nets
Arguments
gui_show_short_regions
Displays noncritical polygons, including metal fill polygons, in the vicinity of a short
identified by the StarRC tool during extraction.
Syntax
gui_show_short_regions
[-gpd gpd_dir]
Arguments
-gpd gpd_dir string The GPD generated from the StarRC extraction. The
argument is the GPD directory.
report_bounding_box
Reports the approximate bounding box of specified nets. Valid only for transistor-level
GPDs.
Syntax
report_bounding_box -of_objects nets
Arguments
-of_objects nets list Nets for which to report the bounding box. Can be a
single net or a space-delimited list of nets inside double
quotation marks. Wildcard * is supported.
Examples
The following example shows a bounding box report.
starrc_shell> report_bounding_box -of_objects "SUM0 B0"
======== =========== ========= =========== =========
Net Name llx lly urx ury
======== =========== ========= =========== =========
SUM0 -467.000000 11.000000 -458.000000 82.000000
B0 -497.000000 2.500000 -272.000000 82.000000
report_compare_nets_rc
Compares resistance and capacitance of the specified nets.
Syntax
report_compare_nets_rc
-net1 net_name
-net2 net_name
[-output_file file_name]
[-use_spf_unit]
[-raw]
Arguments
-net1 and -net2 string Specifies net names to compare resistance and
capacitance.
Description
To use this command, you must specify the following commands:
• Set the NETLIST_TAIL_COMMENTS: YES command to perform the original extraction
and save the required information in the netlist file.
• Set the EXTRA_GEOMETRY_INFO: NODE command to extract the values of the bounding
boxes for nodes.
For detailed information to use the commands, see the StarRC User Guide and Command
Reference.
Examples
The following example shows the resistance and capacitance comparison report for the
specified nets.
starrc_shell> report_compare_nets_rc -net1 a_p -net2 a_i
************************************************************
Report : Compare RC Components Between Net1: a_p & Net2: a_i
Design : TEST
Version: U-2022.12-SP4
Date : Mon May 15 12:45:00 2023
************************************************************
report_compare_symmetric_nets_capacitance
Compares capacitance of the specified symmetric nets.
Syntax
report_compare_symmetric_nets_capacitance
-pattern_net1 pattern_for_net1
-pattern_net2 pattern_for_net2
[-nocase_sensitivity]
[-output_file file_name]
[-symmetric_threshold]
[-use_spf_unit]
[-raw]
Arguments
Examples
The following example shows the capacitance comparison report for the symmetric nets.
starrc_shell> report_compare_symmetric_nets_capacitance -pattern_net *in*
-pattern_net *qn*
**************************************************
Report : symmetric nets capacitance
Design : TEST
Version: U-2022.12-SP4
Date : Mon May 15 12:45:00 2023
**************************************************
Net Tcap Gcap %Cg/Ct Ccap %Cc/Ct SNet STcap SGcap %SCg/SCt SCcap %SCc/SCt
%(Tc-STc)/Tc PASS/FAIL
report_coupling_capacitors
Reports the coupling capacitors for specified nets.
Syntax
report_coupling_capacitors
-of_objects nets | -from node1 -to node2 [-verbose]
-layer layer_name -net1 net_name -net2 net_name
[-use_spf_unit]
[-raw]
Arguments
-of_objects nets list Nets for which to report the coupling capacitors. Can
be a single net or a space-delimited list of nets inside
double quotation marks. Wildcard * is supported.
-from node1 string Specifies a pin, port, or net internal node. The tool
reports the coupling capacitors between this node and
the node specified in the -to option, which must both
belong to the same net.
-to node2 string Specifies a pin, port, or net internal node. The tool
reports the coupling capacitors between this node and
the node specified in the -from option.
Description
You must use either the -of_objects option or both the -from and -to options.
The default report contains a section for each victim net (the nets specified in the
command arguments). The victim net heading lists the total coupling capacitance for the
victim net. For each aggressor net, the report lists the total coupling capacitance between
the aggressor net and the victim net and its percentage with respect to the total coupling
capacitance on the victim net.
The verbose report also contains a section for each victim net. It provides detailed
information about the individual coupling capacitances between nodes of the victim net
and nodes of the aggressor nets.
For the layer report, set the EXTRA_GEOMETRY_INFO: NODE command to extract the values
of the bounding boxes for nodes. For detailed information to use the command, see the
StarRC User Guide and Command Reference.
Examples
The following example shows a default coupling capacitor report.
starrc_shell> report_coupling_capacitors -of_objects SUM0
================================
Net: SUM0
Total capacitance: 0.013721
Report Type: Aggressors, summary
================================
Total CCAP %Cc/Ct Aggressor Net
========== ====== =============
0.000925 6.741491 B0
0.000908 6.617593 A0
0.000468 3.410830 CIN
================================
The following example shows a verbose coupling capacitor report. Net SUM0 has two
pins, 0/33/M2/s and 0-/33/M-1/s, which can be determined with the get_pins command.
starrc_shell> get_pins -of [get_nets SUM0]
{"0/33/M2/s", "0/33/M1/s"}
starrc_shell> report_coupling_capacitors -of_objects SUM0 -verbose
=================================
Net: SUM0
Total capacitance: 0.013721
Report Type: Aggressors, detailed
=================================
Victim Node Victim Lyr Aggressor Node Aggressor Lyr Capacitance %Cc/Ct
=========== ========== ============== ============= =========== ========
0/33/M2/s SUBSTRATE A0:24 metal1 0.000299 2.179141
SUM0:5 metal2 A0:24 metal1 0.000047 0.342541
0/33/M2/s SUBSTRATE A0:25 metal1 0.000060 0.437296
SUM0:5 metal2 A0:25 metal1 0.000502 3.658625
0/33/M2/s SUBSTRATE B0:25 metal1 0.000370 2.696596
SUM0:4 metal2 B0:25 metal1 0.000001 0.007288
...
report_coupling_capacitors_between_nets
Reports the aggressors of a net.
Syntax
report_coupling_capacitors_between_nets
-victim_net victim_net_name
-aggressor_net aggressor_net_name
[-verbose]
[-output_file file_name]
Arguments
Description
To use the -verbose option, you must first set the EXTRA_GEOMETRY_INFO:NODE command
to extract the values of the bounding boxes for nodes.
For detailed information to use the command, see the StarRC User Guide and Command
Reference.
Examples
The following example shows a default coupling capacitor report.
starrc_shell> report_coupling_capacitors_between_nets -victim_net I
-aggressor_net S
=========================================
Report : Coupling Capacitors Between Nets
Design : TEST
Version: U-2022.12-SP3-VAL-20230516
Date : Wed May 17 15:18:07 2023
==========================================
Total CCAP %Cc/Ct Aggressor Net
========================================================================
Victim Node Victim Lyr Aggressor Node Aggressor Lyr Capacitance %Cc/Ct
=========== ========== ============== ============= =========== ========
I:4 n_poly S:3 M0_OD1 0.000846 0.549822
I:4 n_poly S:4 M0_OD2 0.003129 2.033561
I:4 n_poly S:5 M1 0.001442 0.937167
I:4 n_poly S:6 M1 0.001601 1.040502
I:3 M1 S:7 M1 0.002634 1.711857
I:4 n_poly S:7 M1 0.000469 0.304807
I:5 n_poly S:7 M1 0.000405 0.263213
I:10 M0_PO_N S:7 M1 0.000014 0.009099
I:4 n_poly S:34 tndiff 0.042408 27.561286
I:5 n_poly S:34 tndiff 0.004666 3.032469
...
report_dominant_layer_in_path
Reports the layers with the most capacitance for specified nets.
Syntax
report_dominant_layer_in_path
-of_objects nets
Arguments
-of_objects nets list Nets for which to report the layer information. Can be a
single net or a space-delimited list of nets inside double
quotation marks. Wildcard * is supported.
Description
To use this command, you must specify the following commands:
• Set the NETLIST_TAIL_COMMENTS: YES command to perform the original extraction
and save the required information in the netlist file.
• Set the EXTRA_GEOMETRY_INFO: NODE command to extract the values of the bounding
boxes for nodes.
For detailed information to use the commands, see the StarRC User Guide and Command
Reference.
Examples
The following example shows a dominant layer report.
starrc_shell> report_dominant_layer_in_path -of_objects "SUM0 B0"
================================
List of nets in specified timing path:
net1: SUM0
net2: B0
Total number of nets in the timing path: 2
report_ground_capacitors
The report_ground_capacitors command reports the ground capacitors for specified
nets.
Syntax
report_ground_capacitors
-of_objects nets | -from node1 -to node2
[-total]
[-layer]
[-use_spf_unit]
[-raw]
You must use either the -of_objects option or both the -from and -to options.
Arguments
-of_objects nets list Nets for which to report the ground capacitors. Can
be a single net or a space-delimited list of nets inside
double quotation marks. Wildcard * is supported.
-from node1 string Specifies a pin, port, or net internal node. The tool
reports the ground capacitors between this node and
the node specified in the -to option, which must both
belong to the same net.
-to node2 string Specifies a pin, port, or net internal node. The tool
reports the ground capacitors between this node and
the node specified in the -from option.
Description
For the layer report, set the EXTRA_GEOMETRY_INFO: NODE command to extract the values
of the bounding boxes for nodes. For detailed information to use the command, see the
StarRC User Guide and Command Reference.
Examples
The following example shows a ground capacitor report.
starrc_shell> report_ground_capacitors -of_objects "SUM0 B0"
================================
Net: SUM0
Total capacitance: 0.013721
Report Type: Ground Capacitors
================================
Node Layer Capacitance %Cc/Ct
==== ===== =========== ======
0/33/M2/s SUBSTRATE 0.000749 5.458786
0/33/M1/s SUBSTRATE 0.000387 2.820494
SUM0:4 metal2 0.000247 1.800160
SUM0:5 metal2 0.002221 16.186867
...
================================
Net: B0
Total capacitance: 0.089779
Report Type: Ground Capacitors
================================
Node Layer Capacitance %Cc/Ct
==== ===== =========== ======
B0 metal2 0.000000 0.000000
0/38/M2/g poly 0.000000 0.000000
0/38/M5/g poly 0.000000 0.000000
0/54/M5/g poly 0.000000 0.000000
...
B0:10 metal2 0.000082 0.091335
B0:11 metal2 0.001010 1.124985
report_hierarchy
Reports the reference hierarchy of the specified current instance or design.
Syntax
report_hierarchy
[-full]
[-noleaf]
[-nosplit]
Arguments
Description
If you set the current instance with the report_hierarchy command, the tool displays
reference libraries of the specified instance from the design. Otherwise, the tool generates
the report for the current design.
Examples
The following command displays the report for the current design:
starrc_shell> report_hierarchy -full
***************************************
Report : hierarchy
Design : middle
***************************************
FD2 tech_lib
ND2 tech_lib
inter
low
NR4 tech_lib
low
NR4 tech_lib
report_instance_coordinate
Reports the bounding box of the specified instance.
Syntax
report_instance_coordinate -of_objects
Arguments
Examples
The following examples shows the report_instances command report:
starrc_shell> report_instance_coordinate -of M0
*********************************************************************
Report : Instances summary
Design : add4
Version: U-2022.12-SP4
Date : Tue May 11 15:11:19 2023
report_instances
Creates a collection of the instances (cells) associated with one or more nets. Valid only
for transistor-level GPDs.
Syntax
report_resistors
[-filter expression]
Arguments
-filter list Nets for which to report the cells. Can be a single net
or a space-delimited list of nets inside double quotation
marks. Wildcard * is supported.
Description
The command reports all attributes of the instances with the same format as the instance
section of a SPF file. Reports instances with their name, pin or port names, model name,
and their properties. Also, provides the location information of a device at the end of the
report if the device location is available.
Examples
The following examples shows the report_instances command report:
starrc_shell> report_instances -filter “width>0.2 || model_name=~*cap*”
starrc_shell> report_instances -filter “length<0.1 && nfin>5”
starrc_shell> report_instances -filter "properties_string=~*AREA*"
starrc_shell> report_instances -filter "orientation==90“
starrc_shell> report_instances -filter "name==M0"
starrc_shell> report_instances -filter
"name==\"XIsingle_cell<7>/XI58/XM0@7\""
****************************************
Report : Instances summary
Design : add4
Version: U-2022.12-SP4
Date : Tue May 11 15:11:19 2023
See Also
• get_instances
report_length_layerwise
Reports the distribution of length with respect to layers for specified nets.
Syntax
report_length_layerwise -of_objects nets
Arguments
-of_objects nets list Nets for which to report lengths. Can be a single net or
a space-delimited list of nets inside double quotation
marks. Wildcard * is supported.
Description
To use this command, you must set the NETLIST_TAIL_COMMENTS: YES command to
perform the original extraction and save the required information in the netlist file.
For detailed information to use the command, see the StarRC User Guide and Command
Reference.
Examples
The following example shows a net length report. The report contains a section for each
specified net with a list of layers and the length of the specified net on each layer.
starrc_shell> report_length_layerwise -of_objects "SUM0 B0"
=================================
Net: SUM0
Report: Layerwise length of net
=================================
metal1 21u
metal2 55.5u
=================================
Net: B0
Report: Layerwise length of net
=================================
metal1 252.5u
metal2 113u
poly 189u
report_net_connectivity
Reports the ports, instances, and cells connected to the specified nets.
Syntax
report_net_connectivity list or collection of nets
Examples
The following example shows a detailed connectivity report for nets with escape
characters.
starrc_shell> report_net_connectivity [get_nets -exact {net\\[0\\]}]
=============================
Net: count_en
Report Type: Net Connectivity
=============================
-------- --------- ------------ ------------
*P Name Direction x-coordinate y-coordinate
-------- --------- ------------ ------------
count_en in 492400.000000 400.000000
-------- ----------- ---- ------------ -----------
*I Name Direction Cell x-coordinate y-coordinate
-------- --------- ---- ------------ -----------
U86/A in U86 342000.000000 254600.000000
U87/A in U87 319600.000000 254000.000000
---- ---------------- ---------------- ---------------- ----------------
Cell x-coordinate min y-coordinate min x-coordinate max y-coordinate max
---- ---------------- ---------------- ---------------- ----------------
U86 342000.00 254600.00 345200.00 257200.00
U87 312600.00 254000.00 319600.00 258950.00
Where,
• *P report has pin names, direction, and x and y coordinates.
• *I report has port names, direction, cell name, and x and y coordinates.
• Cell report has cell names, and x and y coordinates of bounding box.
Figure 42 and Figure 43 show reports for gate-level and transistor-level GPD flows,
respectively.
report_nonphysical_resistors
Reports the nonphysical resistors associated with the specified nets.
Syntax
report_nonphysical_resistors
-of_objects nets | -from node1 -to node2
[-verbose]
Arguments
-of_objects nets list Nets for which to report the nonphysical resistors. Can
be a single net or a space-delimited list of nets inside
double quotation marks. Wildcard * is supported.
-from node1 string Specifies a pin, port, or net internal node. The tool
reports the nonphysical resistors for paths between this
node and the node specified in the -to option, which
must both belong to the same net.
-to node2 string Specifies a pin, port, or net internal node. The tool
reports the nonphysical resistors for paths between this
node and the node specified in the -from option.
Description
You must use either the -of_objects option or both the -from and -to options.
To use this command, you must set the NETLIST_TAIL_COMMENTS: YES command to
perform the original extraction and save the required information in the netlist file.
For detailed information to use the command, see the StarRC User Guide and Command
Reference.
Examples
The following example shows a default nonphysical resistor report.
starrc_shell> report_nonphysical_resistors -of_objects min_lsb[5]
******************************************
Report : Non-Physical Resistors Net Based summary
Design : toprt
Version: Q-2019.12
Date : Mon Nov 11 17:14:53 2019
******************************************
Net: min_lsb[5]
******************************************
Report : Non-Physical Resistors Net Based detailed
Design : toprt
Version: Q-2019.12
Date : Mon Nov 11 17:15:12 2019
******************************************
Net: min_lsb[5]
report_P2P_ElmoreDelay
Reports point-to-point resistance and Elmore delay distribution information for the
specified nets.
Syntax
report_P2P_ElmoreDelay
[-of_objects objects]
[-limit]
Arguments
Examples
The following example calculates and reports the point-to-point resistance and Elmore
delay distribution for the specified nets:
starrc_shell> report_P2P_ElmoreDelay -of S
**************************************************
Report : report_P2P_ElmoreDelay
Version: U-2022.12-Sp4
Date : Wed May 17 15:12:32 2023
**************************************************
Net : S
report_p2p_per_layer
Reports point-to-point resistance for layers.
Syntax
report_p2p_per_layer
-from node1
-to node2
[-use_spf_unit]
[-raw]
Arguments
-from string Specifies a pin, port, or net internal node as the path
startpoint.
-to string Specifies a pin, port, or net internal node as the path
endpoint.
Description
To use this command, you must:
• Set the NETLIST_TAIL_COMMENTS: YES command to perform the original extraction
and save the required information in the netlist file.
• Use the -from and -to options together.
For detailed information to use the command, see the StarRC User Guide and Command
Reference.
Examples
The following example shows a point-to-point resistance for the specified layers.
starrc_shell> report_p2p_per_layer -from ABC1 -to ABC2
**************************************************
Report : point to point resistance per layer
Design : TEST
Version: U-2022.12-Sp4
Date : Wed May 17 15:12:32 2023
**************************************************
Net : I
From: I
To : M0/GATE
report_parasitics_profile
Reports the parasitic profile, including point-to-point resistance, Elmore delay, and total
capacitance of specified nets.
Syntax
report_parasitics_profile
-of_objects nets
[-limit]
[-tcap_thres]
[-output_file]
Arguments
Examples
The following example shows the parasitics profile report.
starrc_shell> report_parasitics_profile -of_objects
*************************************************************
Report : Pin1 Pin2 Netname P2P_res Elmore_delay Total_net_cap
Design : TEST
Version: U-2022.12-SP4
Date : Mon Nov 15 12:45:00 2023
*************************************************************
report_ratio_aggressor_signal_coupling_to_ground_coupling
Reports aggressors signal coupling to ground coupling ratio of a net. Valid in both gate-
level and transistor-level GPD flows.
Syntax
report_ratio_aggressor_signal_coupling_to_ground_coupling
-of_objects
[-supply_nets]
[-ts_signal_nets]
[-shielding_net]
[-power_ratio]
Arguments
Description
The aggressor signal coupling to ratio of a net is calculated as follows:
where
• CC_power: Coupling capacitance of the target thermal sensitive net to the PG nets.
• CC_signal: Coupling capacitance of the target thermal sensitive net to signal nets
other than the thermal sensitive nets.
• CC_shielding: Coupling capacitance of the target thermal sensitive net to a VSS net
that shields the thermal sensitive nets.
Examples
The following example shows a default coupling capacitor report.
starrc_shell> report_ratio_aggressor_signal_coupling_to_ground_coupling /
-of_objects B0 -ts_signal_nets A0 -shielding_net VSS -supply_nets VDD
================================
Ratio of bad cap to good cap on net : B0
0.086%
report_point_to_point_resistance
Reports the point-to-point resistance (in kohm) for all combinations of pins and instance
ports of the specified nets.
Syntax
report_point_to_point_resistance
-of_objects nets
[-limit no_pairs]
[-merge_parallel]
Arguments
-of_objects nets list Nets for which to report point-to-point resistance. Can
be a single net or a space-delimited list of nets inside
double quotation marks. Wildcard * is supported.
-limit no_pairs integer Maximum number of resistances to report for each net
Default: 1000
Examples
The following example shows a point-to-point resistance report.
starrc_shell> report_point_to_point_resistance \
-of_objects min_msb/conv_blk1/n105 -limit 3
**************************************************
Report : Point to Point Resistance
Design : toprt
Version: Q-2019.12
Date : Mon Nov 11 12:45:00 2019
**************************************************
Net: min_msb/conv_blk1/n105
**************************************************
Report : Point to Point Resistance
Version: U-2022.12-SP4
Date : Mon May 11 12:45:00 2023
**************************************************
Net: abc_lo_n
**************************************************
Report : Point to Point Resistance
Version: U-2022.12-SP4
Date : Mon May 11 12:45:00 2023
**************************************************
Net: abc_lo_n
Pin1 Pin2 P2P R
======== ======================== ========
IREF_1uA XIOSC_IREF_COMP_OPA/XM66/D 0.027471
report_resistors
Reports the parasitic resistors for specified nets.
Syntax
report_resistors
-of_objects | -from node1 -to node2 [-verbose]
[-use_spf_unit]
[-raw]
Arguments
-of_objects nets list Nets for which to report the parasitic resistors. Can be a
single net or a space-delimited list of nets inside double
quotation marks. Wildcard * is supported.
-from node1 string Specifies a pin, port, or net internal node. The tool
reports the parasitic resistors between this node and
the node specified in the -to option, which must both
belong to the same net.
-to node2 string Specifies a pin, port, or net internal node. The tool
reports the parasitic resistors between this node and
the node specified in the -from option.
Description
The parasitic resistor report is based on either nets (using the -of_objects option) or on
paths (using the -from and -to options).
You must use either the -of_objects option or both the -from and -to options.
Examples
The following example shows a path-based parasitic resistor report.
starrc_shell> report_resistors -from 0/33/M2/s -to SUM0:12
================================
Net: SUM0
From: 0/33/M2/s
To: SUM0:12
The following example shows a verbose parasitic resistor report. Values for the
resistor length and width are available only if the extraction was performed with the
NETLIST_TAIL_COMMENTS command set to YES. Values for the bounding box coordinates
are available only if the extraction was performed with the EXTRA_GEOMETRY_INFO
command set to RES.
starrc_shell> report_resistors -of_objects SUM0 -verbose
=================================
Net: SUM0
Report Type: Resistors, Net Based, detailed
=================================
Node1 Node2 Resistance Layer Length Width Area llx lly urx ury
===== ===== ========== ===== ====== ===== ==== === === === ===
SUM0 SUM0:6 0.000357 metal2 NA NA NA NA NA NA NA
SUM0 SUM0:7 0.000031 metal2 NA NA NA NA NA NA NA
0/33/M2/s SUM0:11 0.000550 SUBSTRATE NA NA NA NA NA NA NA
0/33/M1/s SUM0:15 0.000550 SUBSTRATE NA NA NA NA NA NA NA
report_total_net_capacitance
Reports the total capacitance of the specified nets.
Syntax
report_total_net_capacitance nets
[-nets net_name]
[-layer layer1]
[-skip_power_nets]
[-use_spf_unit]
[-raw]
Arguments
nets list Nets for which to report the total capacitance. Can be a
single net or a space-delimited list of nets inside double
quotation marks. Wildcard * is supported.
-skip_power_nets n/a Does not report power nets; wildcards are supported.
Description
For the layer report, set the EXTRA_GEOMETRY_INFO: NODE command to extract the values
of the bounding boxes for nodes. For detailed information to use the command, see the
StarRC User Guide and Command Reference.
Examples
The following example shows a total net capacitance report.
starrc_shell> report_total_net_capacitance "SUM0 B0"
*************************************
Report : Total Capacitance
Design : toprt
Version: Q-2019.12
Date : Thu Nov 7 15:50:45 2019
*************************************
======== =================
Net Name Total Capacitance
======== =================
SUM0 0.013721
B0 0.089779
report_rc_components
Reports the RC contributions of the specified nets.
Syntax
report_rc_components -of_objects nets
Arguments
-of_objects nets list Nets for which to report the RC components. Can be a
single net or a space-delimited list of nets inside double
quotation marks. Wildcard * is supported.
Description
To use this command, you must specify the following commands:
• Set the NETLIST_TAIL_COMMENTS: YES command to perform the original extraction
and save the required information in the netlist file.
• Set the EXTRA_GEOMETRY_INFO: NODE command to extract the values of the bounding
boxes for nodes.
For detailed information to use the commands, see the StarRC User Guide and Command
Reference.
Examples
The following example shows an RC component report. The report contains a section for
each specified net.
starrc_shell> report_rc_components -of_objects min_lsb_led[5]
***********************************
Report : RC Components
Design : toprt
Version: Q-2019.12
Date : Tue Nov 12 13:23:45 2019
***********************************
Net: min_lsb_led[5]
Total Resistance: 0.152999 kohms
Total Capacitance: 0.057662 pF
report_rc_corner_ratios
Reports the nets with the largest ratio of parasitics between corners. Valid only for
transistor-level GPDs.
Syntax
report_rc_corner_ratios -parasitic_corners corner1 corner2
[-type object]
[-nworst n1]
[-nbest n2]
Arguments
-parasitic_corners string Two corners for which to report the nets with the largest
corner1 corner2 capacitance ratio.
-type object string Specifies the type of parasitic object to compare. Valid
values are ground_capacitor, coupling_capacitor,
resistor. The default is ground_capacitor.
-nworst n1 integer Specifies to report the largest ratios and the number of
nets to report.
-nbest n2 integer Specifies to report the smallest ratios and the number of
nets to report.
Description
If neither the -nbest or -nworst options is specified, the default is -nworst 100.
For each net, the ratio is the capacitance (or resistance) for corner 1 divided by the
capacitance (or resistance) for corner 2.
Examples
The following example shows a coupling capacitance report for corners typ and max,
listing the 100 worst ratios.
starrc_shell> report_rc_corner_ratios -parasitic_corners {typ max}\
-type coupling_capacitor
**************************************
Report : RC Corner Ratios
Design : toprt
Version: Q-2019.12
Date : Wed Nov 13 8:12:22 2019
**************************************
Net Ratio
=== =====
sec_msb/cnt_blk1/n181 1.054146
min_msb/cnt_blk1/n224 1.052174
min_msb_led[3] 1.051689
min_msb/conv_blk1/n122 1.050078
...
The following example shows a coupling capacitance report, listing only the 10 best ratios.
starrc_shell> report_rc_corner_ratios -parasitic_corners {typ max}\
-type coupling_capacitor -nbest 10
**************************************
Report : RC Corner Ratios
Design : toprt
Version: Q-2019.12
Date : Wed Nov 13 9:18:02 2019
**************************************
Net Ratio
=== =====
min_msb/conv_blk1/n107 0.903774
min_msb/conv_blk1/n125 0.904806
min_lsb_led[0] 0.905907
min_lsb/conv_blk1/n89 0.906986
sec_msb/conv_blk1/n54 0.907177
min_lsb/cnt_blk1/n196 0.908030
min_lsb/conv_blk1/n97 0.908989
min_lsb_lef[4] 0.909031
min_msb/n128 0.909055
sec_msb/conv_blk1/n50 0.909223
------------------------------------------------
report_routed_nets
Reports the nets routed on specified layers and the total capacitance values of those nets.
Syntax
report_routed_nets -layer layers
Arguments
-layer layers list Layers for which to report the routed nets. Can be a
single layer or a space-delimited list of layers inside
double quotation marks. Wildcard * is supported.
Description
To use this command, you must specify the following commands:
• Set the NETLIST_TAIL_COMMENTS: YES command to perform the original extraction
and save the required information in the netlist file.
• Set the EXTRA_GEOMETRY_INFO: NODE command to extract the values of the bounding
boxes for nodes.
For detailed information to use the commands, see the StarRC User Guide and Command
Reference.
Examples
The following example shows a routed net report. The report contains a section for each
specified layer with a list of nets, the total capacitance for each net, and the percentage
contribution of the layer to the total capacitance.
starrc_shell> report_routed_nets "metal2 metal3"
============================================
Total number of nets routed on metal2: 16
============================================
Net Name Total Capacitance metal2 Capacitance %metal2/Ct
======== ================= ================== ==========
A0 0.092668 0.012534 13.525705
A1 0.092722 0.012547 13.531848
A2 0.092721 0.012547 13.531994
A3 0.092718 0.012544 13.529196
B0 0.089779 0.012808 14.266142
...
scale_parasitics
Uses the Parasitic Explorer tool commands to scale parasitics.
Syntax
scale_parasitics
[-config file_name]
[-wildcard YES | NO]
[-case_sensitive YES | NO]
Arguments
-config file_name string The file includes syntax of options and arguments to
specify the scaling factors and required information for
the scaling resistance and capacitance.
The following options and arguments should be included in the configuration file specified with the
-config option:
-res_factor integer Specify the scaling factor for resistance. If the scale
resistance_factor factor is not specified, the tool sets the scale factor to 1.
-from node1 string Specify the startpoint, which is a pin, port, or net
internal node. The tool returns the coupling capacitors
between this node and the node specified in the -to
option, both nodes should belong to the same net.
-to node2 string Specify the endpoint, which is a pin, port, or net internal
node. The tool returns the coupling capacitors between
this node and the node specified in the -from option,
both nodes should belong to the same net.
-layer layer_name string Specify the layer name for mapping design layers.
If you use the -from and -to options to specify a pin,
port, or net, the tool ignores the layers specified with the
-net_list option.
Description
The scale_parasitics command allows you to specify a configuration file to scale the
scaling factors for resistance and capacitance, based on nets, point-to-point resistance,
capacitance, and layers.
Note that temperature sensitivity analysis, layer mapping, and tail comments are not
supported with RC scale factors during simultaneous multicorner (SMC) extraction.
The following is an example that shows the syntax within the configuration file:
-net_list net_name -res_factor res_factor -cc_factor cc_factor \
-gc_factor gc_factor
-net_list net name -res_factor res_factor2 -cc_factor cc_factor2 \
-gc_factor gc_factor2
-net_list net name -from node1 -to node2 -res_factor res_factor \
-cc_factor cc_factor -gc_factor gc_factor
corner_start corner_name
-net_list net_name -res_factor res_factor -cc_factor cc_factor \
-gc_factor gc_factor
-net_list net name -from pin1/port1/node1 -to pin2/port2/node2 \
-res_factor res_factor
-cc_factor cc_factor -gc_factor gc_factor
-layer layer_name -res_factor res_factor -cc_factor cc_factor \
-gc_factor gc_factor
corner_end
corner_start *
-net_list net_name -res_factor res_factor -cc_factor cc_factor \
-gc_factor gc_factor
-net_list net name -from pin1/port1/node1 -to pin2/port2/node2
-res_factor res_factor \
-cc_factor cc_factor -gc_factor gc_factor
-layer layer_name -res_factor res_factor -cc_factor cc_factor \
-gc_factor gc_factor
corner_end
Examples
The following example shows how to use the scale_parasitics and write_parasitics
commands:
# Use the Parasitic Explorer commands to specify scale factors for the
parasitics.
starrc_shell> scale_parasitics -config
# Use the Parasitic Explorer commands to write out the GPD file after RC
scaling.
starrc_shell> write_parasitics -pe -format gpd test.gpd
See Also
• write_parasitics
• Setting Up the Gate-Level Flow
set_layout_database_options
Specifies options for loading the layout of the design to be analyzed.
Syntax
set_layout_database_options
[-physical_tech_lib_path file_name_list]
[-physical_lib_path file_name_list]
[-physical_design_path file_name_list]
[-physical_icc2_lib lib_dir_path]
[-physical_icc2_blocks block_name_list]
[-physical_enable_clock_data]
[-physical_enable_all_vias]
Arguments
-physical_tech_ list For LEF/DEF designs, a list of LEF technology files. The
lib_path technology LEF files are used to understand the physical
file_name_list constraints, including layer definitions, via definitions, via
rules, and overlapped layer constructs. If multiple LEF files
are in use, specify the technology LEF files before the cell
LEF files.
-physical_lib_path list For LEF/DEF designs, a list of LEF library files. The physical
file_name_list library data is used to understand physical constraints such
as the shapes of pins, cells, and blocks.
-physical_design_path list For LEF/DEF designs, a list of DEF physical data files.
file_name_list The data is used to understand the layout details such as
available free sites and utilization density.
-physical_icc2_lib string For NDM format IC Compiler II designs, the reference library
lib_dir_path directory path. All technology and cell LEF information is
obtained from reference libraries in this directory.
You can specify additional LEF files with the
-physical_lib_path option.
Only one reference library directory can be specified
with this option. To use more than one reference
library directory, use multiple instances of the
set_layout_database_options command.
-physical_enable_ none Enables the use of physical data for clock networks. Without
clock_data this option, clock nets are ignored.
-physical_enable_ none Enables the use of physical data for all vias.
all_vias
Description
The set_layout_database_options command specifies the design to be analyzed.
For LEF/DEF designs, you must use the -physical_tech_lib_path,
-physical_lib_path, and -physical_design_path options.
For NDM designs, you must use the -physical_icc2_lib and -physical_icc2_blocks
options. You can optionally use the -physical_lib_path option.
Some of these options take a list of files as an argument. The Tcl syntax provides several
ways to express a list, including the following:
• Enclose the list within curly braces. For example:
-physical_icc2_blocks {block1 block2 block3}
• Enclose the list within square brackets and include the string “list”. For example:
-physical_icc2_blocks [list block1 block2 block3]
If a list contains only a single item, you can use the item without braces or brackets. The
following examples are all acceptable:
-physical_icc2_blocks block1
-physical_icc2_blocks {block1}
-physical_icc2_blocks [list block1]
If a list is long, use the backslash (\) character to indicate continuation to the next line.
For clarity, you might want to place each list item on a separate line; however, spaces are
acceptable delimiters between list items. For example:
-physical_icc2_blocks {block1 \
block2 block3 \
block4}
set_power_ground_nets
Ignores the resistance of power and ground nets.
Syntax
set_power_ground_nets
[-nets net_name]
[-case_sensitive YES | NO]
[-disable]
[-enable]
Arguments
-nets string Specifies the power and ground nets; wildcards are
supported.
starrc_gpd_read_opens_shorts
Creates an error file that contains information in the vicinity of opens and shorts for
specified nets or regions.
Syntax
starrc_gpd_read_opens_shorts
[-gpd gpd_dir]
[-error_file err_file]
[-window bbox]
[-type err_type]
[-limit limit]
[-add_gui_selection]
[-add_net_attributes option]
[-nets net_name]
[-summary_view]
[-shorts_types err_type]
Arguments
-gpd gpd_dir string The GPD generated from the StarRC extraction. The
argument is the GPD directory.
-error_file err_file string An optional file name for the opens and shorts
information; the default is starrc_openshort.err.
-window bbox list The design region to load. If this option is not used,
the entire database is loaded. The argument is
a list {x1,y1,x2,y2}, where x1 and y1 define the
lower-left corner of the region and x2 and y2 define the
upper-right corner.
-type err_type string Specifies which errors to analyze. Valid values are
open, short, and all (default).
-add_gui_selection Boolean If used, nets with opens and shorts are highlighted
when the GUI is started. On by default.
-nets net_name string Nets for which to save extra information around opens
and shorts. Can be a single net or a space-delimited
list of nets inside double quotation marks. Wildcard * is
supported.
-summary_view string Each type of shorts and opens errors gets distinctive
color of X marker to categorize the errors. See
Managing Open and Short Errors Using Summary
View.
Description
The starrc_gpd_read_opens_shorts command creates an error file that contains
detailed information in the vicinity of opens and shorts for specified nets or regions. The
GPD and the star directory created after a StarRC extraction run are the sources of the
design information. The Parasitic Explorer error browser then uses the generated error file
to display layout information for the selected nets or regions.
Examples
The following example lists only those number of opens errors that fit within the specified
design region (bounding box) in the Error Browser GUI:
starrc_shell> starrc_gpd_read_opens_shorts -gpd top.gpd -window
0,0,10000,5000 -type open
The following example lists only those number of shorts errors that fit within the specified
design region (bounding box) in the Error Browser GUI, where the shorts errors types are
net unselectable, nonselected, blockage, and power:
starrc_shell> starrc_gpd_read_opens_shorts -gpd top.gpd -window
0,0,10000,5000 -type short \
-short_types (net unselectable nonselected blockage power)
The following example lists all shorts errors of the blockage type in the summary view:
starrc_shell> starrc_gpd_read_opens_shorts -gpd top.gpd -summary_view
-type short -short_types blockage
The following example lists only that number of shorts errors that fit within the specified
design region (bounding box) in the summary view:
starrc_shell> starrc_gpd_read_opens_shorts -gpd top.gpd -summary_view
-type short -window 0,0,10000,5000
If you want to view all shorts and opens errors from the actual extracted database, instead
of limiting only to the list of specified nets, use the commands as shown in the following
example::
% StarXtract star_cmd
% StarXtract -write_short_regions -nets_file nets_file star_cmd
starrc_shell> starrc_gpd_read_opens_shorts -gpd <gpd_directory>
-error_file error_file.txt
Before invoking the StarRC shell, use the StarXtract command to access the
original GPD directory and add more nets to see additional errors. Then, use the
starrc_gpd_read_opens_shorts command to view open and short errors in the Error
Browser GUI.
See Also
• Analyzing Open and Short Errors
• Managing Open and Short Errors Using Summary View
• Viewing and Analyzing Open and Short Errors
start_gui
Invokes the Parasitic Explorer graphical user interface. The gui_start command is
equivalent to the start_gui command.
write_parasitics
Writes a GPD file that is read by the Parasitic Explorer tool.
Syntax
write_parasitics
[-pe]
[-format file_format]
Arguments
Description
The write_parasitics command writes the GPD file after RC scaling in the Parasitic
Explorer tool.
starrc_shell> write_parasitics -pe -format gpd test.gpd
See Also
• scale_parasitics
Supported Commands
add_to_collection parallel_foreach_in_collection
alias parse_proc_arguments
all_inputs post_eval
all_outputs print_suppressed_messages
append_to_collection printenv
apropos printvar
complete_net_parasitics proc_args
copy_collection proc_body
cputime query_objects
quit
current_design read_parasitics
current_instance redirect
date remove_annotated_parasitics
define_proc_attributes remove_design
echo remove_from_collection
error_info remove_host_options
exit remove_license
filter_collection remove_license_limit
find remove_user_attribute
foreach_in_collection rename
get_app_var report_annotated_parasitics
Supported Commands
get_attribute report_app_var
get_cells report_attribute
get_command_option_values report_hierarchy
get_defined_attributes report_host_usage
get_defined_commands report_license_limit
get_designs report_units
get_license set_app_var
get_message_ids set_host_options
get_nets set_license_limit
get_pins set_units
get_ports set_user_attribute
getenv setenv
help sh
history sizeof_collection
index_collection sort_collection
is_false source
is_true start_hosts
list_attributes start_profile
list_designs stop_hosts
list_key_bindings stop_profile
list_licenses suppress_message
lminus unalias
ls unsuppress_message
man which
mem write_app_var
Supported Commands
parallel_execute write_parasitics