Skip to content

DFT · Chapter 0 · DFT Foundations

Where DFT Sits in the RTL-to-Silicon Flow

A common misconception is that DFT is one step near the end of the flow. It is not. DFT threads through the entire implementation flow, and every engineering role touches it. The path from RTL to a tested die runs through RTL, synthesis, scan insertion, ATPG, gate simulation, and silicon test. Testability starts in RTL, where your reset, clocking, and structure bound what is reachable. Scan insertion converts ordinary flops into scan flops and stitches them into chains. ATPG generates patterns and reports coverage, gate simulation verifies those patterns on the netlist, and the tester applies them to each die. Between stages flow concrete artifacts: the netlist, the scan-insertion report, the coverage report, and the tester log. This lesson maps the flow, the roles, and why an RTL engineer's choices cap the coverage the whole flow can reach.

Foundation13 min readDFTDesign FlowScan InsertionATPGArtifacts

Chapter 0 · Section 0.3 · DFT Foundations

Project thread — we push the single D flip-flop through the whole flow: RTL → synth → scan insertion → ATPG → gate sim → silicon test, and watch the artifacts it produces at each stage. 0.4 explains the reachability (controllability/observability) that every stage serves.

1. Why Should I Learn This?

Knowing where DFT lives tells you when your decisions matter — and they matter early.

  • DFT is not one step — it threads RTL → synth → scan → ATPG → gate sim → silicon test.
  • Every role touches it — RTL, DV, synthesis, physical design, DFT, test.
  • RTL choices cap coverage — testability is a shift-left concern.

If you know the flow, you know who hands what to whom — and where a small early fix saves a late-stage crisis.

2. Real Silicon Story — the testability problem found too late

A block was thrown "over the wall" to DFT after RTL freeze. At scan insertion, DRC flagged a batch of flops on an uncontrollable internally-generated clock — they couldn't be put on a scan chain. ATPG coverage came in far below signoff, and closing it required an RTL change (make the clock test-controllable) — an expensive late respin of RTL, synthesis, and floorplan.

Had the RTL engineer known the flow — that scan needs controllable clocks/resets (Chapter 4) — the one-line RTL fix would have cost minutes at design time instead of weeks at signoff.

Lesson: DFT threads through the whole flow, and RTL decisions bound downstream coverage. Fix testability early (shift-left); discovering it at scan/ATPG is the expensive path.

3. Concept — the flow, the roles, the artifacts

The six stages (and what DFT does in each):

StageWhat happensDFT roleOwner
RTLWrite the designMake it scan-friendly (testability starts here)RTL / design
SynthesisMap RTL → gatesProduce the netlist to scanSynthesis
Scan InsertionFlops → scan flops, stitch chainsScan + DRC (Ch3–4)DFT
ATPGGenerate patternsPatterns + coverage (Ch5–6)DFT
Gate SimulationSimulate patterns on netlistVerify the patterns behaveDFT / DV
Silicon TestApply on the testerPass/fail each die (0.2)Test / production

The artifacts handed between stages:

  • Netlist (synth → scan) — the gate-level design to make testable.
  • Scan-insertion report (scan → ATPG) — chains built, DRC results, flops converted.
  • ATPG pattern + coverage report (ATPG → gate sim / tester) — the patterns and the test coverage achieved.
  • Tester log (silicon test → yield/quality) — per-die pass/fail + bin (0.2).

The through-line (why RTL matters most):

  • Each stage consumes the previous stage's artifact and is bounded by it.
  • Untestable RTL produces a netlist scan can't fully reach → ATPG can't build patterns for it → coverage caps low → escapes.
  • So the RTL engineer's choices set a ceiling on what the entire downstream flow can achieve — DFT is shift-left.
