DFT · Test Patterns

ATPG & Fault Models

How ATPG algorithms generate test patterns that detect manufacturing defects — stuck-at, transition delay, bridge, and cell-aware fault models, with fault coverage analysis.

Stuck-At Fault — SA0 & SA1

Good Circuit AND 1 1 → 1 ✓ A=1, B=1 → AND = 1 correct output Stuck-At-0 (SA0) on net X AND 1 1 SA0 → 0 ✗ A=1, B=1 should give 1 but net stuck at 0 — FAIL detected! ATPG: Test for net X SA0 1. Sensitize: drive X=1 Set A=1, B=1 → AND output = 1 2. Propagate: route X's effect to primary output (PO) or scan-FF 3. Observe: if PO=0 → fault detected (expected 1, got 0 = defect found)
SA0 on net X: ATPG must drive X to 1 (sensitize) and propagate the mismatch to an observable output. If output reads 0 when expecting 1, the fault is detected.

VLSI Fault Models — Comparison

Stuck-At (SA0/SA1)

Dominant fault model

Models a net permanently stuck at 0 or 1 due to shorts/opens, oxide damage, metal bridging. Tested at slow speed. Detects most structural defects. Industry standard ≥95% SAFC for tapeout. Tools: slow-mode scan patterns.

Transition Delay (Slow-to-Rise / Slow-to-Fall)

At-speed testing

Models a net that transitions correctly but too slowly — resistive opens, extra capacitance, degraded transistors. Must be tested at full functional clock speed. Requires OCC for at-speed capture. Target: ≥80% TFC.

Bridge Fault

Net-to-net short

Models a short between two nets — wiring short, metal bridge, or electromigration. One net dominates the other (AND-bridging or OR-bridging depending on driver strengths). Requires neighbor-aware fault models. More difficult to test than stuck-at.

Cell-Aware Fault

Transistor-level defects

ISTAT (Intra-cell Stuck-at) models defects within a standard cell — resistive opens, partial bridges, parasitic interactions. Generated from transistor-level SPICE simulation. Captures defects not visible at gate level. Required for high-coverage automotive designs.

Fault ModelTest ClockCoverage TargetTool Support
Stuck-At (SA0/SA1)Slow (scan clock)≥95% commercial, ≥99% automotiveTessent, TetraMAX, Encounter Test
Transition (TF)At-speed (functional)≥80% transition fault coverageTessent, TetraMAX
Path DelayAt-speedCritical paths onlyTessent TDRC
Bridge FaultSlow or at-speedSupplemental to stuck-atTessent (layout-aware)
Cell-AwareSlow (intra-cell)Required for automotiveTessent Cell-Aware ATPG
IDDQ (current)N/A (measure I_DD)Catches opens, bridgesATE current monitoring

ATPG Algorithms — D-Algorithm, PODEM, FAN

AlgorithmApproachKey InnovationUse Today
D-Algorithm (1966)Boolean 5-value logic (0,1,D,D̄,X) backtracking over gate networkIntroduced D-value to represent fault effect; classic foundationEducational reference; replaced by faster methods
PODEM (1981)Primary Input Oriented search — only assigns values at primary inputs, avoids internal contradictionsDramatically reduced backtracking vs D-algorithm; handles reconvergent fanoutStill referenced; basis for modern tools
FAN (1983)Fanout-Oriented ATPG — identifies unique sensitization (single path) first, then backtracksUnique sensitization + head line identification reduces search space 10–100×Foundation for Siemens Tessent, Synopsys TetraMAX
Modern SAT-basedConverts ATPG to Boolean SAT problem; SAT solver finds satisfying assignmentComplete — can prove untestability; handles large designs efficientlyIncreasingly used for hard-to-test logic, sequential ATPG

Fault Coverage Calculation

Total Faults (2 per net, all SA0/SA1) Detected ≥95% Untestable (provably) Abort (<1%) Undetected (<5%) SAFC = Detected + Untestable ──────────────── Total − Untestable × 100%
Stuck-at fault coverage (SAFC) = (detected + untestable) / (total − untestable) × 100%. Untestable faults are formally proven undetectable; they don't count against coverage. Abort faults are patterns the tool gave up on — must be kept below 1%.
Fault CategoryDefinitionAction
Detected (D)ATPG found a test pattern that detects this fault — response differs from fault-freeCounts toward coverage — good
Possibly Detected (PD)Pattern may detect fault but not proven — X-values on propagation pathCounts as partial — try to resolve X-sources
Untestable (UT)Formally proven that no pattern can detect this fault — redundant logicRemoved from denominator in coverage calculation
Undetected (UD)No pattern found — could be testability issue or truly untestable (not yet proven)Investigate — add observability points or fix RTL testability
ATPG Abort (AU)Search exceeded time/backtrack limit without finding or proving untestableMust be <1% — increase effort or add constraints

ATPG & Fault Model Interview Questions

What is the D-algorithm and what does the D value mean?
The D-algorithm uses a 5-valued logic system: 0, 1, D (fault-effect = 1 in good circuit, 0 in faulty), D̄ (= 0 in good, 1 in faulty), and X (unknown/unspecified). To test a stuck-at-0 fault on net N: assign D to N (good=1, faulty=0). Then propagate D through downstream gates to a primary output using Boolean logic rules. If D reaches a primary output, applying these input assignments will produce different outputs for good vs faulty circuit — the fault is detected. Backtracking is used when contradictions arise.
Why is 95% stuck-at fault coverage the industry threshold?
95% SAFC is an empirical threshold below which field defect escape rates (DPPM — defects per million) become unacceptably high. Statistical studies show that dropping from 95% to 90% coverage can multiply field failures by 10×. The exact threshold varies: 95% for standard commercial, 98–99% for high-reliability (server, networking), and 99%+ for automotive (ISO 26262 ASIL-D). Below the threshold, statistically too many defective dice pass ATE and reach end customers, causing recalls and reliability issues.
What is the difference between SA testing and transition fault testing?
SA (stuck-at) testing uses a slow, safe scan clock. It verifies structural correctness — that nets can switch between 0 and 1. SA passes even if a net switches but very slowly (degraded driver, resistive defect). Transition fault testing uses the full-speed functional clock for the capture phase (via OCC). It verifies speed — that nets transition fast enough (slow-to-rise STR, slow-to-fall STF). A resistive open defect might pass SA (net eventually reaches correct value) but fail TF (reaches it too late). Together, SA + TF testing catches both structural and speed defects.
What are cell-aware fault models?
Cell-aware (CA) ATPG models defects within a standard cell at the transistor level — resistive opens within cell, partial bridges between internal nodes, floating gate defects. The cell's SPICE netlist is simulated with each defect; the resulting behavior (possibly not a simple stuck-at) is characterized into per-cell fault dictionaries. CA ATPG is required for automotive-grade ASICs (ISO 26262) because some intra-cell defects produce behaviors (e.g., output stuck at intermediate voltage, or delayed transition) that stuck-at patterns miss. Tool: Mentor Tessent Cell-Aware ATPG.
What is ATPG fault abort and how do you reduce it?
ATPG abort (AU) occurs when the algorithm exceeds its backtrack/time limit without finding a test pattern or proving the fault untestable. Abort rate must be <1% for tapeout sign-off. Reduce abort by: (1) increasing ATPG effort (--effort high); (2) identifying non-DFT-compliant RTL (uncontrollable resets, gated clocks) that make faults hard to test — fix at RTL or add scan-enable constraints; (3) adding test points (observation points for observability, control points for controllability) in hard-to-test logic; (4) using sequential ATPG for faults requiring multiple capture cycles.