Crate libreda_sta
source ·Expand description
§== this crate is experimental and not stable for now ==
Incremental graph-based static timing analysis (STA) for the LibrEDA framework.
Timing analysis is performed on netlist data structures that implement the
NetlistBase trait. This makes the STA algorithm easily portable.
The concept of timing, delays and constraints is abstracted by a set of traits.
This architecture should allow to implement simple timing models such as the non-linear delay model (NDLM)
and more complicated models (such as statistical models) in a consistent way.
Modules§
- Public modules Interface definitions for cell delay look-up as it is provided for example by Liberty libraries. Imports liberty data using the
liberty-iocrate. - Model implementations (cell delay and constraints, interconnect delays).
- Traits for abstracting timing models.
Structs§
- Definition of a clock source.
- Public exports. Bundled arguments for specifying constraint arcs.
- Public exports. Bundled arguments for specifying delay arcs.
- Argument type for
set_input_signal. This way of passing arguments allows to add other optional data without breaking API changes. - Simple static timing analysis engine.
- Reference to STA engine in timed state.
Enums§
- Public exports. Type of a signal edge. Either rising (0->1), falling (1->0).
- Public exports. Type of a timing constraint.
- Public exports. Type of a signal edge. Either rising (0->1), falling (1->0) or both of them.
- Error during static timing analysis. This includes errors in the liberty library, mismatches between netlist and library or invalid netlists (drive conflicts, etc).
- Analysis mode.
Traits§
- Public exports. Query cell delays and setup/hold constraints.