Playbook
A card is the method for one family of exam questions, short enough to read in two minutes before you sit down to practise. It says how to recognize the question from its picture and its wording, the moves in the order you make them, the formulas you need (each marked Memorize or Derive, with the three-line derivation when it is Derive), the shortcuts that save time and when they hold, the traps the past papers and their keys fell into, and a link to every past part of the family.
How to use a card. Read it, then work one of its practice parts on paper against the clock. Check your lines against the part’s exam way page, which shows what to write; open the full solution when a step is unclear, because it explains why each formula applies. The final is closed book with no formula sheet, so the Memorize lines are the ones to know cold.
The playbook has fifteen cards so far: path sizing; the five families of sequential timing and clocking (flip-flop timing, latch loops, clock generation, pulsed latches, storage cells); the three families of datapath and control (parallel-prefix adders, logarithmic shifters, PLAs); the three families of memory (the SRAM access path, memory addressing and ROM decoders, dynamic row decoders); and the three families of wires and power (Elmore wires, clock-tree wires, power grids and decap). The others are added with the final-exam pages, one per family.
Path sizing
Recognize. The picture: a row of four static CMOS gates, every transistor labelled with a width (, or in pairs), and a large capacitor at the end, from 100 fF to 2 pF. Later parts add a capacitor, or a gate, hanging off one middle node. The phrases: “estimate the delay … the FO1 delay is ”, “ is fixed … you are free to tune , and ”, “minimize delay”, “the input capacitance … is limited to”, “the circuit is modified as shown”, “how might this new circuit be resized”. The strength convention is stated in the stem: “the nFET and pFET have the same drive strength”, or “the nFET has twice the on current of the pFET”. The finals also put a dynamic gate first, and some cap how far a gate may be skewed (a β limit).
Moves.
- Read the strength convention. Equal strengths: a balanced inverter is W/W, input . : 2W/W, input .
- Tabulate the stages. For each gate, its normalized inverter’s input (by the stack rule) and the capacitance of one of its inputs. Convert every load to microns of gate, .
- (a) The delay as drawn. Each gain is the next stage’s input (or the load) over this stage’s normalized input. The delay is times their sum.
- (b) Minimum delay, first gate fixed. (or the product of the gains with the widths as unknowns); ; size back from the load, one stage at a time; the first stage’s gain checks the work; the delay is .
- An input limit instead of a fixed first gate. Use the whole limit, because is then smallest. Then as move 4.
- (c) A side load at fixed sizes. Find its node. Add to the load of the one stage that drives that node, and recompute that gain only.
- (d) Retuning. First rebalance the overloaded stage with the stage before it: only the gate between them moves, so their product is fixed and the equal split is best. Then split the path at the branch, balance each side, and tabulate the delay for a few sizes of the gate after the branch.
- Give the delay in and in ps or ns.
Formulas.
- Derive: gain . Path: (1) a stage discharges everything on its output, , through , where is its normalized inverter’s NFET width, so ; (2) the FO1 inverter gives (equal strengths) or (); (3) divide: , or with : the load in microns of gate over the normalized input.
- Memorize: equal devices of width in series act like one of width (their resistances add).
- Memorize: ; with , and ; with equal strengths, ; AOI22 and OAI22, either way.
- Memorize: ; , , , when nothing branches.
- Memorize: and , when is fixed.
- Derive: why equal gains are best, when a question asks. Path: (1) two stages, ; (2) , so ; (3) resizing the gate between two stages keeps their product fixed, so every neighbouring pair is equal.
- Memorize: the branching effort ; with a branch, depends on the sizes.
- Derive: a balanced pair with a fixed product contributes . Path: , zero when .
Shortcuts.
- The product of part (a)‘s gains is when nothing branches, at any sizes. If (b) fixes the first gate at a different width, scale it: MT23-5’s (a) gains multiply to 150 with , and (b)‘s is with .
- A fourth root is two square roots: .
- The first stage is a free check when you size back from the load: its gain must come out equal to .
- With equal strengths, a gate whose two networks are both stacks of two (AOI22, OAI22) has a normalized input equal to its per-device width.
- A side load at fixed sizes raises the delay by exactly the rise in one gain. It holds only while every size stays as it was.
- The bottom of the curve is flat. A pair split 3 and 5.33 instead of 4 and 4 costs about 4%, so round widths freely near the optimum; a split of 1 and 16 costs more than double.
- Rebalance first. It is never worse, and with a branch under about half the stage’s load (MT23-5, MT17-5, M7) it does most of the work. Enlarging the gate after the branch pays most when the branch dominates the load (MT21-5b: 99%).
Traps.
- Dividing by the gate’s own input capacitance: that is , not the gain.
- The wrong strength convention: W/W against 2W/W changes every normalized input.
- A side load on the wrong node (MT23-5c’s key).
- Picoseconds written as nanoseconds (MT23-5b–d’s key).
- Treating as fixed after a branch and re-taking (MT23-5d’s key): it can make the path slower.
- Resizing only the stage that drives the branch (MT17-5d’s key): the extra gain moves to the stage before it.
- Counting what a branch gate drives instead of its input (MT17-5c).
- Resizing the fixed first gate, or not using the whole input limit (MT21-5a).
Practice.
| Paper | Parts (points) | Full solution | Exam way |
|---|---|---|---|
| MT23 | 5a–d (40) | M4 §1: a, b, c, d | a, b, c, d |
| MT21 | 5a–b (35) | M4 §2: a, b | with the retrofit |
| MT17 | 5a–d (40) | M4 §3: a, b, c, d | with the retrofit |
| FN17 | 7a–b (20 or 22) | F3 §1: a, b | with the retrofit |
| FN19 | 8a–c (35), a dynamic first stage | F3 §2: a, b, c | with the retrofit |
| FN10 | 9a–b (24), a dynamic first stage | F3 §4: a, b | with the retrofit |
| FN12 | 8a–b (30), a domino path | M6 §4 | with the retrofit |
| M7 (practice) | Question 5a–d (40) | M7, Solution 5 (the questions) | with the retrofit |
| HW3 | 3a–b (homework) | H3 §3 | — |
The method itself is taught in Chapter 8: the gain from the normalized inverter (§1), path effort (§2), equal gains (§3), the number of stages (§4), branching and retuning (§8–9).
Flip-flop timing
Recognize. The picture: two clocked elements with logic between them, and something wrong with their clocks. The finals draw each flip-flop as its two latches, so four latches in a row on φ1, φ2, φ1′, φ2′ are two flip-flops. A box CG per pair means each pair’s phases are made locally, by a NOR generator with delays and . When the words (or FN17-3’s drawing) describe a clock tree on a noisy supply, it is jitter. The phrases: “skewed to arrive 50 psec earlier”, “CLK2 arrives 1.5nsec later than CLK1”, “will this circuit function correctly”, “what is the largest value of ”, “how must and … be adjusted (from zero)”, “what jitter can I expect”, “functional failure that could not be eliminated by slowing down the clock”. The data: , , sometimes (take 0 when none is given) and sometimes (the latch’s ), which a flip-flop-to-flip-flop path never uses.
Moves.
- Read the pairs. In each pair the first latch the data meets is the master. The pair captures when the master closes and launches when the slave opens. and are the master’s, the slave’s.
- Sign the skew. = capture edge − launch edge. “The capturing clocks arrive 50 ps earlier” is ps; “CLK2 arrives 1.5 ns later”, at the capturer, is ns. Write the edge times of one cycle.
- Hold first. (+ on the left if the pair has a window). It has no , so a failure here is one no clock speed fixes.
- Then the long path. ; solve for or for .
- Repair a hold failure. Pad the short path, or open a non-overlap window between the launching master’s closing and its slave’s opening, . With the NOR generator, pick the delay that follows the master’s closing edge. The window costs every long path as much.
- Jitter. . Between flip-flops on different leaves it enters as for hold and for setup.
- Conditional parts. “If the circuit is not functional in (a)”: test the condition. If it is false, say so, give the repair for the other sign in one line, and “now” means the earlier answer stands.
Formulas.
- Derive: the long path. Path: (1) the launch edge at 0; Q moves at , and the data reaches the capturer at ; (2) the capturer’s next edge is at , and a window delays the launch, ; (3) arrive before it: .
- Derive: the short path. Path: (1) the same launch, delayed by any window, ; (2) the capturer’s edge of the same cycle is at , and it holds the old data until ; (3) the new data must not arrive sooner: .
- Memorize: a master–slave pair captures when the master closes and launches when the slave opens; its plays no part between two pairs.
- Memorize: the NOR generator, , . φ falling drops φ2 at once and raises φ1 later; φ rising drops φ1 at once and raises φ2 later. Each delay must stay shorter than its half period.
- Derive: the supply sensitivity of a velocity-saturated inverter. Path: (1) with , so ; (2) ; (3) . The square law gives .
- Memorize: jitter , to first order.
Shortcuts.
- An early capture clock needs no hold check when : then even passes. FN17-5a has 60 ps of margin. It costs the long path instead.
- Skew moves time; it creates none. The stage after a skewed pair, launching from the skewed clock into an on-time one, gets , so the two stages sum to : FN17-5’s 435 + 535 = 970 ps. It checks the sign. Condition: the stage after launches from the same skewed clock.
- Flip the skew’s sign and the two checks trade . FN17-5 with the primes late: the long path gains 100 ps (to 535 ps) and hold loses 100 ps (from +60 to −40 ps).
- A hold repair needs the same amount from a window as from padding, ; with the overheads ignored, . FN12-7b: ns either way. Condition: the hold check alone; the window also costs every long path.
- Jitter scales with latency. Halve the tree’s delay and the jitter halves; FN10-6c’s 5% of 2 ns is 100 ps. Condition: first order, every buffer on the same noisy supply.
Traps.
- Four latches read as four stages.
- Adding (the papers’ ) between flip-flops (FN17-5b: 425 instead of 435 ps), or taking from the master.
- The wrong sign: for an early capture clock (535 ps), or a hold failure claimed for one.
- Comparing hold with the next edge: that is setup.
- Believing a slower clock fixes hold (FN10-6d asks exactly this: it cannot).
- Raising because Chapter 14’s board flip-flop has its master on φ1. FN12-7b’s master is on φ2, so the knob is .
- Leaving out the generator’s ceiling: ns in FN12-7b. The key gives ns and omits it.
- Jitter from one inverter instead of the whole 2 ns latency, or with part (b)‘s square-law (600 ps instead of 100 ps).
- Dropping the sign of , as the FN10-6c key does (its size is right): the delay grows as the supply falls.
- Repairing a circuit that works (FN17-5c), or subtracting in (d) a window that (c) never opened.
Practice.
| Paper | Parts (points) | Full solution | Exam way |
|---|---|---|---|
| FN17 | 5a–d (40) | FS1, FN17-5: a, b, c, d | a, b, c, d |
| FN12 | 7b (15) | FS1, FN12-7b | b |
| FN10 | 6c–d (15), jitter | FS1, FN10-6: c, d | c, d |
| PS5 | Q1c, a loop of two flip-flops | FS1, PS5-Q1c | c |
| Added | three harder variations: the primes late; supply droop; the master on φ1 | FS1 V1, V2, V3 | — |
| FN12 | 7a (15), the generator itself | FS2, FN12-7a (clock-generation card) | a |
| FN19 | 5a (10), hold with a pulsed latch | FS2, FN19-5a (pulsed-latch card) | a |
| FN17 | 3b (11), a clock tree’s jitter from supply noise | FW1, FN17-3b (clock-tree card) | b |
| FN17 | 1d, why a clock’s latency should be low | not yet in the guide | — |
The method is taught in Chapter 13: the master–slave pair (§10) and the long path (§11); and in Chapter 14: skew and the long path (§1), short paths and hold (§2), and two-phase clocks with the non-overlap window (§3). Jitter is Lecture 22’s topic (Chapter 23, still to come); FS1’s FN10-6 teaches it in place.
Latch loops
Recognize. The picture: a row of latches on alternating phases, logic blocks between them, and a wire from the last latch back to the first; the clocks drawn as square waves with their high and low times; primed clocks marking a skewed group. The phrases: “indicate if the circuit is functional (i. e., it is a valid FSM)”, “how the circuit, delays, or clocks could be modified”, “try to explore more than one possibility”, “even if the circuit is functional, indicate any issues”, “you cannot change this skew time”. Setup, hold and the latches’ own delay are usually zero.
Moves.
- Write the windows. Put φ1’s rising edge at 0 and write each latch’s open interval, the primes shifted by the skew. PS5: φ1 [0, 5), φ2 [5, 10), φ1′ [1.5, 6.5), φ2′ [6.5, 11.5) ns.
- Count the cycles. Alternating latches hold half as many cycles as latches; a single latch fed back on itself holds one.
- Rule 2 first. . If it fails, only more time or less logic fixes the loop.
- Race checks. From each latch’s opening edge, through the next block, against the next latch’s previous closing edge plus . A φ1 latch feeding a φ2 latch directly is a flip-flop: use the flip-flop checks with .
- Walk from L1’s opening edge: wait at a closed latch, pass an open one, check every closing edge. If a lap ends later than the one before, walk more laps.
- After a wait, restart the clock at that latch’s opening edge. The blocks that follow must reach each later latch before it closes; this chain, not rule 2, can set the period.
- Repairs, more than one: a slower clock (rule 2 or a chain), faster logic, padding (a race), moving a latch into a block (retiming), a non-overlap window. The skew itself stays.
Formulas.
- Memorize: rule 1: the data reaches every latch before its closing edge (minus ).
- Memorize: rule 2: .
- Derive: the race into latch . Path: (1) the data leaves latch no earlier than its opening edge, ; (2) latch ‘s previous window closes at and must keep its data longer; (3) .
- Derive: one latch fed back on itself. Path: (1) the data leaves as the latch opens and returns after ; (2) it must not return while the latch is open: ; (3) it passes once per cycle: .
- Derive: the chain after a wait. Path: (1) data that waits at latch leaves at its opening edge, ; (2) it reaches a later latch after the blocks between them; (3) for every up to the next wait.
Shortcuts.
- Rule 2 alone decides the loop when nothing waits after the first lap. PS5-Q1e: 21 ns in 20 ns fails (on lap 5), and at ns it settles. Condition: no latch makes the data wait from lap 2 on.
- The margin shrinks by a lap, so the failing lap follows from one margin. PS5-Q1e: 2.5 ns on lap 2, 1 ns a lap, negative on lap 5. Condition: the same.
- On 50% phases a race does not depend on the period: the closing edge moves with . PS5-Q1c is 0.5 ns short at 10 ns and at 20 ns. Condition: the phases scale with the period.
- One block longer than the time from its starting latch’s opening to the next latch’s closing fails, whatever rule 2 says. PS5-Q1d: 11 ns against ns. Condition: the data waits at the starting latch.
Traps.
- Counting latches instead of cycles: four alternating latches are two cycles.
- Checking only the windows the data is meant to use: the race sits in the previous window.
- One good lap taken as proof (PS5-Q1e passes its first four laps).
- A slower clock offered for a race (PS5-Q1c). For a single latch at 50% duty it is worse: PS5-Q1a races above 14 ns.
- Meeting only the next closing edge after a wait. In PS5-Q1d a 10 ns block meets φ2′ exactly but reaches φ1 0.5 ns late; the block must be at most 9.5 ns. The agent-written PS5 solution (PS5 has no key) does not discuss this.
- Moving logic between the two latches of a one-cycle loop (PS5-Q1b): the loop still has one cycle.
- Calling a loop broken because the walk from the edge waits: walk the launch forward first (Chapter 14’s third example).
Practice.
| Paper | Parts | Full solution | Exam way |
|---|---|---|---|
| PS5 | Q1a–e (no points) | FS1, PS5-Q1: a, b, c, d, e | a, b, c, d, e |
| Added | two harder variations: six latches with a late corner; PS5-Q1c on non-overlapping phases | FS1 V4, V5 | — |
| Lecture | three worked four-latch loops | Chapter 14 §9 | — |
| FN19 | 5a (10), a pulsed latch: one latch’s open window against a short path | FS2, FN19-5a (pulsed-latch card) | a |
No past final has a latch loop; PS5-Q1 is the family’s only graded source. The method is taught in Chapter 14: transparent latches and cycle stealing (§7), the two rules of the road (§8) and the worked loops (§9); the race check is §2’s short path, applied to latches.
Clock generation
Recognize. The picture: a box marked CG followed by “≡” and what it stands for: two NOR (or NAND) gates, an inverter, and one or two boxes marked Δ, which are delay blocks made of an even number of inverters. One clock goes in and two phases come out, and below the circuit the paper prints φ with empty rows for φ1 and φ2. The phrases: “local clock generator”, “generate two clock phases locally from a single-wire global clock”, “sketch the φ1 and φ2 waveforms”, “ignore the gate delays … but indicate the Δ1 and Δ2 delays on your sketch”, and, in a timing part that follows, “how must Δ1 and Δ2 be adjusted”. FN19-6b’s generators, inverters and a NAND around a box marked “replica AND row”, are move 8’s replica delay; the PLA card has their edges.
Moves.
- Read every wire. Write each phase as a function of its inputs, naming each delayed input by the signal it comes from: . Which phase each delay block takes is the whole question.
- Find the controlling value: 1 for a NOR (any 1 makes the output 0), 0 for a NAND.
- Set the steady state before the first edge of φ.
- Walk each edge of φ. A gate whose direct input takes the controlling value switches at once. A gate whose direct input leaves it waits for its last input, the delayed other phase: that wait is the Δ on the sketch.
- Draw every row on φ’s time axis and label each gap (or overlap) with its Δ and the edge it follows.
- Check: a NOR generator never has both phases high; with Δ → 0 the phases become a complementary pair.
- If a timing part follows, find which phase clocks the master. The window between the master’s closing edge and the slave’s opening edge protects hold, so widen that window’s Δ, and pay for it on the long path.
- A replica delay (FN19-6b): when one clock must wait for a block to finish, build the delay block as a copy of that block’s slowest path (a replica row), so the delay tracks it at every corner. Chapter 18 §9 builds a dynamic PLA’s two clocks this way; FN19-6b’s single replica row is solved in FD1 and drilled on the PLA card.
Formulas.
- Memorize: a NOR’s output is 1 only when every input is 0; a NAND’s is 0 only when every input is 1. A delay block’s output at time is its input at .
- Derive: the NOR generator’s windows, for ideal gates and each Δ shorter than its half period. Path: (1) φ rises, a 1 reaches φ1’s NOR, and φ1 falls at once; (2) φ2’s NOR still sees for , so φ2 rises after φ rises; (3) the same at φ’s falling edge with the roles swapped: φ2 falls at once, φ1 rises later.
- Derive: with gate delays, each window is . Path: (1) the phase that falls does so after its direct input switches; (2) its delayed copy falls later; (3) the other NOR rises after that, so the gap is (the inverter drops out while it is faster than that route).
- Memorize: the window hold needs, and its price: , and .
Shortcuts.
- A phase is not a delayed copy of φ or φ̄. Only its rising edge waits; it falls at once. Condition: a NOR generator (with NANDs it is the falling edge that waits).
- NORs make gaps, NANDs make overlaps. By De Morgan, the NAND generator is the NOR generator with its two outputs inverted and exchanged and its two delays swapped, so each of its overlaps is as long as one Δ. Condition: the same wiring.
- Real gates add one NOR to each window: FS2’s Variation 1 turns blocks of 60 and 100 ps into windows of 90 and 130 ps with ps. Condition: the inverter is faster than a block plus a NOR.
- Only one window protects hold: the one after the master’s closing edge. With the master on φ1 that is the window; with the master on φ2 (FN12-7b) it is the window.
Traps.
- Swapping and : read which phase each block takes.
- Drawing each phase as a delayed copy of φ or φ̄, late at both edges.
- Drawing the two phases as mirror images: the gaps are after one edge and after the other.
- Widening the window after the slave’s closing edge to cure hold: it does nothing for that race.
- Clocking latches with a NAND generator: its overlap lengthens the race (FS2’s Variation 2: with a 30 ps overlap a shift register with ps and ps needs 5 ps of logic even on perfect clocks).
- No key error in this family so far: FN12-7a’s key agrees.
Practice.
| Paper | Part (points) | Full solution | Exam way |
|---|---|---|---|
| FN12 | 7a (15): sketch φ1 and φ2 | FS2 §1 | 7a |
| FN12 | 7b (15): set and against 1.5 ns of skew; a flip-flop timing part on the same generator | FS1 | 7b |
| FN19 | 6b (8): a replica AND row that times a PLA’s two clocks | FD1, FN19-6b (PLA card) | 6b |
| FS2 (added) | Variation 1: the generator with gate delays; Variation 2: a NAND generator | V1, V2 | — |
The method itself is taught in Chapter 14 §3: two-phase clocks, the non-overlap window, the cross-coupled NOR generator and the window’s cost. Overlapping phases are Chapter 15 §8 and §10. Self-timed clocks from replica rows are Chapter 18 §8 and §9.
Pulsed latches
Recognize. The picture: a box marked CC (a clock chopper) followed by “≡” and an inverter, a delay block Δ and a NOR; then two latches, each clocked through its own CC box from CLK1 and CLK2, with combinational logic between them. A second part sends the chopped clock through an inverter into a load capacitance. The phrases: “clock-chopped flip-flops”, “the pulse width of the chopped clock”, “a hold time of … on their closed clock edge”, “CLK2 arrives 100 psec earlier”, “driven from an inverter with a load capacitance”, “what will be the ‘height’ of the pulse?”, “what problems might this present?”.
Moves.
- Read the chopper. NOR(clk, clk inverted and delayed) is high only just after each falling edge, for the chain’s delay; the papers call Δ the width and ignore the single inverter.
- Place the pulses: the launching pulse opens at 0 and the receiving pulse at , the signed skew, negative when the receiving clock is early.
- Hold. The new data, at , must arrive after the receiving pulse closes plus the hold time: solve for the widest pulse. If no clock-to-Q delay is given, take 0 and say so.
- The long path, if a period is given: so as to borrow nothing from the next stage, the data must reach the receiving latch by its pulse’s opening, with the early receiving clock.
- Distribution. from the driver’s widths times ; . A pulse shorter than arrives as a runt.
- Height and consequence: of ; sketch the bump, say what it does to the latch, and cure it with the driver or a chopper beside the latch, never with a wider pulse.
Formulas.
- Derive: pulsed hold. Path: (1) the new data reaches the receiving D at after the launching pulse opens; (2) the receiving latch listens until its pulse closes, at , and for more; (3) so .
- Memorize: a driver’s delay, , measured at the 50% point, with the driver’s own drain capacitance ignored.
- Derive: the runt’s height. Path: (1) a step into an RC moves of the swing; (2) the 50% point at gives ; (3) after the output has moved of .
- Memorize: the pulsed long path without borrowing, , with setup met inside the pulse when ; a flip-flop needs .
Shortcuts.
- Skew moves the pulse cap one for one. An early receiving clock adds its skew to the widest pulse, a late one takes it away: FN19-5a gives 150 ps with no skew, 250 ps with CLK2 100 ps early, 50 ps if it were late. Condition: identical choppers, so the pulses are offset by exactly the clocks’ skew.
- Runt landmarks: pulses of , and reach , and of , so FN19-5b’s must land between the first two (0.34). Condition: the 50%-point RC model.
- The driver a pulse needs: for half the swing, (FN19-5b: 20 fF); for 90%, (66.4 fF). Condition: hold fixes the pulse width.
- Hold and setup take opposite skews: the late receiving clock caps the pulse, the early one sets the period.
Traps.
- Reading an early receiving clock as late: FN19-5a then gives 50 ps instead of 250 ps.
- Measuring hold from the pulse’s opening edge instead of its closing edge.
- Drawing the NOR chopper’s pulse at the rising edge, or giving a NOR an even chain: it makes no short pulse, only shortened by the chain.
- Taking itself as the RC time constant: the unofficial 2019 solution boxes for FN19-5b that way. With the course’s 50%-point delay the height is , which it gives only as an alternative.
- Curing a runt by widening the pulse: hold capped the width.
- Counting the pulse as free time on the long path: what one stage borrows, the next loses (FS2’s Variation 3: 960 ps, not 916).
Practice.
| Paper | Part (points) | Full solution | Exam way |
|---|---|---|---|
| FN19 | 5a (10): the widest pulse | FS2 §2 | 5a |
| FN19 | 5b (12): the runt through a loaded inverter | FS2 §2 | 5b |
| FS2 (added) | Variation 3: a pulsed design end to end; Variation 4: a double-edge chopper | V3, V4 | — |
The method itself is taught in Chapter 14: pulsed latches and their short path (§4), the clock chopper (§5) and runt pulses (§6); the driver’s delay is Chapter 7 §7.
Storage cells
Recognize. The picture: a latch drawn at transistor or gate level (a pass NFET or a transmission gate on clk, a forward inverter, a feedback inverter, sometimes clocked devices or a TSPC stack), or a small sequential design given only in words. The phrases: “he is unable to write the latch”, “Y is not affected by the value of A”, “what has gone wrong? How can this be fixed?”, “design a two-bit wrap-around counter”, “a synchronous input reset”, “design your circuit for the fastest clock frequency possible”. No past paper yet asks “which nodes are dynamic?” or for a half latch on a TSPC flip-flop, but the lecturer flags that question as an exam candidate (Lecture14 @ 27:02; FS2’s Variation 5).
Moves.
- Name every internal node (X for the storage node) and, for each clock phase, list the devices that conduct onto it. Something pulling both ways is a fight; nothing conducting is a dynamic node.
- A write: the writer (the driver and the switch, in series) against the holder (the feedback device that is on in the old state). Estimate the divider and compare it with , in both directions.
- The fix: weaken the holder, strengthen the writer, or, robustly, switch the feedback off while writing (gated feedback).
- A design: state table, next-state equations, gates (the fewest levels, for speed), then the flip-flops (their edge, static or dynamic, Q and Q̄).
- A synchronous input goes through D and acts at the next edge. One that arrives after the edge is a flip-flop output with : it meets the next edge’s setup and this edge’s hold.
- The fastest clock is set by the slowest path into any D, .
- A dynamic cell: walk each phase and data sequence, find the state with two floating nodes, and hold the inner one with a half latch gated by the output.
Formulas.
- Memorize: device resistance in the course’s model: an NFET of width pulling down is ; a PFET pulling up, ; an NFET pulling up, about , and only to . Devices in series add.
- Derive: the write as a divider. Path: (1) during the fight the same current flows through the pull-up and the pull-down side; (2) so ; (3) the write succeeds if crosses ; at , if the writer’s resistance is the smaller.
- Memorize: a flip-flop’s paths, and .
- Memorize: a binary counter flips bit 0 every cycle and bit when all lower bits are 1 (); a synchronous reset ANDs each next state with .
- Memorize: a half latch is about one tenth of the strength of the network that must overpower it.
- Derive: a dynamic node’s slowest clock. Path: (1) the leakage drains ; (2) the node may droop , so it holds for ; (3) it must hold for half a period, so .
Shortcuts.
- Compare resistances, not voltages. At the side with the smaller resistance wins. Condition: a balanced forward inverter.
- At normal sizes an ungated feedback inverter wins both ways. With every inverter 2/1 and a 1 µm pass NFET, X stalls at writing a 0 and at writing a 1. To lose both fights, the feedback PFET must be narrower than 1 µm and its NFET narrower than 1/3 µm, so it is made long instead. Condition: the course’s resistor model.
- Writing a 1 through an NFET is the worse direction: check it first.
- Gated feedback needs no sizes: nothing fights the write at any corner.
- One gate level for a counter bit: with Q and Q̄ both available, is a single complex gate. Condition: the flip-flops give both outputs.
- A late synchronous input is rarely critical. It leaves before the flip-flops’ outputs do (PS5-Q2, with example delays: a 95 ps reset path against a 195 ps counter path). Condition: .
Traps.
- Strengthening the forward inverter: its gate draws no current, so it does not fight.
- Widening only the pass NFET: the driver is in series with it.
- Checking only the write-0 direction.
- A transmission gate alone against a 2/1 feedback inverter: still a ratio, and it can still lose (FS2’s Variation 6).
- A synchronous reset wired to the stored nodes: that is an asynchronous reset.
- Letting a reset that arrives after an edge act at that edge: it acts at the next one.
- Reading an inverting flip-flop’s output (TSPC) as Q.
- No key error in this family so far: FN19’s unofficial solution and PS5’s agent-written work agree with FS2.
Practice.
| Paper | Part (points) | Full solution | Exam way |
|---|---|---|---|
| FN19 | 9 (10): a latch that cannot be written | FS2 §3 | 9 |
| PS5 | Q2a (no points): the counter’s logic | FS2 §4 | Q2a |
| PS5 | Q2b (no points): the reset and the clock | FS2 §4 | Q2b |
| PS5 | Q3a (no points): a scan flip-flop’s schematic | not yet in the guide (the test page) | not yet in the guide |
| FS2 (added) | Variation 5: half latches on a TSPC toggle flip-flop (the lecturer’s flagged exam candidate); Variation 6: a transmission gate against its feedback | V5, V6 | — |
The method itself is taught in Chapter 13: the latch circuits (§6), the write fight (§7), gated feedback (§8), master–slave (§10) and the long path (§11); the dynamic cells in Chapter 15: the dynamic flip-flop (§1), the half latch (§5) and the TSPC flip-flop (§6).
Parallel-prefix adders
Recognize. No picture: FN17-8 prints its three blocks as equations and asks for the drawing. The phrases: “draw the block schematic diagram of an 8-bit parallel adder composed of an interconnection of three logic building blocks”, “a PG generator with the equations: , ”, “a radix-two lookahead element with the equations: , ”, “sum generator with the equation: ”, “draw the critical path through your network”. Nothing is computed; the marks are for the wiring and the path.
Moves.
- Number the positions. The carry-in is position 0, entered as the pair ; the bits are 1 to . Draw them as the key does: bit at the left, the carry-in entering at the right.
- Bottom row: one PG generator per bit, and .
- Read the element as groups. The paper’s is the higher span’s , and the adjacent lower span’s. The higher span always enters on the left.
- The network: Kogge–Stone unless the paper names another. In level , every row whose span does not yet reach position 0 merges with the row below it. For 8 bits: 8, 7, 5 and 1 elements, 21 in 4 levels (the board’s Brent–Kung: 13, also in 4).
- Top row: , with the carry-in wired straight up; , its straight up from its own PG generator and its carry from the column one to its right (the bit below). feeds no sum.
- The depths: for , the top sum’s carry, and for , the carry-out. Kogge–Stone puts every at its bound, .
- Mark both critical paths, PG → elements → and PG → elements → , and say which is longer and when. For a network whose carries are not all at their bounds (Brent–Kung), find the deepest over every : the last sum may sit in the middle.
- Check with two additions through the drawing: with must give 2, and with must give 1 (the only test of the wire from to ).
Formulas.
- Memorize: and (the XOR, because the sum reuses it); the element , associative but not commutative.
- Derive: the carries and the sums, , , . Path: (1) a carry leaves bit if some position generates and every bit from to propagates: the group generate ; (2) position 0 generates when and passes nothing on, so it enters as ; (3) bit ‘s sum is XOR the carry into it, the carry out of bit .
- Memorize: Kogge–Stone over positions has elements in level and levels. No network of two-input elements makes in fewer than levels.
- Derive: the critical path, and . Path: (1) the blocks on a path are in series, so their delays add; (2) needs , at depth , then one XOR; (3) is itself, at depth . Fan-out and wires ignored, as the lecture counts.
- Derive: the miswired sum’s error, . Path: (1) insert ; (2) regroup as ; (3) the first bracket is , so bit is wrong exactly where the carry changes across it.
- Memorize: . XOR each with the subtract line and feed the same line to ; means no borrow.
Shortcuts.
- Classify spans to evaluate fast: generate , kill , propagate . A generate or a kill on the left decides the element alone; a propagate passes the lower span through. Condition: , so never occurs (with an OR propagate it does).
- 16 bits: Kogge–Stone elements in 5 levels, strict Brent–Kung 27 in 6. Condition: the carry-in counted as position 0.
- FN17-8’s two paths tie. With the example delays , and : at and at . Condition: ; the sum path wins when the XOR is slower than an element, the carry-out path otherwise.
- The bound ends the argument. spans 8 positions and nine, so no network makes them in fewer than 3 and 4 levels. Kogge–Stone meets both, so only faster blocks can shorten FN17-8’s path. Condition: two-input elements.
- A miswired adder is right only when every carry equals : no bit generates (with ) or none kills (with ). That is of the 131,072 additions, , and its is always right. Condition: only the sum wiring is wrong.
- In Brent–Kung the last sum can sit in the middle. At 16 bits, in the strict pattern, waits for at level 6, , while the top sum is ready at 22, because its carry comes straight from the up-sweep. Condition: a network whose carries are not all at their bounds.
Traps.
- Wiring each sum to its own column, , as the FN17-8 key does: every sum one position too high, and fed from the 0–1 output the key labels “C₁”. It gives and , is wrong on 117,950 of the 131,072 additions (90.0 %), and moves the critical path: would wait for , .
- Swapping an element’s inputs (the lower span on the left): the element does not commute.
- Feeding the sums from the network’s outputs instead of each bit’s own ; taking the propagate as .
- Forgetting the carry-in, or entering it with a propagate of 1.
- Calling Brent–Kung faster. It has fewer elements, never fewer levels: on the board’s 8-bit network is 4 deep against Kogge–Stone’s 3, so arrives at 22 instead of .
- In a subtraction, forgetting , or reading as “no borrow”: , computed as , gives 204 with , a borrow, so the result is .
Practice.
| Paper | Part (points) | Full solution | Exam way |
|---|---|---|---|
| FN17 | 8 (15): an 8-bit parallel-prefix adder and its critical path | FD1, FN17-8 | 8 |
| FD1 (added) | Variation 1: debugging the miswired adder; Variation 2: a subtraction through all 21 elements; Variation 3: sixteen bits, and the sum that comes last | V1, V2, V3 | — |
FN17-8 is the family’s only past-final part. The method is taught in Chapter 16: subtraction (§3), generate and propagate (§9), the radix-2 element and the entry (§12–§13); and in Chapter 17: the element and its order (§1), carries as prefixes (§2), Kogge–Stone (§3), Brent–Kung (§4), the two compared (§5) and the whole prefix adder (§6).
Logarithmic shifters
Recognize. The picture: one 2:1 multiplexer block with its equation beside it. FN12-6 draws a box marked MUX with data inputs and from the top, a control from the left and the output below, and prints . The phrases: “draw the (block-level) schematic of an 8-bit arithmetic right shifter using the basic multiplexer building block shown below”, “the shift amount should be determined by a three-bit control signal”. Other words of the family: “logical”, “arithmetic”, “rotate”, “logarithmic”, “barrel”, “stack height”. The marks are for the rows, the wiring of each mux’s two inputs, and what fills the vacated end. An encoded amount ( select bits) means the logarithmic shifter; one select line per amount, one-hot, means the barrel shifter.
Moves.
- Read the mux equation: which input passes when the control is 1. FN12-6’s passes .
- Write the amount in binary, ( for 8 bits): one row of muxes per select bit, row shifting by . Any order of rows works; keep the key’s ( first).
- Wire row , mux : the control is ; the input that passes on a 1 takes , the bit places to the left in the word entering the row; the other input takes , straight above.
- The pads: every passes-on-1 input whose index runs past . Tie it to 0 (logical), to from the input (arithmetic), or to the bit the same row pushes out at the bottom, (rotate).
- Count: rows of muxes and pads.
- Check one word: a negative number shifted by an amount with two 1 bits, so that two rows pad; compare with .
- Transistor detail, if asked: with pass-transistor muxes a path is its driver plus one device per row. Break long stacks with rows of inverters, and invert the pads of every row that carries inverted data.
- More than one kind of shift: keep the rows, and put a mux on each pad that chooses between the wrapped bit and one common fill, .
Formulas.
- Memorize: a right shift by gives . The top places fill with 0 (logical), with the MSB (arithmetic, so a two’s-complement becomes ), or with the bits that fell off the bottom (rotate, ).
- Derive: the logarithmic shifter. Path: (1) write ; (2) a shift by followed by one by is a shift by , so one row per bit, each shifting by or passing, gives every amount; (3) in row , mux takes on the input that passes when and on the other: rows of muxes.
- Derive: the pads. Path: (1) row has muxes whose shifted input would come from beyond the MSB; (2) pads; (3) an arithmetic right shift never changes the MSB, so every row’s MSB is still and every pad can come straight from the input.
- Derive: the stack height. Path: (1) a pass-transistor mux puts one device in series for each row a bit crosses; (2) with its driver, ; (3) an inverter after a row is a new driver, so a stack is 1 plus the rows since the last driver, and the data stay inverted until the next inverter.
- Memorize: the barrel shifter has one NFET per (output, amount) pair, in all, with one-hot selects: two lines on would fight, none on would float.
Shortcuts.
- The sizes: 8 bits, 3 rows, 24 muxes, 7 pads; 32 bits, 5 rows, 160 muxes, 31 pads. Condition: a power of 2.
- Check by value. FN12-6: with passes row unchanged, then becomes and . With 0 pads the same rows give : the pads alone make the shift arithmetic. Condition: two’s complement.
- The kind of shift lives in the pads. Three modes on FN12-6’s shifter cost one pad mux per pad and one fill mux, muxes, and lengthen a pad path from 4 to 5 devices in series (6 if the fill is a pass mux too). Condition: pass-transistor muxes, the fill from a restoring gate.
- Buffer every two rows to keep stacks at 3. At 32 bits the unbuffered stack is 6; inverter rows after and give 3, 3 and 2, and the output comes out true. Condition: a driver and at most two pass devices per stack.
- Pad parity: a row below an odd number of inverter rows pads with . At 32 bits with inverters after and , rows and take on their 12 pads and the other 19 pads take . Condition: the pads taken from the input.
- Log against barrel: at 32 bits the barrel shifter has NFETs and the log shifter in its muxes, 3.2 times fewer, at the price of more devices in series. Condition: two NFETs per pass mux; the barrel’s select decoder and the log shifter’s inverter rows not counted.
Traps.
- Swapping the mux inputs: every select bit then acts inverted, so the circuit shifts by , and shifts by 7.
- Padding an arithmetic shift with 0 (2 instead of in the check above), or taking a pad from the wrong side or from a row’s own output.
- A rotate’s pads from a fixed bit: each row wraps the bits it pushes out at the bottom.
- Inserting inverters and leaving the following rows’ pads true: a negative number then fills with zeros.
- One select line per amount where the paper says “a three-bit control signal”: that is the barrel shifter.
- Making the shared fill with a pass mux: one more device in every pad path.
- No key error in this family: FN12-6’s key draws the same shifter (one label in row is illegible).
Practice.
| Paper | Part (points) | Full solution | Exam way |
|---|---|---|---|
| FN12 | 6 (15): an 8-bit arithmetic right shifter from 2:1 muxes | FD1, FN12-6 | 6 |
| FD1 (added) | Variation 4: one shifter, three kinds of shift; Variation 5: thirty-two bits, buffered | V4, V5 | — |
FN12-6 is the family’s only past-final part. The method is taught in Chapter 17: the three kinds of shift (§7), the logarithmic shifter, its arithmetic pads and its stack height (§8), and the barrel shifter with one-hot selects (§9).
PLAs
Recognize. The picture: a grid. Vertical literal lines in threes (, a ground line, ); rows, each starting at a pull-up on the left; NFETs at some crossings, gated by a line; a second grid of columns at the right, gated by the rows, with or without inverters at the bottom. A static PLA’s pull-ups are PFETs with grounded gates (FN12-10a); a dynamic one’s are clocked by and , with a clocked foot on each plane (FN19-6). FN19-6b adds two generator circuits, each with a box marked “replica AND row”. The phrases: “find f0 and f1 (Boolean equations) as a function of x0, x1, and x2”, “the OR plane does not being (sic) to evaluate until after the AND plane has evaluated”, “what is the logic function of this PLA”, “design a replica AND row, two instance (sic) of which can be used in the circuits below to generate and ”.
Moves.
- Label the lines at the bottom: true, complement, ground. Find each device’s gate line, and look at the bottom of each column for an inverter.
- Each row: list its devices’ lines, flip each literal, AND them. A device on puts in the product.
- Each column: OR the rows that have devices in it; complement the OR if the column has no inverter (FN19-6).
- Simplify (; ), then check two input rows by tracing them through the grid, not through your formula.
- A dynamic PLA “if the clocks satisfy this relationship”: the race is avoided, so it computes what a static PLA with the same devices computes. Read it by moves 1–4.
- The clocks: the AND plane evaluates first. stays low at least as long as the slowest row’s precharge, and rises only after the slowest row has evaluated.
- A replica row: a copy of a real row, in the same array, with as many devices as the widest product and exactly one of them on (gate at ), loaded like the most heavily loaded real row. One design serves both boxes.
- Edge times, if delays are given: trace each generator from clk’s rising edge, then the valid time and the period.
- Building one runs the other way: sums of products, the fewest shared rows, each true literal’s device on the complement line.
Formulas.
- Derive: a row’s product. Path: (1) any device that is on pulls the row low, so the row is high only when all its lines are 0; (2) row ; (3) by De Morgan, : the complement of each device’s line.
- Memorize: a column is the NOR of its rows. With an inverter the output is their OR; without one, the complement of the OR.
- Memorize: the two requirements, and , with and the slowest row’s precharge and evaluate.
- Memorize: the slowest precharge belongs to the row with the most capacitance (the most devices); the slowest evaluate is a row discharging through one device.
- Derive: the generators’ edges, clk rising at 0. Path: (1) the NAND falls at once, ; falls, the replica precharges, the inverter falls and the NAND rises, so , low for ; (2) the second replica and its inverter follow : , ; (3) valid one OR-plane evaluate later; the period adds the latch’s setup. The margins, and , are gate delays only.
- Memorize: a static (pseudo-NMOS) PLA has one NFET per programmed crossing, one PFET load per row and per column, and two devices per output inverter.
Shortcuts.
- FN12-10a’s two outputs are one function: , 1 on 000, 010, 100, 110 and 111. Condition: none; a PLA programmed by hand need not be minimal, so always try to simplify.
- FN19-6’s is the complement of FN12-10a’s (the same two rows, no inverter): , 1 on 001, 011 and 101; , 1 on 001 and 101. Condition: the clocks meet both requirements.
- One replica row does both jobs: three devices, one on, precharge like the heaviest row and evaluate like the slowest. The one new condition: clk’s low phase must let the upper replica evaluate again, (240 ps with the example delays below). Condition: FN19-6b’s single design.
- The example delays (, , , , the OR plane 150, setup 50 ps, for example): low 30–220 ps (190 against 150), the slowest row done at 420, low 200–440 ps, valid at 590, period 640 ps.
- A replica keeps its margins at every corner; a fixed delay does not. With the gates 10 % and the rows 30 % slower, the period grows to 804 ps (25.6 %) and the margins become 44 and 22 ps; an inverter chain tuned to the typical 220 ps gives 242 ps where the slowest row needs 260: 18 ps short. Condition: rows and gates slow by different amounts.
- Parity costs a row per minterm. A full adder needs rows, no fewer, and 38 devices when static ( NFETs, 9 loads, 4 in the inverters). Condition: a row is shared only where its product is an implicant of both outputs.
Traps.
- Reading a device on as the literal : it puts in the product.
- Writing the OR form for FN19-6, as if it had FN12-10a’s inverters: that is the complement of the right answer on every input.
- One clock on both planes: every row is high when evaluation starts, so every column with a device discharges for good. FN19-6 would read on every input, 5 of its 16 entries wrong.
- A replica that copies a typical row, or has all its devices on for (the fastest evaluate, not the slowest).
- A replica without the real rows’ load: as many OR-plane gates as the most heavily loaded row ( drives two in FN19-6), and the full row wire.
- Two different rows, the lecture’s pair: they work, but FN19-6b asks for one design used twice.
- No key error in this family so far: FN12-10a’s key agrees but leaves unsimplified; FN19 has no key, and its unofficial solutions agree.
Practice.
| Paper | Part (points) | Full solution | Exam way |
|---|---|---|---|
| FN12 | 10a (9): read a static PLA | FD1, FN12-10a | 10a |
| FN19 | 6a (10): a dynamic PLA’s function, with no output inverters | FD1, FN19-6a | 6a |
| FN19 | 6b (8): a replica AND row for both clocks | FD1, FN19-6b (clock-generation card) | 6b |
| FD1 (added) | Variation 6: a full adder as a PLA; Variation 7: the replica clocks at a slow corner | V6, V7 | — |
| FN12 | 10d (9): a ROM, a decoder into a NOR plane, read without inverters | FM1, FN12-10d (memory-addressing card) | 10d |
The method is taught in Chapter 18: sums of products from NORs (§1), the pseudo-NMOS NOR (§2), programming a PLA (§3) and reading one back (§4), Espresso (§5), the dynamic PLA and its race (§7), self-timed clocks (§8) and replica rows (§9, with one design for both generators).
SRAM access path
Recognize. The picture: a row of five transistor-level stages with every width printed in µm. A domino NOR predecoder has its precharge PFET and foot on ; its output inverter sends arrows marked “256X fanout”; then come a race-based NOR on , a stage footed on , and an inverter into a capacitor marked “wordline load”. The phrases: “the wordline drives 256 SRAM cells with access transistors and 100 fF of wire capacitance”, “estimate the delay of the decode path … (for the critical evaluation edge) as a multiple of the fanout-of-one (FO1) delay, ”, “the bitline must be pulled from to for detection”, “if the fanout-of-four delay (FO4), , what is the approximate memory access time”, “a cycle time of 12-15 FO4”, “Name one technique for improving SRAM access time”. On a clock, the same path belongs to the dynamic row-decoder card.
Moves.
- Name each stage’s critical edge. The dynamic stages (the domino NOR, the race NOR, the stage) fall on evaluation; the inverters after them rise.
- Each stage’s drive. A falling stage pulls down through one input NFET in series with its foot (one input high is the worst case; parallel inputs do not help): , normalized input . A rising inverter pulls up through its PFET: . The precharge PFET is off on the evaluation edge, so leave it out.
- Each stage’s load: the gates its output drives, times the fan-out. An inverter’s input is both its devices; a dynamic node drives only the NFET it gates (stage III drives stage IV’s 20 µm NFET, not its foot). Use the printed fan-out and say so.
- The word line: , two access gates per cell, converted to µm at .
- Divide and add, keeping two decimals and adding the unrounded gains. If the clocking matters, split the sum at : the stages before it (I–III) and after it (IV–V).
- The bitline: the cell’s access and pull-down NFETs in series, over , to . Scale for the swing the detector needs.
- The access time: decode plus bitline; then FO4 at the paper’s ; then cycles, dividing by 15 and by 12 FO4.
- The remedy attacks the larger term, the bitline: a sense amplifier at a 50–100 mV swing, shorter bitlines (banks), a skewed detector, self-timing, pipelining.
Formulas.
- Derive: a falling stage’s gain, . Path: (1) devices in series add resistance, so the input NFET and the foot act as one NFET of ; (2) that drives like the inverter with NFET and PFET , input ; (3) a stage’s delay in is its load over that input.
- Derive: a rising inverter’s gain, . Path: (1) a PFET is as strong as an NFET of half its width; (2) the matching inverter has NFET and PFET , input ; (3) divide the load by it.
- Memorize: . A 6T cell hangs two access gates on its word line, one to bit and one to .
- Derive: the bitline, with . Path: (1) the cell’s 0 node joins the bitline to ground through the access and the pull-down NFET in series; (2) so the cell is one more stage, a weak drive against the column’s capacitance in µm; (3) the gain model’s delay is to the 50 % point, which is .
- Derive: a smaller swing, . Path: (1) near the cell’s current is about constant; (2) the time for a swing is ; (3) so it scales with , and is the time for .
- Memorize: , because the bitline starts only when the word line is up; FO4 when the paper says so. with : 4 with no drain capacitance, 3 at .
Shortcuts.
- FN10-5a’s five gains: , , , and , in all: 13.99 before (I–III), 7.58 after it (IV–V). Condition: the printed widths and fan-out.
- A size check: the gains multiply to about 1253, and five equal gains with that product, , sum to , the least possible; 21.57 is 3.6 % above. Condition: the first stage’s input and the word-line load fixed; resizing the inner stages changes the gains, not their product.
- The topology’s fan-out: 8 row bits in 2-bit groups make 16 lines, each shared by race NORs, not 256. Stage II becomes and the path . Condition: answer with the printed 256 and give this as a remark.
- Rows and columns load different stages. More rows load the predecoder (stage II) and the bitline; more columns load the word line (stage V); stages I, III and IV see neither. At 512 × 512 the bitline doubles, , and stage V goes from 3.75 to 7.49. Condition: the same circuits, wire capacitance in proportion to length.
- The bitline decides the verdict. At it is 79 % of FN10-5’s access, and alone it is FO4, already about two cycles of 12–15 FO4. Condition: a detector that waits for .
- After a sense amplifier, the decoder is the target. At 2.5 V a skewed inverter switching at waits for 0.5 V, ; a 100 mV sense amplifier needs , and the access falls to FO4, 76 % of it decode. Condition: a near-constant cell current near .
Traps.
- One access gate per cell on the word line, as FN10-5a’s key writes: 612 fF, stage V 2.04, a path of (the key’s rounded gains; 19.87 unrounded), short. It carries into 5c: the key’s FO4, against FO4.
- Forgetting the foot in series (stage I would come out , half its gain), or counting the precharge PFET as drive or load.
- instead of for a rising inverter: it halves stages II and V.
- The bitline through the access NFET alone: , half of the right 83.3.
- FO4 taken as (“fan-out of four”): 26.2 FO4. The paper fixes 3.
- Answering only 5c’s first question, as the key does: it also asks why 35 FO4 is a challenge (2.3–2.9 cycles, with an access in most cycles) and for a technique.
Practice.
| Paper | Parts (points) | Full solution | Exam way |
|---|---|---|---|
| FN10 | 5a (10): the decode path’s delay in | FM1, FN10-5a | 5a |
| FN10 | 5b (10): the bitline to | FM1, FN10-5b | 5b |
| FN10 | 5c (6): the access time in FO4, the cycle and a remedy | FM1, FN10-5c | 5c |
| FM1 (added) | Variation 1: a 512 × 512 array from the same circuits; Variation 2: the detector decides the bottleneck | V1, V2 | — |
FN10-5 is the family’s only past-final part; FM1’s Variation 6 puts its path on a clock. The method is taught in Chapter 19: the 6T cell (§1), the bitline’s delay (§7), sense amplifiers (§10), predecoding counts (§11), the decode path’s delay (§12) and the access time (§13). The gain rule is Chapter 8 §1, a dynamic stage’s drive Chapter 12 §2, FO4 against FO1 Chapter 5 §13, and the array’s shape, which sets the bitline’s length, Chapter 18 §10.
Memory addressing and ROM decoders
Recognize. Two kinds of question. FN10-10 prints no figure: “assume that I have a memory with a logical organization of ”, “how many bits of address do I need?”, “if the internal array is organized to be , how many bits of the address are needed for column multiplexing? Explain.” FN12-10d prints a decoder-driven ROM: eight 3-input ANDs down the left on , , , their bubbles in a binary count, each driving a row; three columns , , , each topped by a PFET with a grounded gate; ground lines between row pairs, and NFETs from a column to a ground line, each gated by a row. The phrase: “complete the logic table shown below”, whose input columns are printed , , . Nothing is timed; the marks are for the counting and for reading the circuit exactly. FN12-10a on the same page is a PLA (PLA card); here a full decoder raises exactly one row.
Moves.
- Address bits , with k = 1024. The word width does not enter.
- Row bits .
- Column bits: a row holds words, so a :1 multiplexer on bits, decoded into one-hot selects. “Explain” asks for the words per row.
- Check that and that row bits plus column bits give move 1.
- Predecoding, if asked: row bits in groups of give lines; each row decoder takes of them; each line feeds decoders.
- A ROM, the decoder’s order. An AND is high on the one input with 0 at its bubbles and 1 elsewhere. Write down which row decodes which input, and the bit order ( most significant in FN12-10d).
- The devices by row. Each NFET belongs to the row its gate bar crosses; the ground line beside it is only its source.
- Each output word: the selected row’s devices make 0s; every other column stays 1.
- Check by counting: the table has as many 0s as the circuit has devices. Then read each column down for its function.
Formulas.
- Memorize: address bits ; k is 1024 in memory sizes (, , ).
- Derive: the split, . Path: (1) each row holds words; (2) a word is named by its row ( bits) and its place on the row ( bits); (3) because , so the two add to .
- Derive: the predecode counts. Path: (1) bits decode to one-hot lines, in groups; (2) a row decoder takes one line from each group, inputs; (3) a line fixes bits and leaves free, so decoders share it.
- Derive: the ROM rule, exactly when a device sits at (row , column ). Path: (1) a pseudo-NMOS column is held high by its always-on PFET and pulled low by any conducting NFET, which wins the ratio: it is the NOR of its rows; (2) a full decoder raises exactly one row; (3) so only that row’s devices conduct: their columns read 0, every other column 1.
- Memorize: the column multiplexer’s selects are a full decode of the column bits; each passes one -bit word, with an NFET on bit and one on per column, NFETs a select.
Shortcuts.
- FN10-10 in one line: , 12 bits; 256 rows, 8 bits; words a row, 16:1, 4 bits; . Condition: every count a power of two.
- Count from a size you know: 1k words take 10 bits, and each doubling adds one: 4k takes 12, 16k takes 14.
- Column bits by subtraction: address bits minus row bits, . Condition: the array holds the memory exactly ().
- FN12-10d’s table: for 000, …, 111 the outputs are 001, 111, 010, 111, 011, 110, 011, 101. Down the columns: (its devices sit on the four rows with ); is 0 only at 000 and 111; only at 010 and 101. Condition: the bubbles in binary order, the most significant bit.
- Programming runs backwards: put a device at every 0 of the table. A function that is 0 on half its inputs puts half the rows on its column: the Gray-code ROM on FN12-10d’s decoder needs devices. Condition: a NOR ROM with no output inverters.
- The shape sets the bitline. A memory as 512 × 1024 splits 9 + 5 (32:1), as 1024 × 512 10 + 4 (16:1); at FN10-5b’s 250 fF per 256 rows their bitlines take 166.7 and . Condition: the bitline’s capacitance in proportion to its rows; the wider array pays a few on its heavier word line.
Traps.
- Counting bits instead of words: , “16 bits”.
- Column bits as : , and bits name 16 times as many things as the memory holds. The multiplexer picks words, not columns.
- Reading a ROM device as a 1, a “programmed bit”: here it pulls its column low. Programming by the 1s gives the complement.
- Adding output inverters, as FN12-10a’s PLA has: FN12-10d has none, and inverters would flip all 24 entries.
- Giving a device to the row whose ground line it sits on instead of the row whose gate bar crosses it.
- No key error in this family: the FN10-10a–b and FN12-10d keys agree with the re-solves.
Practice.
| Paper | Parts (points) | Full solution | Exam way |
|---|---|---|---|
| FN10 | 10a (4): the address bits for | FM1, FN10-10a | 10a |
| FN10 | 10b (6): the column-multiplexing bits of a 256 × 256 array | FM1, FN10-10b | 10b |
| FN12 | 10d (9): a decoder-driven ROM’s table | FM1, FN12-10d | 10d |
| FM1 (added) | Variation 3: a memory, from address to array; Variation 4: programming the ROM, and a fault | V3, V4 | — |
The method is taught in Chapter 18 §10: the array and logical against physical organization; and in Chapter 19: column multiplexing (§9) and decoders (§11), with predecoding counts and a decoder driving a ROM. The pseudo-NMOS column is Chapter 10 §10.
Dynamic row decoders
Recognize. The picture: one decoder per word line, each a dynamic NOR of two address lines with a PFET and a foot on , feeding a second stage (an NFET gated by the first stage’s node, a foot on ) and an inverter to the word line. Beside them, one SRAM column: precharge PFETs on ; write stacks enabled by an AND of and write, with data_in on the side and its complement on the side; an inverter from to data_out. Below, the given waveforms phi1, phi2, x0, x1, write and data_in, with empty rows to fill. The phrases: “a more area-efficient dynamic decoder”, “we show only one column of the SRAM”, “for the input waveforms shown, find the waveforms at , , , and data_out”, “what criterion does the dynamic decoder put on the nonoverlap window of phi1 and phi2?”. FN10-5’s stages III and IV are the same race-based NOR.
Moves.
- Read each decoder’s inputs. A row is selected when every input of its NOR is 0, exactly one row per address. In FN17-6, W0 = NOR(, ), W1 = NOR(, ), W2 = NOR(, ), W3 = NOR(, ); the scan hides the bars on at W0 and W2.
- Read every device’s clock, then walk the four intervals of a cycle: high (precharge); the gap to (stage 1 evaluates, and every unselected row’s node falls); high (stage 2 fires on the selected row, and the column reads or writes); the gap to .
- The word line rises just after and falls when stage 2’s PFET turns on: at if that PFET is on (the lecture’s), at if it is on (FN17-6).
- The bitlines: both high in precharge, floating high in the gap. In a write pulls one low fast through its stack; a read lets the cell pull its 0 side low slowly through its two NFETs. A low bitline stays low until rises.
- The detector: trace its polarity from the side it hangs on.
- The criterion: the gap from to must cover every stage ahead of the clock-qualified one: stage 1’s evaluation in FN17-6; the domino predecoder, its inverter and the race NOR (I–III) in FN10-5. Give the reason: the race onto a second word line.
- The address window, if asked: stable from to , changed while is high.
- In picoseconds, if gains are given: the gap holds the stages before ; holds the rest of the path, the bitline’s swing and the sense amplifier; precharge needs its own time; the period is the sum.
Formulas.
- Derive: the race condition, over the stages ahead of the clock-qualified one. Path: (1) stage 1 evaluates from , and every unselected row’s node starts high and needs to fall; (2) stage 2’s foot opens at and discharges on every row whose node is still high, and a fallen dynamic node cannot recover before the next precharge; (3) so the gap must cover stage 1’s evaluation and every stage that feeds it from : a domino predecoder and its inverter too, I–III in FN10-5, whose inverter (6.83) is the largest term.
- Memorize: a dynamic NOR row is selected when all its inputs are 0, so the row for an address takes the complement of each address bit.
- Memorize: FN17-6’s column: a write of data_in = 1 pulls low, of 0 pulls low; a read pulls the cell’s 0 side; data_out, an inverter on , reports the cell’s side, the complement of the data written.
- Derive: the address window, to . Path: (1) a dynamic gate’s input must not rise while it evaluates (it would discharge the selected row’s node), and one that falls cannot recharge a node already down; (2) stage 1 evaluates from , and the selected row’s node must stay high while stage 2’s foot is on, until ; (3) so the address is held over that span and changed in precharge.
- Derive: the clock budget, . Path: (1) precharge needs high; (2) the gap holds the stages before the clock qualification; (3) with the word line falling at , holds the remaining stages, the bitline’s swing and the sensing.
Shortcuts.
- One address, one row, every cycle. FN17-6a’s selects W0 throughout. W0 is high in and the gap after it; is low in the same intervals (steeply in the first cycle, the write; more gently in the reads); stays high and data_out low throughout. Condition: stage 2’s PFET on .
- The column returns the complement. Write 0 at and 1 at 10, then read both (FM1’s Variation 5): word lines W1, W2, W1, W2; data_out 1, 0, 1, 0. An inverter on instead (or the data_in inverter moved to the other stack) reads back 0, then 1. Condition: the data stack on , the detector on .
- FN10-5’s path on a clock (FM1’s Variation 6, ps, for example). The gap holds I–III, ps; holds IV, V, a 100 mV swing and of sensing, ps; with 300 ps of precharge the period is 1297 ps (771 MHz), 32 % of it gap. With the topology’s fan-out of 64 the gap is 266 ps and the period 1144 ps. Condition: the lecture’s stage 2 on , no second gap.
Traps.
- Letting W0 fall with , as on the lecture’s board: FN17-6’s stage 2 PFET is on , so W0 stays up until rises.
- Reading the scan’s W0 as NOR(, ): it duplicates W1, and no row answers .
- Assuming data_out = data_in. With FN17-6’s wiring a written 1 reads back as 0; FN17-6a writes only a 1, so only a trace through both values shows it.
- Putting the criterion on the gap after falls, where nothing races.
- Holding the address only until : stage 2’s foot is on , so the selected row’s node must stay high until .
- One slope for writes and reads: a stack pulls a bitline down fast, the cell slowly.
- Copying the FN17-6a key’s later W0 pulses, which drift off their edges (the third a whole pulse late), or its FN17-6b criterion, which gives no reason: align every pulse to its edges, and give the race.
Practice.
| Paper | Parts (points) | Full solution | Exam way |
|---|---|---|---|
| FN17 | 6a (about 8): the waveforms at W0, , and data_out | FM1, FN17-6a | 6a |
| FN17 | 6b (8): the criterion on the non-overlap window | FM1, FN17-6b | 6b |
| FM1 (added) | Variation 5: four cycles at two addresses; Variation 6: the decode path as a clock budget | V5, V6 | — |
FN17-6 is the family’s only past-final part. The method is taught in Chapter 19: two phases for the periphery (§6), the read column (§7), the write column (§8) and the race-based NOR (§12), with its circuit and the race and the clock that removes it. The race between dynamic stages is Chapter 11 §5; the non-overlap gap is Chapter 14 §3, and the circuits that make it are on the clock-generation card.
Elmore wires
Recognize. The picture: a wire drawn as thick lines from a driver at A to one or more receivers (B, C) with a capacitor at each, the lengths in µm written along every run, often with a riser (“up 1000 µm, then 2000 µm across”); or one straight point-to-point wire from A to B. Then a line of technology data: a width (0.4 µm), a sheet resistance (0.076 Ω/square) and a capacitance per length, either one number (0.1 fF/µm) or a formula in the width ( fF/µm). The phrases: “calculate the Elmore delay from A to B”, “widen the wire from 0.4 µm to 4 µm and recompute”, “explain why such wire ‘tapering’ might be advantageous”, “would resistance have to be considered”. FN12-9a prints a hint that quotes alone.
Moves.
- Per-length values first. for each width, and from the paper’s number or from its formula at that width. Work in Ω and fF; Ω·fF ÷ 1000 is ps.
- Draw the path from the driver to the receiver the question names, and cut it at every branch point, every width change and every lumped load. Count the risers.
- Each path segment’s totals, and .
- Each segment’s , walking back from the receiver: its load, then each later segment, and each side branch (its wire and its loads) at the node where it leaves the path.
- Sum .
- Check by the other grouping: the path’s own , plus the receiver’s load through the whole path, plus each side branch or lumped load times the resistance it shares with the path.
- Widening or tapering. Recompute and for the changed segment. Its own term changes, and its new capacitance enters the of every segment before it. A taper is two segments in series. Give the comparison and the reason, not only the number.
- “Must resistance be considered?” Compare with the edge time; if none is given, with the FO1 delay, since edges last a few of them. Explain both effects: the edge arrives late, and its slope is stretched by about .
Formulas.
- Memorize: and ; , a plate term from the wire’s bottom face that grows with and a fringe term from its sides that does not; about 0.1 fF/µm for a minimum wire.
- Memorize: the Elmore rule. Every capacitance counts times the resistance it shares with the path from the driver to the receiver, and the result is quoted as the delay, with no ln 2.
- Derive: the uniform line, . Path: (1) a slice at distance charges through ; (2) ; (3) the load at the far end sees all of .
- Derive: the segment form, . Path: (1) every capacitance counts with the path resistance it shares with B’s path; (2) collect the terms of each path resistor: multiplies everything beyond its far end, side branches included; (3) its own capacitance sees on average half of it. It holds for grounded capacitance and one pole; off-path resistance never appears.
- Derive: widening. Path: (1) ; (2) ; (3) . The intrinsic term falls only to the floor .
- Derive: two segments (a taper), from the segment form: , with segment 1 at the driver.
- Memorize: the resistance test. If , the wire is a lumped capacitance; if , include (delay, slew, shielding).
Shortcuts.
- A lumped load costs its capacitance times the resistance it shares, and nothing else. FN10-8b: each 200 fF adds ps on B’s path and ps on C’s branch, so 522.5 ps becomes 750.5 ps. Condition: the sizes and the other loads stay as they were.
- A side branch costs its whole capacitance times the resistance up to where it leaves. In FN10-8a that is ps of the 522.5 ps, from a wire that does not lead to B.
- A one-line bound: all the capacitance through the whole path resistance. FN10-8a: ps, at least the 522.5 ps. Condition: no capacitance sees more than the path’s resistance.
- Widen the segment nearest the driver, because its resistance multiplies the most capacitance. FN19-7d: the trunk’s term falls from 380 to 37.1 ps and the branch’s 142.5 ps stays, so the delay is 179.6 ps. Condition: the widened segment is the first, so no earlier term sees its larger capacitance. The bill is capacitance: the tree holds 3980 fF instead of 1100 fF (loads included).
- Widening has a floor. FN12-9’s wire gives ps, so no uniform width beats 91.2 ps, while the taper reaches 82.46 ps. Condition: the areal-plus-fringe law.
- Taper wide near the driver. It wins while the load is small next to the wire’s own capacitance (30 fF against 1480 fF in FN12-9c).
- No edge time given? Count FO1 delays. FN19-7c: 522.5 ps is 10.45 FO1 delays of 50 ps, so resistance matters.
Traps.
- Forgetting the risers: FN10-8’s X–B is 1000 µm up and 2000 µm across, 3000 µm of wire.
- Putting a side branch’s own resistance into the sum, or leaving its capacitance out (332.5 ps instead of 522.5 ps in FN10-8a).
- Dropping the ½, or squaring in the load term.
- Obeying FN12-9a’s hint literally: ps leaves out the 22.8 ps load term (174.8 ps in all).
- Keeping 0.1 fF/µm after widening when the paper gives : 17.48 ps instead of 99.56 ps in FN12-9b, 157.7 ps instead of 179.6 ps in FN19-7d.
- Measuring a lumped load’s resistance from the receiver instead of from the driver.
- Tapering the wrong way: 0.4 µm at the driver and 4 µm at the receiver gives 561.26 ps on FN12-9’s wire.
- A number without the “explain”: FN12-9c’s key gives 82.44 ps (82.46 rounded) and no reason, which the part grades.
Practice.
| Paper | Parts (points) | Full solution | Exam way |
|---|---|---|---|
| FN10 | 8a–b (20): a tree with two receivers, then two lumped loads | FW1, FN10-8: a, b | a, b |
| FN12 | 9a–c (32): a point-to-point wire, widened, then tapered | FW1, FN12-9: a, b, c | a, b, c |
| FN19 | 7a–d (36): the width law (0.1 fF/µm at 0.4 µm, so 7b is FN10-8a’s 522.5 ps), the tree, the resistance test, a widened trunk | FW1, FN19-7: a, b, c, d | a, b, c, d |
| FW1 (added) | Variation 1: a third receiver, a budget and a wider trunk; Variation 2: 12 mm of wire, repeaters or a taper; Variation 3: where to split a taper | V1, V2, V3 | — |
| FN17 | 3a (11): the same sums on a clock tree, with buffers | FW1, FN17-3a (clock-tree card) | a |
The method itself is taught in Chapter 20: wire R and C (§1), the Elmore delay (§3), the uniform line (§4) and its worked example (§5), when resistance matters (§6), trees and side branches (§7), widening (§8) and tapering (§10).
Clock-tree wires
Recognize. The picture: an H-tree. A root inverter at A drives the middle of a trunk; branches halve in length every two levels (4000, 4000, 2000, 2000, 1000 µm in FN17-3) and end in columns of leaf inverters; one leaf’s output is B, with a load written beside it (500 fF, the key’s handwriting). The data: the FO1 delay (100 ps), the gate capacitance per width (2 fF/µm), the inverter’s pFET and nFET widths (200 and 100 µm), and the wires’ and per µm (0.1 Ω/µm, 0.2 fF/µm). Later parts add a supply sensitivity with a nominal supply, then an inductance per length. The phrases: “calculate the total delay from A to B”, “do not consider resistive shielding to calculate buffer delay”, “what jitter can one expect from power supply noise”, “should inductance be included”. The paper calls the inductance per length ; the guide writes , and the length , wherever inductance is in play.
Moves.
- Count the tree level by level. The number of wires doubles at every level, 2, 4, 8, 16, 32: multiply each count by its level’s length, and count the leaves.
- One inverter’s input: (pFET + nFET width) × the gate capacitance per width.
- The root buffer charges everything, because the paper says to ignore resistive shielding: its load is all the wire’s capacitance plus every leaf input, and its delay is load .
- B’s path from the root’s output, cut at every branch node: each segment’s and .
- Each , walking back from B: B’s leaf input first; then, at each node, add the next path segment, its , and the side subtree that leaves there (its wire and its leaf inputs). The half of the tree that leaves at the root node is in no : it only loads the root buffer.
- Sum , then add the leaf buffer, , and the root buffer.
- Jitter: (fractional supply change) (root + leaf buffer delays), never the wire. Say how you read “10 % noise”.
- Inductance: convert to per-mm units, find , and ; compare the wires’ lengths with , and the edge time (at least if none is given) with .
Formulas.
- Memorize: a buffer’s delay, (Chapter 7), with = (pFET + nFET width) × the gate capacitance per width.
- Derive: the path delay, . Path: (1) the root buffer, the wire and the leaf buffer are in series, so their delays add; (2) the root buffer charges every node, so with no shielding its load is the whole tree; (3) the wire’s segment form starts at the root’s output, and a subtree that leaves at a node counts there, whole, with the path resistance up to that node.
- Derive: the supply rule, . Path: (1) ; (2) replace the derivative by a difference, ; (3) apply it to the gates only, because and are set by the metal and the dielectric. A change that comes and goes from cycle to cycle is jitter.
- Memorize: the two wire delays, and .
- Derive: the inductance window. Path: (1) equate ; (2) ; (3) substitute back: both delays are there, so inductance can matter only if .
Shortcuts.
- Count by the doubling: FN17-3 has 104,000 µm and 32 leaves, so the root drives 40 pF in 6.667 ns.
- The values nest. Each is the next segment’s capacitance plus that segment’s plus the side subtree, so walk in from the leaf and add: FN17-3 gives 600, 1600, 4000, 8800 and 19,200 fF.
- The first segment dominates. It carries half the tree: FN17-3’s trunk half gives 7.84 of the wire’s 12.79 ns. Condition: a balanced H-tree.
- Regroup to check: own wire 0.41 + side subtrees 10.32 + B’s leaf input 0.78 + later path wire 1.28 = 12.79 ns. Bound: the 19.2 pF beyond the trunk lies behind 400 to 1300 Ω (the trunk’s own 0.8 pF behind less), so 7.68 to 26 ns.
- Jitter is a fixed fraction of the buffer delay. With and 10 % noise, 1 % of FN17-3’s 6.75 ns of buffers: 67.5 ps. Read as ±10 %, the edge moves over 135 ps. Condition: first order, every buffer on the same noisy supply; the wire’s 12.79 ns does not move.
- Convert before the square root. 0.1 Ω/µm is 100 Ω/mm and 0.2 fF/µm is 0.2 pF/mm, and 1 Ω × 1 pF = 1 ps. FN17-3c: ps/mm, mm and ps, 50 times below . Every wire is longer than , so inductance is out.
- A sized chain at the root (FW1’s Variation 4) cuts the root’s 6.667 ns to 1.158 ns with five stages, and the jitter from 67.5 to 12.4 ps.
Traps.
- Counting one branch per level per quarter, as the FN17 key does: 64,000 µm for 104,000.
- Each path segment’s against itself only (the key’s terms): 1.28 ns missing.
- Leaving the side subtrees out of , or putting their own resistance into the sum.
- Loading the root buffer with B’s half only: it charges all 40 pF.
- Taking a leaf load other than the figure’s. The key’s arithmetic uses 2000 fF (333 ps) where its own figure has 500 fF (83.3 ps). With its six slips the key reaches 17.48 ns instead of 19.54 ns.
- Applying to the whole delay, wires included (195.4 ps), or to the key’s slipped buffer delays (its 56.6 ps).
- Reading “10 % noise” without saying how.
- Mixing Ω/µm with nH/mm inside .
Practice.
| Paper | Parts (points) | Full solution | Exam way |
|---|---|---|---|
| FN17 | 3a (11): the total delay from A to B | FW1, FN17-3: a | a |
| FN17 | 3b (11): jitter from supply noise | b | b |
| FN17 | 3c (illegible): should inductance be included? | c | c |
| FW1 (added) | Variation 4: a buffer chain at the root; Variation 5: two leaves, two loads, and two ways to fix the skew | V4, V5 | — |
| FN10 | 6c–d (15): a clock tree’s jitter, with the latency given | FS1, FN10-6: c, d (flip-flop card) | c, d |
The method is taught in Chapter 20: trees and side branches (§7), resistive shielding (§6) and the clock-tree note in its On the exam; the buffer delay in Chapter 7 §7; and in Chapter 21: supply noise and delay (§8) and when inductance matters (§7).
Power grids and decap
Recognize. No picture: short-answer questions of 5 to 7 points, alone (FN12-3, FN12-4) or among the short parts of a question 1 (FN17-1b), answered with a few ranked lines and at most one number. The phrases: “why are grids preferred for power-ground distributions? Provide at least two reasons”, “please name at least three sources of on-chip decoupling capacitance”, “why is on-chip decoupling capacitance necessary for power-supply integrity?”, “if the total clock load in a microprocessor is 1 nF, what is a reasonable decoupling capacitance target to ensure no more than a 10% droop on the power supply? Explain your reasoning”. The same supply noise returns in the clock-tree card, where it becomes jitter.
Moves.
- Name the noise. DC is IR drop, caused by the network’s resistance; AC is , caused by the inductance of the grid and the package. Say which defence answers which: a grid lowers both, decap the AC.
- “Why grids”: ranked: low and low from many redundant paths; built-in decap; signal returns. The cost: routing tracks.
- “Sources of decap”: implicit metal–metal (the lowest series resistance), n-well and quiet gates; explicit thin-oxide MOS (an NFET, gate at ).
- “Why on-chip decap”: the edge’s charge cannot come through the package’s inductance in time, so it is stored next to the circuits and refilled between edges.
- “A decap target”: the charge balance across one edge, solved for , then put back as a check.
- “Explain your reasoning”: state the conditions. The load starts discharged; the package delivers nothing within the edge; the decap is close and fast; one edge at a time. Say that the result is a floor, since other switching loads and decap behind series resistance push it up.
- One number makes each short answer convincing: one strap’s IR drop against straps’, or the edge’s through the package.
Formulas.
- Memorize: DC noise ; AC noise ; equal paths in parallel give and, if they do not couple, about .
- Memorize: an edge’s current, about : the charge the edge moves, over its time.
- Derive: the decap target. Path: (1) before the edge the decap holds and the load nothing; (2) after it both sit at with the same charge, , so ; (3) a droop of at most needs .
- Memorize: a decap behind a series resistance responds only on times longer than about . Metal–metal has the lowest ; the n-well (well and substrate resistance) and the quiet circuits (an on transistor) have more.
- Memorize: a MOS decap cell is a distributed RC, so its time constant grows as the square of its size. Hence unit cells of about 10 µm, tiled and strapped in metal, each with an electromigration fuse against pinholes.
- Memorize: what a droop does to a gate, (the clock-tree card). A droop that is the same on every cycle only adds latency; one that comes and goes is jitter.
Shortcuts.
- For a droop of , the decap is times the switching load: 9 times for 10 % (FN17-1b: 9 nF), 19 times for 5 %, 4 times for 20 %. Condition: one edge, charge sharing alone, the decap close and fast.
- Area: at, for example, 10 fF/µm² of thin-oxide MOS capacitance, 9 nF is 0.9 mm² of chip.
- One strap cannot feed the centre. For example, 2 A through one 1.5 Ω strap drops 3 V, more than the 1.2 V supply; 100 paths in parallel drop 30 mV (2.5 %), and 1 nH per path becomes about 10 pH. Condition: equal paths sharing the current.
- The edge through the package: FN17-1b’s 1 nF clock rising 1.2 V in 100 ps draws 12 A; through even 10 pH that is 1.2 V, the whole supply. Condition: an illustrative 100 ps edge (the paper gives none).
- Count the decap that can respond in the edge’s time. Compare with the edge: in Chapter 21’s example, 1 nF behind 0.5 Ω has 0.5 ns, too slow for a 100 ps edge, while 1 nF behind 0.05 Ω has 50 ps.
Traps.
- Writing (10 nF), which forgets that the load keeps part of the shared charge: put it back, %, and the slip shows (10 nF gives 9.09 %).
- Giving only the resistance as the grid’s reason: the most important reason is low resistance and low inductance.
- Calling the grid’s capacitance a cost: on the supply it is decap, and the only cost is routing.
- Listing switching gates as decap: only the quiet gates lend their input capacitance.
- Answering FN12-4’s list but not its “why”: the key does exactly that.
- Counting a capacitor on the board as decap: it sits behind the same package inductance.
- Counting every nanofarad as equally useful. In FW1’s Variation 6, the n-well’s 10 nF behind 50 mΩ meets 10 % by charge sharing alone (9.09 %), but on a 100 ps edge the droop is about 59 %.
- An NFET decap with its gate at ground: the channel is off.
- No key error in this family: the FN12-3, FN12-4 and FN17-1b keys agree, but FN12-4’s gives no “why” and FN17-1b’s explains only “charge sharing”.
Practice.
| Paper | Part (points) | Full solution | Exam way |
|---|---|---|---|
| FN12 | 3 (7): why grids, at least two reasons | FW1, FN12-3 | 3 |
| FN12 | 4 (7): three sources of on-chip decap, and why it is needed | FW1, FN12-4 | 4 |
| FN17 | 1b (5): a decap target for a 1 nF clock and a 10 % droop | FW1, FN17-1b | 1b |
| FW1 (added) | Variation 6: a decap behind series resistance; Variation 7: a droop budget, the grid and the decap | V6, V7 | — |
| FN17 | 3b (11): what the supply noise does to a clock tree | FW1, FN17-3b (clock-tree card) | b |
The method is taught in Chapter 21: the two kinds of supply noise (§8), power and ground grids (§9), off-chip inductance and decap sizing (§10), implicit and explicit decap, and series resistance (§11) and MOS decap cells (§12).