Skip to content

22. Packaging and test: supply resonance, scan, stuck-at faults and reliability

Lecture 21 closes the course’s circuit topics by stepping outside the circuit: to the supply network that feeds the chip, the package that holds it, the tester that decides whether it works, and the years it must keep working afterwards. It opens with one more property of the supply network from Chapter 21: built to be quiet, it still has a resonance at a low frequency, the power-supply hum, and a program that switches a big block on and off at that frequency can bring a chip down. A brief tour of packaging follows: what a package does, the families from pin grid arrays to ball grid arrays, and why flip-chip bumps beat bond wires. The middle and heaviest part is design for test: why a fabricated die cannot be tested by running it, how a multiplexer in front of every flip-flop turns them into one long scan chain, how the stuck-at fault model turns “is this die good?” into a logic puzzle, and how a test pattern is found and run through the chain. The past finals test this part hardest. The lecture ends with reliability: the quiescent-current (IDDQ) test, the bathtub curve, burn-in, the wear-out mechanisms that slow a chip as it ages, and built-in self-test.

After this chapter you can:

  1. explain why the supply network resonates near fclk/10f_{clk}/10, and what kind of activity excites it;
  2. name a package’s functions and the main package families, and say why flip-chip bumps beat wire bonds;
  3. tell design testing from acceptance testing, and say why functional testing does not scale;
  4. draw a scan flip-flop and a scan chain, and give the scan test procedure with the order in which bits go in and come out;
  5. find a test pattern for a stuck-at fault: control the node, sensitize a path, handle fan-out that reconverges, and count the patterns;
  6. run a stuck-at test through a scan chain and say which scanned-out bit reveals the fault;
  7. explain IDDQ testing and the design rule it imposes;
  8. read the bathtub curve, name an infant-mortality mechanism and say how burn-in exposes it, describe wear-out and its remedies, and tell ABIST from LBIST.

Boxes and equations marked board were written in the lecture. Parts marked added are explanations or examples this guide adds.

Symbols
SymbolMeaningUnitFirst appears
LLthe inductance of the supply’s path onto the chip (package, bond wires or bumps), lumpednH§1
CCthe on-chip decoupling capacitance between VDDV_{DD} and ground, lumpednF§1
RRthe series resistance of the supply path addedmΩ§1
fresf_{res}, ω\omegathe resonance frequency (Hz) and an angular frequency (ω=2πf\omega = 2\pi f, rad/s)MHz, rad/s§1
Z(f)Z(f)the impedance the chip’s current sees, looking into the supply network addedmΩ§1
fclkf_{clk}the clock frequencyMHz, GHz§1
NNthe number of clock cycles between bursts of activity added—§1
SEscan_enable: the select of the multiplexer in front of every scan flip-flop (1 = shift, 0 = normal)—§4
SI, scan_ina scan flip-flop’s scan input; the chain’s input pin—§4
scan_outthe chain’s output pin: the last flip-flop’s Q—§4
D, Q, CLKa flip-flop’s data input, output and clock (the board writes clk)—§4
FiF_i, qiq_i, DiD_ithe ii-th flip-flop of a chain, its state (Q), and the logic’s output that feeds its D added—§5
ST0, ST1stuck at 0, stuck at 1 (the board’s abbreviations; other books write SA0, SA1)—§6
0/1a node’s value in the good circuit / in the faulty circuit added—§6
IDDQI_{DDQ}the supply current in the quiescent state (nothing switching)mA§9
RshortR_{short}the resistance of a defect from VDDV_{DD} to ground addedΩ§9
JJcurrent density in a wire, I/(wt)I/(wt) addedmA/µm²§10
ww, wneckw_{neck}, tta wire’s width, its width at a neck, its thicknessµm§10
VDDV_{DD}, VTV_T, ΔVT\Delta V_Tsupply voltage, threshold voltage (its magnitude ∣VT∣\lvert V_T\rvert for a PFET), and a shift of the thresholdV, mV§11, §12
τ\taua gate’s delayps§12
TTthe clock periodps§4, §12

1. Supply resonance: the power-supply hum

You need

Supply noise (Chapter 21). The chip’s current flows through the supply’s resistance and inductance, so the supply at the circuits droops by IRIR (the DC part) and moves by L dI/dtL\,dI/dt (the AC part, from the package’s and the network’s inductance).

Grids and decap (Chapter 21). Grids on every metal layer keep the network’s RR and LL low. Decoupling capacitance CC on the chip, between VDDV_{DD} and ground, supplies the fast current locally, so the transient does not have to come through the package’s inductance. Some decap comes free (metal–metal, the n-well, circuits that are not switching: implicit); the rest is built from MOS capacitors (explicit).

The supply’s path onto the chip (Chapter 21, Lecture20 @ 57:57, redrawn): the package’s inductance in each rail, and the decap beside the circuits. Original figure ↗

An LC tank added (circuits background). An inductor and a capacitor joined in a loop pass energy back and forth at the angular frequency ω=1/LC\omega = 1/\sqrt{LC}, that is at f=1/(2πLC)f = 1/(2\pi\sqrt{LC}) in hertz. Driven by a current at that frequency, the pair presents a large impedance, so a small current makes a large voltage; only the loop’s resistance limits it.

The question. Chapter 21 built the supply network to be quiet: low RR and LL, plenty of decap. Yet the package’s inductance and the chip’s decap are exactly an inductor and a capacitor. At what frequency do they ring, why does ordinary clocked activity leave the ring alone, and what kind of program can excite it?

The supply network is an RLC network

From a quiet network to a resonance (board, 01:35–04:42)

  1. The recap board. The board at 01:35 restates Chapter 21: the power-supply network must reduce supply noise; low RR and LL (a grid); decoupling, implicit and explicit; the noise is L dI/dtL\,dI/dt.
  2. A giant RLC network board. The network’s resistances, inductances and capacitances together form “a giant RLC network”, and “it has lots of one over the square root of LC resonances in it” (01:51). The board writes “RLC ⇒ 1/LC1/\sqrt{LC} resonances!” (02:45). If energy is put into the network at one of those frequencies, the supply noise is amplified.
  3. One resonance always there board. The package’s inductance against the on-chip decap gives a resonance that sits, typically, near one tenth of the clock frequency: “resonance ≈ 110fclk\tfrac{1}{10}f_{clk} (low frequency)” (03:40). “This is often called power supply hum” (03:03).
  4. Why it is usually harmless. A clocked chip draws its current in a burst at every clock edge. A pulse train at fclkf_{clk} has its energy at fclkf_{clk} and its harmonics (2fclk2f_{clk}, 3fclk3f_{clk}, …), far above a resonance at fclk/10f_{clk}/10: the clocking does not put energy into the hum (03:08–03:35).
  5. The program that found it (03:35–04:40). Friends of the lecturer at AMD found chips failing on one particular piece of code: a loop that ran a floating-point multiply every 10 cycles. The multiplier is a high-power block; switching on once every ten cycles, it drew a burst of current that repeated at fclk/10f_{clk}/10, exactly the hum. Such failures appear only with particular code, which is what makes them hard to find.

The supply network reduced to one loop added. The board supply VDDV_{DD} feeds the chip through the package’s resistance RR and inductance LL (here the loop’s total, both rails together). On the chip, the decap CC sits between the rails, and the switching logic draws a current i(t)i(t). LL and CC form a tank that rings at fresf_{res} (the loop arrow).

The board (Lecture21 @ 04:42)
Lightboard in one pale cyan pen: 'Lecture 21' underlined; 'Power supply network,' underlined; '⇒ reduce power supply noise', '⇒ R/L (low) ⇒ grid', '⇒ decoupling' underlined, 'implicit', 'explicit'; 'L dI/dt' at the right; 'RLC ⇒ 1/√(LC) resonances!' in a dashed box with an up arrow below; 'resonance ≈ (1/10) f_clk' with the fraction ringed, '(low frequency)', and 'power supply “hum”' with an arrow to the ring. The lecturer stands in the middle, reading from papers; his striped shirt washes out the strokes behind it.
Lecture21 @ 04:42The supply network's recap, its 1/√(LC) resonances, and the hum near fclk/10.

Fair copy of the board above (Lecture21 @ 04:42), mark for mark in its own layout, all in black: one pale cyan pen wrote the whole board. The middle, washed out by the striped shirt (the decoupling underline, “implicit”, “explicit”, and the dashed box round 1/√(LC) with its double arrow), is restored from 03:40; the double arrow and the bar under the ring are new at 04:42. “hum” and its quotes sit a little right of the board’s place, clear of the wider typeset “power supply”.

Putting numbers on the hum

The board gives only 1/LC1/\sqrt{LC} and “about fclk/10f_{clk}/10”. Three added steps added make the picture quantitative.

The resonance frequency. The board’s 1/LC1/\sqrt{LC} is an angular frequency, in radians per second. In hertz, divide by 2π2\pi.

Memorize it; the 2π2\pi is the usual slip.

The impedance the chip sees. Look into the supply from the chip’s current source. The decap CC is in parallel with the path back to the board, R+jωLR + j\omega L:

Z(f)=(R+jωL)  ∥  1jωC,ω=2πf.Z(f) = (R + j\omega L)\;\Big\|\;\frac{1}{j\omega C}, \qquad \omega = 2\pi f .

At low frequency the capacitor is an open circuit and ∣Z∣→R\lvert Z\rvert \to R. At high frequency the capacitor is a short and ∣Z∣≈1/(ωC)\lvert Z\rvert \approx 1/(\omega C), falling. In between, at fresf_{res}, the inductor’s and the capacitor’s reactances cancel in the parallel combination, and ∣Z∣\lvert Z\rvert peaks at about L/(RC)L/(RC): limited only by RR. A current component at frequency ff makes a supply ripple of that current times ∣Z(f)∣\lvert Z(f)\rvert.

What excites it. A burst of activity every NN cycles repeats with period N/fclkN/f_{clk}, so its current has a strong component at fclk/Nf_{clk}/N. The dangerous loop is the one with

N≈fclkfres.N \approx \frac{f_{clk}}{f_{res}} .

Derive it: one repeat every NN cycles is a frequency of fclk/Nf_{clk}/N; set it equal to fresf_{res}.

The impedance the chip sees added, computed from Z(f)=(R+j2πfL) ∥ 1/(j2πfC)Z(f) = (R + j2\pi fL)\,\|\,1/(j2\pi fC) with, for example, L=0.1L = 0.1 nH, C=100C = 100 nF and R=5R = 5 mΩ. Flat at RR at low frequency, a peak of 202.5 mΩ at fres=50.33f_{res} = 50.33 MHz, then falling as 1/(2πfC)1/(2\pi fC). The clock at 500 MHz sees 3.22 mΩ; a burst every ten cycles (fclk/10f_{clk}/10, 50 MHz) lands on the peak.