Six-stage flow: RTL, synthesis, scan insertion, ATPG, gate simulation, silicon test; DFT threads through eachRTL → Silicon: the six stages (DFT in each)RTL → Silicon: the six stages (DFT in each)1RTLscan-friendly design — testability starts here (0.4/Ch4)2SynthesisRTL → gate-level netlist (the thing scan operates on)3Scan Insertionflops → scan flops, stitch chains, scan DRC (Ch3-4)4ATPGgenerate patterns, measure test coverage (Ch5-6)5Gate Simulationverify the patterns behave on the netlist6Silicon Testapply patterns on the tester; pass/fail each die (0.2/Ch1)
Figure 1 — the RTL-to-silicon flow, DFT threaded through every stage (representative). RTL (scan-friendly) -> SYNTHESIS (netlist) -> SCAN INSERTION (scan flops + chains + DRC, Ch3-4) -> ATPG (patterns + coverage, Ch5-6) -> GATE SIMULATION (verify patterns on the netlist) -> SILICON TEST (apply on the tester, pass/fail each die). DFT is not one box -- it lives in RTL testability, scan, ATPG, pattern verification, and test. Each stage consumes the previous stage's artifact and is bounded by it, so RTL choices CAP the coverage the whole flow can reach.

4. Mental Model — a relay race with a baton per leg

The flow is a relay race, and the artifact is the baton passed at each handoff.

  • Each runner (stage) receives a baton (the previous artifact), runs their leg (does their job), and passes a new baton (their artifact) to the next.
  • RTL hands off the design intent (as RTL); synthesis hands off the netlist; scan hands off the scanned netlist + report; ATPG hands off the patterns + coverage; test hands off the verdict.
  • If the first runner starts slow (untestable RTL), no later runner can make up the time — the coverage ceiling is set at the start.
  • That's why the first leg (RTL) is decisive: the whole race is bounded by how well the baton was handed off at the start.

Pass a good baton early (testable RTL), and every downstream leg can do its job; a bad first baton caps the whole race.

5. Working Example — the DFF through the flow, with its artifacts

Push the project's flip-flop through the flow and watch the artifacts appear.

RTL → Synthesis → a netlist (a representative flop cell):

Azvya Education Pvt. Ltd.VLSI Mentor
Snippet
// After synthesis — REPRESENTATIVE netlist (an ordinary flop, not yet scan)
module dff (clk, rst_n, d, q);
  input clk, rst_n, d; output q;
  DFFRX1 u_q (.D(d), .CK(clk), .RN(rst_n), .Q(q));   // ordinary reset flop -- scan insertion will convert it
endmodule

Scan insertion → a scan flop + a scan-insertion report:

Azvya Education Pvt. Ltd.VLSI Mentor
Snippet
// After scan insertion — REPRESENTATIVE: the flop is now a SCAN flop (mux-D), on a chain (Ch3)
module dff (clk, rst_n, d, q, scan_in, scan_en, scan_out);
  input clk, rst_n, d, scan_in, scan_en; output q, scan_out;
  SDFFRX1 u_q (.D(d), .SI(scan_in), .SE(scan_en), .CK(clk), .RN(rst_n), .Q(q));  // functional D vs scan-in SI
  assign scan_out = q;   // this flop's Q feeds the chain out (or the next flop's SI)
endmodule
Azvya Education Pvt. Ltd.VLSI Mentor
Snippet
# Scan-insertion report — REPRESENTATIVE (handed from scan → ATPG):
  Flops total ............ 1
  Scan flops ............. 1  (100% converted)
  Scan chains ............ 1  (length 1)
  Scan DRC violations .... 0
  Uncontrolled clocks .... 0   (clk is test-controllable)
# -> ATPG can now CONTROL d (via scan-in) and OBSERVE q (via scan-out) directly.

ATPG → patterns + a coverage report:

Azvya Education Pvt. Ltd.VLSI Mentor
Snippet
# ATPG coverage report — REPRESENTATIVE (handed from ATPG → gate sim / tester):
  Fault model ............ stuck-at
  Total faults ........... 6
  Detected .............. 6
  Test coverage ......... 100.00%   (this tiny flop, fully controllable/observable, is fully testable)
  Patterns .............. 3
# -> because scan gave full controllability + observability, ATPG reached 100% (contrast: buried flop, 0.1)

6. Industry Flow — the artifacts handed between stages

The stages don't just run in sequence — they hand artifacts to each other, and each is bounded by what it receives:

