OpenSTA Timing Analyzer Release Notes ------------------------------------- This file summarizes user visible changes for each release. 2025/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 StdStringSeq&. 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_.sp and subckt file is path_.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: