App Note ICC2 RedHawk 2017.09-SP3
App Note ICC2 RedHawk 2017.09-SP3
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 company and certain product names are trademarks of Synopsys, as set forth at
http://www.synopsys.com/Company/Pages/Trademarks.aspx.
All other product or company names may be trademarks of their respective owners.
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.
Synopsys, Inc.
690 E. Middlefield Road
Mountain View, CA 94043
www.synopsys.com
RedHawk Analysis Fusion 1
The RedHawk™ power integrity solution is integrated with the IC Compiler II implementation
flow through the RedHawk Analysis Fusion interface. You can use the RedHawk Analysis
Fusion feature for rail analysis at different points in the physical implementation flow after
power planning and initial placement are completed. This enables you to detect potential
power network issues before you perform detail routing and thus significantly reduce the
turnaround time of the design cycle.
When global routing is complete, use RedHawk Analysis Fusion to verify the robustness of
the power and ground routing network. When placement is complete, use RedHawk
Analysis Fusion to perform voltage drop analysis to calculate power consumption and to
check for voltage drop violations. You can perform voltage drop analysis at other stages in
the design flow, such as after detail routing. When chip finishing is complete, use RedHawk
Analysis Fusion to perform electromigration analysis to check for current density violations.
This document describes how to use the RedHawk Analysis Fusion feature to perform rail
analysis in the IC Compiler II environment. For a detailed description about the RedHawk
analysis flows and commands, see the RedHawk User Manual.
This chapter includes the following topics:
• Overview
• Prerequisites for RedHawk Analysis Fusion
• Preparing RedHawk Design and Input Data
• Specifying Ideal Voltage Sources as Taps
• Missing Vias and Floating Pins Checking
• Performing RedHawk Voltage Drop Analysis
• Performing RedHawk Electromigration Analysis
• Performing Minimum Path Resistance Analysis
• Appendix: Frequently Asked Questions
Overview
RedHawk Analysis Fusion rail analysis supports gate-level rail analysis capabilities,
including both static and dynamic rail analysis. You can use RedHawk Analysis Fusion
analysis to perform the following types of rail analysis in the IC Compiler II environment:
• Missing vias and floating pin shapes checking
To check for missing vias or unconnected pin shapes in the design, you must first
configure the checking-related settings by using the set_missing_via_check_options
command, and then perform the check by using the analyze_rail
-check_missing_via command.
For more information about checking for missing vias and floating pins in the design, see
Missing Vias and Floating Pins Checking.
• Voltage drop analysis
To perform voltage drop analysis, use the analyze_rail -voltage_drop command or
choose Rail > Analyze Rail and select “Voltage drop analysis” in the GUI.
Set the -voltage_drop option to static, dynamic, dynamic_vcd, or
dynamic_vectorless to choose the type of analysis you want to perform.
For more information about performing voltage drop analysis, see Performing RedHawk
Voltage Drop Analysis.
• Electromigration analysis
To perform electromigration analysis, use the analyze_rail -electromigration
command.
For more information about performing electromigration analysis, see Performing
RedHawk Electromigration Analysis.
• Minimum path resistance analysis
To perform minimum path resistance analysis, use the analyze_rail
-min_path_resistance command.
For more information about performing minimum path resistance analysis, see
Performing Minimum Path Resistance Analysis.
Overview 2
IC Compiler II RedHawk Analysis Fusion Release Notes Version N-2017.09-SP3
Figure 1 shows where you would use these analysis capabilities in the typical design flow.
Figure 1 Using RedHawk Analysis Fusion in the IC Compiler II Design Flow
Design planning
place_opt Static voltage
drop analysis
Power-switch cell insertion
Static voltage
drop analysis Filler cell insertion
Initial placement
clock_opt Dynamic voltage
drop analysis
Find missing vias
route_opt
Electromigration analysis
and fixing
Overview 3
IC Compiler II RedHawk Analysis Fusion Release Notes Version N-2017.09-SP3
IC Compiler II
analyze_rail
Map display/
Result query
IC Compiler II
RedHawk
rail database
GSR/Tcl script
LEF, DEF, SPEF,
open_rail_result timing and
power data
Analysis reports,
maps, errors
RedHawk
rail analysis
Overview 4
IC Compiler II RedHawk Analysis Fusion Release Notes Version N-2017.09-SP3
Overview 5
IC Compiler II RedHawk Analysis Fusion Release Notes Version N-2017.09-SP3
License Requirements
You must have the following license to invoke the RedHawk tool within the IC Compiler II
tool:
ICCompilerII-AF
ICCompilerII-AFN
SNPS_INDESIGN_RH_RAIL
The following RedHawk features are not supported with the SNPS_INDESIGN_RH_RAIL
license key:
• Hierarchical designs with more than three levels of hierarchy
• Dynamic rail analysis with lumped or SPICE packages
• Signal electromigration
• In-rush current analysis
If you have the RedHawk licenses for other signoff analysis capabilities, such as analyzing
hierarchical designs or performing dynamic analysis with lumped or SPICE packages,
1. Modify your GSR file or RedHawk run script to include the related configuration settings.
2. Set the following application option to enable the RedHawk signoff features:
icc2_shell> set_app_options \
-name rail.allow_redhawk_license_checkout –value true
Note:
RedHawk Analysis Fusion does not have interface to support signal electromigration
and in-rush current analysis features. You cannot display the RedHawk signoff
analysis results in the IC Compiler II GUI.
Table 1 Required Input Data for Static and Dynamic Rail Analysis
Example:
icc2_shell> set_app_options -name rail.enable_redhawk -value true
icc2_shell> set_app_options –name rail.redhawk_path \
–value /tools/RedHawk_Linux64e5_V19.0.2p2/bin
RedHawk Analysis
Fusion cell.used_power
installation RAIL_CHECKING_DIR
libcell.apl_current
directory
libcell.apl_cap
...
RAIL_DATABASE
fusion.redhawk
design_name
For example, the tool generates the following report files in the RAIL_CHECKING_DIR
directory when static rail analysis is run:
❍ libcell.apl_current
❍ libcell.apl_cap
❍ libcell.missing_liberty
• RAIL_DATABASE: The directory where RedHawk Analysis Fusion saves and retrieves
results and log files that are generated during supply net extraction, power calculation,
and rail analysis.
This directory contains the following subdirectories:
❍ in-design.redhawk: The directory where the tool saves the input files.
❍ design_name: The directory where the tool writes and retrieves analysis results. For
example, running the open_rail_result command loads the data in this
design_name directory for displaying maps in the GUI.
rail.tech_file Specifies the Apache technology file for performing power and
ground extraction and electromigration analysis.
Example:
icc2_shell> set_app_options -name rail.tech_file \
-value ChipTop.tech
Table 2 Application Options for Specifying Design and Input Data (Continued)
rail.apl_files Specifies the Apache APL files, which contain current waveforms and
intrinsic parasitics for performing dynamic rail analysis.
Example:
icc2_shell> set_app_options -name rail.apl_files \
-value {cell.current current cell.cdev cap}
rail.lef_files (Optional) Specifies a list of LEF files if available. When not specified,
the IC Compiler II tool generates one using the data in the design
library.
rail.def_files (Optional) Specifies a list of DEF files. When not specified, the IC
Compiler II tool generates one using the available data in the design
database.
rail.sta_file (Optional) Specifies the RedHawk static timing file (STA), which
contains the final slew and delay information. When not specified, the
IC Compiler II tool generates the static timing window information
using the data in the design library.
rail.spef_files (Optional) Specifies a list of SPEF files, which contain the detailed
resistive and capacitive loading data of the signal nets. When not
specified, the IC Compiler II tool generates the SPEF file using the
data in the design library.
The following example creates taps on all power and ground pins of all cell instances that
match the *power_pad_cell* pattern.
icc2_shell> create_taps -of_objects [get_cells -hier *power_pad_cell*]
The following example shows how to import taps from a tap file in which lumped RLC is
defined:
icc2_shell> exec cat tap_file_rlc
VDD 3 500.000 500.000 R(1.0) L(1.0e-9) C(2.0e-12)
VSS 5 500.000 500.000
icc2_shell> create_taps -import tap_file_rlc
You can specify a name for the created tap point with -name tap_name option. If the
specified name is already present in the design, the tool issues a warning message, and
replaces the original one with the new one. When you create multiple tap points by a single
invocation of the create_taps command, all of the created taps are named by using the
tap_name_NNN naming convention, where NNN is a unique integer identifier and tap_name
is the string argument to the -name option.
When creating taps, by default the create_taps command checks whether the physical
location touches a layout shape. To place taps outside a shape without issuing a warning
message, disable the checking by using the -nocheck option.
To find a substitute location for the invalid taps, rerun the create_taps command with the
-snap_distance option.
Example:
icc2_shell> create_taps -point { 2056.818 1515.832 } \
-layer 38 -supply_net DVSS -snap_distance 100
For more information, see Validating Taps and Finding Invalid Taps.
Validating Taps
When creating taps, by default the create_taps command checks whether the physical
location, specified by the -point and -layer options, touches a layout geometry. If the
defined tap point does not touch any layout, the tool issues a warning message. To place
taps outside a shape without issuing a warning message, disable the checking by using the
-nocheck option.
Tap Attributes
During validation checking, each tap object inserted in the current session is marked with
the is_valid attribute to indicate its validity status. When validation checking is enabled,
the attribute value is YES for valid taps and NO for invalid taps. When validation checking is
disabled, the attribute value is UNKNOWN for all taps.
To check the attribute value for a tap, use the get_attribute [get_taps] is_valid
command.
The tool updates the tap attributes in the subsequent voltage drop and minimum path
resistance analyses. Each tap belonging to the power and ground nets is checked against
the extracted shape. When the analysis is complete, the tool updates the tap validity status
based on the rail analysis results.
Example
The following command creates a tap with the -nocheck option enabled. No warning
message is issued.
icc2_shell> create_taps -supply_net VDD -layer 3 \
-point {100.0 200.0} -nocheck
The following command creates the 101st tap point. No warning message is issued since
only the first 100 taps are checked:
icc2_shell> create_taps -supply_net VDD -layer 3 -point {100.0 200.0}
The following example creates taps using the create_taps command with the -nocheck
option.
icc2_shell> create_taps -nocheck -point {100 200} -layer M1 \
-supply_net VDD
icc2_shell> create_taps -nocheck -point (150 250} -layer M2 \
-supply_net VSS
5. Insert PG vias to fix the reported missing vias, as described in Fixing Missing Vias.
To remove the filter options set the set_missing_via_check_options command, use the
remove_missing_via_check_options command.
Option Description
-redhawk_script_file Uses an existing RedHawk script file for the missing via
check.
Option Description
-gds Flags missing vias that are inside the GDS block region
and are in routes across the GDS blocks. By default, the
missing via check ignores items that are inside or
overlapped a GDS2DEF or GDSMMX block.
Lists the instances that are physically unconnected to the power nets
• design_name.GND.unconnect
Lists the instances that are physically unconnected to the ground nets
• design_name.PinInst.unconnect
Lists the pin instances that are physically unconnected to the power and ground nets
• design_name.PinInst.unconnect.logic
Lists the pin instances that are logically unconnected to the power and ground nets
Example
The following example sets a threshold value to compare voltages cross two ends of a via,
and runs the missing via check during static voltage drop analysis.
icc2_shell> set_missing_via_check_options -threshold voltage_value
icc2_shell> analyze_rail -check_missing_via -voltage_drop static
• voltage_drop_or_rise
• effective_voltage_drop
• minimum_path_resistance
• effective_resistance
• instance_minimum_path_resistance
• instance_power
• missing_vias
• unconnected_instances
In the output report file, the tool lists the error in different formats, based on the error types.
For example,
• For the missing_vias type, the format is
net_name via_location_x_y top_metal_layer bottom_via_layer
delta_voltage
• For the unconnected_instances error type where either or both of power and ground
nets are physically disconnected to ideal voltage sources, the format is
unconnection_type {net_names} instance_name instance bbox
• For the unconnected_instances type, the format depends on the error condition. If the
power or ground nets are either floating or are logically floating but physically connected
to ideal voltage sources, the format is
unconnection_type {net_names} instance_name:pin_name instance bbox
Example
The following example inserts PG vias for all error objects that are reported by the
analyze_rail -check_missing_via command:
icc2_shell> set errdm [open_drc_error_data rail_miss_via.VDD.err]
icc2_shell> set errs [get_drc_errors -error_data $errdm]
icc2_shell> fix_pg_missing_vias -error_data $errdm $errs
• Use the -nets option to specify the power and ground supply nets to analyze. The tool
considers all the switched or internal power nets of the specified power nets in the
analysis. You do not need to explicitly specify the internal power nets.
When the -nets option is specified, you need to specify at least one of the following
options: -min_path_resistance or -voltage_drop.
• (Optional) Use the -switching_activity option to specify an optional switching activity
file. The file_format argument can be VCD (a VCD file generated from a gate-level
simulation), SAIF, or ICC2_ACTIVITY.
A VCD or SAIF file can reference a top-level design in a different hierarchy than the one
used in the IC Compiler II session. The strip_path argument removes the specified
string from the beginning of the object name. Using this option modifies the object names
in the VCD or SAIF file to make them compatible with the object names in the design.
For more information about how to specify the switching activity file, see the related
sections in RedHawk User Guide.
• (Optional) By default, the tool uses the RedHawk power analysis feature to calculate the
power consumption of the specified power and ground network. If you prefer having the
IC Compiler II tool generate the necessary power data for rail analysis, set the
-power_analysis option to icc2.
For a detailed description about how to run power analysis using the IC Compiler II
report_power command, see the “Analyzing the Power” topic in IC Compiler II
Implementation User Guide.
For a detailed description about each option of the analyze_rail command, see the man
page.
Example
The following example performs static voltage drop analysis on the VDD and VSS nets with
the optional settings defined in a GSR configuration file.
icc2_shell> analyze_rail -voltage_drop static -nets {VDD VSS} \
-extra_gsr_option_file add_opt.gsr
The analyze_rail command generates the following files to invoke the RedHawk tool for
running rail analysis:
• The RedHawk run script (analyze_rail.tcl*)
• The RedHawk GSR configuration file (*.gsr)
RedHawk generates the following files when rail analysis is complete:
• The RedHawk analysis log (analyze_rail.log.*)
• Timing window file (*.sta)
• Signal SPEF files (*.spef)
• DEF/LEF files (*.def, *.lef) for the full-chip analysis
• Instance power files (*.ipf) if power analysis is done by the IC Compiler II tool. When
available, signal SPEF files are not required.
When voltage drop analysis is complete, the tool saves the analysis results (*.result) in the
current working directory. The rail analysis results are used to display maps and query
attributes to determine the problematic areas with huge voltage drops.
For reuse purposes, you can load the RedHawk Analysis Fusion analysis results back into
the IC Compiler II tool without rerunning the analysis.
The following example reopens the rail results that was generated in the previous rail
analysis run:
icc2_shell> set_app_options -name rail.enable_redhawk -value true
icc2_shell> open_rail_result
However, RedHawk Analysis Fusion does not support results that are generated by the
RedHawk tool outside of the IC Compiler II environment. The RedHawk dump icc2_result
command works only within the IC Compiler II session.
For more information about rail analysis results, see Working With the Rail Analysis Results.
• To write out the rail analysis cache, use the report_rail_result -type result_type
command. The result_type argument can be one of the following:
❍ missing_vias
❍ unconnected_instances
❍ instance_power
❍ effective_voltage_drop
The following example lists the calculated instance power values after voltage drop
analysis is finished.
icc2_shell> report_rail_result –type instance_power \
–supply_nets VDD output_files
• To query the results stored in the current rail results cache, use the get_attribute
commands to query the attributes shown in Table 4, which are specific to the rail analysis
results.
Table 4 Rail Result Object Attributes
Object Attributes
Cell static_power
Pin static_current
peak_current
static_power
switching_power
leakage_power
internal_power
min_path_resistance
voltage_drop
average_effective_voltage_drop_in_tw
max_effective_voltage_drop_in_tw
min_effective_voltage_drop_in_tw
effective_resistance
The following example shows the content of the effective voltage drop report:
#<cell_instance_pg_pin_name> <mapped_pg_pin_name>
#<supply_net_name> <average_effective_voltage_drop>
oai311d1_G1995/VDD VSS
VDD -5.096049979e-02
nr03d1_X1763/VDD VSS
VDD -4.986800253e-02
nr13d1_Y1763/VDD VSS
VDD -4.956080019e-02
nd02d0_A2247/VDD VSS
VDD -4.950900003e-02
or12d1_P1995/VDD VSS
VDD -4.924959689e-02
or02d0_Q1995/VDD VSS
VDD -4.924950004e-02
...
Click
Histogram to
set the range
of values to
display
Select the
layer to
display
Answer: Before analyzing voltage drop and current violations on a block using the
RedHawk Analysis Fusion feature in the IC Compiler II environment, you must specify the
necessary input and design data for running rail analysis by using the application options.
To resolve this error, check if the reference library list for this library is set correctly by using
the set_ref_libs command. You can also check if the path to the IC Compiler II executable
and the reference libraries are specified by using the search_path variable in the Tcl script
file.
For more information about which input data are required for running the RedHawk rail
analysis, see Required Input Files and Setting Up the Executables.
Question: Can I take advantage of the IC Compiler II power analysis capability to calculate
the power consumption of the design for rail analysis purposes?
Answer: By default, RedHawk Analysis Fusion uses the RedHawk power analysis feature
to calculate the power consumption of the specified power and ground network. If you prefer
having the IC Compiler II tool generate the necessary power data for rail analysis, set the
-power_analysis option of the analyze_rail command to icc2.