Combinational cells
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.
All 9 cards in this section, with answers
-
NAND2_X1 versus AND2_X1The AND is a NAND with an inverter after it, so it is larger and slower.
Hint: Ask what a CMOS (Complementary Metal-Oxide-Semiconductor) gate does naturally.
Static CMOS (Complementary Metal-Oxide-Semiconductor) logic naturally builds inverting gates: a pull-up network of p-type transistors and a pull-down of n-type. Every non-inverting gate is an inverting one plus an inverter. This is why synthesis prefers NAND, NOR, and the compound inverting gates. the open libraries reference
-
AOI21_X1And-Or-Invert: it computes not of (A1 and A2) or B.
Hint: Read the name as the operations in order, and the digits as input counts.
The digits give the input counts of each group, here a two-input AND feeding an OR with one more input, all inverted. Such a compound gate is one CMOS (Complementary Metal-Oxide-Semiconductor) stage, so it is smaller and faster than the gates it replaces.
OAI21is the same shape with the operations swapped. the open libraries reference -
BUF_X4 versus two INV_X4 in seriesOne characterized cell, usually smaller and faster than the pair.
Hint: Both are non-inverting. Ask what the library can do that the netlist cannot.
Two inverters in series do the same job. A buffer is drawn as two stages, but its internal stage is sized for the output stage rather than being a general-purpose cell, and the pair is characterized as one. Repair and clock tree synthesis use buffers where polarity must be preserved and inverter pairs where it must not. the open libraries reference
-
MUX2_X1A two-input multiplexer as one cell rather than three gates.
Hint: Ask why a library would provide it when AND, OR, and NOT already exist.
It is smaller than the gates that would build it. Selection is so common (enables, bypasses, scan) that libraries provide it as a transmission-gate or compound cell, which is smaller and faster than the three gates it replaces. Clock multiplexing uses a dedicated glitch-free cell, not this one. the open libraries reference
-
HA_X1 and FA_X1A half adder, with no carry in, and a full adder, which takes one.
Hint: Two adder cells. Ask what the second has that the first does not.
Adders are built from these cells in a chain or a tree, so libraries provide them drawn compactly rather than leaving synthesis to assemble them from gates. The architecture of the chain is what
SWAP_ARITH_OPERATORSchanges in the flow. the open libraries reference -
sky130_fd_sc_hd__ebufn_2A tristate buffer, whose output can be released to high impedance.
Hint: Its output has a third state besides 0 and 1.
Releasing the output lets several drivers share one net, one at a time. Timing tools treat such a net carefully, since it has no driver at all in some states, and physical verification checks that two drivers can never be enabled together. the open libraries reference
-
NAND2_X1 versus NOR2_X1The first is preferred, since stacking the slower transistors hurts more.
Hint: Think about which transistors end up in series in each one.
In a not-and gate the parallel transistors are the pull-up ones, which are the weaker type and benefit most from being in parallel. In a not-or gate they are stacked, so the gate must be made wide to match. Libraries therefore offer stronger and cheaper not-and cells, and synthesis maps toward them. the open libraries reference
-
NAND2_X1 NAND3_X1 NAND4_X1 ... and no NAND8A deeper stack is slower, so wide gates are built from smaller ones.
Hint: Ask what happens to the transistors in series as the input count grows.
Each transistor added in series adds resistance and adds its own capacitance to the internal nodes, so delay grows faster than linearly. Beyond about four the tool is better off building a tree of smaller gates, which is why libraries stop there. the open libraries reference
-
AOI21_X1 instead of AND2_X1 + NOR2_X1One inverting cell does the job of two, with less delay and area.
Hint: Count the gates the signal passes through in each version.
Inverting logic is what the transistors naturally build, so an and-or-invert cell is a single stage rather than two. Synthesis leans on these heavily, and the inversions it introduces are absorbed by the cells around them or by swapping a cell for its complement. the open libraries reference