A worked example: the hum of a 500 MHz chip (added; values for example)

  1. The values. For example, L=0.1L = 0.1 nH of package inductance, C=100C = 100 nF of on-chip decap, R=5R = 5 mΩ, fclk=500f_{clk} = 500 MHz.
  2. The resonance. LC=10−10×10−7\sqrt{LC} = \sqrt{10^{-10} \times 10^{-7}} s =3.162= 3.162 ns, so fres=1/(2π×3.162 ns)=f_{res} = 1/(2\pi \times 3.162\ \text{ns}) = 50.33 MHz. Then fclk/fres=f_{clk}/f_{res} = 9.93: the hum sits at about fclk/10f_{clk}/10, as the lecture says.
  3. The impedance at the hum. Evaluating ZZ at fresf_{res} gives ∣Z∣=\lvert Z\rvert = 202.5 mΩ. A quick estimate: L/(RC)=10−10/(5×10−3×10−7)=200L/(RC) = 10^{-10}/(5\times10^{-3} \times 10^{-7}) = 200 mΩ.
  4. The impedance at the clock. At 500 MHz, ∣Z∣=\lvert Z\rvert = 3.22 mΩ. A current component at the hum therefore makes 63 times the ripple of the same current at the clock frequency: 1 A of it would move the supply by 202.5 mV, a fifth of a 1 V supply, against 3.2 mV at fclkf_{clk}. At DC, ∣Z∣=R=5\lvert Z\rvert = R = 5 mΩ.
  5. Which loop hits it. A burst every 10 cycles repeats at 500/10=500/10 = 50 MHz, where ∣Z∣=\lvert Z\rvert = 201.8 mΩ: on the peak. A burst every 4 cycles repeats at 125 MHz, where ∣Z∣=\lvert Z\rvert = 15.2 mΩ: well past it.

Check. Far above fresf_{res} the capacitor carries almost all the current, so ∣Z∣≈1/(2πfC)=1/(2π×5×108×10−7)=\lvert Z\rvert \approx 1/(2\pi f C) = 1/(2\pi \times 5\times10^{8} \times 10^{-7}) = 3.18 mΩ at 500 MHz, close to the exact 3.22 mΩ (the small difference is the inductive branch in parallel).

More decap moves the hum; it does not remove it. Doubling CC lowers fresf_{res} by 2\sqrt2 and halves the peak L/(RC)L/(RC). The hum is still there, at a different loop length.

Traps.

  • 1/LC1/\sqrt{LC} in hertz. It is in radians per second; divide by 2π2\pi, or the frequency comes out 6.28 times too high.
  • “More decap removes the hum.” It moves it down as 1/C1/\sqrt{C} and lowers the peak; a loop of a different length can still hit it.
  • “A clocked chip’s current is at fclkf_{clk}, whatever the code does.” A pattern of activity that repeats every NN cycles puts a component at fclk/Nf_{clk}/N.
Check yourself Why does a chip clocked at f_clk not normally excite a supply resonance at f_clk/10?

Its current comes in a burst at every clock edge, a periodic train at fclkf_{clk}. Such a train has components only at fclkf_{clk} and its harmonics, all far above fclk/10f_{clk}/10, where the network’s impedance is small. Only activity that itself repeats every ten or so cycles puts current at the hum.

Check yourself Double the decap in the worked example (C = 200 nF). Find the new resonance, and how often (in cycles) a burst must repeat to hit it.

fres=1/(2π0.1 nH×200 nF)=f_{res} = 1/(2\pi\sqrt{0.1\ \text{nH} \times 200\ \text{nF}}) = 35.59 MHz, lower by 2\sqrt2. A burst every NN cycles hits it when N=fclk/fres=500/35.59=N = f_{clk}/f_{res} = 500/35.59 = 14.05: about every 14 cycles. The peak falls to 102.5 mΩ (the estimate L/(R⋅2C)=100L/(R \cdot 2C) = 100 mΩ, half the 200 mΩ before), so the hum is weaker but still there.

Check yourself Does the hum's frequency depend on the clock frequency?

No: it is set by LL and CC alone. Only its ratio to the clock depends on fclkf_{clk}, and that ratio is what decides which loop of code excites it.

2. Packaging (background for the final)

You need

Off-chip inductance (Chapter 21). The supply reaches the die through bond wires or bumps and the package’s leads, and each adds inductance in the supply path; so many are used in parallel, and decap is placed on the chip to supply the fast current locally.

The supply’s path onto the chip (Chapter 21, Lecture20 @ 57:57, redrawn): each LL is the package’s and its connections’ inductance. Original figure ↗

The question. What does a package do, what kinds are there, and why has the industry moved from wires bonded to the die’s edge to bumps over its whole face? This section is background for the final: no past final asks about packaging, so it is brief and has no worked example.

What a package does board (05:53). Three things: signal and power interconnect (one bracket on the board: the package carries both); physical support and protection; and heat dissipation.

What it is made of board (07:01): plastic; ceramic (alumina, Al₂O₃); and epoxy resin, called “organic”, the same family of material as FR4 circuit boards.

How it mounts on the board board (08:03–10:47).

  • Through-hole: the leads pass through holes drilled in the board. It is mechanically stable, but the long leads add inductance and the interconnect density is low. Packages “through the mid-1990s were mostly through-hole packages” (08:11).
  • Surface mount: the leads are soldered onto the board’s surface: lower inductance and higher density. Surface mount dominates today.

The families board (10:02–14:34).

  • PGA, pin grid array (through-hole): pins in a grid under the package. The original Intel Pentium came in a ceramic PGA. Cavity up: the die faces up, wire bonded, pins below it. Cavity down: the die sits on the pin side and a heat sink goes on top, which cools better but leaves fewer pins for a given package size.
  • DIP, dual in-line package (through-hole): two rows of leads, the package of the original TTL parts.
  • QFP, quad flat pack (surface mount): leads on all four sides; microprocessors moved from PGAs to QFPs.
  • TSOP, thin small outline package (surface mount): the usual DRAM package.
  • BGA, ball grid array (surface mount): an organic substrate with an array of solder balls underneath, soldered to the board; the state of the art at the recording.

Inside a BGA: wire bond or flip-chip board (14:34–18:11).

  • Wire bond. The die faces up, and bond wires run from pads in one or two rows around its periphery to the substrate. Bond wires “have a fair amount of inductance” (15:43), and the supply reaches the die’s centre only through its on-chip metal.
  • Flip-chip. Solder bumps cover the whole face of the die, which is flipped face down onto the substrate. “Flip-chip”, “solder bump” and “C4” name the same joint (16:52). Bumps have far lower inductance than bond wires, far more connections fit, and power enters the die everywhere, including its centre.
  • Bump sizes. “3-on-6 mil” means 3 mil bumps on a 6 mil pitch; “4-on-8 mil”, 4 mil bumps on 8 mil. A mil is a thousandth of an inch, 25.4 µm (“roughly 25 microns”), so 3-on-6 is about 75 µm bumps on a 150 µm pitch. Micro-C4 bumps are smaller still.

Several dies in one package board (19:18–22:16). A multichip module (MCM) puts several dies on one package: an old IBM RS/6000 module carried nine flip-chip dies on ceramic, as the lecturer recalls; MCMs are now built on organic substrates. TSMC’s InFO (integrated fan-out) goes further: the dies are embedded in a filler, and several layers of polyimide wiring, made lithographically, connect them and fan out to the bumps, with no package substrate at all. The result is thin and dense, which is why phones use it. Foundries are moving into packaging.

Three ways to package a die added, sketched after the boards (Lecture21 @ 14:34–22:16), same horizontal scale. (a) Wire bond on a BGA: bond wires from the die’s edge pads to the substrate. (b) Flip-chip on a BGA: the die face down on C4 bumps over its whole area; the larger BGA balls join the package to the board. (c) TSMC’s InFO: dies embedded in a filler with polyimide redistribution layers (RDL) beneath them and no substrate.

The board (Lecture21 @ 18:11)
Lightboard in one cyan pen, crowded. Left: 'Packaging' underlined; '⇒ signal interconnect / power distribution', '⇒ physical support', '⇒ heat dissipation' with a bracket and an arrow; two PGA sketches (top view with dotted pins, a wire-bonded cavity), 'cavity up', 'cavity down'; 'PGA (pin grid array)', '⇒ through-hole' underlined, '+ mechanically stable', '− lead inductance', '− interconnect density low'; a DIP sketch and 'DIP (dual-in-line)' ringed. Middle: 'plastic', 'ceramic (alumina)', 'epoxy resin (“organic”)' in an oval; two lead sketches; '⇒ surface-mount' boxed; 'QFP (quad flat pack)', 'TSOP' and its sketch. Top middle: 'micro C4', '3-on-6 mil', '4-on-8 mil', 'flip-chip', 'solder bump', 'C4', a die covered in bumps and a die with edge pads and arrows. Right: 'BGA ball grid array' boxed with an arrow, a side view with balls, a QFP top view, a square die outline. The lecturer stands in the middle with papers, covering the lead sketches.
Lecture21 @ 18:11The whole packaging board: functions, materials, through-hole and surface-mount families, BGA, flip-chip and the bump sizes.

Fair copy of the board above (Lecture21 @ 18:11), mark for mark in its own layout, all in black: one cyan pen wrote the whole board. The middle, behind the lecturer and his papers (plastic, ceramic (alumina), the epoxy oval, the two lead sketches, the left of the surface-mount box and QFP), is restored from 17:11, where it is clear; the box round BGA, the “mil” notes and the small c-marks after 3-on-6 and 4-on-8 are new by 18:11 and copied from it. The text is set smaller than the hand so that the crowded labels stay apart.

Traps.

  • C4, flip-chip and solder bump are three names for one thing. A question that names one means all three.
  • A BGA’s balls and a flip-chip’s bumps are different joints. The balls join the package to the board; the bumps join the die to the package. A flip-chip die usually sits in a BGA.
  • Bumps win on inductance, not capacitance. The lecture once says “capacitance” (16:09); its point, made just before, is the bond wire’s inductance.
Check yourself Give two reasons a flip-chip die gets cleaner power than a wire-bonded one.

Each bump has far less inductance than a bond wire, so L dI/dtL\,dI/dt is smaller; and bumps cover the whole die, so there are many more supply connections in parallel and power enters at the centre too, instead of crossing the die in on-chip metal from pads at the edge.

Check yourself About how many 3-on-6 mil bumps fit in one square millimetre, on a square grid?

The pitch is 6 mil =152.4= 152.4 µm, so a millimetre holds 1000/152.4=6.561000/152.4 = 6.56 bumps along each side: 6.562≈6.56^2 \approx 43 per mm². With the lecture’s rounded 150 µm pitch, 6.672≈446.67^2 \approx 44.

3. Design for test: what acceptance testing asks

You need

A synchronous machine (Chapter 13). Combinational logic sits between flip-flops, and one clock tells every flip-flop when to capture. What the logic computes depends on the inputs and on the flip-flops’ state, so the machine’s response to an input depends on its whole history.

