OpenSTA 2
OpenSTA 2
Table of Contents
Command Line Arguments.................................................................................................................................... 1
Example Command Scripts................................................................................................................................... 1
Timing Analysis using SDF.............................................................................................................................. 1
Timing Analysis with Multiple Process Corners................................................................................................ 2
Power Analysis................................................................................................................................................. 2
TCL Interpreter...................................................................................................................................................... 3
Commands............................................................................................................................................................ 4
Filter Expressions................................................................................................................................................ 74
Variables............................................................................................................................................................. 75
sta
-help show help and exit
-version show version and exit
-no_init do not read ~/.sta
-no_splash do not print the splash message
-threads count|max use count threads
-exit exit after reading cmd_file
cmd_file source cmd_file
When OpenSTA starts up, commands are first read from the user initialization file ~/.sta if it exists. If a TCL
command file cmd_file is specified on the command line, commands are read from the file and executed
before entering an interactive TCL command interpreter. If -exit is specified the application exits after reading
cmd_file. Use the TCL exit command to exit the application. The –threads option specifies how many
parallel threads to use. Use –threads max to use one thread per processor.
Delays used for timing analysis are calculated using the Liberty timing models. If no parasitics are read only the
pin capacitances of the timing models are used in delay calculation. Use the read_spef command to read
parasitics from an extractor, or read_sdf to use delays calculated by an external delay calculator.
Timing constraints can be entered as TCL commands or read using the read_sdc command.
The units used by OpenSTA for all command arguments and reports are taken from the first Liberty file that is
read. Use the set_cmd_units command to override the default units.
define_corners wc typ bc
read_liberty -corner wc example1_slow.lib
read_liberty -corner typ example1_typ.lib
read_liberty -corner bc example1_fast.lib
read_verilog example1.v
link_design top
set_timing_derate -early 0.9
set_timing_derate -late 1.1
create_clock -name clk -period 10 {clk1 clk2 clk3}
set_input_delay -clock clk 0 {in1 in2}
report_checks -path_delay min_max
report_checks -corner typ
This example can be found in examples/spef_parasitics.tcl. Other examples can be found in the
examples directory.
Power Analysis
OpenSTA also supports static power analysis with the report_power command. Probabalistic switching
activities are propagated from the input ports to determine switching activities for internal pins.
read_liberty sky130hd_tt.lib
read_verilog gcd_sky130hd.v
link_design gcd
read_sdc gcd_sky130hd.sdc
read_spef gcd_sky130hd.spef
set_power_activity -input -activity 0.1
set_power_activity -input_port reset -activity 0
report_power
In this example the activity for all inputs is set to 0.1, and then the activity for the reset signal is set to zero
because it does not switch during steady state operation.
Gate level simulation results can be used to get a more accurate power estimate. For example, the Icarus
verilog simulator can be used to run the the test bench examples/gcd_tb.v for the gcd design in the
previous example.
The test bench writes the VCD (Value Change Data) file gcd_sky130hd.vcd which can then be read with the
read_power_activities command.
read_liberty sky130hd_tt.lib
read_verilog gcd_sky130hd.v
link_design gcd
read_sdc gcd_sky130hd.sdc
read_spef gcd_sky130hd.spef
read_power_activities -scope gcd_tb/gcd1 -vcd gcd_sky130hd.vcd
report_power
Note that in this simple example design simulation based activities does not significantly change the results.
TCL Interpreter
Keyword arguments to commands may be abbreviated. For example,
report_checks -unique
report_checks -unique_paths_to_endpoint
Many reporting commands support redirection of the output to a file much like a Unix shell.
Commands
all_clocks
The all_clocks command returns a list of all clocks that have been defined.
all_inputs
The all_inputs command returns a list of all input and bidirect ports of the current design.
all_outputs
The all_outputs command returns a list of all output and bidirect ports of the design.
all_registers [-clock clock_names]
[-cells | -data_pins | -clock_pins | -async_pins
| -output_pins]
[-level_sensitive]
[-edge_triggered]
-clock clock_names A list of clock names. Only registers clocked by these clocks are returned.
The all_registers command returns a list of register instances or register pins in the design. Options allow
the list of registers to be restricted in various ways. The -clock keyword restrcts the registers to those that are
clocked by a set of clocks. The -cells option returns the list of registers or latches (the default). The
--data_pins, -clock_pins, -async_pins and -output_pins options cause all_registers to return a
list of register pins rather than instances.
check_setup [-verbose]
[-unconstrained_endpoints]
[-multiple_clock]
[-no_clock]
[-no_input_delay]
[-loops]
[-generated_clocks]
[> filename]
[>> filename]
-generated_clocks Check that generated clock source pins have been defined as clocks.
The check_setup command performs sanity checks on the design. Individual checks can be performed with
the keywords. If no check keywords are specified all checks are performed.
connect_pin net
port|pin
The create_clock command defines the waveform of a clock used by the design.
If no pin_list is specified the clock is virtual. A virtual clock can be refered to by name in input arrival and
departure time commands but is not attached to any pins in the design.
If no clock name is specified the name of the first pin is used as the clock name.
If a wavform is not specified the clock rises at zero and falls at half the clock period. The waveform is a list with
time the clock rises as the first element and the time it falls as the second element.
If a clock is already defined on a pin the clock is redefined using the new clock parameters. If multiple clocks
drive the same pin, use the -add option to prevent the existing definition from being overwritten.
The following command creates a clock with a period of 10 time units that rises at time 0 and falls at 5 time units
on the pin named clk1.
The following command creates a clock with a period of 10 time units that is high at time zero, falls at time 2
and rises at time 8. The clock drives three pins named clk1, clk2, and clk3.
-source master_pin A pin or port in the fanout of the master clock that is the source of the
generated clock.
-master_clock master_clock Use -master_clock to specify which source clock to use when multiple
clocks are present on master_pin.
-duty_cycle duty_cycle The percent of the period that the generated clock is high (between 0 and
100).
-edges edge_list List of master clock edges to use in the generated clock. Edges are
numbered from 1. edge_list must be 3 edges long.
The create_generated_clock command is used to generate a clock from an existing clock definition. It is
used to model clock generation circuits such as clock dividers and phase locked loops.
The -multiply_by option is used to generate a higher frequency clock from the source clock. The period of
the generated clock is divided by multiplier. The clock multiplier must be a positive integer. If a duty
cycle is specified the generated clock rises at zero and falls at period * duty_cycle / 100. If no duty cycle is
specified the source clock edge times are divided by multiplier.
The -divide_by option is used to generate a lower frequency clock from the source clock. The clock
divisor must be a positive integer. If the clock divisor is a power of two the source clock period is multiplied
by divisor, the clock rise time is the same as the source clock, and the clock fall edge is one half period later.
If the clock divisor is not a power of two the source clock waveform edge times are multiplied by divisor.
The -edges option forms the generated clock waveform by selecting edges from the source clock waveform.
If a clock is already defined on a pin the clock is redefined using the new clock parameters. If multiple clocks
drive the same pin, use the -add option to prevent the existing definition from being overwritten.
In the example show below generates a clock named gclk1 on register output pin r1/Q by dividing it by four.
The generated clock has a period of 40, rises at time 1 and falls at time 21.
In the example shown below the duty cycle is used to define the derived clock waveform.
The generated clock has a period of 5, rises at time .5 and falls at time 3.
In the example shown below the first, third and fifth source clock edges are used to define the derived clock
waveform.
The generated clock has a period of 20, rises at time 1 and falls at time 11.
create_voltage_area [-name name]
[-coordinate coordinates]
[-guard_band_x guard_x]
[-guard_band_y guard_y]
cells
current_design [design]
current_instance [instance]
Use the define_corners command to define the names of multiple process/temperature/voltage corners.
The define_corners command must follow set_operating_conditions -analysis_type and
precede any reference to the corner names and can only appear once in a command file. There is no support
for re-defining corners.
For analysis type single, each corner has one delay calculation result and early/late path arrivals. For analysis
type best_case/worst_case and on_chip_variation, each corner has min/max delay calculation results and
early/late path arrivals.
delete_instance instance
The network editing command delete_instance removes an instance from the design.
delete_net nets
The network editing command delete_net removes a net from the design.
disconnect_pin net
port | pin | -all
Disconnects a port or pin from a net. Parasitics connected to the pin are deleted.
elapsed_run_time
-from from_list Return paths from a list of clocks, instances, ports, register clock pins, or
latch data pins.
-rise_from from_list Return paths from the rising edge of clocks, instances, ports, register
clock pins, or latch data pins.
-fall_from from_list Return paths from the falling edge of clocks, instances, ports, register
clock pins, or latch data pins.
-rise_through through_list Return rising paths through a list of instances, pins or nets.
-fall_through through_list Return falling paths through a list of instances, pins or nets.
-rise_to to_list Return rising paths to a list of clocks, instances, ports or pins.
-fall_to to_list Return falling paths to a list of clocks, instances, ports or pins.
-path_delay min_fall Return min path (hold) checks for falling endpoints.
-path_delay max_rise Return max path (setup) checks for rising endpoints.
-path_delay max_fall Return max path (setup) checks for falling endpoints.
-path_delay min_max Return max and max path (setup and hold) checks.
-unique_paths_to_endpoint Return multiple paths to an endpoint that traverse different pins without
showing multiple paths with different rise/fall transitions.
-sort_by_slack Sort paths by slack rather than slack within path groups.
-path_group groups Return paths in path groups. Paths in all groups are returned if this option
is not specified.
The find_timing_paths command returns a list of path objects for scripting. Use the get_property
function to access properties of the paths.
get_cells [-hierarchical]
[-hsc separator]
[-filter expr]
[-regexp]
[-nocase]
[-quiet]
[-of_objects objects]
[patterns]
-hierarchical Searches hierarchy levels below the current instance for matches.
-hsc separator Character to use to separate hierarchical instance names in patterns.
-of_objects objects The name of a pin or net, a list of pins returned by get_pins, or a list of nets
returned by get_nets. The –hierarchical option cannot be used with
-of_objects.
The get_cells command returns a list of all cell instances that match patterns.
get_clocks [-regexp]
[-nocase]
[-quiet]
patterns
The get_clocks command returns a list of all clocks that have been defined.
-flat With –flat pins in the fanin at any hierarchy level are returned. Without -flat
only pins at the same hierarchy level as the sinks are returned.
-trace_arcs timing Only trace through timing arcs that are not disabled.
-trace_arcs enabled Only trace through timing arcs that are not disabled.
The get_fanin command returns traverses the design from sink_list pins, ports or nets backwards and
return the fanin pins or instances.
-from source_list List of pins, ports, or nets to find the fanout of. For nets, the fanout of load pins
on the nets are returned.
-flat With –flat pins in the fanin at any hierarchy level are returned. Without -flat
only pins at the same hierarchy level as the sinks are returned.
-trace_arcs timing Only trace through timing arcs that are not disabled.
-trace_arcs enabled Only trace through timing arcs that are not disabled.
The get_fanout command returns traverses the design from source_list pins, ports or nets backwards
and return the fanout pins or instances.
get_full_name object
-hsc separator Character that separates the library name and cell name in patterns.
Defaults to ‘/’.
The get_lib_cells command returns a list of library cells that match pattern. The library name can be
prepended to the cell name pattern with the separator character, which defaults to hierarchy_separator.
The get_lib_pins command returns a list of library ports that match pattern. Use separator to
separate the library and cell name patterns from the port name in pattern.
get_libs [-regexp]
[-nocase]
[-quiet]
patterns
get_nets [-hierarchical]
[-hsc separator]
[-regexp]
[-nocase]
[-quiet]
[-of_objects objects]
[patterns]
-hierarchical Searches hierarchy levels below the current instance for matches.
-hsc separator Character that separates the library name, cell name and port name in
pattern. Defaults to ‘/’.
-of_objects objects The name of a pin or instance, a list of pins returned by get_pins, or a list of
instances returned by get_cells. The –hierarchical option cannot be
used with –of_objects.
The get_nets command returns a list of all nets that match patterns.
get_name object
get_pins [-hierarchical]
[-hsc separator]
[-filter expr]
[-regexp]
[-nocase]
[-quiet]
[-of_objects objects]
[patterns]
-hierarchical Searches hierarchy levels below the current instance for matches.
-hsc separator Character that separates the library name, cell name and port name in
pattern. Defaults to ‘/’.
-of_objects objects The name of a net or instance, a list of nets returned by get_nets, or a list of
instances returned by get_cells. The –hierarchical option cannot be
used with –of_objects.
patterns A list of pin name patterns.
The get_pins command returns a list of all instance pins that match patterns.
A useful idiom to find the driver pin for a net is the following.
The get_ports command returns a list of all top level ports that match patterns.
base_name
filename
full_name
library
name
clock
full_name
is_generated
name
period
propagated
sources
edge
delay_max_fall
delay_min_fall
delay_max_rise
delay_min_rise
full_name
from_pin
sense
to_pin
cell
full_name
ref_name
liberty_cell
name
area
base_name
dont_use
filename
full_name
is_buffer
is_inverter
library
name
library
net
full_name
name
path (PathEnd)
endpoint
endpoint_clock
endpoint_clock_pin
slack
startpoint
startpoint_clock
points
pin
activity
slew_max_fall
slew_max_rise
slew_min_fall
slew_min_rise
clocks
direction
full_name
is_register_clock
lib_pin_name
name
slack_max
slack_max_fall
slack_max_rise
slack_min
slack_min_fall
slack_min_rise
port
activity
slew_max_fall
slew_max_rise
slew_min_fall
slew_min_rise
direction
full_name
liberty_port
name
slack_max
slack_max_fall
slack_max_rise
slack_min
slack_min_fall
slack_min_rise
point (PathRef)
arrival
pin
required
slack
-of_objects objects A list of instances or library cells. The –from and -to options cannot be used
with –of_objects.
The get_timing_edges command returns a list of timing edges (arcs) to, from or between pins. The result
can be passed to get_property or set_disable_timing.
group_path -name group_name
[-weight weight]
[-critical_range range]
[-from from_list
|-rise_from from_list
|-fall_from from_list]
[-through through_list]
[-rise_through through_list]
[-fall_through through_list]
[-to to_list
|-rise_to to_list
|-fall_to to_list]
-from from_list Group paths from a list of clocks, instances, ports, register clock pins, or latch
data pins.
-rise_from from_list Group paths from the rising edge of clocks, instances, ports, register clock
pins, or latch data pins.
-fall_from from_list Group paths from the falling edge of clocks, instances, ports, register clock
pins, or latch data pins.
-rise_to to_list Group rising paths to a list of clocks, instances, ports or pins.
-fall_to to_list Group falling paths to a list of clocks, instances, ports or pins.
The group_path command is used to group paths reported by the report_checks command. See
set_false_path for a description of allowed from_list, through_list and to_list objects.
link_design [cell_name]
cell_name The top level module/cell name of the design hierarchy to link.
Link (elaborate, flatten) the the top level cell cell_name. The design must be linked after reading netlist and
library files. The default value of cell_name is the current design.
The linker creates empty "block box" cells for instances the reference undefined cells when the variable
link_create_black_boxes is true. When link_create_black_boxes is false an error is reported
and the link fails.
make_instance inst_path
lib_cell
make_net net_name_list
-corner corner Use the library for process corner corner delay calculation.
Cells that have a triad of timing arcs between three pins as shown below are inferred as latches:
cell (infered_latch) {
pin(D) {
direction : input ;
timing () {
related_pin : "E" ;
timing_type : setup_falling ;
}
timing () {
related_pin : "E" ;
timing_type : hold_falling ;
}
}
pin(E) {
direction : input;
}
pin(Q) {
direction : output ;
timing () {
related_pin : "D" ;
}
timing () {
related_pin : "E" ;
timing_type : rising_edge ;
}
}
}
When the read_liberty –no_latch_infer flag is used latches are not inferenced. If a cell has the
interface_timing true attribute, no latches are inferred in the cell.
scope The VCD scope of the current design to extract simulation data. Typically the
test bench name and design under test instance name. Scope levels are
separated with ‘/’.
The read_power_activities command reads a VCD (Value Change Dump) file from a Verilog simulation
and extracts pin activities and duty cycles for use in power estimation. Files compressed with gzip are
supported. Annotated activities are propagated to the fanout of the annotated pins.
read_sdc [-echo]
filename
The read_sdc command stops and reports any errors encountered while reading a file unless
sta_continue_on_error is 1.
-unescaped_dividers With this option path names in the SDF do not have to escape hierarchy
dividers when the path name is escaped. For example, the escaped Verilog
name "\inst1/inst2 " can be referenced as "inst1/inst2". The correct SDF name
is "inst1\/inst2", since the divider does not represent a change in hierarchy in
this case.
Read SDF delays from a file. The min and max values in the SDF tuples are used to annotate the delays for
corner. The typical values in the SDF tuples are ignored. If multiple corners are defined -corner must be
specified.
PORT
INSTANCE wildcards
read_spef [-min]
[-max]
[-path path]
[-corner corner]
[-keep_capacitive_coupling]
[-coupling_reduction_factor factor]
[-reduce_to pi_elmore|pi_pole_residue2]
[-delete_after_reduce]
[-quiet]
filename
-reduce_to pi_pole_residue2 Reduce detailed parasitics to a PI/Pole residue model as each net is read.
The read_spef command reads a file of net parasitics in SPEF format. Use the
-report_parasitic_annotation command to check for nets that are not annotated.
Separate parasitics can be annotated for corners and min and max paths using the -corner, –min and -max
arguments.
With the -reduce_to and -delete_after_reduce options, parasitic networks are reduced after each net is
read, substantially reducing the memory footprint required to store the parasitics.
If the SPEF file contains triplet values the first value is used.
Parasitic networks (DSPEF) can be annotated on hierarchical blocks using the -path argument to specify the
instance path to the block. Parasitic networks in the higher level netlist are stitched together at the hierarchcal
pins of the blocks.
read_verilog filename
The read_verilog command reads a gate level verilog netlist. After all verilog netlist and Liberty libraries are
read the design must be linked with the link_design command.
Verilog 2001 module port declaratations are supported. An example is shown below.
replace_cell instance_list
replacement_cell
The replace_cell command changes the cell of an instance. The replacement cell must have the same port
list (number, name, and order) as the instance's existing cell for the replacement to be successful.
report_annotated_check [-setup]
[-hold]
[-recovery]
[-removal]
[-nochange]
[-width]
[-period]
[-max_skew]
[-max_line lines]
[-list_annotated]
[-list_not_annotated]
[-constant_arcs]
-setup Report annotated setup checks.
-constant_arcs Report separate annotation counts for arcs disabled by logic constants
(set_logic_one, set_logic_zero).
The report_annotated_check command reports a summary of SDF timing check annotation. The -
list_annotated and –list_not_annotated options can be used to list arcs that are annotated or not
annotated.
report_annotated_delay [-cell]
[-net]
[-from_in_ports]
[-to_out_ports]
[-max_lines lines]
[-list_annotated]
[-list_not_annotated]
[-constant_arcs]
-cell Report annotated cell delays.
-constant_arcs Report separate annotation counts for arcs disabled by logic constants
(set_logic_one, set_logic_zero).
The report_annotated_delay command reports a summary of SDF delay annotation. Without the
-from_in_ports and –to_out_ports options arcs to and from top level ports are not reported. The
-list_annotated and –list_not_annotated options can be used to list arcs that are annotated or not
annotated.
report_cell [-connections]
[-verbose]
instance_path
[> filename]
[>> filename]
-verbose With -connections also report all pins connected to each instance pin net.
-from from_list Report paths from a list of clocks, instances, ports, register clock pins, or
latch data pins.
-rise_from from_list Report paths from the rising edge of clocks, instances, ports, register clock
pins, or latch data pins.
-fall_from from_list Report paths from the falling edge of clocks, instances, ports, register clock
pins, or latch data pins.
-rise_to to_list Report rising paths to a list of clocks, instances, ports or pins.
-fall_to to_list Report falling paths to a list of clocks, instances, ports or pins.
-path_delay min_rise Report min path (hold) checks for rising endpoints.
-path_delay min_fall Report min path (hold) checks for falling endpoints.
-path_delay max_rise Report max path (setup) checks for rising endpoints.
-path_delay max_fall Report max path (setup) checks for falling endpoints.
-path_delay min_max Report max and max path (setup and hold) checks.
-group_count path_count The number of paths to report in each path group. The default is 1.
-endpoint_count The number of paths to report for each endpoint. The default is 1.
endpoint_path_count
-unique_paths_to_endpoint When multiple paths to and endpoint are specified with -endpoint_count
many of the paths may differ only in the rise/fall edges of the pins in the
paths. With this option only the worst path through the set of pis is reported.
-corner corner Report paths for one process corner. The default is to report paths for all
process corners.
-slack_max max_slack Only report paths with less slack than max_slack.
-slack_min min_slack Only report paths with more slack than min_slack.
-sort_by_slack Sort paths by slack rather than slack grouped by path group.
-path_group groups List of path groups to report. The default is to report all path groups.
-format end Report path ends in one line with delay, required time and slack.
-format full Report path start and end points and the path. This is the default path type.
-format full_clock Report path start and end points, the path, and the source and and target
clock paths.
-format Report path start and end points, the path, and the source and and target
clock paths. If the clock is generated and propagated, the path from the clock
full_clock_expanded source pin is also reported.
-digits digits The number of digits after the decimal point to report. The default value is the
variable sta_report_default_digits.
The report_checks command reports paths in the design. Paths are reported in groups by capture clock,
unclocked path delays, gated clocks and unconstrained.
See set_false_path for a description of allowed from_list, through_list and to_list objects.
report_check_types [-violators]
[-verbose]
[-format slack_only|end]
[-max_delay]
[-min_delay]
[-recovery]
[-removal]
[-clock_gating_setup]
[-clock_gating_hold]
[-max_slew]
[-min_slew]
[-min_pulse_width]
[-min_period]
[-digits digits]
[-no_split_lines]
[> filename]
[>> filename]
-digits digits The number of digits after the decimal point to report. The default value is the
variable sta_report_default_digits.
The report_check_types command reports the slack for each type of timing and design rule constraint. The
keyword options allow a subset of the constraint types to be reported.
Report the minimum period and maximum frequency for clocks. If the -clocks argument is not specified all
clocks are reported. The minimum period is determined by examining the smallest slack paths between
registers the rising edges of the clock or between falling edges of the clock. Paths between different clocks,
different clock edges of the same clock, level sensitive latches, or paths constrained by set_multicycle_path,
set_max_path are not considered.
report_clock_properties [clock_names]
The report_clock_properties command reports the period and rise/fall edge times for each clock that has
been defined.
report_clock_skew [-setup|-hold]
[-clock clocks]
[-digits digits]
Report the maximum difference in clock arrival between every source and target register that has a path
between the source and target registers.
-from from_pin Report delay calculations for timing arcs from instance input pin from_pin.
-to to_pin Report delay calculations for timing arcs to instance output pin to_pin.
-corner corner Report paths for process corner. The -corner keyword is required if more
than one process corner is defined.
The report_dcalc command shows how the delays between instance pins are calculated. It is useful for
debugging problems with delay calculation.
report_disabled_edges
The report_disabled_edges command reports disabled timing arcs along with the reason they are
disabled. Each disabled timing arc is reported as the instance name along with the from and to ports of the arc.
The disable reason is shown next. Arcs that are disabled with set_disable_timing are reported with
constraint as the reason. Arcs that are disabled by constants are reported with constant as the reason
along with the constant instance pin and value. Arcs that are disabled to break combinational feedback loops
are reported with loop as the reason.
> report_disabled_edges
u1 A B constant B=0
report_instance [-connections]
[-verbose]
instance_path
[> filename]
[>> filename]
report_lib_cell cell_name
[> filename]
[>> filename]
-verbose With -connections also report all pins connected to each instance pin net.
-digits digits The number of digits after the decimal point to report. The default value is the
variable sta_report_default_digits.
report_parasitic_annotation[-report_unannotated]
[> filename]
[>> filename]
-instances instances Report the power for each instance of instances. If the instance is hierarchical
the total power for the instances inside the hierarchical instance is reported.
-digits digits The number of digits after the decimal point to report. The default value is the
variable sta_report_default_digits.
The report_power command uses static power analysis based on propagated or annotated pin activities in
the circuit using Liberty power models. The internal, switching, leakage and total power are reported. Design
power is reported separately for combinational, sequential, macro and pad groups. Power values are reported
in watts.
The read_power_activities command can be used to read activities from a file based on simulation. If no
simulation activities are available, the set_power_activity command should be used to set the activity of
input ports or pins in the design. The default input activity and duty for inputs are 0.1 and 0.5 respectively. The
activities are propagated from annotated input ports or pins through gates and used in the power calculations.
report_pulse_width_checks [-verbose]
[-digits digits]
[-no_line_splits]
[pins]
[> filename]
[>> filename]
-digits digits The number of digits after the decimal point to report. The default value is the
variable sta_report_default_digits.
-no_line_splits
The report_pulse_width_checks command reports min pulse width checks for pins in the clock network. If
pins is not specified all clock network pins are reported.
report_units
report_units
time 1ns
capacitance 1pF
resistance 1kohm
voltage 1v
current 1A
power 1pW
distance 1um
report_worst_slack [-min]
[-max]
[-digits digits]
-digits digits The number of digits after the decimal point to report. The default value is the
variable sta_report_default_digits.
set_assigned_check -setup|-hold|-recovery|-removal
[-rise]
[-fall]
[-corner corner]
[-min]
[-max]
[-from from_pins]
[-to to_pins]
[-clock rise|fall]
[-cond sdf_cond]
[-worst]
margin
-corner corner The name of a process corner. The -corner keyword is required if more than
one process corner is defined.
The set_assigned_check command is used to annotate the timing checks between two pins on an instance.
The annotated delay overrides the calculated delay. This command is a interactive way to back-annotate delays
like an SDF file.
set_assigned_delay -cell|-net
[-rise]
[-fall]
[-corner corner]
[-min]
[-max]
[-from from_pins]
[-to to_pins]
delay
-corner corner The name of a process corner. The -corner keyword is required if more than
one process corner is defined.
Use the -corner keyword to specify a process corner. The -corner keyword is required if more than one
process corner is defined.
set_assigned_transition [-rise]
[-fall]
[-corner corner]
[-min]
[-max]
slew
pin_list
The set_assigned_transition command is used to annotate the transition time (slew) of a pin. The
annotated transition time overrides the calculated transition time.
set_case_analysis 0|1|zero|one|rise|rising|fall|falling
port_or_pin_list
The set_case_analysis command sets the signal on a port or pin to a constant logic value. No paths are
propagated from constant pins. Constant values set with the set_case_analysis command are propagated
through downstream gates.
Conditional timing arcs with mode groups are controlled by logic values on the instance pins.
set_clock_gating_check [-setup setup_time]
[-hold hold_time]
[-rise]
[-fall]
[-high]
[-low]
[objects]
-rise The setup/hold margin is for the rising edge of the clock enable.
-fall The setup/hold margin is for the falling edge of the clock enable.
-high The gating clock is active high (pin and instance objects only).
-low The gating clock is active low (pin and instance objects only).
The set_clock_gating_check command is used to add setup or hold timing checks for data signals used to
gate clocks.
If no objects are specified the setup/hold margin is global and applies to all clock gating circuits in the design. If
neither of the -rise and -fall options are used the setup/hold margin applies to the rising and falling edges
of the clock gating signal.
Normally the library cell function is used to determine the active state of the clock. The clock is active high for
AND/NAND functions and active low for OR/NOR functions. The -high and -low options are used to specify
the active state of the clock for other cells, such as a MUX.
-logically_exclusive The clocks in different groups do not interact logically but can be physically
present on the same chip. Paths between clock groups are considered for
noise analysis.
-physically_exclusive The clocks in different groups cannot be present at the same time on a chip.
Paths between clock groups are not considered for noise analysis.
-asynchronous The clock groups are asynchronous. Paths between clock groups are
considered for noise analysis.
-allow_paths
The set_clock_groups command is used to deifine groups of clocks that interact with each other. Clocks in
different groups do not interact and paths between them are not reported. Use a –group argument for each
clock group.
set_clock_latency [-source]
[-clock clock]
[-rise]
[-fall]
[-min]
[-max]
delay
objects
-clock clock If multiple clocks are defined at a pin this use this option to specify the latency
for a specific clock.
The set_clock_latency command describes expected delays of the clock tree when analyzing a design
using ideal clocks. Use the -source option to specify latency at the clock source, also known as insertion
delay. Source latency is delay in the clock tree that is external to the design or a clock tree internal to an
instance that implements a complex logic function.
set_clock_transition [-rise]
[-fall]
[-min]
[-max]
transition
clocks
-rise Set the transition time for the rising edge of the clock.
-fall Set the transition time for the falling edge of the clock.
The set_clock_transition command describes expected transition times of the clock tree when analzying
a design using ideal clocks.
-rise Inter-clock target clock rise edge, alternative to -rise_to.Inter-clock target clock
rise edge, alternative to -rise_to.
-fall Inter-clock target clock rise edge, alternative to -fall_to.
The set_clock_uncertainty command specifies the uncertainty or jitter in a clock. The uncertainty for a
clock can be specified on its source pin or port, or the clock itself.
Inter-clock uncertainty between the source and target clocks of timing checks is specified with the
-from|-rise_from|-fall_from and -to|-rise_to|-fall_to arguments .
The set_cmd_units command is used to change the units used by the STA command interpreter when
parsing commands and reporting results. The default units are the units specified in the first Liberty library file
that is read.
Units are specified as a scale factor followed by a unit name. The scale factors are as follows.
M 1E+6
k 1E+3
m 1E-3
u 1E-6
n 1E-9
p 1E-12
f 1E-15
The set_data_check command is used to add a setup or hold timing check between two pins.
set_disable_inferred_clock_gating objects
objects A list of clock gating instances, clock gating pins, or clock enable
pins.
-from from_port
-to to_port
The set_disable_timing command is used to disable paths though pins in the design. There are many
different forms of the command depending on the objects specified in objects.
All timing paths though an instance are disabled when objects contains an instance. Timing checks in the
instance are not disabled.
set_disable_timing u2
The -from and -to options can be used to restrict the disabled path to those from, to or between specific pins
on the instance.
set_disable_timing -from A u2
set_disable_timing -to Z u2
set_disable_timing -from A -to Z u2
set_disable_timing u2/Z
set_disable_timing in1
Timing paths though all instances of a library cell in the design can be disabled by naming the cell using a
hierarchy separator between the library and cell name. Paths from or to a cell port can be disabled with the -
from and -to options or a port name after library and cell names.
set_disable_timing liberty1/snl_bufx2
set_disable_timing -from A liberty1/snl_bufx
set_disable_timing -to Z liberty1/snl_bufx
set_disable_timing liberty1/snl_bufx2/A
set_drive [-rise]
[-fall]
[-max]
[-min]
resistance
ports
The set_drive command describes the resistance of an input port external driver.
-from_pin from_pin Use timng arcs from from_pin to the output pin.
set_false_path [-setup]
[-hold]
[-rise]
[-fall]
[-from from_list]
[-rise_from from_list]
[-fall_from from_list]
[-through through_list]
[-rise_through through_list]
[-fall_through through_list]
[-to to_list]
[-rise_to to_list]
[-fall_to to_list]
[-reset_path]
The set_false_path command disables timing along a path from, through and to a group of design objects.
Objects in from_list can be clocks, register/latch instances, or register/latch clock pins. The -rise_from
and -fall_from keywords restrict the false paths to a specific clock edge.
Objects in through_list can be nets, instances, instance pins, or hierarchical pins,. The -rise_through
and -fall_through keywords restrict the false paths to a specific path edge that traverses through the
object.
Objects in to_list can be clocks, register/latch instances, or register/latch clock pins. The -rise_to and -
fall_to keywords restrict the false paths to a specific transition at the path end.
set_fanout_load fanout
port_list
set_hierarchy_separator separator
Set the character used to separate names in a hierarchical instance, net or pin name. This separator is used by
the command interpreter to read arguments and print results. The default separator is '/'.
-rise Set the arrival time for the rising edge of the input.
-fall Set the arrival time for the falling edge of the input.
-reference_pin ref_pin The arrival time is with respect to the clock that arrives at ref_pin.
-source_latency_included D no add the clock source latency (insertion delay) to the delay value.
-network_latency_included Do not add the clock latency to the delay value when the clock is ideal.
The set_input_delay command is used to specify the arrival time of an input signal.
The following command sets the min, max, rise and fall times on the in1 input port 1.0 time units after the
rising edge of clk1.
The –reference_pin option is used to specify an arrival time with respect to the arrival on a pin in the clock
network. For propagated clocks, the input arrival time is relative to the clock arrival time at the reference pin (the
clock source latency and network latency from the clock source to the reference pin). For ideal clocks, input
arrival time is relative to the reference pin clock source latency. With the -clock_fall flag the arrival time is
relative to the falling transition at the reference pin. If no clocks arrive at the reference pin the
set_input_delay command is ignored. If no -clock is specified the arrival time is with respect to all clocks
that arrive at the reference pin. The -source_latency_included and -network_latency_included
options cannot be used with -reference_pin.
Paths from inputs that do not have an arrival time defined by set_input_delay are not reported. Set the
sta_input_port_default_clock variable to 1 to report paths from inputs without a set_input_delay.
set_input_transition [-rise]
[-fall]
[-max]
[-min]
transition
port_list
The set_input_transition command is used to specify the transition time (slew) of an input signal.
set_load [-rise]
[-fall]
[-max]
[-min]
[-subtract_pin_load]
[-pin_load]
[-wire_load]
capacitance
objects
-subtract_pin_load Subtract the capacitance of all instance pins connected to the net from
wire-capacitance.
Ports can have external wire or pin capacitance that is annotated separately with the -pin_load and -
wire_load options. Without the -pin_load and -wire_load options pin capacitance is annotated. External
capacitances are used by delay calculator to find output driver delays and transition times.
Net wire capacitance can also be annotated with the set_load command. If the -subtract_pin_load
option is specified the capacitance of all instance pins connected to the net is subtracted from capacitance.
set_load command annotates capacitance has precidence over RC SPEF parasitics.
set_logic_dc port_list
Set a port or pin to a constant unknown logic value. No paths are propagated from constant pins.
set_logic_one port_list
Set a port or pin to a constant logic one value. No paths are propagated from constant pins. Constant values set
with the set_logic_one command are not propagated through downstream gates.
set_logic_zero port_list
Set a port or pin to a constant logic zero value. No paths are propagated from constant pins. Constant values
set with the set_logic_zero command are not propagated through downstream gates.
set_max_area area
area
The set_max_area command is ignored during timing but is included in SDC files that are written.
set_max_capacitance capacitance
objects
capacitance
The set_max_capacitance command is ignored during timing but is included in SDC files that are written.
set_max_delay [-rise]
[-fall]
[-from from_list]
[-rise_from from_list]
[-fall_from from_list]
[-through through_list]
[-rise_through through_list]
[-fall_through through_list]
[-to to_list]
[-rise_to to_list]
[-fall_to to_list]
[-reset_path]
[-ignore_clock_latency]
delay
The set_max_delay command constrains the maximum delay through combinational logic paths. See
set_false_path for a description of allowed from_list, through_list and to_list objects. If the
to_list ends at a timing check the setup/hold time is included in the path delay.
When the -ignore_clock_latency option is used clock latency at the source and destination of the path
delay is ignored. The constraint is reported in the default path group (**default**) rather than the clock path
group when the path ends at a timing check.
fanout
The set_max_fanout command is ignored during timing but is included in SDC files that are written.
set_max_time_borrow delay
objects
The set_max_time_borrow command specifies the maximum amount of time that latches can borrow. Time
borrowing is the time that a data input to a transparent latch arrives after the latch opens.
set_max_transition [-data_path]
[-clock_path]
[-rise]
[-fall]
transition
objects
If specified for a design, the default maximum transition is set for the design.
If specified for a clock, the maximum transition is applied to all pins in the clock domain. The –clock_path
option restricts the maximum transition to clocks in clock paths. The -data_path option restricts the maximum
transition to clocks data paths. The –clock_path, -data_path, -rise and –fall options only apply to
clock objects.
set_min_capacitance capacitance
objects
The set_min_capacitance command is ignored during timing but is included in SDC files that are written.
set_min_delay [-rise]
[-fall]
[-from from_list]
[-rise_from from_list]
[-fall_from from_list]
[-through through_list]
[-rise_through through_list]
[-fall_through through_list]
[-to to_list]
[-rise_to to_list]
[-fall_to to_list]
[-ignore_clock_latency]
[-reset_path]
delay
The set_min_delay command constrains the minimum delay through combinational logic. See
set_false_path for a description of allowed from_list, through_list and to_list objects. If the
to_list ends at a timing check the setup/hold time is included in the path delay.
When the -ignore_clock_latency option is used clock latency at the source and destination of the path
delay is ignored. The constraint is reported in the default path group (**default**) rather than the clock path
group when the path ends at a timing check.
set_min_pulse_width [-high]
[-low]
min_width
objects
min_width
If -low and -high are not specified the minimum width applies to both high and low pulses.
set_multicycle_path [-setup]
[-hold]
[-rise]
[-fall]
[-start]
[-end]
[-from from_list]
[-rise_from from_list]
[-fall_from from_list]
[-through through_list]
[-rise_through through_list]
[-fall_through through_list]
[-to to_list]
[-rise_to to_list]
[-fall_to to_list]
[-reset_path]
path_multiplier
path_multiplier The number of clock periods to add to the path required time.
Normally the path between two registers or latches is assumed to take one clock cycle. The
set_multicycle_path command overrides this assumption and allows multiple clock cycles for a timing
check. See set_false_path for a description of allowed from_list, through_list and to_list objects.
set_operating_conditions [-analysis_type single|bc_wc|on_chip_variation]
[-library lib]
[condition]
[-min min_condition]
[-max max_condition]
[-min_library min_lib]
[-max_library max_lib]
-analysis_type single Use one operating condition for min and max paths.
-analysis_type bc_wc Best case, worst case analysis. Setup checks use max_condition for clock
and data paths. Hold checks use the min_condition for clock and data paths.
-analysis_type The min and max operating conditions represent variations on the chip that
on_chip_variation can occur simultaineously. Setup checks use max_condition for data paths
and min_condition for clock paths. Hold checks use min_condition for data
paths and max_condition for clock paths. This is the default analysis type.
-min min_condition The operating condition to use for min paths and hold checks.
-max max_condition The operating condition to use for max paths and setup checks.
The set_operating_conditions command is used to specify the type of analysis performed and the
operating conditions used to derate library data.
set_output_delay [-rise]
[-fall]
[-max]
[-min]
[-clock clock]
[-clock_fall]
[-reference_pin ref_pin]
[-source_latency_included]
[-network_latency_included]
[-add_delay]
delay
port_pin_list
-rise Set the output delay for the rising edge of the input.
-fall Set the output delay for the falling edge of the input.
-clock clock The external check is to clock. The default clock edge is rising.
-reference_pin ref_pin The external check is clocked by the clock that arrives at ref_pin.
The set_output_delay command is used to specify the external delay to a setup/hold check on an output
port or internal pin that is clocked by clock. Unless the -add_delay option is specified any existing output
delays are replaced.
The –reference_pin option is used to specify a timing check with respect to the arrival on a pin in the clock
network. For propagated clocks, the timing check is relative to the clock arrival time at the reference pin (the
clock source latency and network latency from the clock source to the reference pin). For ideal clocks, the
timing check is relative to the reference pin clock source latency. With the -clock_fall flag the timing check
is relative to the falling edge of the reference pin. If no clocks arrive at the reference pin the
set_output_delay command is ignored. If no -clock is specified the timing check is with respect to all
clocks that arrive at the reference pin. The -source_latency_included and -
network_latency_included options cannot be used with -reference_pin.
set_port_fanout_number [-min]
[-max]
fanout
ports
set_power_activity [-global]
[-input]
[-input_ports ports]
[-pins pins]
[-activity activity]
[-duty duty]
-duty duty The duty, or probability the signal is high. Defaults to 0.5.
The set_power_activity command is used to set the activity and duty used for power analysis globally or
for input ports or pins in the design.
The default input activity and duty for inputs are 0.1 and 0.5 respectively, which is equivalent to the following
command:
set_propagated_clock objects
The set_propagated_clock command changes a clock tree from an ideal network that has no delay one
that uses calculated or back-annotated gate and interconnect delays. When objects is a port or pin, clock
delays downstream of the object are used.
set_pvt [-min]
[-max]
[-process process]
[-voltage voltage]
[-temperature temperature]
instances
The set_pvt command sets the process, voltage and temperature values used during delay calculation for a
specific instance in the design.
-type data Set the sense for data paths (not supported).
The set_sense command is used to modify the propagation of a clock signal. The clock sense is set with the
-positive and –negative flags. Use the –stop_propagation flag to stop the clock from propagating
beyond a pin. The –positive, -negative, -stop_propagation, and –pulse options are mutually
exclusive. If the –clock option is not used the command applies to all clocks that traverse pins. The –pulse
option is currently not supported.
set_timing_derate [-rise]
[-fall]
[-early]
[-late]
[-clock]
[-data]
[-net_delay]
[-cell_delay]
[-cell_check]
derate
[objects]
The set_timing_derate command is used to derate delay calculation results used by the STA. If the –
early and –late flags are omitted the both min and max paths are derated. If the –clock and –data flags
are not used the derating both clock and data paths are derated.
set_resistance [-max]
[-min]
resistance
nets
The set_units command is used to check the units used by the STA command interpreter when parsing
commands and reporting results. If the current units differ from the set_unit value a warning is printed. Use
the set_cmd_units command to change the command units.
Units are specified as a scale factor followed by a unit name. The scale factors are as follows.
M 1E+6
k 1E+3
m 1E-3
u 1E-6
n 1E-9
p 1E-12
f 1E-15
set_wire_load_min_block_size size
set_wire_load_mode top|enclosed|segmented
top
enclosed
segmented
The set_wire_load_mode command is ignored during timing but is included in SDC files that are written.
source [-echo]
[-verbose]
filename
[> log_filename]
[>> log_filename]
-verbose Print each command before evaluating it as well as the result it returns.
The source command stops and reports any errors encountered while reading a file unless
sta_continue_on_error is 1.
unset_case_analysis port_or_pin_list
The unset_case_analysis command removes the constant values defined by the set_case_analysis
command.
unset_clock_latency [-source]
objects
The unset_clock_latency command removes the clock latency set with the set_clock_latency
command.
unset_clock_transition clocks
The unset_clock_transition command removes the clock transition set with the
set_clock_transition command.
-from from_clock
-to to_clock
-rise The uncertainty is for the rising edge of the clock.
The unset_clock_transition command removes a setup or hold check defined by the set_data_check
command.
unset_disable_inferred_clock_gating objects
from_port
to_port
unset_input_delay [-rise]
[-fall]
[-max]
[-min]
[-clock clock]
[-clock_fall]
port_pin_list
-rise Unset the arrival time for the rising edge of the input.
-fall Unset the arrival time for the falling edge of the input.
-clock_fall Unset the arrival time from the falling edge of clock
-rise This is the arrival time for the rising edge of the input.
-fall This is the arrival time for the falling edge of the
input.
unset_path_exceptions [-setup]
[-hold]
[-rise]
[-fall]
[-from|-rise_from|-fall_from from]
[-through|-rise_through|-fall_through through]
[-to|-rise_to|-fall_to to]
unset_propagated_clock objects
unset_timing_derate
user_run_time
The write_path_spice command writes a spice netlist for timing paths. Use path_args to specify -
from/-through/-to as arguments to the find_timing_paths command. For each path, a spice netlist
and the subckts referenced by the path are written in spice_directory. The spice netlist is written in
path_<id>.sp and subckt file is path_<id>.subckt.
The spice netlists used by the path are written to subckt_file, which spice_file .includes. The device
models used by the spice subckt netlists in model_file are also .included in spice_file. Power and ground
names are specified with the -power and -ground arguments. The spice netlist includes a piecewise linear
voltage source at the input and .measure statement for each gate delay and pin slew.
Example command:
digits The number of digits after the decimal point to report. The default is 4.
-divider Divider to use between hierarchy levels in pin and instance names.
-include_typ Include a 'typ' value in the SDF triple that is the average of min and max
delays to satisfy some Verilog simulators that require three values in the delay
triples.
-digits digits The number of digits after the decimal point to report. The default is 4.
Write the delay calculation delays for the design in SDF format to filename. The SDF TIMESCALE is same as
the time_unit in the first liberty file read.
-cell_name cell_name The name to use for the liberty cell. Defaults to the top level module name.
-corner corner The process corner to use for extracting the model.
The write_timing_model command constructs a liberty timing model for the current design and writes it to
filename. cell_name defaults to the cell name of the top level block in the design.
The SDC used to extract the block should include the clock definitions. If the block contains a clock network
set_propagated_clock should be used so the clock delays are included in the timing model. The following
SDC commands are ignored when bulding the timing model.
set_input_delay
set_output_delay
set_load
set_timing_derate
Using set_input_transition with the slew from the block context will be used will improve the match
between the timing model and the block netlist. Paths defined on clocks that are defined on internal pins are
ignored because the model has no way to include the clock definition.
The resulting timing model can be used in a hierarchical timing flow as a replacement for the block to speed up
timing analysis. This hierarchical timing methodology does not handle timing exceptions that originate or
terminate inside the block. The timing model includes:
Resistance of long wires on inputs and outputs of the block cannot be modeled in Liberty. To reduce
inaccuracies from wire resistance in technologies with resistive wires place buffers on inputs and ouputs.
The extracted timing model setup/hold checks are scalar (no input slew dependence). Delay timing arcs are
load dependent but do not include input slew dependency.
write_verilog [-sort]
[-include_pwr_gnd]
[-remove_cells lib_cells]
filename
-sort Sort the instances in the netlist.
-remove_cells lib_cells Liberty cells to remove from the verilog netlist. Use get_lib_cells, a list of
cells names, or a cell name with wildcards.
The write_verilog command writes a verilog netlist to filename. Use -sort to sort the instances so the
results are reproducible across operating systems. Use -remove_cells to remove instances of lib_cells
from the netlist.
Filter Expressions
The get_cells, get_pins, get_ports and get_timing_edges functions support filtering the returned
objects by property values. Supported filter expressions are shown below.
property == value Return objects with property value equal to value.
property =~ pattern Return objects with property value that matches pattern.
property != value Return objects with property value not equal to value.
expr1 && expr2 Return objects with expr1 and expr2. expr1 and expr2 are one of the first
three property value forms shown above.
expr1 || expr2 Return objects with expr1 or expr2. expr1 and expr2 are one of the first
three property value forms shown above.
Variables
hierarchy_separator Any character.
The hierarchy_separator separates instance names in a hierarchical instance, net, or pin name. The
default value is '/'.
link_make_black_boxes 0|1
When link_make_black_boxes is 1 the link_design command will make empty “black box” cells for
instances that reference undefined cells. The default value is 1.
sta_bidirect_net_paths_enabled 0|1
When set to 0, paths from bidirectional (inout) ports back through nets are disabled. When set to 1, paths from
bidirectional paths from the net back into the instance are enabled. The default value is 0.
sta_continue_on_error 0|1
The source and read_sdc commands stop and report any errors encountered while reading a file unless
sta_continue_on_error is 1. The default value is 0.
sta_crpr_mode same_pin|same_transition
When the data and clock paths of a timing check overlap (see sta_crpr_enabled), pessimism is removed
independent of whether of the path rise/fall transitions. When sta_crpr_mode is same_transition, the
pessimism is only removed if the path rise/fall transitions are the same. The default value is same_pin.
sta_cond_default_arcs_enabled 0|1
When set to 0, default timing arcs with no condition (Liberty timing arcs with no “when” expression) are disabled
if there are other conditional timing arcs between the same pins. The default value is 1.
sta_crpr_enabled 0|1
During min/max timing analysis for on_chip_variation the data and clock paths may overlap. For a setup check
the maximum path delays are used for the data and the minimum path delays are used for the clock. Because
the gates cannot simultaneously have minimum and maximum delays the timing check slack is pessimistic. This
pessimism is known as Common Reconvergent Pesssimism Removal, or “CRPR”. Enabling CRPR slows down
the analysis. The default value is 1.
sta_dynamic_loop_breaking 0|1
When sta_dynamic_loop_breaking is 0, combinational logic loops are disabled by disabling a timing arc that
closes the loop. When sta_dynamic_loop_breaking is 1, all paths around the loop are
reported. The default value is 0.
sta_gated_clock_checks_enabled 0|1
When sta_gated_clock_checks_enabled is 1, clock gating setup and hold timing checks are checked.
The default value is 1.
sta_input_port_default_clock 0|1
When sta_input_port_default_clock is 1 a default input arrival is added for input ports that do not have
an arrival time specified with the set_input_delay command. The default value is 0.
sta_internal_bidirect_instance_paths_enabled 0|1
When set to 0, paths from bidirectional (inout) ports back into the instance are disabled. When set to 1, paths
from bidirectional ports back into the instance are enabled. The default value is 0.
sta_pocv_enabled 0|1
Enable parametric on chip variation using statistical timing analysis. The default value is 0.
sta_propagate_all_clocks 0|1
All clocks defined after sta_propagate_all_clocks is set to 1 are propagated. If it is set before any clocks
are defined it has the same effect as
set_propagated_clock [all_clocks]
after all clocks have been defined. The default value is 0.
sta_propagate_gated_clock_enable 0|1
When set to 1, paths of gated clock enables are propagated through the clock gating instances. If the gated
clock controls sequential elements setting sta_propagate_gated_clock_enable to 0 prevents spurious
paths from the clock enable. The default value is 1.
sta_recovery_removal_checks_enabled 0|1
sta_report_default_digits integer
The number of digits to print after a decimal point. The default value is 2.
sta_preset_clear_arcs_enabled 0|1
When set to 1, paths through asynchronous preset and clear timing arcs are searched. The default value is 0.
Alphabetical Index
all_clocks............................................................................................................................................................... 4
all_inputs............................................................................................................................................................... 4
all_outputs............................................................................................................................................................. 4
all_registers........................................................................................................................................................... 5
check_setup.......................................................................................................................................................... 5
Command Line Arguments.................................................................................................................................... 1
Commands............................................................................................................................................................ 4
connect_pin........................................................................................................................................................... 6
create_generated_clock........................................................................................................................................ 7
create_voltage_area.............................................................................................................................................. 9
current_design....................................................................................................................................................... 9
current_instance.................................................................................................................................................... 9
define_corners....................................................................................................................................................... 9
delete_clock.......................................................................................................................................................... 9
delete_from_list..................................................................................................................................................... 9
delete_generated_clock...................................................................................................................................... 10
delete_instance................................................................................................................................................... 10
delete_net............................................................................................................................................................ 10
disconnect_pin.................................................................................................................................................... 10
elapsed_run_time................................................................................................................................................ 10
Example Command Scripts................................................................................................................................... 1
Filter Expressions................................................................................................................................................ 74
find_timing_paths................................................................................................................................................ 11
get_cells.............................................................................................................................................................. 12
get_clocks........................................................................................................................................................... 13
get_fanin............................................................................................................................................................. 13
get_fanout........................................................................................................................................................... 14
get_full_name...................................................................................................................................................... 15
get_lib_pins......................................................................................................................................................... 15
get_libs................................................................................................................................................................ 16
get_name............................................................................................................................................................ 17
get_nets.............................................................................................................................................................. 16
get_pins............................................................................................................................................................... 17
get_ports............................................................................................................................................................. 18
get_property........................................................................................................................................................ 18
get_timing_edges................................................................................................................................................ 21
group_path.......................................................................................................................................................... 22
hierarchy_separator............................................................................................................................................ 75
link_design.......................................................................................................................................................... 23
link_make_black_boxes...................................................................................................................................... 75
make_instance.................................................................................................................................................... 23
make_net............................................................................................................................................................. 23
Power Analysis...................................................................................................................................................... 2
read_liberty.......................................................................................................................................................... 23
read_power_activities.......................................................................................................................................... 24
read_sdc............................................................................................................................................................. 25
read_sdf.............................................................................................................................................................. 25
read_spef............................................................................................................................................................ 26
read_verilog......................................................................................................................................................... 27
redirection............................................................................................................................................................. 4
replace_cell......................................................................................................................................................... 27
report_annotated_check...................................................................................................................................... 28
report_annotated_delay...................................................................................................................................... 29
report_cell............................................................................................................................................................ 29
report_check_types............................................................................................................................................. 32
report_checks...................................................................................................................................................... 30
report_clock_min_period..................................................................................................................................... 33
report_clock_properties....................................................................................................................................... 34
report_clock_skew............................................................................................................................................... 34
report_dcalc......................................................................................................................................................... 34
report_disabled_edges........................................................................................................................................ 35
report_instance.................................................................................................................................................... 35
report_lib_cell...................................................................................................................................................... 35
report_net............................................................................................................................................................ 36
report_parasitic_annotation................................................................................................................................. 36
report_power....................................................................................................................................................... 36
report_pulse_width_checks................................................................................................................................. 37
report_units......................................................................................................................................................... 37
report_worst_slack.............................................................................................................................................. 38
set_assigned_check............................................................................................................................................ 38
set_assigned_delay............................................................................................................................................. 39
set_assigned_transition....................................................................................................................................... 40
set_case_analysis............................................................................................................................................... 40
set_clock_gating_check...................................................................................................................................... 41
set_clock_groups................................................................................................................................................ 41
set_clock_latency................................................................................................................................................ 42
set_clock_transition............................................................................................................................................. 43
set_clock_uncertainty.......................................................................................................................................... 43
set_cmd_units..................................................................................................................................................... 44
set_data_check................................................................................................................................................... 45
set_disable_inferred_clock_gating...................................................................................................................... 45
set_disable_timing............................................................................................................................................... 46
set_drive.............................................................................................................................................................. 47
set_driving_cell.................................................................................................................................................... 47
set_false_path..................................................................................................................................................... 48
set_fanout_load................................................................................................................................................... 49
set_hierarchy_separator...................................................................................................................................... 49
set_ideal_latency................................................................................................................................................. 49
set_ideal_network............................................................................................................................................... 49
set_ideal_transition............................................................................................................................................. 49
set_input_delay................................................................................................................................................... 50
set_input_transition............................................................................................................................................. 51
set_level_shifter_strategy.................................................................................................................................... 51
set_level_shifter_threshold.................................................................................................................................. 51
set_load............................................................................................................................................................... 52
set_logic_dc........................................................................................................................................................ 52
set_logic_one...................................................................................................................................................... 53
set_logic_zero..................................................................................................................................................... 53
set_max_area...................................................................................................................................................... 53
set_max_capacitance.......................................................................................................................................... 53
set_max_delay.................................................................................................................................................... 54
set_max_dynamic_power.................................................................................................................................... 54
set_max_fanout................................................................................................................................................... 55
set_max_leakage_power.................................................................................................................................... 55
set_max_time_borrow......................................................................................................................................... 55
set_max_transition.............................................................................................................................................. 55
set_min_capacitance........................................................................................................................................... 56
set_min_delay..................................................................................................................................................... 56
set_min_pulse_width........................................................................................................................................... 57
set_multicycle_path............................................................................................................................................. 58
set_operating_conditions.................................................................................................................................... 59
set_output_delay................................................................................................................................................. 59
set_port_fanout_number..................................................................................................................................... 60
set_power_activity............................................................................................................................................... 61
set_propagated_clock......................................................................................................................................... 61
set_pvt................................................................................................................................................................. 62
set_resistance..................................................................................................................................................... 64
set_sense............................................................................................................................................................ 62
set_timing_derate................................................................................................................................................ 63
set_units.............................................................................................................................................................. 64
set_wire_load_min_block_size............................................................................................................................ 65
set_wire_load_mode........................................................................................................................................... 65
set_wire_load_model.......................................................................................................................................... 65
set_wire_load_selection_group........................................................................................................................... 66
source................................................................................................................................................................. 66
SPEF................................................................................................................................................................... 26
sta_bidirect_net_paths_enabled.......................................................................................................................... 75
sta_cond_default_arcs_enabled.......................................................................................................................... 75
sta_continue_on_error........................................................................................................................................ 75
sta_crpr_enabled................................................................................................................................................. 76
sta_crpr_mode.................................................................................................................................................... 75
sta_dynamic_loop_breaking................................................................................................................................ 76
sta_gated_clock_checks_enabled....................................................................................................................... 76
sta_input_port_default_clock............................................................................................................................... 76
sta_internal_bidirect_instance_paths_enabled.................................................................................................... 76
sta_pocv_enabled............................................................................................................................................... 76
sta_preset_clear_arcs_enabled.......................................................................................................................... 77
sta_propagate_all_clocks.................................................................................................................................... 76
sta_propagate_gated_clock_enable.................................................................................................................... 77
sta_recovery_removal_checks_enabled............................................................................................................. 77
sta_report_default_digits..................................................................................................................................... 77
TCL Interpreter...................................................................................................................................................... 3
Timing Analysis using SDF.................................................................................................................................... 1
Timing Analysis with Multiple Process Corners..................................................................................................... 2
unset_case_analysis........................................................................................................................................... 67
unset_clock_latency............................................................................................................................................ 67
unset_clock_transition......................................................................................................................................... 67
unset_clock_uncertainty...................................................................................................................................... 67
unset_data_check............................................................................................................................................... 68
unset_disable_inferred_clock_gating.................................................................................................................. 68
unset_disable_timing........................................................................................................................................... 69
unset_input_delay............................................................................................................................................... 69
unset_output_delay............................................................................................................................................. 70
unset_path_exceptions....................................................................................................................................... 70
unset_propagated_clock..................................................................................................................................... 71
unset_timing_derate............................................................................................................................................ 71
user_run_time..................................................................................................................................................... 71
Variables............................................................................................................................................................. 75
verilog netlist....................................................................................................................................................... 27
with_output_to_variable...................................................................................................................................... 71
write_path_spice................................................................................................................................................. 71
write_sdc............................................................................................................................................................. 72
write_sdf.............................................................................................................................................................. 73
write_timing_model............................................................................................................................................. 73
write_verilog........................................................................................................................................................ 74
Version 2.4.0, Jan 18, 2023
Copyright (c) 2023, Parallax Software, Inc.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General
Public License as published by the Free Software Foundation, either version 3 of the License, or (at your
option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see
<https://www.gnu.org/licenses/>.