Crate libertyparse

source ·
Expand description

A liberty cell library parser written in Rust

See Liberty::parse_str, Liberty, Lib, etc.

Structs

  • A library cell consisting of pin definitions and sequential functionality definitions.
  • A LUT with associated template.
  • A LUT template.
  • A liberty library wrapped inside library(...) {...}.
  • A liberty file with multiple libraries. This is the main entry of parsing.
  • A library pin (macro pin) with metadata (direction, function, caps, etc) and timing arcs (delay, slew & constraints).
  • A timing arc definition. It contains arc type, timing sense, and delay/slew/constraint LUTs.
  • All units are stored as ratio to the standard units (s, F, Ohm, A, …)
  • A warning record of unparsed (but semantically valid) Liberty content.

Enums

  • Clear & preset behavior definition.
  • The element of the stack language can be:
  • A sequential element specification. Optionally defines a number of internal states.
  • All possible state table items Note that we merged the “-” and “N” in next internal nodes into a single “N”. According to the hints in Liberty docs, they are actually different in event generation? No difference in our applications yet.