Professional Documents
Culture Documents
© 2016 Cadence Design Systems, Inc. All rights reserved worldwide. Cadence and the Cadence logo are
registered trademarks of Cadence Design Systems, Inc. All others are the property of their respective
holders.
Contents
Purpose ....................................................................................................................... 4
Audience ...................................................................................................................... 4
Overview ...................................................................................................................... 4
The Basic VOLTUS/TEMPUS Flow ............................................................................. 5
IR Drop effect on delays .............................................................................................. 6
VOLTUS setup for power and IR Drop ........................................................................ 7
Library Setup ............................................................................................................. 12
Skew Analysis ........................................................................................................... 14
Jitter Analysis ............................................................................................................ 19
IR Drop aware critical path analysis using Spice ....................................................... 21
Summary ................................................................................................................... 26
Support ...................................................................................................................... 26
Feedback ................................................................................................................... 26
Purpose
The purpose of this document is to educate designers about what is IR Drop Aware
STA Analysis, how it is implemented, and when to utilize it.
Audience
The audience for this IR-Aware STA document are design teams wanting to determine
the estimated timing for IR drop violators. IR Drop Aware STA Analysis does not
physically fix any IR drop violations in your design. It is not intended to be used for
massive IR Drop violations (greater than 20% of supply voltage). It is intended to show
the STA Analysis for non-ideal voltage.
Overview
Designing a robust power grid has become a major challenge with shrinking technology
allocating more performance in a smaller area.
The power distribution on a semiconductor has to ensure circuit robustness for the
power/current requirements, as well as timing and reliability of the design. IR Drop on
power rails can significantly affect standard cell and net delays. The drop in voltage of
the power grid degrades transitions dynamically in the design. The variation can span
from within a clock cycle or clock cycle to clock cycle as you can see in Figure 1.
The delay variations due to IR Drop impacts both cell and net delays in clock and data
paths as can be seen in Figure 2. Typically, the drop in voltage leads to a slower
transition through the standard cell or IP.
VOLTUS
IR Drop Analysis
Delay comparison
TEMPUS between Spice vs.
TEMPUS delay calculation
Spectre
Figure 3. Basic VOLTUS/TEMPUS Flow.
The delay variance in data path and clock paths adversely impacts the setup and hold
timing checks. TEMPUS supports skew analysis to check the effect of IR Drop on the
clock arrival times at different register pins. It also supports jitter analysis to check late
and early arrival times at a particular register. Figure 3 shows the flowchart for using
VOLTUS and TEMPUS in running IR Drop Aware STA. Detailed discussion on skew
and jitter analysis is covered in the later sections of this document.
VOLTUS can perform the min and max IR Drop analysis based on the low and high
switching activities and derives the effective min/max operating voltages for every
instance in the design. The VOLTUS-related scripts are on the pages 8-10 of this
document. These specific instance effective operating voltages will be written into the
files which will be referred to as low activity or high activity IR Drop files in this
document. The low_activity/high_activity IR Drop files can be read in TEMPUS using
the read_instance_voltage command. These instance-based min and max voltages will
be used during delay computation for respective corners, and perform various checks
using these delays.
TEMPUS can also run spice simulations for the given timing path and compare delays
against the delays computed using the cell level delay models. TEMPUS creates a
constant voltage source for each instance with voltage specified in the IR Drop files. On
the other hand, VOLTUS can generate detailed power and ground voltage waveforms
for each instance, which can be inputted into TEMPUS. TEMPUS will use these
waveforms to create a piece-wise linear voltage waveform for each instance.
IR Drop can affect both net and cell delays. Because the peak voltage is reduced, IR
Drop voltage swing range will be smaller than nominal voltage, and hence will affect the
net delay and input slew at the receiver. As you can see in Figure 4, when the voltage is
ideal, your slew is different than when the effective voltage is lowered because of IR
Drop.
As shown in figure 4, assume that the driver is operating at nominal voltage, Vdd, and
receiver is operating at the VirDrop voltage. Also, assume the following trip points set in
timing library: Lower slew threshold = 20%, Upper slew threshold = 80%, Input
threshold = 50% and output threshold = 50%. The net delay with nominal voltage swing
is smaller than the delay computed with IR Drop voltage because the signal waveform
propagates across the net. This example also shows the variance in input slew at the
receiver. Because the cell delay is a function of input slew and output load, the cell
delay will also be affected. Apart from input slew, the cell delays derived from the
library, which is characterized for nominal voltage, will be degraded because of IR Drop
voltages. For accurate delay modeling, Cadence recommends the use of multiple
libraries characterized with different operating voltages. These libraries are referred to
as TriLibs in this document.
Important Note: irDrop files created in VOLTUS include irDrop voltages for all the
instances in design, <block.iv>. However, it is important to specify nominal voltage for the
design using the create_op_cond and set_op_cond commands. Otherwise, IO ports are
assumed to be at the same voltage as the first cell in their fan-out cone. This will cause
inconsistency with spice netlist created in TEMPUS.
In using the tri-lib flow, make sure you are using libs from the same process corner with
different voltages, for example: slow_1.0V_125C.lib, slow_0.9V_105C.lib,
slow_0.8V_25C.lib.
The min activity during power analysis is defined by turning off the activity of
combinational logic and toggling only the clock network. This is achieved by setting
negligible activity (1%) on the primary inputs and the output of the sequential logic. If the
design has gated clock, it should be enabled. Review the set_default_switching_activity
command in the following example script.
Note: Specifying 0% activity does not currently work, because power analysis will
revert to the default activity of 20% in this case.
The max activity during power analysis is defined as the expected average activity on
the primary inputs and the output of sequential logic. In addition, gated clocks are
disabled.
Alternately, if VCD is available with low and high activity cycles, it can be specified in
VOLTUS using the “read_activity_file” command with start and stop times. Optionally,
you can find high or low activity cycles by profiling the VCD file using the
“report_vcd_profile” command.
Example VOLTUS script for the flow is shown here. It is a vectorless VOLTUS script:
#######################################################
# VOLTUS Script
# Purpose: Dynamic analysis at min and max activity
# Run, >Voltus -init script.tcl
#######################################################
# Import design
read_lib –lef <lef files>
read_lib –min <min libraries>
read_lib –max <max libraries>
read_verilog <logical netlist>
set_top_module <top cell>
read_sdc <timing constraints>
read_def <physical netlist>
read_spef <signal parasitics>
#The set_dc_sources commands AREN’T REQUIRED if all of the libs you read in are at the same voltage
set_dc_sources VDD -power -voltage 1.0
set_dc_sources VSS -ground
# Power analysis
set_power_analysis_mode \
-method dynamic_vectorless \
-corner min \
-create_binary_db true \
-write_static_currents true
set_power_output_dir ./dynamic_power_low_activity
report_power
set_power_analysis_mode \
-method dynamic_vectorless -create_binary_db true \
-corner max -write_static_currents true
# IR Drop analysis
set_rail_analysis_mode \
-method dynamic \
-accuracy hd \
-extraction_tech_file qrcTechFile \
-temperature 25 \
-enable_rlrp_analysis true \
-generate_movies true \
-save_voltage_waveforms true \
-power_grid_library {../data/pgv_dir/tech_pgv/techonly.cl \
../data/pgv_dir/stdcell_pgv/stdcells.cl ../data/pgv_dir/macro_pgv/macros_pll.cl}
set_pg_nets \
-net VDD \
-voltage 1.0 \
-threshold 0.95 \
-tolerance 0.3
set_rail_analysis_domain \
-name core \
-pwrnets VDD \
-gndnets VSS
set_power_pads \
-net VSS \
-format xy \
-file ../DATA/powerpads/VSS.pp
The instance voltage file, which has the effective voltage AFTER IR Drop, will be
outputted and has a .iv extension. It is saved under IR Drop results directory, for
example, “core_25C_dynamic_1/core.iv”. The instance voltage is determined using
power and ground IR Drop waveforms inside the switching window of the instance as
shown in Figure 6. It is also referred to as effective instance voltage.
Figure 7. Example IR Drop picture showing highest IR drop across the power grid in RED.
In addition to instance voltage, IR Drop waveforms are also stored inside IR Drop
results directory, for example, “core_25C_dynamic_1/VDD/VDD.ptiavg and
VSS/VSS.ptiavg”. These voltage waveforms can be used for critical path analysis using
SPICE in TEMPUS as described in the subsequent sections.
If dynamic power and IR Drop analysis are done using vector-based method, you might
be required to shift these waveforms during critical path analysis using the
“create_spice_deck” command. This will be required to align IR Drop waveform with the
clock edges of SDC. The IR Drop waveform for instance can be viewed using the TCL
command in VOLTUS, for example, “view_dynamic_waveform”.
view_dynamic_waveform \
-type voltage \
Learn more at Cadence Online Support - http://support.cadence.com
© 2016 Cadence Design Systems, Inc. All rights reserved worldwide. Page 11
IR Drop Aware STA Analysis
-waveform_files \
{core_25C_dynamic_1/VDD/VDD.ptiavg core_25C_dynamic_1/VSS/VSS.ptiavg} \
-effective_voltage_waveform \
-instance_name inst1
Library Setup
Multiple libraries characterized with different operating voltages (triLibs) can be read into
TEMPUS. Delay calculator computes an instance delay by interpolating delays between
two libraries that are close to IR Drop voltage of that particular instance. For example, if
user loaded libraries characterized for 1.0volts, 0.9volts and 0.8volts, Delay calculator
uses 1.0v and 0.9v libraries for all instances with IR Drop < 1.0v and > 0.9v.
The triLibs s can be loaded into TEMPUS in following three ways:
Libraries with same cells characterized for different voltages should be grouped into a
separate list. From example 1, libraries scmetro_cmos10lp_hvt_ss_*,
scmetro_cmos10lp_lvt_ss_* and scmetro_cmos10lp_rvt_ss_*, which have three
libraries characterized for 1.0v, 0.9v and 0.8v are grouped into a list. The list can be
Learn more at Cadence Online Support - http://support.cadence.com
© 2016 Cadence Design Systems, Inc. All rights reserved worldwide. Page 12
IR Drop Aware STA Analysis
mixed with other libraries like pllclk_slow.lib, which is not characterized with multiple
operating voltages.
2. MMMC setup
triLibs can be specified while creating TEMPUS libraries for particular corner.
Libraries can be loaded into TEMPUS via the configuration file which exists in the
save database. Following syntax should be used in the configuration file to load
triLibs via read_design:
Important Note: The voltage range of characterized libraries should cover min
and max irDrop voltages. If irDrop voltages of an instance falls outside this range,
extrapolation is not supported. Instead, TEMPUS adjusts the voltage to the
closest value. For example, you read libraries characterized for 0.8, 0.9 and 1.0
and a particular instance IrDrop voltage is 1.1 volt. TEMPUS computes the delays
for this instance based on 1.0 volt.
Skew Analysis
Skew is the difference in arrival times of the clock at the launch and capture registers. In
the on-chip variation mode, the launch flop uses late paths and capture flop uses early
paths. Late path delays are computed based on IR Drop observed during high switching
activity, and Early path delays are computed based on IR Drop observed during low
switching activity as can be seen in Figure 9. High switching activity resulting into a
higher voltage drop means lower operating voltages. Lower operating voltages result in
larger net/cell delays. Low switching activity resulting into lower voltage drop means
higher operating voltages (but less than the nominal voltage). Higher operating voltages
result in smaller net/cell delays.
Clock skew analysis can be performed in TEMPUS using the report_clock_timing –type
skew command.
#######################################################
# TEMPUS SCRIPT FOR IR-AWARE-STA
# BASIC SCRIPT TO RUN STA
#######################################################
#######################
# IDEAL VOLTAGE TIMING ANALYSIS
#######################
########################
# IR AWARE TIMING ANALYSIS
########################
set_analysis_view -setup [list TRILIB_wc] -hold [list TRILIB_wc]
report_timing -path_type full_clock -format "instance arc cell voltage delay slew" >
IR.worst.tim.rpt
report_analysis_summary > IR.summary.rpt
report_clock_timing -type skew > IR_skew.rpt
report_clock_timing -type jitter > IR_jitter.rpt
To set the TRILIB_wc view, there needs to be three different libs at three different
voltages. You can see the following had to be created in viewDefinitions.tcl:
The difference between viewDefinitions with single libs and viewDefinitions with
TRI_libs is given in the following example:
Figure 10. Difference of viewDefinition.tcl files for single libs and Tri-libs.
As you can see in Figure 10, the library set for the single library was Single_wc. The
library set for the tri-lib library was TRILIB_wc. You can see the difference in the number
of libs being used in the tri-lib flow. Voltages for the libs are 1.0V, 0.9V, and 0.8V.
Learn more at Cadence Online Support - http://support.cadence.com
© 2016 Cadence Design Systems, Inc. All rights reserved worldwide. Page 16
IR Drop Aware STA Analysis
The following report shows the clock skew for a register pair. The report shows the
skew and latency values are less without the impact of IR Drop once IR Drop is factored
in the delays are larger.
The datapath delays are slower once IR drop is utilized as can be seen in the following
paths:
Jitter Analysis
Jitter is the difference in late and early arrival times of clock phase at a register clock
pin.
In the on-chip variation mode, the launch flop uses late paths and capture flop uses
early paths. Late path delays are computed based on IR Drop observed during high
switching activity, and Early path delays are computed based on IR Drop observed
during low switching activity. High switching activity resulting into higher voltage drop
means lower operating voltages. Lower operating voltages result in larger net/cell
delays. Low switching activity resulting into lower voltage drop means higher operating
voltages (but less than the nominal voltage). Higher operating voltages result in smaller
net/cell delays. Clock jitter analysis can be performed in TEMPUS using the
report_clock_timing –type jitter command.
When IR Drop files are read into TEMPUS, it automatically creates a constant voltage
source for each instance in spice Netlist with voltage specified in the IR Drop file for that
particular instance. Alternately, you can input dynamic voltage waveforms of power and
ground nets to TEMPUS path simulator for TEMPUS to create a piece-wise linear
waveform form for power and ground nets.
Example:
Note: To be able to run Spectre simulator, it should be in your search path, or you can
use the –spectre option to specify full path to Spectre.
Here is the option for inputting IR Drop waveform files to the create_spice_deck
command
-irdrop_waveforms <list of IR Drop waveform files>:
While performing critical path analysis with dynamic IR Drop waveforms, you have to
align the IR Drop waveform with launching clock edge. User can use the –offset option
to specify the offset of IR Drop waveform from/to the launch clock edge. This option has
to be used along with the –irdrop_waveforms option.
If the duration of IR Drop waveforms derived from VOLTUS is smaller than the required
spice simulations time, create_spice_deck concatenates the waveform consecutively.
The number of repetitions can be chosen by specifying a number to the –repeat option.
This option has to be used along with the –irDrop_waveforms option.
#check data path delays from spice with original STA report
create_spice_deck –report _timing {-from i_5/CK –late –path_type full_clock} \
-outdir path_spice_deck_max –power {VDD VNW} –ground {VSS VPW} \
-model_file “spmodels.sp” -subckt_file cmos10lphvt_m.cdl \
-run_path_simulation
#check clock path delays from spice with original STA report
create_spice_deck –report _timing {-from i_5/CK –early –path_type full_clock} \
-outdir path_spice_deck_max –power {VDD VNW} –ground {VSS VPW} \
-model_file “spmodels.sp” -subckt_file cmos10lphvt_m.cdl \
-run_path_simulation
Summary
IR Drop adversely affects STA. The reason for utilizing IR-Drop Aware STA is to provide
the users with timing reports based on IR-Drop. IR-Drop Aware STA is executed at non-
ideal voltage whereas normal STA is based on ideal voltage. IR-Drop Aware STA is
more accurate version of STA because the voltage is not ideal.
Support
Cadence Online Support provides access to support resources, including an extensive
knowledge base, access to software updates for Cadence products, and the ability to
interact with Cadence Customer Support. Visit http://support.cadence.com.
Feedback
Email comments, questions, and suggestions to content_feedback@cadence.com.