Panel (a): logic between flip-flops on one clock (Chapter 13, added after Lecture12 @ 28:52). Original figure ↗

The question. A design has been simulated and fabricated. Thousands of dies come off each wafer, and some are bad. How does the manufacturer decide, die by die, which are good, how fast each one runs, and why it failed, in seconds per die?

From design testing to scan (board, 23:47–31:35)

  1. Two kinds of testing board. Design testing asks whether the design meets its specification: simulation, what students do in their projects. Acceptance testing asks whether this fabricated die is good. Design for testability (DFT) is about the second (24:15).
  2. Three questions board (25:33). For each die: does it work? Does it work at speed? And if not, what is the failure? The answers are a question of manufacturing yield: the fraction of dies that are good.
  3. The tester. At the wafer level a tester applies patterns through a probe card, whose needles touch the die’s pads, then steps to the next die (25:29–26:37). Bad dies are discarded; Intel once set failed dies in Lucite as Christmas ornaments.
  4. Speed sorting board (27:46). Identical dies run at different speeds, depending on the process corner each landed in. The tester measures each and bins it: the board’s 2.8, 3.0 and 3.2 GHz. The fast parts sell for more.
  5. Functional testing does not scale board (28:31). The obvious test is to make the chip do things and check the results. Its test coverage is poor (“test coverage ✗”), and as chips grew, the tester time it needed became unmanageable.
  6. Why not added. A response depends on the whole state. Take a modest block with 64 flip-flops and 32 inputs: it has 264+32=296≈2^{64+32} = 2^{96} \approx 7.9 × 10²⁸ combinations of state and input. At a billion patterns a second, trying them all takes about 2.5 × 10¹² years. And a pattern cannot even be applied directly: the state must be reached by clocking the machine there.
  7. The way out board (29:16–31:35). Scan-based testing: make every flip-flop’s state directly settable and readable (Section 4). Then the sequential problem becomes a combinational one, and test-generation tools keep the number of patterns small (Sections 6–7).

Acceptance testing at the wafer level added, after the board (Lecture21 @ 31:35). A probe card touches one die’s pads; the tester (automatic test equipment, ATE) applies patterns and reads the responses; a bad die is marked for discard (✗) and a good one is binned by its measured speed (the board’s 2.8, 3.0 and 3.2 GHz). Then the prober steps to the next die.

The board (Lecture21 @ 31:35)
Lightboard in a pale pink-white pen: 'Design for testability (DFT)'; 'Test' underlined; '⇒ design testing'; '⇒ acceptance testing' underlined, 'manufacturing yield' below it; a bracket '⇒ does it work? ⇒ does it work at speed? ⇒ failure' with 'failure' ringed; top right '⇒ 2.8 GHz ✓, ⇒ 3 GHz, ⇒ 3.2 GHz ✓' with a bracket 'speed sorting'; '⇒ functional testing' with '⟨ test coverage ✗' underlined; '⇒ scan-based testing' underlined, '⇑ LSSD' below it, and '⟨ general scan design (GSD)'. The lecturer stands at the left, covering the start of 'design testing' and 'acceptance'.
Lecture21 @ 31:35The whole design-for-test board: design versus acceptance testing, the three questions, speed sorting, functional testing and scan.

Fair copy of the board above (Lecture21 @ 31:35), mark for mark in its own layout, all in black: one pale pink-white pen wrote the whole board. The starts of “design testing” and “acceptance testing”, behind the lecturer, are restored from 30:39. The faint remnant of “Lecture 21” at the top left is left out.

Traps.

  • Design verification is not acceptance testing. A design that passes every simulation still yields bad dies; acceptance testing finds them.
  • “It works” is not “it works at speed”. A die can compute every answer right at a slow clock and fail at the rated one; at-speed testing (Section 5) is a separate question.
  • Speed bins are not different designs. The same mask set gives dies of different speeds; testing sorts them.
Check yourself Which of the three acceptance questions does speed sorting answer?

“Does it work at speed?”, asked at several speeds: each die is binned at the fastest clock at which it still works.

Check yourself Add 32 flip-flops to step 6's block. By what factor does the number of combinations grow, and how long would trying them all take now, at a billion patterns a second?

Each extra flip-flop doubles the count, so it grows by 232≈2^{32} \approx 4.3 × 10⁹, to 21282^{128}. The time grows by the same factor: 2.5×1012×4.3×109≈2.5 \times 10^{12} \times 4.3\times10^{9} \approx 1.1 × 10²² years.

4. The scan flip-flop and the scan chain

You need

The edge-triggered flip-flop (Chapter 13). Two latches in series on opposite clock phases make a flip-flop: when the first (the master) closes, the second (the slave) opens and shows what the master caught. The active edge is the edge at which the master closes. Chapter 13’s drawing has the master on clk (transparent while clk = 1), so it captures at the falling edge; swapping the phases (master transparent while clk = 0, slave while clk = 1) gives a positive-edge flip-flop, which captures at the rising edge. Each latch is static: it holds its value through a pair of inverters whose loop a clocked switch closes (Chapter 13).

A master–slave flip-flop (Chapter 13, Lecture12 @ 56:32, redrawn): master on clk, slave on clk̄, so it captures at clk’s falling edge. Swap clk and clk̄ for the positive-edge flip-flop this chapter uses. Original figure ↗

A 2:1 multiplexer (Chapter 10). A multiplexer passes one of two inputs to its output, chosen by a select. Built from two transmission gates, one driven by the select and one by its complement, it is static because exactly one gate is on at a time (the selects are one-hot).

The long-path constraint (Chapter 13). Data launched at one rising edge must pass the launching flip-flop and the logic and arrive a setup time before the next edge: tclk→Q+tlogic+tsetup≤Tt_{clk\to Q} + t_{logic} + t_{setup} \le T, where TT is the clock period.

The question. Section 3 needs every flip-flop’s state to be settable and readable from outside the chip, but a chip has thousands of flip-flops and a few hundred pins. How can every flip-flop be reached through two pins?

A multiplexer in front of every flip-flop

The scan pair (board, 32:07–33:30)

  1. The mux board. In front of each flip-flop’s D input, put a 2:1 multiplexer. Its select is scan_enable (SE). Its input 0 takes the combinational logic’s output, the normal D. Its input 1 takes the previous flip-flop’s Q (32:07–33:16).
  2. SE = 0: normal operation. Every mux passes its logic input, and the circuit is exactly the original: logic between flip-flops.
  3. SE = 1: one giant shift register. Every mux passes its neighbour’s Q, so at each clock edge every flip-flop takes the value of the one before it. The flip-flops form one long shift register, the scan chain, from a scan_in pin into the first flip-flop to a scan_out pin from the last.

Two scan flip-flops with logic between them, redrawn from the board (Lecture21 @ 33:30). Each flip-flop’s D comes from a 2:1 multiplexer whose select is SE (the board’s scan_enable): input 0 is the logic (the oval, the board’s “c.l.” for combinational logic), input 1 is the previous flip-flop’s Q (the thick arc). With SE = 1 the arc carries the first flip-flop’s state straight into the second.

The board (Lecture21 @ 33:30)
Lightboard in a pale pink-white pen. Faint remnants of the erased design-for-test board at the upper left. Across the upper middle: a mux and a flip-flop (D, Q, clk below), 'scan_enable' under the mux; an oval logic block marked like 'Lc'; a heavy arc from the first Q over the oval to the second mux; a second mux and flip-flop with 'scan_enable' and 'clk' below, mostly behind the lecturer's head. At the bottom: '⇒ scan-based testing' underlined, '⇑ LSSD', and '⟨ general scan design (GSD)'. The lecturer stands in the middle holding an eraser at the right.
Lecture21 @ 33:30The scan pair: a multiplexer on scanenable in front of each flip-flop, the shift path arcing over the logic.

Fair copy of the board above (Lecture21 @ 33:30), mark for mark in its own layout, all in black: one pale pink-white pen; the heavy arc and the heavy input line are a fresh marker in the same layer, drawn heavier. Faint remnants of the erased design-for-test board are grey. The second multiplexer and flip-flop, behind the lecturer’s head, are restored from 34:15. The oval’s label, written like “Lc”, marks the combinational logic.

A three-flip-flop scan chain added, in its two modes. Each box is a scan flip-flop (the mux and the flip-flop together), with inputs D, SI, SE and CLK. (a) SE = 1: the flip-flops form a shift register from scan_in through F1F_1, F2F_2, F3F_3 to scan_out (thick); the logic is ignored. (b) SE = 0: the circuit runs normally; each flip-flop takes its DiD_i from the logic (thick), which reads the states q1q_1, q2q_2, q3q_3 and the primary input PP.

The scan flip-flop as one cell

Problem sets and finals draw a scan flip-flop as one box with four inputs added: D, SI (scan in), SE and CLK. Its function, at each rising edge of CLK:

Memorize it: SE = 0 takes D, SE = 1 takes SI, and nothing changes between rising edges.

How it is built, at gate level as the board draws it (33:30): the 2:1 multiplexer on SE, then a positive-edge master–slave flip-flop, Chapter 13’s pair with its phases swapped. The mux can be the transmission-gate pair of Chapter 10, driven by SE and SE‾\overline{SE}; each latch holds its value through a feedback inverter pair closed by a clocked switch, so the cell is static.

The scan flip-flop at gate level, as the board draws each scan cell (Lecture21 @ 33:30). A 2:1 multiplexer on SE passes D (input 0) while SE = 0 and SI (input 1) while SE = 1 into the D input of a positive-edge flip-flop, which copies it to Q at each rising edge of CLK. Inside the box is Chapter 13 §10’s master–slave pair with its phases swapped.

A worked example: one rising edge through the cell (added)

  1. Before the edge (CLK = 0), SE = 1, D = 0, SI = 1. The mux passes SI, so its output is 1. The master is transparent and follows it: the master holds 1. The slave is closed: Q keeps its old value, say 0.
  2. The rising edge. The master closes on 1; the slave opens and passes it: Q = 1.
  3. CLK = 1, D and SI change. The master is closed, so nothing it sees reaches Q: Q stays 1.
  4. The falling edge, now with SE = 0. The master opens again and follows the mux, which now passes D = 0; the slave closes, holding Q. Q stays 1 until the next rising edge, which brings in 0.

So the cell changes Q only at a rising edge, to SI if SE was 1 and to D if SE was 0: the formula above.

Where scan came from, and what it costs

LSSD and general scan design board (29:39–31:31). IBM pioneered scan as LSSD, level-sensitive scan design: every flip-flop was scannable, with strict clocking rules, and “if you broke the rules, they would send you to Burlington to take a class” (31:02). The industry’s general scan design (GSD) is looser. It allows a designer to leave scan off some flip-flops, for performance, as long as the test tools can still generate patterns around them.

The cost added. The mux sits in every flip-flop’s data path, so its delay adds to the long path: tclk→Q+tlogic+tmux+tsetup≤Tt_{clk\to Q} + t_{logic} + t_{mux} + t_{setup} \le T. There is also the mux’s area, and the SE and SI wires to route. That is why GSD lets designers drop scan on the most critical flip-flops.

