opensta

OpenSTA tool wrapper: static timing analysis of a gate-level netlist.

Used as a singleton through classmethods (OpenStaTool.analyze(...), OpenStaTool.run(...)); never instantiated. Produces an SDF file for back-annotated timing.

Classes

OpenStaTool

Static timing analysis wrapper backed by OpenSTA.

Module Contents

OpenStaTool

class OpenStaTool[source]

Bases: Tool

Static timing analysis wrapper backed by OpenSTA.

Runs timing analysis on a synthesized netlist and writes an SDF file. Used as a singleton: call the classmethods directly, never instantiate.

Reject instantiation; tools are used only through their classmethods.

Parameters:
  • *_args (object) – Ignored positional arguments from the rejected constructor call.

  • **_kwargs (object) – Ignored keyword arguments from the rejected constructor call.

Raises:

TypeError – Always, because tool wrappers are stateless singletons.

Methods

classmethod analyze(verilog_netlist, liberty_files, top_name, spef_files=None) Path[source]

Generate an SDF file from a Verilog gate-level netlist and return it.

Parameters:
  • verilog_netlist (Path) – The gate-level netlist to analyze.

  • liberty_files (list[Path] | Path) – The Liberty timing model file(s) to use for analysis.

  • top_name (str) – The name of the top-level design to analyze.

  • spef_files (list[Path] | Path | None) – The SPEF RC extraction file(s) to use, or None.

Returns:

Path to the temporary SDF file.

Raises:

RuntimeError – If the SDF file is empty after running OpenSTA.

classmethod clean_up(sdf_file) None[source]

Delete the temporary SDF file produced by analyze.

Parameters:

sdf_file (Path) – The SDF file returned by analyze.

classmethod executable() Path | str[source]

Return the OpenSTA executable from the FABulous context.

Returns:

The configured OpenSTA executable.