Artifact handoffs: netlist from synthesis, scan report from scan insertion, patterns+coverage from ATPG, tester log from silicon test; each stage bounded by its inputsynthscanATPGverifytestRTL (design)generates: design intent →bounds everythingdownstreamNetlistsynthesis → scan insertionconsumes itScan-insertion reportchains + DRC → ATPGconsumes itPatterns + coveragereportATPG → gate sim + testerconsume itGate sim (verifypatterns)confirms patterns behave onthe netlistTester logsilicon test →yield/quality (Ch1)12
Figure 2 — artifact handoffs through the flow (representative). RTL (design intent) -> Synthesis produces the NETLIST -> Scan Insertion produces the SCAN-INSERTION REPORT (chains, DRC) -> ATPG produces the PATTERNS + COVERAGE REPORT -> Gate Sim VERIFIES the patterns -> Silicon Test produces the TESTER LOG (pass/fail per die). Each consumer is bounded by its input: untestable RTL -> a netlist scan can't reach -> ATPG can't build patterns -> low coverage -> escapes. RTL choices set the ceiling.

7. Debugging Session — a late testability problem that RTL should have owned

1

A design is handed to DFT after RTL freeze, and scan insertion / ATPG reveal a testability problem (uncontrollable clock, low coverage) that requires an RTL change — a late, expensive respin that a small early fix would have avoided; the lesson is shift-left testability

RTL CHOICES CAP DOWNSTREAM COVERAGE — FIX TESTABILITY EARLY (SHIFT-LEFT)
Symptom

RTL is frozen and thrown to DFT. Scan insertion flags flops on an uncontrollable internally-generated clock (scan DRC violation), and ATPG coverage lands far below signoff — closing it needs an RTL change, a costly late respin.

Root Cause

RTL set a low testability ceiling, and the flow only revealed it late. DFT threads through the whole flow, and each stage is bounded by its input: the RTL produced logic whose clock isn't test-controllable, so scan insertion can't put those flops on a chain (scan DRC, Chapter 4), so ATPG can't control/observe them (0.4), so coverage caps low (Chapter 6). Nothing downstream is broken — scan, ATPG, and the tester are all working correctly against the ceiling the RTL set. The failure is organizational and temporal: testability was treated as a late DFT step instead of an RTL property, so a problem that was cheap to fix in RTL (make the clock test-controllable) became expensive to fix at signoff (respin RTL → synth → floorplan). The root cause is not shifting testability left.

Fix

Own testability in RTL and fix it early. Make internally-generated clocks/resets test-controllable (Chapter 4) in the RTL, so scan insertion can reach those flops and ATPG can build patterns for them. Better: run scan DRC and a quick ATPG coverage estimate on the RTL/early netlist during design (shift-left), read the scan-insertion and coverage reports as your testability scoreboard, and close gaps while they cost minutes. The lesson: DFT threads through the entire flow (RTL → synth → scan → ATPG → gate sim → silicon test), each stage bounded by the previous artifact, so the RTL engineer's choices cap the coverage the whole flow can reach — testability is a shift-left, whole-team property, and discovering it at scan/ATPG (instead of RTL) is the expensive path. Read the reports, fix the RTL early, and the flow's ceiling rises with it. (Scan is Chapter 3, scan DRC and clock/reset control Chapter 4, ATPG Chapter 5, coverage Chapter 6.)

8. Common Mistakes

  • Treating DFT as one late step. It threads through every stage — testability starts in RTL.
  • Throwing RTL over the wall to DFT. Late testability problems need RTL respins (expensive).
  • Ignoring the scan-insertion and coverage reports. They're your testability scoreboard — read them early.
  • Assuming ATPG can fix untestable RTL. ATPG is bounded by controllability/observability the RTL/scan provide.
  • Confusing gate sim (verify patterns) with functional verification. Gate sim here checks the patterns, not the design's intent.

9. Industry Best Practices

  • Shift testability left — scan-friendly RTL, early scan DRC, early coverage estimates.
  • Know the artifact handoffs — netlist, scan report, patterns+coverage, tester log.
  • Read the reports as a designer — DRC violations and low coverage trace to your RTL.
  • Plan DFT in the schedule — scan, ATPG, coverage closure are milestones, not afterthoughts.
  • Keep roles clear — RTL testability, DFT scan/ATPG, DV/gate-sim pattern verification, test on the ATE.

