Games / Command flash cards / Layout and parasitic formats / SPEF (Standard Parasitic Exchange Format)

SPEF (Standard Parasitic Exchange Format)

Each card shows a command to explain. A missed card returns later in the round and starts the schedule over. A card answered correctly moves up the schedule and next appears after 1, 3, 7, then 21 days. Keys 1 to 4 choose an option, h shows a hint, and Enter moves on. A hint keeps the card where it is on the schedule. An ordering card is answered by clicking its items in order, and one wrong click ends it. Time values are in nanoseconds. Progress is stored in this browser.

SourceFour formats carry a design between tools: LEF (Library Exchange Format) for the technology and the cells, DEF (Design Exchange Format) for the layout, SPEF (Standard Parasitic Exchange Format) for extracted wires, and SDF (Standard Delay Format) for annotated delays. The LEF (Library Exchange Format) excerpts here are quoted from the Nangate45 files that OpenROAD-flow-scripts ships; the rest follow the formats as OpenROAD and OpenSTA read them. Reference: the OpenSTA command reference (the open flow on GitHub).
All 6 cards in this section, with answers
  • *D_NET *12 0.0342 *CONN *I *3:ZN O *L *5:A I
    A net, its total capacitance, and the pins on it.

    Hint: One number on the first line, then a list. Ask what each part is.

    *I is an instance pin and *L a load pin with its capacitance. SPEF (Standard Parasitic Exchange Format) describes one net at a time: the total capacitance, the connections (*I for an instance pin, *P for a port), and then the detailed resistance and capacitance network. *L gives a load pin's capacitance. the open flow reference

  • *NAME_MAP *12 _039_ *3 _897_
    A number for every name, so the rest of the file can stay compact.

    Hint: Ask why a parasitics file would not simply use the names.

    A parasitics file for a real design is enormous, and full hierarchical names repeated on every line would dominate it. The map is declared once and the numbers used afterwards, which is why a SPEF (Standard Parasitic Exchange Format) file is unreadable without its header. the open flow reference

  • *CAP 1 *12:1 0.00861 2 *12:2 *9:3 0.00234 *RES 1 *12:1 *12:2 3.7
    Capacitance to ground and between nets, and node resistance.

    Hint: One capacitance line names two nodes. Ask what that means physically.

    Resistance runs between the net's internal nodes. A *CAP line with one node is capacitance to ground; with two nodes it is coupling capacitance between two nets, which is what crosstalk analysis needs. *RES lines build the resistive network between the net's internal nodes, which is why a long net is not a single lump. the open flow reference

  • *T_UNIT 1 NS *C_UNIT 1 PF *R_UNIT 1 OHM
    The units every number in the file is expressed in.

    Hint: Compare it with Liberty: ask what the file would mean without these lines.

    Like Liberty, SPEF (Standard Parasitic Exchange Format) numbers are bare and the header gives their meaning. A file may also carry triplets, written min:typ:max, when one file holds several corners' values at once. the open flow reference

  • *CAP 3 *1158:QN 0.00013985 4 *3:10 0.000151825 6 *742:A2 *745:A2 2.94435e-05 12 *3:10 *943:A3 0.000127816
    Capacitance to ground on one node, or coupling between two nodes.

    Hint: Some entries name one node and some name two. Ask what the second node is.

    A two-node entry is the coupling between this net and its neighbour, and it is the raw material of crosstalk analysis. Entry 12 couples an internal node of this net to a pin of another, and it is larger than some of this net's own grounded capacitance. the open flow reference

  • *RES 1 *1158:QN *3:10 31.1072 2 *3:10 *744:A2 10 3 *3:10 *742:A2 12.3571
    The net as a resistor network, branching at an internal node.

    Hint: Follow the node names: one of them appears in every line.

    *3:10 is an internal node of net 3, where the wire splits toward two loads. The driver reaches it through 31 ohms, and each load hangs off it through its own resistance. A timer solves this network with the capacitances to get a delay to each load, which is why the two loads see different delays. the open flow reference