Traps.

  • The mux’s polarity. SE = 1 must select SI (the shift path); the board marks the shift input “1”. Swapped, the chain shifts in normal operation.
  • Changing SE at a clock edge. SE selects the data path, so it must be steady for setup and hold around each edge, like D. Waveforms change SE between edges.
  • “Scan replaces the flip-flop.” It is the same flip-flop with a multiplexer in front; in normal operation the circuit is unchanged.
Check yourself In the scan cell, which input does SE = 1 select, and why must the two selects of a transmission-gate mux be one-hot?

SE = 1 selects SI, the previous flip-flop’s Q (the shift path). The two transmission gates are driven by SE and SE‾\overline{SE}, so exactly one is on: if both were on, D and SI would fight at the mux output; if neither, the output would float and the cell would not be static.

Check yourself For example, a path has 400 ps of logic, t_clk→Q = 50 ps and t_setup = 30 ps, and the scan mux adds 40 ps. What is the minimum clock period before and after scan is added, and by what fraction does the fastest clock fall?

Before: 50+400+30=50 + 400 + 30 = 480 ps. After: 480+40=480 + 40 = 520 ps. The fastest clock falls from 2.083 GHz to 1.923 GHz, by 7.7 %: the price of making this flip-flop scannable, and the reason GSD may drop scan on it.

Check yourself What does LSSD require that general scan design does not?

That every flip-flop be scannable, under strict clocking rules. GSD lets a designer leave some flip-flops off the chain for speed, provided the test tools can still cover the logic around them.

5. The scan test: shift in, capture once, shift out

You need

The scan chain (Section 4). Each flip-flop has a 2:1 multiplexer in front of D, selected by SE. At each rising edge, Q+=SE‾⋅D+SE⋅SIQ^{+} = \overline{SE}\cdot D + SE\cdot SI. With SE = 1 the flip-flops form a shift register from scan_in through F1,F2,…,FnF_1, F_2, \ldots, F_n to scan_out (scan_out is FnF_n‘s Q); with SE = 0 each FiF_i takes DiD_i from the logic.

The three-flip-flop scan chain in its two modes (Section 4). Original figure ↑

The question. With the chain in place, what exactly does the tester do, clock by clock, and in what order do the bits go in and come out?

The procedure

One scan test (spoken, 33:16–34:53)

  1. Shift in (SE = 1). Shift the desired state into the chain, one bit per clock edge: nn edges for nn flip-flops.
  2. Capture (SE = 0). Apply the primary inputs, and give one clock edge: every flip-flop captures the logic’s output, DiD_i.
  3. Shift out (SE = 1). Shift the captured state out through scan_out, nn edges, and compare it with the good circuit’s response. The next pattern shifts in through scan_in at the same time.

Why it works. Every flip-flop is now directly controllable (its state is set by shifting in) and directly observable (its captured value is read by shifting out). The tester no longer has to drive the machine through a sequence of states to reach a test: one pattern tests the combinational logic between the flip-flops, from known inputs to observed outputs. “And this is the beauty of scan-based testing” (34:53). What remains is to choose a small set of patterns (Sections 6–7).

The order: first in, farthest along

The lecture states the procedure; the bit order follows from the wiring added, and the finals ask for it.

  • Loading. Each shift edge moves every bit one place along, so the first bit shifted in travels farthest. To load q1q2…qnq_1 q_2 \ldots q_n, put qnq_n on scan_in first and q1q_1 last.
  • Unloading. scan_out is FnF_n‘s Q. Right after the capture edge it already shows FnF_n‘s captured value, DnD_n. Each shift edge then brings the next: Dn−1D_{n-1}, …, D1D_1.

Derive it, every time, from one shift: “the bit that goes in first is pushed farthest along; the bit nearest the output comes out first”.

A worked example: the chapter’s own circuit

An added example added, used again in Section 8. A chain scan_in → F1F_1 → F2F_2 → F3F_3 → scan_out, a primary input PP, and the logic

G=q1+q2‾ (NOR),D1=G q3‾ (NAND),D2=G+P‾ (NOR),D3=q1q3 (AND).\begin{aligned} G &= \overline{q_1 + q_2}\ (\text{NOR}), & D_1 &= \overline{G\,q_3}\ (\text{NAND}), \\ D_2 &= \overline{G + P}\ (\text{NOR}), & D_3 &= q_1 q_3\ (\text{AND}). \end{aligned}

The chapter’s example circuit added: a three-flip-flop scan chain with its logic opened. G=NOR(q1,q2)G = \mathrm{NOR}(q_1, q_2); D1=NAND(G,q3)D_1 = \mathrm{NAND}(G, q_3); D2=NOR(G,P)D_2 = \mathrm{NOR}(G, P); D3=AND(q1,q3)D_3 = \mathrm{AND}(q_1, q_3), with PP a primary input. The small cross on GG is the fault site of Section 8.

Load 001, capture with P = 0, unload

  1. What to shift in. We want q1q2q3=001q_1q_2q_3 = 001. The first bit in ends in F3F_3, so scan_in carries q3,q2,q1q_3, q_2, q_1 = 1, 0, 0, one per shift edge.
  2. The chain after each load edge. (q1,q2,q3)(q_1, q_2, q_3) = (1, –, –), then (0, 1, –), then (0, 0, 1): the target (– is whatever was there before).
  3. Capture, with SE = 0 and P=0P = 0. G=0+0‾=1G = \overline{0 + 0} = 1; D1=1⋅1‾=0D_1 = \overline{1 \cdot 1} = 0; D2=1+0‾=0D_2 = \overline{1 + 0} = 0; D3=0⋅1=0D_3 = 0 \cdot 1 = 0. The capture edge loads (D1,D2,D3)(D_1, D_2, D_3) = (0, 0, 0).
  4. Unload. scan_out shows D3=0D_3 = 0 at once, then D2=0D_2 = 0 after the first shift edge and D1=0D_1 = 0 after the second: 0, 0, 0.

The whole test takes seven clock edges: three to load, one to capture, three to unload.

At-speed testing

AC testing, or at-speed testing board (35:24–35:50): shift a state in slowly, then give the capture edge at the target clock period after the edge that launches the logic’s inputs. A path too slow for that period captures a wrong value in a known flip-flop. The test then not only says the die is slow; it names the flip-flop at the end of the failing path. (The lecture’s spoken “don’t need timing” is “don’t meet timing”.)

The waveforms

The procedure drawn on one time axis added. SE changes only midway between clock edges; it is high for the three load edges L1–L3, low across the capture edge C, and high again for the unload edges U1–U3.

The scan test of the example circuit, cycle by cycle added, computed from the shift-register simulation (the guide’s scan.ts) for the load q1q2q3=001q_1q_2q_3 = 001 and P=0P = 0. SE changes only between edges. scan_in carries 1, 0, 0 into the load edges L1–L3; after L3 scan_out shows the loaded q3=1q_3 = 1. The capture edge C loads (D1,D2,D3)(D_1, D_2, D_3), and scan_out shows D3D_3 at once, then D2D_2 after U1 and D1D_1 after U2. Hatching marks values that do not matter. The last row, the faulty circuit’s scan_out, belongs to Section 8: the two bits marked ≠ differ from the good row.

Traps.

  • Shifting the pattern in the written order. Putting q1,q2,q3q_1, q_2, q_3 on scan_in in that order loads it reversed.
  • Counting the first scan_out bit after the first shift edge. DnD_n is on scan_out as soon as the capture edge has passed; the first shift edge brings Dn−1D_{n-1}.
  • Leaving SE = 1 across the capture edge. The chain just shifts once more and the logic is never sampled.
  • “The primary inputs are scanned.” They are not flip-flops: the tester applies them directly, and they must be steady around the capture edge.
Check yourself To load q1q2q3 = 110 into the example chain, what goes on scan_in, in time order?

The first bit in ends in F3F_3, so q3q_3 goes first: 0, 1, 1. After the first edge the chain holds (0, –, –); after the second, (1, 0, –); after the third, (1, 1, 0).

Check yourself How many clock edges does one complete test of a 3-flip-flop chain take? How many do ten tests take when each pattern's shift-in overlaps the previous shift-out?

One test alone: 3+1+3=3 + 1 + 3 = 7 edges. Overlapped, each pattern costs 3 shift edges and 1 capture edge, and the last result needs 3 more to come out: 10×4+3=10 \times 4 + 3 = 43 edges, against 10×7=7010 \times 7 = 70 without overlap.

Check yourself What does an at-speed capture tell you that a slow capture cannot?

Whether the logic meets the rated clock period. A slow capture gives every path plenty of time, so it finds only logic faults; an at-speed capture finds paths too slow for the clock, and the flip-flop that captured a wrong value names where the slow path ends.

6. Fault models: stuck-at-0 and stuck-at-1

You need

What scan leaves (Section 5). Through the scan chain every flip-flop’s state can be set and read, so testing the chip becomes testing its combinational logic: apply a pattern to the logic’s inputs (the scanned states and the primary inputs) and read its outputs.

Gate truth tables. A NAND’s output is 0 only when all its inputs are 1; a NOR’s output is 1 only when all its inputs are 0; an AND’s output is 1 only when all inputs are 1; an OR’s is 0 only when all are 0.

The scan chain (Section 4): panel (b) is the logic each pattern tests. Original figure ↑

The question. A defect can be a short, an open, a particle, a bad contact: endlessly many physical things. What single, simple description of “something is wrong” can a program generate tests for?

From defects to a fault model (board, 36:40–41:06)

  1. ATPG board. Test patterns come from automatic test pattern generation tools (37:35): FastScan, from Mentor Graphics at the time, and in-house tools at most companies.
  2. A fault model board (39:18). To generate patterns, the tool needs a fault model: a description of how a physical defect shows up in the logic.
  3. The stuck-at model board. “No matter what the fault is, short, open, whatever it is, the way it’s manifest is that a … node in your logic network is stuck at either a zero or a one” (38:09). The board writes ST0 (stuck at 0) and ST1 (stuck at 1). It has been criticized for decades and never replaced. It is applied at the logic level, to the gate netlist, not to the transistors (41:06).
  4. Picturing it added. A node shorted to VDDV_{DD} reads 1 whatever drives it: ST1. Shorted to ground: ST0. A gate input cut off from its driver floats, and often settles at one value, acting as stuck at 0 or at 1. Each node can fail two ways, so a netlist with nn nodes has 2n2n single stuck-at faults.
  5. What a test is added. A pattern detects a fault if the good circuit and the faulty one give different outputs for it. To keep both in view, write a node’s value as good/faulty: 0/1 means “0 in the good circuit, 1 in the faulty one”.

Three defects and the faults they look like added. (a) Node nn shorted to VDDV_{DD}: whatever the inverter drives, nn reads 1, stuck at 1. (b) Shorted to ground: stuck at 0. (c) An open: the NAND’s input is cut from its driver and floats; it often settles at one value and behaves as stuck at 0 or stuck at 1.

