In short: Design-for-Test (DFT) is a set of hardware techniques — chiefly scan chains and built-in self-test — that are added to a chip during design so that manufacturing defects can be detected efficiently with automatically generated test patterns after fabrication.
Every chip that leaves a foundry has a non-trivial probability of carrying a physical defect: a bridged metal line, an open via, a transistor that is stuck conducting. At 7 nm and below, hundreds of billions of transistors mean that even a defect density of a fraction of a defect per square centimetre translates into yields well short of 100%. The question DFT answers is simple to state and hard to solve: how do you prove, in a few milliseconds on a tester, that a specific manufactured die is good? You cannot simply run the chip's application and watch — that exercises only a tiny fraction of its internal nodes. DFT is the discipline of building testability into the silicon itself.
Why functional testing alone fails
Consider a modest block with 10,000 flip-flops. Those flip-flops define an enormous internal state space, and most of that state is not directly reachable from the chip's primary inputs. To test a fault buried deep in combinational logic, you must first control the surrounding flip-flops to the right values and then observe the effect at an output. Doing that purely through the functional interface can take thousands of clock cycles per fault, and some faults are effectively untestable that way. Controllability and observability are the two pillars of testability, and DFT exists to maximise both at low cost.
Rule of thumb: a well-constructed scan design can push stuck-at fault coverage above 98–99%, whereas functional vectors alone often struggle to exceed 70–80% on the same logic.
Scan: turning flip-flops into a shift register
The foundational DFT technique is scan insertion. Each ordinary flip-flop is swapped for a scan flop — a flip-flop with a multiplexer on its data input selected by a scan_enable signal. In functional mode the flop behaves normally. In shift mode the flops are wired head-to-tail into one or more long shift registers called scan chains, with dedicated scan_in and scan_out pins.
Testing then becomes a four-step dance: (1) assert scan_enable and shift in a known pattern through the chain; (2) de-assert it and capture one functional clock, letting the combinational logic compute into the flops; (3) shift out the captured response while shifting in the next pattern; (4) compare the response against the expected value on the tester. This gives the tester near-direct read/write access to every flop, collapsing the controllability/observability problem. For the full mechanics, see our deep dive on scan insertion in DFT.
ATPG and fault models
Automatic Test Pattern Generation (ATPG) is the algorithm that computes those input patterns. It works against a fault model — a simplified abstraction of real defects. The classic is the stuck-at model: assume one node is permanently stuck-at-0 or stuck-at-1 and find a pattern that makes a good chip and a faulty chip produce different outputs. Modern flows add transition-delay (slow-to-rise/slow-to-fall) faults caught with at-speed launch-on-capture, and cell-aware or bridging models that target defects inside standard cells. Tools such as Synopsys TestMAX (formerly TetraMAX), Siemens Tessent, and Cadence Modus Test perform ATPG and report the resulting coverage.
An untestable-looking fault isn't always a tool failure — redundant logic and unreachable states create genuinely ATPG-untestable faults, which are excluded from the coverage denominator rather than counted as misses.
| Concept | What it measures / does | Typical target |
|---|---|---|
| Stuck-at coverage | % of stuck-at faults detected by the pattern set | > 99% |
| Transition coverage | % of delay faults caught at-speed | 90–97% |
| Test pattern count | Vectors applied → tester time & cost | minimise |
| Compression ratio | Chain data reduced by on-chip codec | 50–200× |
Compression and BIST: taming data volume
Raw scan data for a large SoC can run into gigabits, and tester memory and time are expensive. Scan compression inserts an on-chip decompressor that fans a few external channels out to hundreds of internal short chains, with a compactor (an XOR network / MISR) squeezing the responses back down — routinely a 50–200× reduction. For memories, logic cannot easily reach every bit cell, so designers add Memory BIST (built-in self-test): an on-chip engine runs March algorithms autonomously and simply reports pass/fail. Logic BIST with LFSR-based pseudo-random patterns is used where in-field or power-on self-test is required, for example in automotive parts meeting ISO 26262.
Watching a scan chain move
scan_out for comparison.Where DFT fits in the flow
DFT is not an afterthought. Scan is typically inserted during or right after synthesis; chains are stitched and balanced during place-and-route to keep routing and timing sane; a dedicated IEEE 1149.1 (JTAG) TAP and IEEE 1500 wrappers provide the boundary-scan and core-test access ports. Teams building production-grade silicon, such as the design-services engineers at Avecas, treat test coverage as a tape-out sign-off metric alongside timing and power. A design that times clean but only reaches 92% coverage will ship escapes to the field.
If you want the mechanics of inserting and balancing chains in a real netlist, continue with scan insertion and our guide to ATPG and fault coverage, or browse the full CourseTron course catalogue.
Ready to build real silicon-test skills? CourseTron's VLSI DFT track takes you from scan architecture through ATPG, compression and Memory BIST on industry tools — explore the DFT course and start running patterns of your own.
Frequently asked questions
Is DFT the same as verification?
No. Verification proves the design is logically correct before fabrication. DFT proves each manufactured die is free of physical defects after fabrication. Different goals, different tools, different stage of the lifecycle.
Does adding scan slow my chip down?
Slightly. The scan multiplexer adds a small delay to the flip-flop's data path and the chains consume routing, typically a few percent area and a minor timing cost. The near-complete defect coverage it unlocks almost always justifies the overhead.
What coverage number is "good enough"?
For mature nodes, over 99% stuck-at coverage is the common bar. Automotive and medical parts add transition and cell-aware testing and often require defect-per-million targets in the single digits, backed by in-system BIST.
What is the difference between scan and BIST?
Scan relies on an external tester to supply patterns and compare responses. BIST generates patterns and checks results on-chip, which is essential for embedded memories and for power-on/in-field self-test where no tester is present.