Skip to content

DFT · Chapter 13 · DFT Debug Methodology

Diagnosis & Failure Localisation

A mismatch that survived the real-versus-false fork is a real defect, and diagnosis is how you localize it, working from the observed failures back to a candidate net, cell, or instance precise enough to point physical failure analysis at the right spot. Diagnosis is an inverse problem: given the failing patterns and their failing cells, the netlist, and the fault model, the tool computes the fault candidates that best explain what was observed. It intersects the back-cones of the failing cells while staying consistent with the passing cells, so more failing patterns give a tighter candidate set. The output is a ranked candidate list, a suspected fault type, and often a layer hint, but diagnosis localizes rather than proves. Resolution tracks observability, so compression can lower it, and volume diagnosis across many dies drives yield learning.

Advanced15 min readDFTDiagnosisLocalizationPFAYield Learning

Chapter 13 · Section 13.4 · DFT Debug Methodology

Project thread — the mini-SoC's real defect localized: cone-intersection to a ranked candidate, a diagnostic mode to beat compression, PFA to confirm, and volume diagnosis for yield.

1. Why Should I Learn This?

Diagnosis turns a confirmed defect into a place to look — a ranked candidate list precise enough to point PFA and, in volume, to drive yield learning.

  • An inverse problem: from failing patterns/cells back to the likely fault site by intersecting back-cones (consistent with passing cells).
  • Output: a ranked candidate list, a suspected fault type (stuck-at/bridge/open/transition), an xy/layer hintdiagnosis localizes, PFA proves.
  • Resolution ~ observability: many observers → tight; compression hides the failing cell → looser → use a diagnostic mode (7.x tradeoff).
  • Volume diagnosis → a Pareto of sites → systematic vs randomyield engineering.

2. Real Silicon Story — the diagnosis compression blurred

A part had a confirmed real defect (it survived the 13.3 triage), but diagnosis returned a loose candidate listdozens of suspects spread across the die. PFA can't be pointed at dozens of sites; deprocessing is slow and destructive. The debug stalled.

The cause was compression. The design used an on-chip compactor (7.x): many scan cells fed a compactor that produced a compressed signature, so the datalog recorded which signature bit miscompared, not which exact cellhiding the observability diagnosis needs to intersect cones tightly. The fix was a DIAGNOSTIC mode: re-run the failing patterns with the compactor bypassed (a high-resolution / bypass mode) so each individual cell's pass/fail was visible again. With full observability restored, diagnosis intersected the failing cones to a few candidates, and PFA confirmed a bridge at the top suspect. Lesson: diagnosis resolution depends on observability, and compression trades diagnosability for test cost (7.x) — when diagnosis is loose, un-compact with a diagnostic mode. And remember the boundary: diagnosis localized the bridge to a candidate; PFA proved it — the two are different jobs.

3. Factory Perspective — diagnosis through each lens

  • What the test/DFT engineer sees: the diagnosis run — feed failing patterns/cells in, get a ranked candidate list + fault type; switch to a diagnostic mode if compression blurs it.
  • What the failure-analysis engineer sees: the candidate + xy/layer hint as a PFA target — where to deprocess/image to confirm the physical defect.
  • What the yield/process engineer sees: the volume Pareto — is the same site failing across many dies (systematic → process/design) or scattered (random)?
  • What management cares about: that diagnosis shortens PFA (cost/time) and drives yield learning — turning test failures into process improvements, not just scrapped dies.

4. Concept — the inverse problem, cones, resolution, volume

What diagnosis is:

  • An inverse problem: given failing patterns + their failing cells (datalog) + the netlist + the ATPG fault model, compute the fault candidates (nets/pins) that best explain the observed failures.
  • Direction: from observed failures → back to the likely fault site.

How it works — cone intersection:

  • Each failing compare cell has a logic cone feeding it; the defect must lie in the intersection of the cones of the failing cells.
  • It must be consistent with the passing cells — a candidate that would make a passing cell fail is rejected.
  • More failing patterns that observe a site → a tighter candidate set.

