Logo
VLSI Physical Design  ›  Ch 11. Cell Libraries & ECO

KEY Use the get*Mode commands - getEcoMode, getTrialRouteMode, getDetailRouteMode and so on.

Unate Arcs and the DFF

Positive unate: a timing arc is positive unate if the output transitions in the same direction as the input, or does not change. Examples are AND and OR gates.

Negative unate: a timing arc is negative unate if the output transitions opposite to the input, or does not change. Examples are NAND, NOR and inverter.

Non-unate: in a non-unate arc the output direction cannot be determined from a single input's transition alone - it also depends on the state of the other inputs. An XOR gate is an example.

Unateness is defined for every timing arc of every cell in the library. A DFF's CP-to-Q arc is non-unate because the output edge depends not only on the clock transition but also on the value on the D pin. In the lib this appears as a timing group on pin Q with related_pin CP, timing_sense non_unate, and timing_type rising_edge.

KEY Positive unate keeps direction (AND/OR), negative unate inverts it (NAND/inverter), non-unate depends on other inputs (XOR); a DFF's CP-to-Q arc is non-unate.

Negative Library Values

  • A library hold margin can be negative. A negative hold check means the data pin can change slightly before the clock pin and still satisfy the hold requirement.
  • A library setup margin can also be negative. This means the data can change slightly after the clock pin and still meet the setup check.
  • Can both setup and hold be negative at once? No. For the checks to be consistent, the sum of setup and hold must be positive - so if one is negative, the other must be positive enough to keep the total positive.
  • A negative hold time on scan data input pins is helpful: it gives