10. Senior Engineer Thinking

  • Beginner: "DFT is the scan/ATPG box near tape-out."
  • Senior: "DFT is everywhere in the flow, and my RTL sets the ceiling. Are my clocks/resets test-controllable? What will scan DRC and ATPG coverage say? I read those reports early — a testability problem is cheap in RTL and brutal at signoff."

The senior treats testability as an RTL property, reads the DFT reports early, and shifts left.

11. Silicon Impact

The flow's structure — each stage bounded by the previous artifact — makes the RTL stage decisive. Testable RTL flows cleanly through scan, ATPG, and test to high coverage and caught defects; untestable RTL sets a low coverage ceiling that no downstream effort can raise, forcing either escapes (defects to the field, Chapter 1) or expensive late respins. Because the scan-insertion and coverage reports trace low coverage directly back to RTL choices, the RTL engineer holds real leverage — and reading those reports early (shift-left) converts a signoff crisis into a design-time tweak. Understanding where DFT sits is therefore not org-chart trivia: it's the map that tells every role when their decisions bound the outcome — and for RTL, that's at the very start.

12. Engineering Checklist

  • Placed DFT across the whole flow (RTL → synth → scan → ATPG → gate sim → silicon test).
  • Identified the artifacts and their owners/consumers (netlist, scan report, patterns+coverage, tester log).
  • Recognized RTL choices cap downstream coverage — shift testability left.
  • Read the scan-insertion and coverage reports as a testability scoreboard.
  • Distinguished gate sim (verify patterns) from functional verification.

13. Try Yourself

  1. Take the DFF and trace it through the flow: write the RTL, the post-synth netlist (ordinary flop), the post-scan scan flop, and imagine the scan-insertion and ATPG coverage reports.
  2. Observe: with scan, ATPG reaches high coverage (the flop is fully controllable/observable).
  3. Change: give the flop an internally-generated, uncontrolled clock; note that scan DRC would flag it and coverage would drop — a testability problem visible only downstream.
  4. Fix: make the clock test-controllable in the RTL and see the ceiling rise. That's shift-left.

The flow and artifacts are tool-independent concepts; any synthesis/scan/ATPG toolchain follows this shape. No paid tool required to learn the flow.

14. Interview Perspective

  • Weak: "DFT is scan insertion and ATPG."
  • Good: "DFT runs through RTL, synthesis, scan insertion, ATPG, gate sim, and silicon test — each stage does its part."
  • Senior: "DFT threads through the whole flow, and each stage is bounded by the previous artifact: the netlist bounds scan, scan bounds ATPG, ATPG bounds coverage. So the RTL engineer's choices cap the coverage the entire flow can reach — testability is a shift-left property. I read the scan-insertion and coverage reports early because a testability problem is a one-line RTL fix at design time and a respin at signoff. The flow tells you when each role's decisions matter — for RTL, that's at the start."

15. Interview / Review Questions

16. Key Takeaways

  • DFT is not one step — it threads through the entire flow: RTL → synthesis → scan insertion → ATPG → gate simulation → silicon test, with DFT work in each stage.
  • Each stage consumes the previous stage's artifact and is bounded by it — netlist → scan → patterns+coverage → tester log — so a weak input caps the output.
  • The artifacts are concrete: the netlist (synth), the scan-insertion report (chains/DRC), the ATPG pattern + coverage report, and the tester log (pass/fail per die) — each with an owner who generates it and a consumer who reads it.
  • RTL choices cap the coverage the whole flow can reach — testability is a shift-left, whole-team property; a problem cheap to fix in RTL is expensive to fix at scan/ATPG signoff.
  • Read the scan-insertion and coverage reports as your testability scoreboard — DRC violations and low coverage trace back to your RTL; gate sim here verifies the patterns, not the design's function. Next: 0.4 — testability: controllability & observability.

17. Quick Revision

DFT threads through the WHOLE flow: RTL → synth → scan insertion → ATPG → gate sim → silicon test. Artifacts flow stage→stage (netlist → scan-insertion reportpatterns + coverage reporttester log), each stage bounded by its input. So RTL choices CAP coverage — testability is shift-left; a fix that's one line in RTL is a respin at signoff. Read the scan/coverage reports early. Gate sim here verifies patterns, not function. Next: 0.4 — controllability & observability.