Output:

  • A ranked candidate list (top suspects + confidence), a suspected fault type (stuck-at / bridge / open / transition), often a physical (x,y) / layer hint.
  • Boundary: diagnosis localizes; it does not prove. PFA (deprocess/image) confirms the physical defect.

Resolution ~ observability:

  • Many patterns/cells observe the site → tight (few candidates). Poor observability → loose (many candidates).
  • Compression (7.x) reduces resolution — the compactor hides which exact cell failed → may need a DIAGNOSTIC (bypass / hi-res) mode to un-compact. A real coverage-vs-diagnosability tradeoff.

Fault-model match & signature:

  • Chain diagnosis (13.2) for chain defects; logic (scan) diagnosis for logic defects.
  • The failure signature (which patterns fail, stuck-at vs transition, systematic vs random) suggests the defect class (bridge / open / stuck).

Volume diagnosis → yield learning:

  • Aggregate diagnosis across many failing dies → a Pareto of failing sites/layers.
  • Systematic (same site, many dies) = a design/process marginality (fix the mechanism); random = particle defects. This is how DFT drives yield learning.

Tool boundary (garbage in, garbage out):

  • Diagnosis gives candidates + confidence, not certainty; PFA confirms.
  • A wrong fault model or unmasked X degrades diagnosis → clean the pattern debug (13.3) first.
Diagnosis intersects the back-cones of the failing compare cells and constrains the result with the passing cells to produce a small ranked set of candidate nets for physical failure analysisFailing cell A → conenets/gates feeding AFailing cell B → conenets/gates feeding BINTERSECTION of conesexplains ALL failsPASSING cellsCONSTRAINreject candidates thatwould fail a passRanked CANDIDATEStop suspects + fault type +xy/layer→ PFA confirmsdiagnosis localizes; PFAproves12
Figure 1 - diagnosis by back-cone intersection (representative). Each FAILING compare cell has a logic back-cone of nets/gates feeding it. The defect must lie in the INTERSECTION of the failing cells' cones (it explains ALL the failures) AND be CONSISTENT with the PASSING cells (it must NOT turn a pass into a fail). The intersection, constrained by the passes, yields a small set of CANDIDATE nets/pins - ranked by how well each explains the observed pattern of fails and passes. More failing patterns that observe the site = a TIGHTER candidate set. Output: ranked candidates + fault type + xy/layer for PFA. Diagnosis LOCALIZES ; PFA PROVES.

5. Mental Model — triangulating a signal from multiple towers

Diagnosis is like triangulating a hidden transmitter from multiple receiving towers — the more towers that hear it, the tighter you pin its location.

  • Each failing cell is a tower that heard the signal (the defect's effect); its cone is the direction it heard from. The transmitter (the defect) must be where the directions cross — the intersection of the failing cones.
  • The towers that didn't hear it (the passing cells) are just as useful: they rule out whole regions (if the defect were there, they'd have heard it) — so they constrain the fix.
  • More towers hearing it → a tighter fix (fewer candidates). Few towers (poor observability) → a fuzzy fix (many candidates). If a relay tower (a compactor) merges several towers' reports into one summary, you lose bearing — so you switch to direct reception (a diagnostic/bypass mode) to get each tower's report individually.
  • Triangulation gives you a likely spot (candidates + confidence) — but you still send a crew to dig (PFA) to prove the transmitter is there. And if every failing chip triangulates to the same spot, that's not bad luck — it's a broken tower on the network (a systematic process/design issue) to fix at the source (volume diagnosis → yield).

