specificationΒΆ

Define the abstract base classes for synthesis STA tool backends.

These classes specify the required methods that any concrete implementation of a synthesis or STA tool must provide, such as synthesizing a Verilog file, returning the path to the generated netlist or SDF file, and cleaning up temporary files after analysis.

ClassesΒΆ

StaTool

Abstract base class for static timing analysis (STA) tool backends.

SynthTool

Abstract base class for synthesis tool backends.

Module ContentsΒΆ

StaToolΒΆ

class StaTool[source]ΒΆ

Bases: ABC

Abstract base class for static timing analysis (STA) tool backends.

Concrete implementations run a timing analysis on a synthesized netlist and produce an SDF file for back-annotated simulation or further timing checks.

PropertiesΒΆ

property sta_design_name: str[source]ΒΆ
Abstractmethod:

Return the name of the design being analyzed.

property sta_liberty_files: list[Path] | Path[source]ΒΆ
Abstractmethod:

Return the list of Liberty files used for STA analysis.

property sta_netlist_file: Path[source]ΒΆ
Abstractmethod:

Return the path to the netlist file used for STA analysis.

property sta_rc_files: list[Path] | Path | None[source]ΒΆ
Abstractmethod:

Return the list of RC files used for STA analysis.

if no RC files are specified.

property sta_sdf_file: Path[source]ΒΆ
Abstractmethod:

Return the path to the generated SDF file.

MethodsΒΆ

abstractmethod sta_analyze() None[source]ΒΆ

Analyze the given netlist file.

abstractmethod sta_clean_up() None[source]ΒΆ

Clean up any temporary files generated during STA analysis.

SynthToolΒΆ

class SynthTool[source]ΒΆ

Bases: ABC

Abstract base class for synthesis tool backends.

Concrete implementations synthesize one or more RTL Verilog files into a gate-level netlist using a set of Liberty timing libraries. Implementations may optionally support a passthrough mode where the input RTL is forwarded without running synthesis.

PropertiesΒΆ

property synth_design_name: str[source]ΒΆ
Abstractmethod:

Get the name of the design being synthesized.

property synth_liberty_files: list[Path] | Path[source]ΒΆ
Abstractmethod:

Return the list of Liberty files used for synthesis.

property synth_netlist_file: Path[source]ΒΆ
Abstractmethod:

Return the path to the synthesized netlist file.

property synth_passthrough: bool[source]ΒΆ
Abstractmethod:

Return whether the synthesis tool is in passthrough mode.

(i.e., it does not perform actual synthesis but simply passes through the input rtl files).

False otherwise.

property synth_rtl_files: list[Path] | Path[source]ΒΆ
Abstractmethod:

Return the list of RTL files used for synthesis.

MethodsΒΆ

abstractmethod synth_clean_up() None[source]ΒΆ

Clean up any temporary files generated during synthesis.

abstractmethod synth_synthesize() None[source]ΒΆ

Synthesize the given Verilog file.