A worked example: the faults of one NAND

An added example added, by exhaustive simulation. A 2-input NAND, inputs aa and bb, output yy, has six single stuck-at faults. For each, which input patterns abab detect it?

Six faults, four patterns

  1. yy ST1. The faulty output is always 1, so a pattern detects it only where the good output is 0: 11 alone.
  2. yy ST0. Detected where the good output is 1: 00, 01, 10.
  3. aa ST0. The faulty NAND sees a=0a = 0, so its output is 1. The good output must be 0, which needs a=b=1a = b = 1: 11 alone. bb ST0 is the same: 11.
  4. aa ST1. We need a=0a = 0 in the good circuit (opposite to the stuck value) and the change to reach yy, which needs b=1b = 1 (a 0 on bb would force y=1y = 1 either way): 01 alone. By symmetry, bb ST1: 10.
  5. The smallest covering set. aa ST1 needs 01, bb ST1 needs 10, and the stuck-at-0 inputs need 11; those three also cover both output faults. So {11,01,10}\{11, 01, 10\}, three of the four patterns, tests all six faults, and no smaller set does. The pattern 00 detects only yy ST0, which 01 and 10 already detect.

Traps.

  • “A stuck-at test proves the transistors are right.” It is a logic model: a defect that slows a gate or draws extra current without changing a logic value escapes it. At-speed tests (Section 5) and IDDQ tests (Section 9) catch some of those.
  • “Stuck-at 1” is not “the node is 1 in this pattern”. It means the node is 1 in every pattern, in the faulty circuit; to see it, the pattern must make the good node 0.
Check yourself Which input patterns of a 2-input NOR detect its output stuck at 0?

Only where the good output is 1, which for a NOR is 00 alone.

Check yourself How many single stuck-at faults does a 2-input NOR have, and what is its smallest pattern set covering them all?

Three nodes, two faults each: 6. By the NAND’s argument with the values inverted: an input stuck at 1 needs both inputs 0 (00); input aa stuck at 0 needs a=1a = 1, b=0b = 0 (10); bb stuck at 0 needs 01. These three also cover both output faults: the set {00,10,01}\{00, 10, 01\}.

7. Controllability and observability: finding a test pattern

You need

The stuck-at model (Section 6). A fault is one node stuck at 0 (ST0) or at 1 (ST1); a pattern detects it if the good and faulty circuits’ outputs differ. A node’s value is written good/faulty, e.g. 0/1.

Controlling values added. A 0 on any input of a NAND or an AND fixes its output (1 and 0), whatever the other inputs are; a 1 on any input of a NOR or an OR fixes its output. That value is the gate’s controlling value; the other (1 for NAND and AND, 0 for NOR and OR) is non-controlling: with it on every other input, the gate’s output follows the remaining input.

How defects become stuck-at faults (Section 6). Original figure ↑

The question. Given one stuck-at fault deep inside a network, how do we build a pattern that detects it, and when is that impossible?

Two conditions

Controllability and observability board (39:10–41:11). A pattern detects a stuck-at fault only if it does two things:

  1. Control: it drives the node to the value opposite to the stuck value (0 for a node stuck at 1), so the good and faulty circuits differ there.
  2. Observe: the difference travels to an output. Every gate along the path must let it through, which means every side input along the path carries the gate’s non-controlling value added.

A node that cannot be both controlled and observed is untestable, and the design must change (an extra test point, or a different structure).

Non-controlling is 1 for NAND and AND, 0 for NOR and OR. Memorize both rules. Then work back from each required value to the inputs: a NAND output of 1 needs at least one input 0, an AND output of 1 needs both inputs 1, and so on.

The lecture’s example

Node n1 stuck at 1 (board, 41:31–44:25)

  1. The network board. Six inputs into three NANDs: n1=ab‾n_1 = \overline{ab}, n2=cd‾n_2 = \overline{cd}, n5=ef‾n_5 = \overline{ef}. Then n3=n1n2‾n_3 = \overline{n_1 n_2}, an inverter gives n4=n3‾n_4 = \overline{n_3}, and the output is y=n4n5‾y = \overline{n_4 n_5}. (The names are this guide’s; the board labels only values.) The fault: n1n_1 stuck at 1.
  2. Control. The good n1n_1 must be 0, the opposite of its stuck value. A NAND gives 0 only when both inputs are 1: a=b=1a = b = 1. Now n1n_1 = 0/1.
  3. Through the second NAND. Its side input n2n_2 must be non-controlling, 1. Then n3=n1⋅1‾=n1‾n_3 = \overline{n_1 \cdot 1} = \overline{n_1} = 1/0.
  4. Through the inverter. No side input: n4n_4 = 0/1.
  5. Through the last NAND. Its side input n5n_5 must be 1. Then y=n4‾y = \overline{n_4} = 1/0: the good output is 1 and the faulty output 0. Detected.
  6. Back to the inputs. n2=1n_2 = 1 and n5=1n_5 = 1 need cd≠11cd \ne 11 and ef≠11ef \ne 11: each pair one of 00, 01, 10. The lecture reads out “0 1 0 1, or 0 0 0 0, or 1 0 1 0” for cdefcdef (42:04–43:21).
  7. Counting added. abab is fixed at 11; cdcd has 3 choices and efef has 3: 1×3×3=1 \times 3 \times 3 = 9 patterns of the 64. Exhaustive simulation agrees: exactly 9 detect n1n_1 ST1, all with a=b=1a = b = 1.

The lecture’s network, redrawn from the board (Lecture21 @ 44:25), with n1n_1 stuck at 1 (ST1). The names aa–ff, n1n_1–n5n_5 and yy are this guide’s. For the pattern abcdefabcdef = 110101: a=b=1a = b = 1 drives n1n_1 to 0/1 (good/faulty); the side inputs n2n_2 and n5n_5 are 1, non-controlling; the difference runs along the thick path, inverted at each gate, to yy = 1/0.

The board (Lecture21 @ 44:25)
Lightboard. White text: 'ATPG (automatic test pattern generation)' with a curved arrow to 'controllability' and 'observability', each ringed in cyan; 'Fault model'; 'Stuck-at fault model'; 'ST∅ (stuck at ∅)', 'ST1 (stuck at 1)'; 'I_DDQ testing' just begun, underlined in cyan. Right, in cyan: three NANDs at the top with input values '1 1', '0 1 …', '0 1 …'; the first NAND's output marked '0∨1'-like and an arrow labelled 'ST1'; a second NAND with a side '1', an inverter, and a last NAND with a side '1' and the output below; a small × on the third NAND's output wire. The lecturer stands in the middle; the strokes show through.
Lecture21 @ 44:25ATPG, controllability and observability, the stuck-at model, and the NAND network with n1 stuck at 1.

Fair copy of the board above (Lecture21 @ 44:25), mark for mark in its own layout, all in black: one cyan pen wrote the whole board, the text, the rings and the network alike (measured; the paler ATPG is the same pen). The gates are drawn as on the board, outputs down. The label beside the first gate’s output, written like 0∨1, is the good/faulty pair 0/1 on n1n_1 in the redraw; the dots after the other two input pairs are copied as written. The faint remnant of “Lecture 21” at the top left is left out.

The same pattern tests other faults (43:01–43:36). The pattern 110101 also detects, for example, n3n_3 stuck at 0 and yy stuck at 0: every node along the sensitized path is controlled and observed at once. The board’s × marks one more node the lecturer asks about. ATPG’s real job is a small set of patterns that together detect every fault: a design must reach a fault coverage of “usually 99.99 or something percent of the nodes” (40:22), and a node no pattern can test forces a design change.

Reconvergent fan-out

When the faulty node feeds two paths that meet again at a later gate, the difference can arrive at that gate on both inputs, and the meeting gate decides what happens added.

A worked example: X = AND(c, d) stuck at 0 (added)

  1. The circuit. X=cdX = cd fans out to two NANDs, n1=Xa‾n_1 = \overline{Xa} and n2=Xb‾n_2 = \overline{Xb}, which meet at an AND: y=n1n2y = n_1 n_2. The fault: XX stuck at 0.
  2. Control. XX must be 1 in the good circuit: c=d=1c = d = 1. Now XX = 1/0.
  3. Both branches. With XX = 0 the faulty circuit has n1=n2=1n_1 = n_2 = 1 and y=1y = 1, whatever aa and bb are. The good circuit has n1=aˉn_1 = \bar a, n2=bˉn_2 = \bar b, so y=aˉ bˉy = \bar a\,\bar b.
  4. When they differ. The good yy must be 0, so a=1a = 1 or b=1b = 1. One sensitized branch is enough: with a=1a = 1, b=0b = 0, the branch through n1n_1 carries 0/1 and the other branch is a steady 1, non-controlling for the AND, so yy = 0/1.
  5. Counting. cd=11cd = 11 and ab∈{01,10,11}ab \in \{01, 10, 11\}: the patterns abcdabcd = 0111, 1011, 1111, three of the 16. Not unique.

Reconvergent fan-out added: X=AND(c,d)X = \mathrm{AND}(c, d), stuck at 0, fans out to two NANDs that reconverge at an AND. For a=1a = 1, b=0b = 0, c=d=1c = d = 1, the difference runs through n1n_1 (thick) while n2n_2 is a steady 1, non-controlling for the AND, so yy = 0/1: one sensitized branch suffices here.

Not every meeting gate is this kind. Here the AND lets either branch through, because the other branch can sit at the non-controlling 1. Two other cases appear on exams added:

  • Both branches must be sensitized at once. If the faulty value arriving on a branch is the meeting gate’s controlling value, the faulty circuit’s output is pinned as soon as the fault reaches that gate on either branch. The good output differs from it only when every branch carries the good (non-controlling) value, so the pattern must open both paths together; opening just one finds nothing.
  • The differences cancel. If the branches meet at an XOR and the pattern opens both, both carry the flipped value and the XOR’s output does not change. Through an XOR the pattern must open exactly one of the two branches; then the difference passes.

The safe method for any reconvergence: write the good and faulty values on both branches and evaluate the meeting gate in each circuit, or simply try the candidate pattern on both circuits.

Traps.

  • A side input at its controlling value. A 0 on a NAND’s side input fixes its output at 1 and blocks the path.
  • Forgetting the second branch. In reconvergent fan-out the fault reaches the meeting gate on every branch the pattern opens; evaluate them all.
  • “Is the pattern unique?” without counting the don’t-cares. Count the free inputs’ choices (the lecture’s example has 9 patterns, not one).
  • Losing the inversions. Each NAND and inverter on the path flips the pair: 0/1 becomes 1/0.
Check yourself In the lecture's network, find a pattern that detects n4 stuck at 1, and count how many of the 64 do.