Triangulate the defect from the towers that heard it (failing cells' cones), ruled in by crossings and out by the silent towers (passing cells) — more towers = tighter; a relay (compactor) blurs bearing; a crew (PFA) proves it; same-spot-everywhere = a systematic fix.

6. Working Example — from failing datalog to a ranked candidate

Trace a diagnosis from failing cells to a candidate for PFA:

Azvya Education Pvt. Ltd.VLSI Mentor
Snippet
# Diagnosis (logic/scan) - REPRESENTATIVE, tool-neutral:
  INPUT : failing patterns + failing cells (datalog, from a CLEAN pattern debug 13.3) + netlist + fault model
  STEP 1 - CONE INTERSECTION:
     failing cell A <- cone {n1,n2,n5,n8}
     failing cell B <- cone {n5,n8,n9}
     intersection (explains BOTH fails) = {n5, n8}
  STEP 2 - CONSISTENCY WITH PASSES:
     passing cell C <- cone {n8, n12}  ; if the defect were on n8, C would ALSO fail -> C PASSED -> REJECT n8
     -> surviving candidate = {n5}
  STEP 3 - RANK + FAULT TYPE:
     candidate n5, confidence high ; signature (fails only transition patterns, not stuck-at) -> suspect a slow/OPEN or bridge
     physical hint: n5 at (x,y), metal-2
  OUTPUT: ranked candidate list [n5 (0.9), ...], fault type = transition/open, xy/layer for PFA
  --- RESOLUTION caveat ---
     if COMPRESSION (7.x) is on, the datalog shows a compacted SIGNATURE bit, not cells A/B/C individually
     -> LOOSE candidate list -> re-run failing patterns in a DIAGNOSTIC (bypass/hi-res) mode -> restore observability -> tighten
  --- BOUNDARY ---   diagnosis LOCALIZES (n5, candidate) ; PFA (deprocess/image at x,y) PROVES the physical defect
  --- VOLUME ---     aggregate n5-type hits across many dies -> if SYSTEMATIC (same site) -> design/process fix (yield), not just this die

Resolution is a ladder set by observability — compression lowers a rung, a diagnostic mode restores it:

A resolution ladder: many observers give a tight candidate set, compression lowers resolution to a loose set, a diagnostic bypass mode restores it, and volume diagnosis aggregates dies into a yield Pareto
Figure 2 - the diagnosis resolution ladder (representative). Resolution (how few candidates) tracks OBSERVABILITY. TOP rung - a site observed by MANY failing patterns/cells -> TIGHT (a few candidates) -> PFA easily pointed. MIDDLE - COMPRESSION (7.x) merges cells into a compacted signature -> observability drops -> LOOSE (many candidates). RESTORE - re-run in a DIAGNOSTIC (bypass/hi-res) mode to un-compact -> observability returns -> TIGHT again. BOTTOM - single-die diagnosis localizes THIS defect ; VOLUME diagnosis aggregates many dies -> a Pareto -> systematic vs random -> yield. Diagnosis localizes ; PFA proves.

7. Industry Flow — diagnose, confirm, and (in volume) learn

Diagnosis localizes to candidates, PFA confirms, and volume diagnosis turns failures into yield learning:

A clean failing datalog feeds diagnosis, which produces ranked candidates; a diagnostic mode tightens loose results, PFA confirms the defect, and volume diagnosis drives yield learningClean datalog → diagnosis (cone intersection) → candidates → PFA confirms → volume → yieldClean datalog → diagnosis (cone intersection) → candidates → PFA confirms → volume → yield1Clean failing datalogfrom a clean pattern debug (13.3)2Diagnosiscone intersection + fault model → ranked candidates3Diagnostic mode if looseun-compact (7.x) → tighten resolution4PFA confirmsdeprocess/image the top candidate (proves)5Volume → yield learningPareto → systematic vs random → fix mechanism
Figure 3 - diagnosis-to-yield flow (representative). (1) A CLEAN failing datalog (from 13.3) feeds DIAGNOSIS. (2) Diagnosis intersects failing cones (consistent with passes) -> a RANKED candidate list + fault type + xy/layer. (3) If resolution is LOOSE (compression), re-run in a DIAGNOSTIC mode to tighten. (4) PFA deprocesses/images the top candidate -> CONFIRMS the physical defect (diagnosis localizes, PFA proves). (5) VOLUME: aggregate across many dies -> a Pareto of sites -> systematic (design/process fix) vs random -> YIELD LEARNING. Garbage in (unmasked X / bad model) = garbage out -> clean 13.3 first.

8. Debugging Session — a real defect that diagnosed loose

1

A confirmed real defect diagnoses to a loose candidate list of dozens of suspects spread across the die, so physical failure analysis cannot be pointed and the debug stalls, because on-chip compression records which compacted signature bit miscompared rather than which exact scan cell failed, hiding the observability diagnosis needs -- the fix is to re-run the failing patterns in a diagnostic bypass or high-resolution mode to un-compact and restore per-cell observability, which tightens the candidate list to a few suspects that PFA then confirms as a bridge

DIAGNOSIS RESOLUTION TRACKS OBSERVABILITY — COMPRESSION LOWERS IT, SO UN-COMPACT WITH A DIAGNOSTIC MODE; DIAGNOSIS LOCALIZES, PFA PROVES
Symptom

A confirmed real defect (it survived the 13.3 triage) diagnoses to a loose candidate listdozens of suspects across the die. PFA can't be pointed (deprocessing dozens of sites is infeasible). The debug stalls. Why so loose?

Root Cause

On-chip compression records which compacted signature bit miscompared rather than which exact scan cell failed, hiding the per-cell observability diagnosis needs to intersect back-cones tightly — so the candidate list is loose. Diagnosis is an inverse problem solved by intersecting the back-cones of the failing cells (constrained by the passing cells): its resolution depends on observabilityhow precisely you know which cells failed. With a compactor (7.x), many scan cells feed a compressor that emits a compressed signature, so the datalog captures which signature bit miscompared, not which individual cell — collapsing the distinct observation points diagnosis relies on. The result is exactly what's seen: a defect that is genuinely real but poorly localized, because the tool can only intersect coarse (signature-level) observations, yielding a broad candidate set. This is the coverage-vs-diagnosability tradeoff made concrete: compression buys test-time/data-volume savings (7.x) but costs diagnostic resolution. It's not a diagnosis-tool failure and not a second defect — it's missing observability, and it can't be fixed by "trying harder" on the compacted data (garbage in, garbage out: the fine-grained information simply isn't in the compacted datalog).

Fix

Restore observability with a diagnostic mode: re-run the failing patterns with the compactor bypassed (a diagnostic bypass or high-resolution mode) so each scan cell's pass/fail is visible again, which tightens the candidate list to a few suspects that PFA then confirms as a bridge. Switch the failing patterns into the design's DIAGNOSTIC modebypass the compactor (or use a high-resolution capture) so the datalog records per-cell pass/fail instead of a compacted signature (this is exactly why diagnosable designs provide such a mode, 7.x). With full per-cell observability restored, re-run diagnosis: the tool can now intersect the failing cells' cones precisely and constrain with the passes, collapsing dozens of candidates to a few. Hand the top candidate + xy/layer hint to PFA, which deprocesses/images that spot and confirms the physical defect — here a bridge. Note the two distinct jobs: diagnosis localized the bridge to a candidate; PFA proved it. The principle to lock in: diagnosis is an inverse problem that localizes a real defect by intersecting the back-cones of the failing cells consistent with the passing cells, so its resolution is bounded by observability — how precisely you know which cells failed — and on-chip compression deliberately lowers that observability by recording a compacted signature instead of individual cells, which is a real coverage-versus-diagnosability tradeoff, not a tool failure; when diagnosis returns a loose candidate list on a compressed design, re-run the failing patterns in a diagnostic bypass or high-resolution mode to un-compact and restore per-cell observability, tightening the result, and always remember that diagnosis localizes to candidates with confidence while PFA proves the physical defect, and that aggregating diagnosis across many dies turns per-die localization into a yield-learning Pareto of systematic versus random sites. (Compression/compaction is 7.x; the clean pattern debug that must precede diagnosis is 13.3; the fork is 13.1.)

9. Common Mistakes

  • Diagnosing on a dirty datalog. Unmasked X / bad models (13.3) → garbage-in, garbage-out — clean the pattern debug first.
  • Expecting tight resolution under compression. The compactor hides the failing cell (7.x) → use a diagnostic/bypass mode.
  • Treating candidates as proof. Diagnosis localizes; PFA proves — candidates have confidence, not certainty.
  • Ignoring the passing cells. Passes constrain the candidate set (reject candidates that would fail a pass).
  • Missing the systematic signal. Same site across many dies = a process/design fix (volume diagnosis), not just a scrapped die.

10. Industry Best Practices

  • Feed diagnosis a clean datalog (X masked, models right, 13.3) — resolution is only as good as the input.
  • Use the failing and passing cells — intersection + consistency give the ranked candidates.
  • Switch to a diagnostic mode when compression makes the result loose (7.x) — restore observability.
  • Treat candidates as PFA targets, not verdicts — PFA confirms the physical defect.
  • Run volume diagnosis — aggregate a Pareto to separate systematic (fixable mechanism) from random.

11. Senior Engineer Thinking

  • Beginner: "Diagnosis gave dozens of candidates — the tool's bad, or there are many defects."
  • Senior: "A loose list on a compressed design means missing observability, not a bad tool — the compactor hid which cell failed (7.x). I re-run in a diagnostic/bypass mode to un-compact, and the candidates collapse to a few. Then PFA proves the top one — diagnosis localizes, PFA proves. And I check volume: if this site fails across many dies, it's systematic — a process/design fix, not just a scrap. Garbage in, garbage out — so I only diagnose a clean datalog."

The senior reads loose resolution as an observability problem, uses a diagnostic mode, and separates localization (diagnosis) from proof (PFA).

12. Silicon Impact

Diagnosis is the step that converts a confirmed defect into an actionable location — and, in aggregate, converts test failures into yield learning. It is fundamentally an inverse problem: from the observed failures (which patterns, which cells) plus the netlist and fault model, compute the fault candidates that best explain what was seen — reasoning backward from effect to likely cause. The engine is back-cone intersection: the defect must lie in the intersection of the failing cells' cones and be consistent with the passing cells (a candidate that would have failed a passing cell is rejected), so more failing observations tighten the set. The output — a ranked candidate list, a suspected fault type (stuck-at/bridge/open/transition), and an xy/layer hint — exists to point PFA, which is the essential boundary: diagnosis localizes; PFA proves. Because the method is observation-driven, its resolution tracks observability: many observers → tight, few → loose — and this collides productively with compression (7.x), which hides which exact cell failed behind a compacted signature, lowering resolution. That's a real coverage-vs-diagnosability tradeoff, resolved by a DIAGNOSTIC (bypass/hi-res) mode that un-compacts and restores per-cell observability — the reason diagnosable, compressed designs provide such a mode. Two boundaries keep diagnosis honest: garbage in, garbage out (a wrong fault model or unmasked X from a dirty 13.3 debug degrades the result — so clean the pattern debug first), and candidates are confidence, not certainty (PFA is the arbiter). The highest-leverage use is volume diagnosis: aggregating diagnosis across many failing dies yields a Pareto of failing sites/layers that distinguishes systematic failures (the same site across many dies → a design/process marginality to fix at the mechanism) from random particle defects — turning DFT from per-die pass/fail into a yield-learning engine that feeds process and design. For the failure-analysis engineer, diagnosis is a PFA target; for the yield/process engineer, it's a Pareto that directs improvement; for the DFT engineer, it's the payoff of clean chain (13.2) and pattern (13.3) debug; and for the program, it's how a debugged failure becomes fewer failures next lot. The next lesson (13.5) takes this whole localize-and-confirm discipline onto the tester at silicon bring-up, where the environment is live and the pressure is highest.

13. Engineering Checklist

  • Fed diagnosis a clean datalog (X masked, models right, 13.3) — no garbage-in.
  • Used failing + passing cells — cone intersection + consistency → ranked candidates.
  • Switched to a diagnostic/bypass mode when compression made the result loose (7.x).
  • Treated candidates as PFA targets (with confidence) — PFA confirms the physical defect.
  • Ran volume diagnosis — a Pareto to separate systematic (mechanism fix) from random.

14. Try Yourself

  1. Explain diagnosis as an inverse problem — from failing cells back to a candidate site via cone intersection.
  2. Show how the passing cells constrain (reject) candidates — and why more failing observers → tighter.
  3. State the boundary: diagnosis localizes, PFA proves — and what each produces.
  4. Explain why compression lowers diagnostic resolution and how a diagnostic/bypass mode restores it (7.x).
  5. Describe volume diagnosis → a Paretosystematic vs randomyield learning.

The diagnosis reasoning is tool-neutral; diagnosis is a DFT tool, PFA is a lab process, volume Pareto is yield engineering. No paid tool required to reason about localization.

15. Interview Perspective

  • Weak: "Diagnosis tells you where the defect is."
  • Good: "Diagnosis intersects the failing cells' cones to give candidate sites, and PFA confirms the physical defect."
  • Senior: "Diagnosis is an inverse problem: from the failing patterns/cells (a clean datalog — garbage in, garbage out) plus the netlist and fault model, it computes candidates by intersecting the failing cells' back-cones, consistent with the passing cells, and ranks them with a fault type and xy/layer hint. Its resolution tracks observabilitymore observers, tighter — so compression (7.x) lowers it by hiding which cell failed, and I un-compact with a diagnostic/bypass mode when it's loose. The boundary is firm: diagnosis localizes, PFA proves. And the big win is volume diagnosis — aggregate across many dies into a Pareto to separate systematic (a process/design fix) from random, so DFT drives yield learning, not just per-die scrap."

16. Interview / Review Questions

17. Key Takeaways

  • Diagnosis is an inverse problem: from failing patterns/cells + netlist + fault model back to the fault candidates that best explain the observed failures — by intersecting the failing cells' back-cones, consistent with the passing cells (more failing observers → tighter).
  • Output: a ranked candidate list (+ confidence), a suspected fault type (stuck-at/bridge/open/transition), and an xy/layer hint — but diagnosis localizes, it does not prove; PFA (deprocess/image) confirms.
  • Resolution ~ observability: compression (7.x) hides which cell failedloose candidates → use a DIAGNOSTIC (bypass/hi-res) mode to un-compact (a real coverage-vs-diagnosability tradeoff).
  • Volume diagnosis aggregates across many dies into a Pareto of sites/layers → systematic (same site → design/process fix) vs randomyield learning (DFT beyond per-die pass/fail).
  • Garbage in, garbage out: a wrong fault model or unmasked X degrades diagnosis → clean the pattern debug (13.3) first; diagnosis gives candidates + confidence, not certainty. Next: 13.5 — silicon bring-up & tester debug.

18. Quick Revision

Diagnosis & failure localisation. A mismatch that survived the fork (13.3) is REAL → DIAGNOSIS = an INVERSE problem: from failing patterns/cells + netlist + fault model → fault CANDIDATES by INTERSECTING the failing cells' back-cones, consistent with the PASSING cells (more failing observers = tighter). Output: ranked candidates + confidence + fault type (stuck-at/bridge/open/transition) + xy/layer. Boundary: diagnosis LOCALIZES, PFA PROVES (deprocess/image). Resolution ~ observabilitycompression (7.x) hides the failing cell → LOOSE → re-run in a DIAGNOSTIC (bypass/hi-res) mode to un-compact. VOLUME diagnosis → aggregate many dies → a Paretosystematic (same site → design/process fix) vs randomyield learning. Garbage in = garbage out → clean 13.3 first. Next: 13.5 — silicon bring-up & tester debug.