What is a timing
arc: A timing arc defines the propagation of signals through logic gates/nets and defines a timing relationship between two related pins. Timing arc is one of the components of a timing path. Static timing analysis works on the concept of timing paths. Each
path starts from either primary input or a register and ends at a primary output or a register. In-between, the path traverses through what are known as timing arcs. We can define a timing arc as an indivisible path/constraint from one pin
to another that tells EDA tool to consider the path/relationship between the pins. For
instance, AND, NAND, NOT, full adder cell etc. gates have arcs from each input
pin to each output pin. Also, sequential cells such as flops and latches have
arcs from clock pin to output pins and data pins. Net connections can also be identified as timing arcs as is discussed later.
Figure
1 : Figure showing cell and net
arcs
|
Terminology: The common terminology related to timing arcs
is as follows:
- Source pin: The pin from which timing arc originates (pin IN1 and IN2 for cell arcs, pin OUT for net arc in figure1). This also means constraining pin in case of setup/hold timing checks (for example clock is source pin for setup check)
- Sink pin: The pin at which timing arc ends (pin OUT for cell arc, pin AND2/IN2 for net arc in figure2). This also means constrained pin in case of setup/hold timing arcs (for example data pin is sink pin for setup check)
Cell arcs and net arcs: Timing arcs can be categorized into two
categories based upon the type of element they are associated with – cell arcs and net arcs.
- Cell arcs: These are between an input pin and output pin of a cell. In other words, source pin is an input pin of a cell and sink pin a pin of the same cell (output pin in case of delay arcs and input pin in case of timing check arcs). In the figure shown above, arcs (IN1 -> OUT) and (IN2 -> OUT) are cell arcs. Cell arcs are further divided into sequential and combinational arcs as discussed below.
- Net arcs: These arcs are between driver pin of a net and load pin of a net. In other words, source pin is an output pin of one cell and sink pin is an input pin of another cell. In the figure shown above, arc (OUT -> IN2) is a net arc. Net arcs are always delay timing arcs.
Sequential and
combinational arcs: As discussed above, cell arcs can be sequential or
combinational. Sequential arcs are between the clock pin of a sequential cell
and either input or output pin. Setup and hold arcs are between input data pin
and clock pin and are termed as timing check arcs as they constrain a form of timing relationship between a set of signals. Sequential delay arc is between clock pin and output pin of
sequential elements. An example of sequential delay arc is clk to q delay arc in a flip-flop. On the other hand, combinational arcs are between an input
data and output data pin of a combinational cell or block.
Information
contained in timing arc: A delay timing arc provides following information:
- A delay arc tells whether the path can be traversed through pin1 to pin2. If the path can be traversed, we say that an arc exists between pin1 and pin2. On the other hand, a timing check arc tells the relationship that is allowed between a set of signals.
- Under what condition the path will be traversed, known as ‘sdf condition’
- Maximum and minimum times it can take from the source pin to the destination pin of the arc to traverse in the path
- Timing sense of the arc as explained below
Timing sense of an arc:
Timing sense of an arc is defined as the sense of traversal from source pin of
the timing arc to the sink pin of the timing arc. Timing sense is also called as "unateness" of timing arc. Timing sense can be ‘positive
unate’, ‘negative unate’ and ‘non-unate’.
- Positive unate timing arc: The unateness of an arc is said to be positive unate if rise transition at the source pin causes rise transition (if at all) at sink pin and vice-versa. Cells of type AND, OR gate etc. have positive unate arcs. All net arcs are positive unate arcs.
- Negative unate timing arc: The unateness of an arc is said to be negative unate if rise transition at the source pin causes fall transition at the sink pin and vice-versa. NAND, NOR and Inverter have negative unate arcs.
- Non unate timing arcs: If there is no such relationship between the source and sink pins of a timing arc, the arc is said to be non-unate. XOR and XNOR gates have non-unate timing arcs.
From what source
timing arcs are picked: For cell arcs, the existence of a timing arc is picked
from liberty files. The cell has a function defined that identifies if the arc
is there from its input (say ‘x’) to output (say ‘y’). In most of the cases,
the value (delay, unateness, sd condition etc) of the arc is also picked from liberty; but in case you have read
SDF, the delay is picked from SDF (Standard Delay Format) file (other properties picked from liberty in this case also). On the other hand, for
net arcs, the existence of arc is picked from connectivity information
(netlist). The net arcs are calculated based on the parasitic values given in
SPEF (Standard Parasitics Exchange Format) file, or SDF (like in case above).
Importance of
timing arcs: Timing arcs have a very important role in VLSI design
industry. Whole of the optimization process right from gate level netlist till
final signoff revolves around timing arcs. The presence of correct timing arcs
in liberty file is very essential for high quality signoff or there may not be
correlation between simulation and silicon).