Control: the good n4n_4 must be 0, so n3=1n_3 = 1, and the second NAND needs a 0 on at least one input: n1=0n_1 = 0 (ab=11ab = 11) or n2=0n_2 = 0 (cd=11cd = 11). Of the 16 choices of abcdabcd, the 9 with ab≠11ab \ne 11 and cd≠11cd \ne 11 fail, leaving 7. Observe: n5n_5 must be 1, non-controlling for the last NAND, so ef≠11ef \ne 11 (3 choices). For example abcdefabcdef = 110000: n1=0n_1 = 0, n3=1n_3 = 1, n4n_4 = 0/1, yy = 1/0. In all, 7×3=7 \times 3 = 21 of the 64, which exhaustive simulation confirms.

Check yourself In the reconvergent example, find every pattern that detects X stuck at 1, and say whether it is unique.

Control: XX must be 0, so cd≠11cd \ne 11 (3 choices). The faulty circuit has X=1X = 1, so y=aˉ bˉy = \bar a\,\bar b; the good one has X=0X = 0, so n1=n2=1n_1 = n_2 = 1 and y=1y = 1. They differ when a=1a = 1 or b=1b = 1 (3 choices). So 3×3=3 \times 3 = 9 of the 16 patterns detect it: not unique.

Check yourself Why does fault coverage count faults, not patterns?

Because the goal is to detect every defect, and each pattern detects many faults at once (every node it controls and observes). Coverage is the fraction of all modelled faults that some pattern in the set detects; the number of patterns is the cost, which ATPG keeps small.

8. A stuck-at test through a scan chain, end to end

You need

The scan test and its bit order (Section 5). Shift the state in with SE = 1, the last flip-flop’s value first; give one capture edge with SE = 0 and the primary inputs applied; shift out with SE = 1. scan_out shows DnD_n as soon as the capture edge has passed, then Dn−1D_{n-1}, …, D1D_1 after each shift edge.

Building a stuck-at test (Section 7). Drive the faulty node to the value opposite its stuck value (control); give every side input along a path to an observed output its non-controlling value, 1 for NAND/AND and 0 for NOR/OR (observe); work back to the inputs. A value is written good/faulty.

The example circuit (Section 5). Chain scan_in → F1F_1 → F2F_2 → F3F_3 → scan_out, primary input PP; G=q1+q2‾G = \overline{q_1 + q_2}, D1=G q3‾D_1 = \overline{G\,q_3}, D2=G+P‾D_2 = \overline{G + P}, D3=q1q3D_3 = q_1 q_3.

The example circuit (Section 5); the cross marks GG, the fault site. Original figure ↑

The question. The finals ask the whole chain of reasoning at once: here is a scan chain and its logic, here is a fault; what do you shift in, in what order, what comes out of the good circuit and of the faulty one, and which bit shows the difference? This section joins Sections 4–7 on the chapter’s own circuit added. The lecture never runs a fault through a chain; the finals do.

G stuck at 0, from the fault to the bit that shows it (added)

  1. The fault. GG, the NOR’s output, is stuck at 0 (ST0).
  2. Control. The good GG must be 1. A NOR gives 1 only when both inputs are 0: q1=q2=0q_1 = q_2 = 0. Now GG = 1/0.
  3. Observe. GG fans out to two gates, and either can carry the difference. Through the NAND to D1D_1, the side input q3q_3 must be non-controlling for a NAND: q3=1q_3 = 1. Through the NOR to D2D_2, the side input PP must be non-controlling for a NOR: P=0P = 0. Choose both: q1q2q3=001q_1q_2q_3 = 001 and P=0P = 0.
  4. Load. The first bit in ends in F3F_3, so scan_in carries q3,q2,q1q_3, q_2, q_1 = 1, 0, 0 over three shift edges with SE = 1 (Section 5’s example).
  5. Capture, SE = 0 and P=0P = 0 applied by the tester. Good: G=1G = 1, D1=1⋅1‾=0D_1 = \overline{1\cdot1} = 0, D2=1+0‾=0D_2 = \overline{1 + 0} = 0, D3=0⋅1=0D_3 = 0\cdot1 = 0: (0, 0, 0). Faulty: G=0G = 0, D1=0⋅1‾=1D_1 = \overline{0\cdot1} = 1, D2=0+0‾=1D_2 = \overline{0 + 0} = 1, D3=0D_3 = 0: (1, 1, 0). In good/faulty form: D1D_1 = 0/1, D2D_2 = 0/1, D3D_3 = 0/0.
  6. Read. scan_out gives D3,D2,D1D_3, D_2, D_1: good 0, 0, 0; faulty 0, 1, 1. The first bit (on scan_out right after the capture edge) agrees; the second and third bits out reveal the fault.
  7. How many patterns work. With (q1,q2,q3,P)(q_1, q_2, q_3, P) free, exhaustive simulation of the two circuits finds 3 detecting patterns of the 16: 0000, 0010, 0011. All have q1=q2=0q_1 = q_2 = 0 (control). 0000 and 0010 show the fault at D2D_2 (P=0P = 0); 0010 and 0011 at D1D_1 (q3=1q_3 = 1). One observation path is enough.
The test cycle by cycle (Section 5): the last row is the faulty circuit’s scan_out, its second and third bits marked ≠. Original figure ↑

Answer the question that is asked. A paper may want the register view (the captured values D1,D2,D3D_1, D_2, D_3 in the flip-flops) or the scan_out sequence (the same bits in reverse, in time order). Give the one it asks for, and when in doubt both, labelled.

Traps. As Sections 5 and 7, and:

  • Register values reported as the scan_out sequence, or the reverse: one is the other read backwards.
  • Forgetting the primary input. PP is not in the chain; the tester sets it during the capture edge.
  • Insisting on both paths. Here either D1D_1 or D2D_2 alone shows the fault; a pattern that opens one path is a complete answer.
Check yourself Suppose only D2 were observed (say scan_out were taken from F2). Which patterns would detect G stuck at 0 then?

The difference must reach D2D_2: q1=q2=0q_1 = q_2 = 0 (control) and P=0P = 0 (non-controlling for the NOR); q3q_3 no longer matters. The patterns (q1,q2,q3,P)(q_1, q_2, q_3, P) = 0000 and 0010.

Check yourself For G stuck at 1, how many of the 16 patterns detect it? For the load q1q2q3 = 100 with P = 0, which scanned-out bit shows it?

Control needs the good G=0G = 0, so q1q2≠00q_1q_2 \ne 00; exhaustive simulation finds 9 detecting patterns of 16. For 100, P=0P = 0: good G=0G = 0 gives (D1,D2,D3)=(1,1,0)(D_1, D_2, D_3) = (1, 1, 0); faulty G=1G = 1 gives (1,0,0)(1, 0, 0). Only D2D_2 differs. scan_out reads D3,D2,D1D_3, D_2, D_1: good 0, 1, 1; faulty 0, 0, 1. The second bit out shows the fault.

9. IDDQ testing

You need

Static CMOS draws no current at rest. In a static CMOS gate, either the pull-up or the pull-down is off in a steady state, so no current flows from VDDV_{DD} to ground except leakage: subthreshold current through off devices and tunnelling through thin gate oxide (Chapter 4).

Ratioed logic does (Chapter 10). A pseudo-NMOS gate’s pull-up is a PFET with its gate tied to ground, always on. Whenever the pull-down is on (the output low), current flows through both, all the time.

Panel (a): a pseudo-NMOS gate, whose grounded PFET conducts whenever the output is low. Original figure ↑

The question. Before any pattern is run, one measurement already finds many bad dies. What is it, why did leakage not kill it, and what does it require of the designer?

The quiescent-current test (board, 43:57–46:57)

  1. What it measures board. One of the first tests at power-on asks whether there is a short between power and ground. IDDQ is the supply current IDDI_{DD} in the quiescent state: clocks stopped, nothing switching (the board writes “quiescent” over the Q). In a good static CMOS die it is only leakage. A large value means a defect bridging VDDV_{DD} to ground: discard the die.
  2. Leakage did not end it (44:40–45:36). As subthreshold and gate leakage grew, people predicted the end of IDDQ testing. It is still used: the measurement is compared with the leakage expected for the die, and a short shows as a clear excess.
  3. The design rule board (45:36–46:57): “all sources of static power dissipation” must turn off in test. A pseudo-NMOS pull-up’s gate goes not to ground but to a test signal: 0 in normal operation (the PFET on, the gate works as before), 1 in test (the PFET off, no static current). DC-biased analog circuits likewise need a way to shut off.

Making ratioed logic IDDQ-testable, redrawn from the board (Lecture21 @ 46:17), with the test connection from the speech (46:10–46:28). (a) A pseudo-NMOS gate: its PFET’s gate is grounded, so whenever the pull-down network conducts, a static current flows from VDDV_{DD} to ground, adding to IDDQI_{DDQ}. (b) The PFET’s gate taken to a test signal: test = 0 in normal operation (the gate works as before), test = 1 during the IDDQ measurement (the PFET is off and the static current vanishes).

The board (Lecture21 @ 46:17)
Lightboard: the 44:25 board (ATPG, controllability and observability ringed, the stuck-at model, the NAND network at the right) with additions in cyan: 'quiescent' written over the Q of 'I_DDQ testing', 'I_DDQ' ringed and the line double underlined; '⇐ all sources of static power dissipation turn off' with 'off' underlined; below, a pull-up PFET with a T bar at the top, its gate wire running left to a ground symbol, and a pull-down blob with three lines below it. The lecturer's hand covers the left end of the gate wire.
Lecture21 @ 46:17IDDQ testing: the quiescent current, the rule that all static power must turn off, and a pseudo-NMOS pull-up.

Fair copy of the board above (Lecture21 @ 46:17), mark for mark in its own layout, all in black: the same cyan pen as at 44:25, whose marks are kept unchanged. New since 44:25: the ring on I and D, “quiescent” over the Q, “⇐ all sources of static power dissipation turn OFF”, and the pull-up, its gate wire to ground, over the pull-down blob. The “test” label and its loop at the PFET’s gate, and the second underline under IDDQ testing, appear only by 47:06, mid-erase, and were probably written after this frame, so they are left out; panel (b) of the redraw shows the connection from the speech.

Why the rule matters, in numbers added. For example, a die whose expected leakage is 20 mA at VDD=1.0V_{DD} = 1.0 V:

A worked example: a short among leakage (added; values for example)

  1. A 50 Ω short. It adds Ishort=VDD/Rshort=1.0/50=I_{short} = V_{DD}/R_{short} = 1.0/50 = 20 mA, so IDDQ doubles to 40 mA (2.0×): easy to see.
  2. Ratioed gates left on. 500 pseudo-NMOS gates with their outputs low, each drawing 40 µA, add 500×40 μA=500 \times 40\ \mu\text{A} = 20 mA: exactly what the short adds. The measurement cannot tell a good die full of ratioed gates from a shorted one.
  3. With the rule. In test the ratioed gates’ PFETs are off; their 20 mA vanishes, and only the short remains to show.

Ishort=VDD/RshortI_{short} = V_{DD}/R_{short} is Ohm’s law (derive); there is no other formula here.

