4.2.13VLSI Design

Design for testability (DFT)

2,086 words9 min readdifficulty · medium1 backlinks

WHAT is DFT?

WHY it matters: A modern chip has millions of flip-flops buried deep inside. Without DFT, testing them via primary I/O is a combinatorial nightmare — you'd need astronomically many test vectors. DFT makes test generation tractable and raises fault coverage toward 99%+.


The Fault Model (WHY we test at all)

HOW you detect a stuck-at fault — you need a vector that does TWO things:

  1. Activate the fault: drive the node to the opposite of the stuck value (SA0 → drive it to 1).
  2. Sensitize a path to a primary output so the difference shows up (observability).

The Big Problem: Sequential Circuits


Scan Design (the 80/20 core of DFT)

Figure — Design for testability (DFT)

HOW a scan test runs (one pattern):

  1. Set SE=1 (shift mode). Shift in the desired FF state through Scan-In — takes NN clocks for NN FFs.
  2. Set SE=0 (functional mode). Apply primary inputs, pulse clock once → combinational logic computes new FF values (capture).
  3. Set SE=1 again. Shift the captured values out through Scan-Out (compare against expected) — while simultaneously shifting in the next pattern.

Built-In Self-Test (BIST)


Boundary Scan (JTAG, IEEE 1149.1)


Common Mistakes


Feynman: explain to a 12-year-old

Recall Click to reveal the kid version

You built a giant robot with millions of tiny switches inside, but you sealed it shut with only a few buttons and lights on the outside. Some switches might be broken. DFT is like adding a secret zipper down the robot's back: you unzip it, slide in a note telling every switch what to be, zip up, press "GO" once, then unzip and read what each switch became. If the answer's wrong, a switch is broken! The zipper is the scan chain, and letting the robot quiz itself is BIST.



Flashcards

What two properties does DFT add to a circuit?
Controllability (set internal nodes) and Observability (read internal nodes at outputs).
In the single stuck-at model, how many faults for n lines?
2n (each line SA0 or SA1).
Two steps to detect a stuck-at fault?
Activate (drive node to opposite of stuck value) and sensitize/propagate a path to a primary output.
What turns an ordinary flip-flop into a scan flip-flop?
Adding a MUX so it selects between functional data (D) and scan-in in shift mode (SE).
What does SE=1 vs SE=0 do in scan design?
SE=1 = shift mode (chain acts as shift register); SE=0 = functional/capture mode.
Approx clock cycles for P patterns over a scan chain of length N?
About (P+1)(N+1).
Why split one scan chain into k parallel chains?
Cuts effective chain length and shift time by ~k times.
In BIST, what generates patterns and what compresses responses?
LFSR/PRPG generates pseudo-random patterns; MISR compresses responses into a signature.
How many states does an n-bit maximal (primitive-polynomial) LFSR cycle through?
2^n - 1 (all-zero state excluded).
What is aliasing in a MISR and its probability?
A faulty response compressing to the correct signature; probability ~ 2^(-m) for an m-bit signature.
What does boundary scan (JTAG) test?
Board-level interconnect (open/short faults) between chips, via TDI/TDO/TCK/TMS and the TAP controller.
Typical cost of scan design?
5–20% area overhead plus added delay in functional path and extra routing.

Connections

  • Combinational Logic Testing — scan reduces sequential test to this.
  • Automatic Test Pattern Generation (ATPG) — generates the vectors scan shifts in.
  • Linear Feedback Shift Registers (LFSR) — engine of BIST pattern generation.
  • Flip-Flops and Sequential Circuits — what scan modifies.
  • JTAG / IEEE 1149.1 — boundary scan standard.
  • Yield and Fault Coverage — economic driver of DFT.

Concept Map

adds

adds

motivates

part of

converts FFs into

chained into

enables

enables

tests against

measured by

uses

uses

detected by

detected by

DFT techniques

Controllability

Observability

Sequential circuits hide state

Scan design

Scan flip-flops MUX plus FF

Serial shift register chain

Stuck-at fault model

Fault coverage

Activate node to opposite value

Sensitize path to output

Hinglish (regional understanding)

Intuition Hinglish mein samjho

Dekho, ek chip ke andar millions of transistors aur flip-flops hote hain, lekin bahar sirf kuch pins hote hain. Manufacturing ke baad koi internal gate kharab ho sakta hai, par aap use bahar se seedha touch nahi kar sakte. DFT ka matlab hai — design mein thoda extra hardware daalo taaki har internal node ko aap set kar sako (controllability) aur uska value output pe padh sako (observability). Test ke liye hum stuck-at fault model use karte hain: koi line permanently 0 (SA0) ya 1 (SA1) pe atak gayi. Fault detect karne ke liye do cheez chahiye — pehle node ko stuck value ke opposite pe drive karo (activate), phir ek path banao output tak (propagate).

Sabse bada problem sequential circuits hain, kyunki flip-flops andar state chhupa lete hain. Iska 80/20 solution hai Scan Design: har normal flip-flop ke aage ek MUX laga do, aur test mode (SE=1) mein saare flip-flops ek lambi shift register ki tarah jud jaate hain. Ab aap serially koi bhi state andar bhar sakte ho, ek clock pulse maar ke combinational logic ka result capture kar sakte ho, aur phir wahi result shift out karke check kar sakte ho. Isse mushkil sequential test ek simple combinational test ban jaata hai. Bas cost yeh hai ki MUX se thoda area aur delay badh jaata hai (5–20% overhead).

BIST mein chip khud ko test karta hai: ek LFSR pseudo-random patterns banata hai, aur MISR saare outputs ko ek chhoti si signature mein compress kar deta hai. Signature galat aaya to chip fault. Yaad rakho LFSR truly random nahi, deterministic pseudo-random hai — isliye expected signature pehle se calculate ho sakta hai. Boundary scan (JTAG) thoda alag hai — yeh chip ke andar nahi, balki board pe chips ke beech ke wires (open/short) test karta hai, 4 wires (TDI, TDO, TCK, TMS) se.

Test yourself — VLSI Design

Connections