Power

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.

SourceLiberty is the format that carries a cell library's timing and power. These cards are checked against the Nangate45 library that OpenROAD-flow-scripts ships, and the excerpts are quoted from it. Liberty is a Synopsys format whose specification is licensed; the behaviour described here is what the open timer OpenSTA implements, and answers link to its command reference. Reference: the OpenSTA command reference (Liberty on GitHub).
All 5 cards in this section, with answers
  • cell_leakage_power : 79.112308; leakage_power () { when : "!CK & !D & !Q & QN"; value : 73.812310; }
    An average leakage, plus the leakage in each specific logic state.

    Hint: One number, then several. Ask why leakage would depend on a condition.

    Which transistors are off depends on the state the cell is in, so leakage does too. Power analysis uses the state-dependent values with the probabilities it has for each state, falling back to the average when it has none. Liberty reference

  • internal_power () { related_pin : "A"; rise_power (Power_7_7) { ... } }
    The energy the cell itself spends when it switches.

    Hint: Ask which of the three kinds of power this is, given that it sits in the library.

    This is the internal part of switching power. It splits in two: charging the external load, which the tool computes from the net, and the cell's own internal cost, which only the library can know. The tables are indexed like delay tables, so a slower input costs more internal power. Liberty reference

  • 'related_pg_pin : "VDD";'
    Ties this data to the supply it was characterized against.

    Hint: Ask why a table would need to name a supply at all.

    A multi-supply cell, such as a level shifter, has values that depend on which supply is meant. Naming the supply keeps power intent and timing consistent, and it is how a tool knows what happens when one supply is switched off. Liberty reference

  • internal_power () { related_pin : "A"; rise_power (Power_7_7) { index_1 (" ... "); /* input transition */ index_2 (" ... "); /* output load */ } }
    The energy the cell spends inside itself, per transition.

    Hint: Same two axes as a delay table. Ask why the load appears at all.

    Internal energy is what the cell spends inside itself, mostly the brief current that flows through both transistor stacks while the input crosses. It grows with the input transition. The energy delivered into the load is counted separately as switching power, so the two are not double counted. Liberty reference

  • cell_leakage_power : 79.112308; leakage_power () { when : "!A1 & !A2"; value : 86.94; }
    The single value is used when no state is known, the conditional ones when it is.

    Hint: The timer may not know what state the cell is in.

    With switching activity annotated, a tool weights each state by how long the cell spends in it. Without it, the plain value stands, usually an average over states. The spread between states can be large, which is why a design held in a deliberate low-leakage state at idle saves real power. Liberty reference