Traps.

  • “IDDQ is a logic test.” It finds shorts whether or not they change a logic value: a weak short from a node to ground, overpowered by the gate that drives the node high, leaves every logic value right and escapes a stuck-at test, but it draws current from VDDV_{DD} whenever the node is high.
  • Measuring while the chip switches. Switching current swamps any short; the measurement is quiescent by definition.
  • A fixed threshold. Leakage varies from die to die and with temperature, so the limit is set against the expected leakage, with a margin.
Check yourself Why must a pseudo-NMOS pull-up be switchable on a chip that is tested by I_DDQ?

Its PFET is always on, so whenever its output is low it draws a static current from VDDV_{DD} to ground. Many such gates add up to a current that looks like a short, hiding real shorts. Taking the PFET’s gate to a test signal turns that current off during the measurement.

Check yourself With 20 mA of expected leakage at 1.0 V, what short resistance would raise I_DDQ by only 10 %? Why would that be hard to detect?

10 % of 20 mA is 2 mA, so Rshort=1.0 V/2 mA=R_{short} = 1.0\ \text{V}/2\ \text{mA} = 500 Ω. The leakage itself varies from die to die by more than 10 %, so a die with this short can measure less than a good die with high leakage.

10. The bathtub curve and infant mortality

You need

Current density added. A current II through a wire of width ww and thickness tt has density J=I/(wt)J = I/(wt), current per unit cross-section; narrowing the wire raises JJ in proportion.

Electromigration, in one line added. At high current density the electrons push metal atoms along the wire, until a void opens it. Chapter 23 (Lecture 22, being written) treats it with its limits in mA/µm².

The question. Of the chips that pass every test, some still fail in customers’ hands. When do they fail, and why do the early failures happen at all?

Failures over a chip's life (board, 47:21–51:47)

  1. The bathtub curve board (49:38). Plot the number of failures against time in the field: many early, falling fast; then very few for a long time; then rising again. The shape is a bathtub’s cross-section.
  2. The early region: infant mortality board. “I didn’t make up these terms, I’m sorry. This is called infant mortality” (48:22). These failures come back as warranty returns: the manufacturer’s cost.
  3. The late region: end of life board (50:11). Vacuum tubes wore out routinely; solid-state devices were once thought to last forever. They do not: they wear out (Section 12), and with scaling the end of life has moved in, closer to the present (49:28–50:03).
  4. Where infant mortality comes from: a latent defect board (50:30–51:47). A particle during lithography leaves a wire connected only through a narrow neck. The wire conducts, so the die passes every test: an open would have failed, a neck does not. In use, all the wire’s current crowds into the neck, and electromigration opens it after some time.

The bathtub curve, redrawn from the board (Lecture21 @ 56:35); a sketch, no values. The number of failures per unit time in the field (NfailN_{fail}) against time tt: region I, infant mortality (latent defects that escaped the test); region II, the useful life, with few failures; region III, the end of life (wear-out).

The board (Lecture21 @ 56:35)
Lightboard, the whole reliability board: at the upper left, axes '# of failures' and 'time' with the bathtub curve, two vertical lines near the start, 'infant mortality' underlined below them; at the right end, 'End-of-life' with an ellipse round the rising curve, 'wear-out' underlined, a bracket 'TDDB / HCI / NBTI' and an arrow to 'threshold voltage shift'; in the middle, a horizontal wire narrowing to a neck with arrows converging into it; at the lower left, 'burn-in testing' underlined, with a return arrow and a bracket 'running chip at elevated temperature / running chip at V_DD ↑'. The lecturer stands in the middle; the strokes show through.
Lecture21 @ 56:35The reliability board: the bathtub curve, infant mortality, the necked wire, burn-in, and wear-out with its three mechanisms.

Fair copy of the board above (Lecture21 @ 56:35), mark for mark in its own layout, all in black. Two pens, white and cyan, wrote it interchangeably (each writes text as well as lines: white the curve’s fall, “infant mortality” and the three mechanisms; cyan the time axis, the dividers, the ellipse, the underlines and the brackets), so neither marks a separate layer. “failures” is set ending at the axis, where the hand crams it, and “End-of-” a little higher, clear of the ellipse. The scribble at the neck is drawn as the two converging arrows it shows.

How much worse the neck is added. The same current passes through a narrower cross-section, so the density rises by the ratio of the widths:

J=Iw t,JneckJ=wwneck.J = \frac{I}{w\,t}, \qquad \frac{J_{neck}}{J} = \frac{w}{w_{neck}} .

Derive it: the current and the thickness are the same on both sides of the neck; only the width changes. For example, a 1 µm wire necked to 0.25 µm carries 4 times the current density in the neck, and electromigration speeds up steeply with current density.

A latent defect, redrawn from the board (Lecture21 @ 51:47): a wire of width ww necked to wneckw_{neck} by a particle (drawn with w=4 wneckw = 4\,w_{neck}, the worked example’s ratio). The current II (arrows) crowds into the neck, where its density is w/wneckw/w_{neck} times higher; electromigration opens the neck after some time in use.

Traps.

  • The y axis. It is the number failing per unit time (a rate), not the cumulative number failed, which could only rise.
  • “Infant mortality is a design flaw.” It is a manufacturing defect that escaped the test; the design is the same as on the good dies.
Check yourself Why does a necked wire pass the acceptance test?

It still conducts, so every logic value is right and every pattern passes; only an open would fail. The damage is in the future: the current crowded into the neck drives electromigration, which opens the wire after some time in use.

Check yourself A wire 1.2 µm wide and 0.5 µm thick carries 0.6 mA, and a particle has necked it to 0.4 µm. What is the current density away from the neck and in it?

Away from it: J=0.6 mA/(1.2×0.5 μm2)=J = 0.6\ \text{mA}/(1.2 \times 0.5\ \mu\text{m}^2) = 1.0 mA/µm². In the neck: 0.6/(0.4×0.5)=0.6/(0.4 \times 0.5) = 3.0 mA/µm², three times higher, as w/wneck=1.2/0.4=3w/w_{neck} = 1.2/0.4 = 3 says.

11. Burn-in

You need

The bathtub curve (Section 10). Failures in the field are many early (infant mortality, from latent defects that escaped the test), few for a long useful life, and many again at the end of life (wear-out).

A latent defect (Section 10). A wire necked by a particle conducts, so it passes every test; in use, the current crowding into the neck drives electromigration until the wire opens.

Stress speeds failures up added. Electromigration and the other mechanisms behind latent defects run faster at higher temperature and at higher voltage (more current, higher fields).

The bathtub curve (Section 10): region I is what burn-in removes. Original figure ↑

The question. A die with a latent defect passes the acceptance test and fails weeks later. How can the manufacturer make it fail on the tester instead?

Burn-in (board, 51:55–54:11)

  1. Stress the chip before it ships board (53:38). Burn-in testing: run the chip at an elevated temperature, “maybe” about 85 °C, and at an elevated VDDV_{DD}, “maybe” about 20 % above nominal (both spoken, 51:55–52:52). “If you’re gonna fail, I’m gonna make you fail now” (52:40).
  2. What it does to the bathtub added. The stress accelerates the latent-defect mechanisms, so the infant-mortality region passes in hours instead of weeks. The weak dies fail during or right after burn-in, are caught by the test that follows, and are discarded. The curve the customer sees starts on the flat bottom.
  3. The rule today (53:12–54:11). Chips once had to compute correctly under burn-in conditions, which forced large design margins. Now the chip need not give the right answer under burn-in; after it returns to nominal conditions, it must work. Burn-in is meant to screen, not to damage.
  4. The answer’s shape added. A question on infant mortality wants three things: one mechanism, named (a necked wire failing by electromigration); why burn-in accelerates it (temperature, voltage and so current density); and the outcome (the weak part fails on the tester and is discarded, instead of in the field).

What burn-in removes added. Burn-in spends the infant-mortality region (I, shaded) before the chip ships at tshipt_{ship}; the part of the curve the customer sees (thick) starts on the flat bottom.

Worked example (the spoken values, for example). A part with a 1.0 V nominal supply burns in at 1.2×1.0=1.2 \times 1.0 = 1.2 V; a 0.9 V part at 1.2×0.9=1.2 \times 0.9 = 1.08 V; both near 85 °C.

Traps.

  • “Burn-in checks that the chip works hot.” It need not work during burn-in; it must work afterwards, at nominal conditions.
  • Burn-in is not wear-out. It removes infant mortality; it does nothing against wear-out (Section 12), and it uses up a little of the chip’s life.
Check yourself Name one mechanism of infant mortality, and say how burn-in identifies the chips it would make fail early.

A wire necked by a particle during lithography: it conducts and passes the test, but the current crowds into the neck and electromigration opens it after some time in use. Burn-in runs the chip hot (about 85 °C) and at a raised supply (about 20 % over nominal), which accelerates electromigration, so the neck opens during burn-in; the test afterwards finds the failure and the chip is discarded instead of failing in the field.

Check yourself Why must the chip work at nominal conditions after burn-in, and what would requiring it to work during burn-in cost?

After burn-in it is a shipped product: a die damaged by the stress, or one whose defect has now opened, must be caught. Requiring correct operation at 85 °C and 20 % over-voltage would force the design to meet timing and noise margins there too: larger margins everywhere, paid for in speed or power at the conditions the chip actually runs at.

12. Wear-out: TDDB, HCI, NBTI

You need

A gate’s delay against its overdrive (Chapter 5; Chapter 21). A gate’s delay is about charge over current, τ∝CVDD/Ion\tau \propto CV_{DD}/I_{on}. For a velocity-saturated device at full overdrive, Ion∝VDD−VTI_{on} \propto V_{DD} - V_T, so

τ∝VDDVDD−VT.\tau \propto \frac{V_{DD}}{V_{DD} - V_T} .

A larger ∣VT∣\lvert V_T\rvert means less overdrive, less current and a slower gate.

The bathtub curve (Section 10): region III, the end of life, is this section’s. Original figure ↑

The question. Even a perfect die eventually fails: the bathtub rises again at the right. What wears out, how does it show, and what can a design do about it?

Wear-out (board, 54:18–56:51)

  1. Three mechanisms board (56:35). TDDB, time-dependent dielectric breakdown; HCI, hot-carrier injection; NBTI, negative-bias temperature instability.
  2. How they show board: “usually” as a threshold voltage shift (54:44–55:35). Charge trapped in the gate oxide over years of use raises ∣VT∣\lvert V_T\rvert; the overdrive falls, the devices slow, and at a fixed clock the chip eventually makes errors. (TDDB’s end point is, as its name says, the oxide breaking down; the lecture groups it with the threshold shifts added.)
  3. Remedies (55:35–56:51). Delay replicas: on-chip copies of critical paths that measure how much the circuits have slowed, so the clock can be throttled down as the chip ages. Spare processors: when one core becomes too slow, a spare is switched in.

