OpenSTA/doc/ChangeLog.txt

482 lines
14 KiB
Plaintext

OpenSTA Timing Analyzer Release Notes
-------------------------------------
This file summarizes user visible changes for each release.
2026/02/24
----------
The define_scene -library argument now takes a the library name or a
library filename. If a filename is used, it must be the same as the
filename used to read the library with read_liberty.
Release 3.0.0 2025/11/26
------------------------
This release adds multi-corner multi-mode (mcmm) support. The SDC
constraints in each mode describe a different operating mode, such as
mission mode or scan mode.
A "scene" is the combination of a mode and corner. Each scene can have
separate min/max liberty and spef files.
THe basic structure of a multi-corner/multi-mode command file is
read_liberty
read_verilog
link_design
read_sdc -mode... or set_mode followed by sdc commands
read_spef -name...
define_scene...
report_checks [-scenes]
This is an example script with 2 corners, 2 modes and 3 scenes.
read_liberty bc.lib
read_liberty wc.lib
read_verilog design.v
link_design top
read_sdc -mode run design.sdc
read_sdc -mode scan design_scan.sdc
read_spef -name bc bc.spef
read_spef -name wc wc.spef
define_scene bc \
-mode run \
-liberty bc \
-spef bc
define_scene wc \
-mode run \
-liberty wc \
-spef wc
define_scene scan \
-mode scan \
-liberty wc \
-spef wc
report_checks
report_checks -scenes bc
report_checks -scenes wc
report_checks -scenes scan
................
Alternatively, the set_mode command can be used to define commands
for each mode at the command level instead of using SDC files.
set_mode run
create_clock -period 10 clock
set_input_delay 0 -clock clock [all_inputs -no_clocks]
set_output_delay 0 -clock clock [all_outputs]
set_mode scan
create_clock -period 100 scan_clock
set_input_delay 0 -clock scan_clock scan_in
set_output_delay 0 -clock scan_clock scan_out
................
The define_corners command is supported for compatiblity but should
not be used with mcmm flows. Similarly, the -min/-max arguemnts to
read_liberty and read_spaf are supported for compabibility but should
not be used with mcmm flows.
................
An initial mode and scene named "default" are defined for single mode,
single corner analysis. SDC commands defined interactively and read
with read_sdc without a -mode argument are defined in the "default"
mode.
Use the set_mode command to define a mode or set the command
interpreter to add following commands to mode mode_name.
set_mode mode_name
If mode_name does not exist it is created. When modes are created the
default mode is deleted.
The read_sdc command has a -mode argument to assign the commands in the file
to a mode.
read_sdc [-mode mode_name]
If the mode does not exist it is created. Multiple SDC files can
append commands to a mode by using the -mode_name argument for each
one. If no -mode arguement is is used the commands are added to the
current mode.
................
The define_scene command defines a scene for a mode (SDC), liberty files
and spef parasitics.
define_scene -mode mode_name
-liberty liberty_files | -liberty_min liberty_min_files -liberty_max liberty_max_files
[-spef spef_file | -spef_min spef_min_file -spef_max spef_max_file]
Use get_scenes to find defined scenes.
get_scenes [-modes mode_names] scene_name
................
Use the read_spef -name argument to append multiple parasitics files
to annotate hierarchical blocks. Scene definitions use the spef_name
to specify which parasitices to use for each scene.
read_spef -name spef_name
report_parasitic_annotation [-name spef_name]
If -name is omitted the base name of the file name is used.
The read_spef -corner/-min/-max arguments are supported for comppatibility
but will be removed in a future release.
The read_spef -reduce options don't work because sdc, liberty ap isn't known
................
The report_checks and report_check_typescommands support a -scenes
argument to report timing checks/paths from multiple scenes.
report_checks -scenes
report_check_types -scenes
report_slews -scenes
report_clock_latency -scenes
................
To annotate delays with SDF when there are multiple scenes, use
the -scene argument.
read_sdf -scene
report_annotated_delay -scene
report_annotated_check -scene
SDF annotation for mcmm analysis must follow the scene definitions.
................
VCD annotation with read_vcd now supports a -mode arguement.
read_vcd [-mode mode_name]
................
The -corner args has been removed from the following commands because they are no
longer necessary.
set_load -corner
set_port_fanout_number -corner
................
The report_pulse_width_checks command is no longer supported. Use
report_check_types -min_pulse_width.
................
Delay calculation slew values now propagate through set_case_analysis
and set_logic_zero, set_logic_one, set_logic_dc constraints.
Power analysis now ignores set_case_analysis and set_logic_zero,
set_logic_one, set_logic_dc.
Release 2.7.0 2025/05/19
-------------------------
The OpenSTA library `libOpenSTA` and `sta` executable are now built in the
build directory instead of `app/`.
The set_max_delay and set_min_delay commands now support the -probe option.
With -probe these commands do not break paths at internal (non-startpoint) pins.
The report_checks command now supports a -unique_edges_to_endpoint option
to remove paths through identical pins and rise/fall edges.
report_checks [-unique_edges_to_endpoint]
Instances now have pins for verilog netlist power/ground connections,
Sta::findPathEnds group_paths arg has been changed from PathGroupNameSet*
to StringSeq&.
Release 2.6.1 2025/03/30
-------------------------
The -list_annotated and -list_not_annotated arguments to the
report_annotated_delay and report_annotated_check commands have been renamed to
-report_annotated and -report_unannotated.
The Tcl "source" command is no longer redefined to support "-echo" and
"-verbose" arguments and redirecton. Use the "include" command instead.
include [-echo] [-verbose] filename [> filename] [>> filename]
-echo echos commands as they are read
-verbose prints command results as they are evaluated
Unlike the Tcl source command, "include" expands filenames with tilda '~'
and respects sta_continue_on_error.
Release 2.6.0 2024/07/22
-------------------------
The version of c++ used by OpenSTA is now 17.
The Cudd BBD packager is now required.
The USE_TCL_READLINE option defaults to ON.
The variable link_make_black_boxes has been removed.
Use the -no_black_boxes option to the link_design command.
link_design [-no_black_blocks] [top_cell_name]
The all_inputs command now supports -no_clocks to remove clocks
inputs from the returned list.
all_inputs [-no_clocks]
The read_power_activities command has been deprecated. Use read_vcd instead.
read_vcd [-scope scope] filename
The Switching Activity Interchange Format (SAIF) for reading power activities
is now supported by the the read_saif command.
read_saif [-scope scope] filename
The report_checks -group_count option has been renamed to -group_path_count.
The report_checks -endpoint_count option has been renamed to -endpoint_path_count.
The report_checks -field hierarchical_pins field reports hierarchical pins between
a driver and a load in the path report.
The suppress_msg and unsuppress_msg commands allow suppression/unsuppression of
warnings/errors by ID. Message IDs can be found in doc/messages.txt.
Release 2.5.0 2024/01/17
-------------------------
The report_net -connections, -verbose and -hier_pins flags are deprecated.
The report_instance -connections and -verbose flags are deprecated.
The options are now enabled in all cases.
The read_spef parasitic reduction arguments have changed. The
-reduce_to and -delete_after_reduce arguments are deprecated and
replaced with the -reduce flag. With the -reduce flag, the current
delay calculator reduces the parastic network to the appropriate type
and deletes the parasitic network.
The report_clock_skew and report_clock_latency commands now supports
the -include_internal_latency flag to control inclusion of macro
internal clock delays from the cell liberty min/max_clock_tree_path
timing groups.
report_clock_skew -include_internal_latency
report_clock_latency -include_internal_latency
The report_clock_skew requires a -scene argument if multiple scenes are defined.
The all_inputs command now supports the -no_clocks argument to exclude
clocks from the list.
all_inputs [-no_clocks]
The report_activity_annotation command reports power activity annotaton
from vcd, saif or the set_input_activity command.
report_activity_annotation [-report_unannotated] [-report_annotated]
Release 2.4.0 2023/01/19
-------------------------
The report_parasitics_annotation command reports SPEF annotation completeness.
report_parasitics_annotation [-report_unannotated]
The read_power_activities command reads a verilog vcd file and extracts
pin activities for power analysis.
read_power_activities -vcd filename
The report_cell command has been removed; use report_instance.
The read_liberty command latch inference (see OpenSTA.pdf) is now disabled by default.
The -no_latch_infer flag is deprecated.
To enable latch inference, use the -infer_latches flag.
The report fanout and capacitance fields are now shown on output pin lines rather
than net lines.
Release 2.3.3 2022/09/24
-------------------------
TCL readline support added. See README.md for build instructions.
Release 2.3.2 2022/07/03
-------------------------
The liberty default_wire_load is now ignored. You must explicitly set the wire load
model with the set_wire_load_model command to apply wire load model based parasitics.
Release 2.3.1 2020/11/08
-------------------------
The read_sdf command no longer supports the -analysis_type, -type, -min_type,
and -max_type arguments. Use the set_operating_conditions -analysis_type
command to set the analysis type before read_sdf.
Release 2.2.0 2020/07/18
-------------------------
The report_units reports the current units used by commands.
report_units
The report_check_types -min_fanout -max_fanout -max_capacitance -min_capacitance
report_check_types [-min_fanout] [-max_fanout] [-max_capacitance] [-min_capacitance]
The insert_buffer command is no longer supported.
Release 2.0.0 2018/09/28
-------------------------
The command line options have changed to the following:
-help show help and exit
-version show version and exit
-no_init do not read .sta init file
-threads count|max use count threads
-no_splash do not show the license splash at startup
-exit exit after reading cmd_file
cmd_file source cmd_file
....
Builds using Autotools/configure are no longer supported.
Use CMake as documented in README.md.
....
The check_timing command -no_output_delay checks output ports for
set_output_delay.
....
The report_power command reports the power consumption of the design
or a specific instance.
report_power [-instances inst] [-digits digits] [> filename] [>> filename]
The internal, switching, leakage and total power are reported. Design
power is reported separately for combinational, sequential, macro and
pad groups.
Use -instances to report power for a specific instance.
Use the set_power_activity command to specify activity/duty
globally using -global, the input port default using -input,
or for input ports using -input_ports, or pins using -pins.
set_power_activity [-global]
[-input]
[-input_ports ports]
[-pins pins]
[-activiity activity]
[-duty duty]
....
The write_path_spice command writes a spice netlist for a timing path.
write_path_spice -path_args path_args
-spice_directory spice_directory
-subckt_file subckt_file
-lib_subckt_file lib_subckts_file\
-model_file model_file
-power power
-ground ground
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.
Spice netlists for liberty library cells are read from
lib_subckts_file. 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 .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.
....
The report_checks and report_check_types commands now support an
-unconstrained flag.
report_checks -unconstrained
report_check_types -unconstrained
The sta_report_unconstrained_paths variable will be supported for
for compatibility in the current release.
....
The transition_time path reporting field has been renamed to slew.
report_checks -fields {slew}
report_check_types -fields {slew}
...
The read_parasitics command has been renamed read_spef and no longer
supports the SPF format.
....
The make_instance command now takes a single instance name argument
and returns the instance.
make_instance instance_name
The make_net command now takes a single net name argument and returns
the net.
make_net net_name
The delete_instance command deletes a single instance instead of a list
of instances.
delete_instance instance
The delete_net command deletes a single net instead of a list
of nets.
delete_net net
The disconnect_pins command is renamed disconnect_pin and disconnects a
single pin.
disconnect_pin net pin
The report_tns and report_wns commands print the value returned by
total_negative_slack and worst_negative_slack respectively.
report_tns
report_wns
report_worst_slack
The set_clock_sense command was deprecated by SDC 2.1.
Use set_sense -type clock instead.
# Local Variables:
# mode:text
# End: