Using the library

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.

SourceThese cards describe standard-cell libraries in general, checked against the open libraries that OpenROAD-flow-scripts ships: Nangate45, sky130 high density, and ASAP7. Cell names and conventions differ between libraries, so each card says which library its example comes from. The answers link to the OpenROAD module that handles the cell in question. Reference: OpenROAD module documentation (the open libraries on GitHub).
All 4 cards in this section, with answers
  • swap a cell on a path with plenty of slack for a higher threshold version
    It leaks far less and switches more slowly, which spare slack pays for.

    Hint: Ask what a higher threshold does to speed, and what it does to leakage.

    Leakage falls roughly exponentially with threshold voltage while delay rises gently, so swapping the cells off the critical path is close to free. Flows do this as a late pass, and the reverse swap is a way to recover a small amount of timing. the open libraries reference

  • INV_X1 -> INV_X8 on a slow stage
    It drives the load faster but presents a bigger load to the stage before.

    Hint: The bigger cell drives more. Ask what it does to whatever drives it.

    Input capacitance grows with drive strength, so the delay moves upstream rather than disappearing. Sizing helps when the cell is genuinely overloaded and stops helping once the load is mostly the gate that drives it, which is why repair sizes a whole path rather than one cell. the open libraries reference

  • a chain of buffers sized so each drives about four times its own input
    A ratio near four per stage gives the least delay over the chain.

    Hint: There is an optimum, and it is not the biggest possible step.

    A larger step per stage needs fewer stages but each is slower; a smaller step is quick per stage but needs more of them. The total is flat near a ratio of about four, which is why buffer trees are built that way and why driving a huge load from one cell is always wrong. the open libraries reference

  • insert a buffer halfway along a long net, or upsize the driver
    Splitting the wire beats sizing, since each half is a quarter.

    Hint: Wire delay grows with the square of the length.

    The resistance and the capacitance of a wire both scale with its length, so its delay scales with the square. Two halves cost two quarters plus the buffer. Sizing the driver fights the resistance of the whole wire and runs out of benefit quickly, which is why repair buffers long nets. the open libraries reference