Two remedies for wear-out added, from the speech (Lecture21, 55:35–56:51). (a) A delay replica: an inverter chain that ages like the logic is timed every cycle; when its delay trept_{rep} no longer fits in the period TT with margin, the clock generator lowers fclkf_{clk} (↓). (b) A spare core (dashed) is switched in for one that has become too slow (✗).

How much slower added. Take the delay model of the Need, with VTV_T raised by ΔVT\Delta V_T:

τ′τ=VDD−VTVDD−VT−ΔVT  ≈  1+ΔVTVDD−VT.\frac{\tau'}{\tau} = \frac{V_{DD} - V_T}{V_{DD} - V_T - \Delta V_T} \;\approx\; 1 + \frac{\Delta V_T}{V_{DD} - V_T} .

Derive it in three lines: τ∝VDD/(VDD−VT)\tau \propto V_{DD}/(V_{DD} - V_T); the ratio of the new delay to the old is the ratio of the overdrives, inverted; for a small shift, 1/(1−x)≈1+x1/(1 - x) \approx 1 + x with x=ΔVT/(VDD−VT)x = \Delta V_T/(V_{DD} - V_T).

A worked example: 30 mV of wear (added; values for example)

  1. The values. For example, VDD=1.0V_{DD} = 1.0 V, VT=0.30V_T = 0.30 V, and after years of use ∣VT∣\lvert V_T\rvert has risen by 30 mV.
  2. The delay ratio. τ′/τ=0.70/0.67=\tau'/\tau = 0.70/0.67 = 1.0448: 4.48 % slower. The first-order estimate gives 0.03/0.70=0.03/0.70 = 4.29 %.
  3. What the clock must do. A path that just met a 500 ps period (2 GHz) now needs 500×1.0448=500 \times 1.0448 = 522.4 ps, so the throttled clock runs at 1/522.4 ps=1/522.4\ \text{ps} = 1.914 GHz.
  4. What a guard band buys. A design that ships with 5 % of timing margin can absorb a shift up to ΔVT=(VDD−VT)(1−1/1.05)=\Delta V_T = (V_{DD} - V_T)(1 - 1/1.05) = 33.3 mV before it must slow down.

Traps.

  • “Burn-in removes wear-out.” Burn-in removes infant mortality; wear-out comes at the end of a good chip’s life.
  • The square law. The course’s short-channel delay is linear in the overdrive; the square law would double the estimate.
  • Shifting VDDV_{DD} instead of the overdrive. The shift reduces VDD−VTV_{DD} - V_T; VDDV_{DD} itself is unchanged.
Check yourself Why does a larger |V_T| slow a gate?

The on-current is proportional to the overdrive VDD−∣VT∣V_{DD} - \lvert V_T\rvert, so a larger threshold leaves less overdrive and less current to charge the same load through the same voltage swing: the delay rises.

Check yourself At V_DD = 0.8 V and the same V_T = 0.30 V, what does a 30 mV shift do to the delay, and why is it worse than at 1.0 V?

τ′/τ=0.50/0.47=\tau'/\tau = 0.50/0.47 = 1.0638: 6.38 % slower (first order 0.03/0.50=6%0.03/0.50 = 6 \%), against 4.48 % at 1.0 V. The same shift is a larger fraction of a smaller overdrive, so low-voltage designs feel wear-out more.

13. Built-in self-test: ABIST and LBIST

You need

The scan chain and its test (Sections 4–5). A mux on SE in front of every flip-flop makes them one shift register; a test shifts a state in, captures once, and shifts the result out.

SRAM arrays are not flip-flops (Chapter 19). A cache is an array of 6T cells read and written through bitlines; its cells have no mux in front and cannot be put on a scan chain.

The scan chain in its two modes (Section 4). Original figure ↑

The question. The tester is expensive and sees the chip only once. Can the chip test itself, at power-on and in the field, and what can it test that scan cannot reach?

BIST (board, 57:43–61:01)

  1. BIST board, built-in self-test: circuits on the chip that test the chip, besides the external tester (57:43).
  2. ABIST, array BIST board (58:15–59:08). Scan covers the flip-flops but not the memories, the L1 cache’s SRAM among them. A small state machine on the chip, the ABIST engine, writes and reads patterns through the arrays at power-on and checks the results.
  3. LBIST, logic BIST board (59:08–60:02). It reuses the scan chains built for acceptance testing: at start-up, scan patterns in, clock, scan out, and check that the chip still works.
  4. Where LBIST’s patterns come from board (60:02–60:30). Not from ATPG and a tester’s memory, but from an on-chip LFSR, a linear feedback shift register, which generates pseudo-random patterns. The responses are compressed into a signature and compared with the expected one. The lecture runs out of time here (“I’m gonna need more time on this”); LFSRs and signatures continue in Chapter 23 (Lecture 22, being written).

Built-in self-test added, after the board (Lecture21 @ 61:01). Top, LBIST: an LFSR supplies pseudo-random patterns to the scan chain’s scan_in; the responses from scan_out are compressed in a signature register (SIG) and compared with the expected signature. Bottom, ABIST: a small state machine writes and reads the SRAM arrays, which are not on any scan chain.

The board (Lecture21 @ 61:01)
Lightboard in one white pen: 'BIST (built-in self-test)'; 'array' written over 'ABIST' with a bracket; 'LBIST' with a bracket and '↑ logic' below, an arrow '⇒ scan chain'; 'patterns generated ⇒ LFSR' and '(linear feedback shift register)' at the right; faint remnants of earlier boards at the upper right. The lecturer stands in the middle, covering part of the title.
Lecture21 @ 61:01BIST: ABIST for the arrays, LBIST reusing the scan chains, patterns from an LFSR.

Fair copy of the board above (Lecture21 @ 61:01), mark for mark in its own layout, in one white pen (black). “array” is written over the A of ABIST with a short stroke, and “logic” under the L of LBIST with an arrow. The faint, illegible remnants of erased boards at the upper right and of “Lecture 21” at the top left are left out.

Traps.

  • “ABIST uses the scan chains.” It cannot: the arrays’ cells are not scannable. That is why it needs its own engine.
  • “LBIST’s patterns come from ATPG.” They are pseudo-random, from the LFSR; there is no tester to supply ATPG’s patterns at start-up.
Check yourself Why can't the L1 cache be tested through the scan chains?

Its storage is an SRAM array of 6T cells, reached only through word lines and bitlines; the cells are not flip-flops with a mux in front, so they cannot be linked into a shift register. ABIST tests them instead, through the array’s own read and write circuits.

Check yourself What does LBIST reuse from acceptance testing, and what replaces the tester's two jobs, supplying patterns and checking responses?

It reuses the scan chains and the shift-capture-shift procedure. An on-chip LFSR replaces the tester’s pattern memory, and a signature register that compresses the scanned-out responses, compared with the expected signature, replaces the tester’s comparison.

On the exam

Lecture 21’s test material is examined in three of the four past finals: 50 points of stuck-at and scan questions and a 5-point short answer on burn-in, plus the problem set’s scan flip-flop. The test practice page, ft1 (being written), solves every part below in full; this chapter’s examples use other circuits, so its numbers are not those parts’ answers.

PartPointsWhat it asksSections
FN10-310a test pattern for a node stuck at 1, propagated to the output through fan-out that reconverges; is it unique?§7 (with §6)
FN17-4a10the scan pattern for a node stuck at 0: the values to scan in, and in what order§7, §8 (order §4–§5)
FN17-4b10the values scanned out after one capture, good and faulty§8 (with §5)
FN19-420waveforms for scan_enable, clock, scan_in and scan_out that detect a stuck-at fault, showing where it is detected§5, §8
FN17-1e5one mechanism of infant mortality, and how burn-in identifies the chips it affects§10, §11
PS5-Q3a–b—a static scan flip-flop from its function table; how a scan chain improves testability, and the test procedure§4, §5

No past final tests supply resonance (§1), packaging (§2), IDDQ testing (§9), wear-out (§12) or BIST (§13); short-answer parts can draw on any of them.

Notes for the practice page.

  • Reconvergence decides FN10-3. Write the good and faulty values on both branches and evaluate the meeting gate in each circuit before choosing side values; then count the free inputs’ choices to answer “unique?”.
  • The order is half of FN17-4a. Load the last flip-flop’s value first; and say that a primary input is applied during capture, not scanned.
  • FN17-4b and FN19-4 read the chain. Give the register view and the scan_out sequence (reversed, the last flip-flop’s bit on scan_out right after the capture edge), and mark the first differing bit. In a waveform, change SE between clock edges, never at one.
  • PS5-Q3a wants the switch-level circuit of Section 4’s cell: a transmission-gate mux on SE and SE‾\overline{SE} in front of a positive-edge, static master–slave flip-flop. ft1 draws it.

Memorize.

  • The scan cell: Q+=SE‾⋅D+SE⋅SIQ^{+} = \overline{SE}\cdot D + SE\cdot SI at the rising edge; SE = 1 shifts, SE = 0 runs normally.
  • The procedure: SE = 1, shift in (nn edges); SE = 0, one capture edge with the primary inputs applied (at speed for an AC test); SE = 1, shift out (nn edges, overlapped with the next load).
  • Controlling values: 0 for NAND and AND, 1 for NOR and OR. A test: the node opposite to its stuck value; every side input on the path non-controlling.
  • IDDQ: the quiescent supply current; every static current (ratioed logic, analog bias) must turn off in test.
  • Burn-in: about 85 °C and about 1.2 × VDDV_{DD}; it removes infant mortality (latent defects such as a necked wire failing by electromigration), not wear-out.
  • Wear-out: TDDB, HCI, NBTI → ∣VT∣\lvert V_T\rvert rises → less overdrive → slower; remedies: delay replicas with clock throttling, spare cores.
  • BIST: ABIST for arrays (its own engine), LBIST through the scan chains with LFSR patterns.

Derive (with the path).

  • The bit order. One shift moves every bit one place: the first bit in goes farthest (load qnq_n first); scan_out is FnF_n‘s Q, so DnD_n comes out first, before any shift edge.
  • The hum. fres=1/(2πLC)f_{res} = 1/(2\pi\sqrt{LC}) (the board’s 1/LC1/\sqrt{LC} is in rad/s); a burst every NN cycles sits at fclk/Nf_{clk}/N, so N≈fclk/fresN \approx f_{clk}/f_{res} hits it.
  • A threshold shift’s delay cost. τ∝VDD/(VDD−VT)\tau \propto V_{DD}/(V_{DD} - V_T), so Δτ/τ≈ΔVT/(VDD−VT)\Delta\tau/\tau \approx \Delta V_T/(V_{DD} - V_T).
  • A neck’s current density. J=I/(wt)J = I/(wt), so Jneck/J=w/wneckJ_{neck}/J = w/w_{neck}.

Method card. The playbook’s card for the stuck-at and scan family comes with ft1; until then, Sections 7 and 8 are the method.

The lecture’s boards

The boards of Lecture 21 used in this chapter (37 frames)