OpenSTA Timing Analyzer Release Notes
-------------------------------------

This file summarizes user visible changes for each release.

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.

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 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:
