DFT · On-Chip Test

BIST — Built-In Self-Test

On-chip test infrastructure that generates patterns and compacts responses autonomously — Logic BIST (PRPG + MISR) and Memory BIST (March algorithms, SRAM repair).

LBIST Architecture — PRPG & MISR

BIST Controller FSM PRPG (LFSR) pseudo-random patterns DUT — Scan Chains N scan chains MISR (LFSR) compact response → signature Comparator sig vs golden → PASS/FAIL BIST controller orchestrates: reset PRPG/MISR → run N patterns → compare signature → report
Logic BIST: PRPG generates pseudo-random patterns → fed to scan chains → DUT responses captured → MISR compacts responses into signature → compared to golden reference.
ComponentTypeFunctionTypical Size
PRPGLFSR (Linear Feedback Shift Register)Generates maximal-length pseudo-random test patterns without external data32–64 bits
MISRLFSR with multiple XOR inputsCompacts all scan-chain response bits into a running signature32–64 bits
BIST ControllerFSMSequences BIST: reset, run N cycles, compare, report pass/fail~200–500 gates
Golden SignatureROM / registerKnown-good MISR output stored at design time for comparison32–64 bits

MBIST — March Algorithms for SRAM

March C– Algorithm — Walking Through SRAM SRAM Address (0 to N-1) 0 N ↑ w0 write 0 all cells ↑ r0,w1 read 0, write 1 ↑ r1,w0 read 1, write 0 ↓ r0,w1 reverse: read 0, write 1 ↓ r1,w0 ↑ r0 ✓
March C–: six elements march through SRAM addresses in ascending (↑) and descending (↓) order, writing and reading each cell with specific patterns to detect stuck-at, transition, and coupling faults.
March AlgorithmOperationsFaults DetectedComplexity
March X↑(w0), ↑(r0,w1), ↓(r1,w0), ↓(r0)SAF, TF, coupling (CF)4N
March C–↑(w0), ↑(r0,w1), ↑(r1,w0), ↓(r0,w1), ↓(r1,w0), ↑(r0)SAF, TF, CF (comprehensive)10N
March Y↑(w0), ↑(r0,w1,r1), ↓(r1,w0,r0)SAF, TF, CF, NPSF (basic)6N
MATS+↑(w0), ↑(r0,w1), ↓(r1,w0)SAF, TF4N (fast)
MARCH SSExtended March C– variantsSAF, TF, CF, NPSF, PSAF22N (thorough)

SAF=Stuck-At Fault, TF=Transition Fault, CF=Coupling Fault, NPSF=Neighborhood Pattern Sensitive Fault. N = number of memory cells. Industry standard for embedded SRAM: March C– or equivalent.

SRAM Repair — Redundancy & Fuse Programming

StepWhat HappensTool / Method
1. MBIST TestMarch algorithm identifies all failing addresses (row + column coordinates)MBIST controller records faulty address bitmap
2. Repair AnalysisAlgorithm determines minimum spare rows/columns to cover all faulty cells (NP-hard, heuristic for large arrays)Repair algorithm (ATE software or on-chip)
3. Spare AllocationMap each faulty row/column to a specific spare row/columnSpare decoder in SRAM macros
4. Fuse ProgrammingBlow eFuse bits to permanently redirect faulty address to spare (one-time programmable)ATE fuse writer; eFuse controller on-chip
5. Repair VerificationRe-run MBIST with fuses blown — verify all previously failing addresses now passMBIST re-run on ATE

LBIST vs MBIST

AspectLogic BIST (LBIST)Memory BIST (MBIST)
TargetCombinational and sequential logic (scan chain based)Embedded SRAM, ROM, register file arrays
Pattern GenPRPG (LFSR) — pseudo-randomMarch algorithm controller (deterministic)
ResponseMISR signature (compact)Read data compared directly vs expected
Area overhead~5–10% (PRPG+MISR+controller)~5–15% of SRAM area (redundant rows/cols + controller)
Fault coverage~90% stuck-at (lower than ATPG deterministic)Near-100% for SAF/TF with March C–
Test timeFixed N pattern cycles (fast)O(N) March steps — proportional to memory size
Use caseField self-test, automotive in-system test, post-power-on boot testManufacturing test of embedded SRAM yield

BIST Interview Questions

What is the difference between LBIST and MBIST?
LBIST (Logic BIST) tests combinational and sequential logic using an on-chip PRPG (LFSR-based pattern generator) feeding scan chains, and a MISR compacting responses into a signature. MBIST (Memory BIST) tests embedded memory arrays (SRAM, ROM) using a dedicated controller that applies March algorithms — sequential address-walking patterns that test each cell against its neighbors. The key difference: LBIST uses pseudo-random patterns sufficient for combinational logic; memory arrays need deterministic March patterns to detect coupling faults between adjacent cells.
What is MISR and how does it compact test responses?
MISR (Multiple-Input Signature Register) is an LFSR where each stage XORs in a scan chain output before feeding the next stage. It runs for N clock cycles, accumulating all N×(chain length) response bits into a single 32-bit (or 64-bit) signature. The probability that a defective circuit produces the correct signature by chance is 2⁻³² ≈ 10⁻¹⁰ — negligible. This "signature compaction" eliminates the need to store and compare millions of response bits; only the final signature is compared. The golden signature is simulated with a fault-free model and stored in ROM or OTP.
What is March C– and why is it used for SRAM testing?
March C– is a widely used SRAM test algorithm with 6 march elements and 10N operations (N = cells). It walks through all addresses ascending and descending, writing and reading 0s and 1s in each cell. This sequence detects: stuck-at faults (cell fixed at 0 or 1), transition faults (can't switch), read destructive faults, write disturb faults, and coupling faults (one cell corrupting its neighbor). March C– is preferred because it provides comprehensive fault coverage with reasonable test time — O(10N) is acceptable for SRAM arrays up to ~64 Mb.
How does SRAM repair with redundancy improve yield?
SRAM macros include spare rows and columns beyond the required capacity. When MBIST identifies faulty cells, the repair algorithm maps the faulty row/column to a spare by programming eFuse bits in the spare row/column decoder. This allows chips with a few SRAM bit failures to pass — improving die yield. For a 512KB SRAM with 1% of cells failing (a few thousand cells), adding 2–4 spare rows can repair ~90% of these failures, recovering the die that would otherwise be scrapped. Repair analysis runs on ATE and fuses are blown before the chip leaves the tester.
What is in-system LBIST and when is it used?
In-system LBIST (also called IJTAG or LBIST-at-startup) runs the BIST test during power-on initialization or periodically in the field — not just at manufacturing ATE. The chip self-tests its logic while the system is live. Used in: automotive (ISO 26262 requires periodic self-checking of safety-relevant logic), aerospace, server reliability (memory ECC + periodic LBIST on computation logic). The BIST controller is triggered by a watchdog or startup sequence; the result (PASS/FAIL) is reported via a status register or interrupt. The system halts or enters safe mode if BIST fails in the field.