DFT For Advanced User
DFT For Advanced User
Objectives
Why to Test
Introduction to DFT
Why DFT
Scan
What is scan
Scan Architecture
Scan Design Rules (General Consideration)
Fault Modeling
Types of Fault Model
Is functioning correctly, or
Is defective
Device can be defective because it does not function
As designed, or
As specified
Guarantee IC quality
100
Cost
Per
Faults
10
(Dollar)
1
Fault
A physical defect within a circuit or a system
May or may not cause a system failure
Error
Manifestation of a fault that results in incorrect circuit (system)
outputs or states
Caused by faults
Failure
Deviation of a circuit or system from its specified behavior
Caused by an error
Test Coverage : Test coverage is a measure of test quality, which consists of the
percentage of all testable faults that the test pattern set tests.
Fault Coverage : The fault coverage is the percentage of faults detected among
the total faults tested. The higher the fault coverage,the better the test pattern
separates a faulty circuit from a fault-free circuit.
Quality of shipped part is a function of yield Y and the test (fault) coverage
Defect Level
Defect Level
is the fraction of bad parts among the parts that pass all tests
and are shipped
Where
Y = Yield
T = Fault coverage
Design Levels from Testability Perspective
Why Testing Is Difficult ?
Structural testing of 4 bit full adder circuit would take less than 16 patterns to
test using ATPG
Functional testing would require 24 =16 patterns to test circuits
Gives an additional design check
Quantifiable test metrics
Faster generation of working test patterns (automated)
Faster ramp-to-volume production
Scan
What is Scan ?
Electrical defects
Shorts (Bridging Faults)
Opens
Transistor Stuck-On/Open
Resistive Shorts/Opens
Change in Threshold Voltages
Logical defects
Logical Stuck-at 0/1
Slower Transition (Delay Faults)
AND-bridging, OR-bridging
Fault Model Types Commonly Used To Guide Test Generation
Assumptions:
Only One line is faulty
Faulty line permanently set to 0 or 1
Fault can be at an input or output of a gate
Why Single Stuck-at Fault Model ?
Intuitively, it seems that detecting all SSFs is sufficient to detect the MSFs.
Concept:
Subthreshold Conduction
Conceptionally simple:
Apply the test pattern and wait for the transients to settle
Compare the static current against a threshold
Fault Detection
requires a test that creates a conducting path between VDD and GND
VDD pin
Design Rules to make design suitable for IDDQ Testing Click For Details
The circuit should be properly initialized. This can be done by a set/reset signal or
through scan operation
All static current dissipating logic should be switched off, this includes memory sense-
amps, dynamic logic, asynchronous logic, pull-up/pull-down resistors, special I/O buffers
and analog circuitry
The circuit should be stable at the strobe point; there should be no pending events
All inputs and bi-directional pins should be either at 0 or at 1
If an input, output or bi-directional pin is pulled-up, it should be at logic 1 connected to
Vdd through an on pMOS; if pulled down then it should be at logic 0 connected to Gnd
through an on nMOS
Special circuit structures should be avoided. If unavoidable, a mechanism should be
provided to switch-off these structures during Iddq testing. The examples of such
structures are gate and drain/source of a transistor be driven by the same transistor
group; feedback and control loops within one transistor group Back
IDDQ Test Measurement Strategies
Before IDDQ tests can be implemented on ATE, a threshold pass/fail reference value must be set
Disadvantages
Three Types
Path delay fault (can be distributed timing failure)
Delay of at least one sensitizable path exceeds specified clock cycle time
Associated with a Path (e.g. A-B-C-Z)
More complicated than gate-delay fault
Number of paths grows exponentially
Gate delay fault (local timing failure)
Delay of at least one path through the faulty gate exceed specified cycle time
Transition Delay fault (local timing failure)
Delay of all paths through faulty gate exceed specified cycle time
Two Types
Slow-to-rise (STR) and Slow-to-Fall (STF)
Example: six faults in AND
A
A slow-to-rise, A slow-to-fall C
B
B slow-to-rise, B slow-to-fall
C slow-to-rise, C slow-to-fall
Two pattern test required
First pattern P1 initialize a net
Second pattern P2 detects stuck-at fault at net
TF very popular delay fault model
Transition fault ATPG similar to stuck-at ATPG
Transition Delay Fault Model
Two Types
Two patterns
Initialization pattern (P1): place initial value at fault site
Propagation pattern (P2): place the final value and propagate to the
observable output
As opposed to SSF
Only one pattern required
Transition Delay Test
Two Methods of Transition Delay Test
Scan Enable signal has to distinguish the features of both the method
Fault Equivalence
Fault Dominance
Fault Collapsing
Fault Grading (Vector Grading)
Fault Masking
Fault Equivalence
Equivalent Faults
Two faults, A & B are said to be equivalent in a circuit , if the function under A is
equal to the function under B for any input combination (sequence) of the circuit
No test can distinguish between A and B
In other words, test-set(A) = test-set(B)
Fault Equivalence (Cont’d..)
AND gate
all s-a-0 faults are equivalent
OR gate
all s-a-1 faults are equivalent
NAND gate
all the input s-a-0 faults and the output s-a-1 faults
are equivalent
NOR gate
all input s-a-1 faults and the output s-a-0 faults are
equivalent
Inverter
input s-a-1 and output s-a-0 are equivalent
input s-a-0 and output s-a-1are equiv
Fault Dominance
Dominance Relation
A fault B is said to dominate another fault
Α in an irredundant circuit, if every test (sequence) for A is also a test (sequence)
for B I.e., test-set(B) > test-set(A)
No need to consider fault B for fault detection
AND gate
Output s-a-1 dominates any input s-a-1
NAND gate
Output s-a-0 dominates any input s-a-1
OR gate
Output s-a-0 dominates any input s-a-0
NOR gate
Output s-a-1 dominates any input s-a-0
Fault Collapsing
Reducing the set of faults to test for by using equivalence classes is called fault
collapsing
If a set of faults is functionally equivalent, we only need to use one test to detect any
single one of them
Note that a test that detects functionally equivalent faults cannot diagnose which fault
is present
Simple example: 2-input NAND gate
Input stuck-at-0 is equivalent to output stuck-at-1 collapse !!
Fault Grading
The act of simulating a target vector against a good circuit description and a circuit
description that contains a fault
The goal being to see if the expected response is different between the two circuits at
an observe point
If a difference is not detected, then the fault is masked for that vector (not detected)
Fault Masking
The fault that is not able to be detected due to a circuit configuration problem such as
redundancy
Test generation can be the longest phase of the design cycle if done manually
ASICs made with a synthesis tool are especially hard for manual test
generation, because human insight is missing in a machine generated netlist
ATPG consists of two main steps
Generating patterns
Performing fault simulation to determine which faults the patterns detect
Concepts for Automatic Test Pattern Generation
Fault activation
Setting the faulty signal to either 0 or 1 is a Line Justification problem
Fault propagation
select a path to a PO decisions
Once the path is selected set of line justification (LJ) problems are to be
solved
Line Justification
Involves decisions or implications
Incorrect decisions: need backtracking
Fault Classes
Testable (TE)
Untestable (UT)
Testable Faults
Subcategorized as:
Detected (DT)
DET_Simulation (DS)
DET_Implication (DI) Click For Details
POSDET (PD)
POSDET_Untestable (PU)
POSDET_Testable (PT) Click For Details
ATPG_Untestable (AU) Click For Details
UNDetected (UD)
UNControlled (UC)
UNObserved (UO) Click For Details
Detected (DT)
The detected fault class includes all faults that the ATPG process identifies as
detected
The detected fault class contains two subclasses
DET_Simulation (DS) - faults detected when the tool performs fault simulation
DET_Implication (DI) - faults detected when the tool performs learning analysis
Back
Posdet (PD)
The posdet, or possible-detected, fault class includes all faults that fault simulation
identifies as possible-detected but not hard detected
A possible-detected fault results from a 0-X or 1-X difference at an observation
point
The posdet class contains two subclasses
The ATPG_untestable fault class includes all faults for which the test generator is
unable to find a pattern to create a test, and yet cannot prove the fault redundant
Back
Undetected (UD)
The undetected fault class includes undetected faults that cannot be proven
untestable or ATPG_untestable
The undetected class contains two subclasses:
All testable faults prior to ATPG are put in the UC category. Faults that remain UC
or UO after ATPG are aborted, which means that a higher abort limit may reduce
the number of UC or UO faults.
Back
Untestable Faults
Faults for which no pattern can exist to either detect or possible detect them
Cannot cause functional failures, so the tools exclude them when calculating test
coverage
Subcategorized as
The unused fault class includes all faults on circuitry unconnected to any circuit
observation point.
Back
Example of “Blocked” Fault in Circuitry
Redundant (RE)
The redundant fault class includes faults the test generator considers undetectable.
After the test pattern generator exhausts all patterns, it performs a special analysis to
verify that the fault is undetectable under any conditions.
In this circuit, signal G always has the value of 1, no matter what the values of A, B,
and C. If D is stuck at 1, this fault is undetectable because the value of G can never
change,regardless of the value at D
Back
Automatic Test Pattern Generation (ATPG) Methods
Scan Clock
Scan input
Scan Enable
Scan Output
NOTES:
S1, S2, S3=SCAN DATA FOR THE FIRST TEST VECTOR.
S4, S5, S6=SCAN DATA FOR THE SECOND TEST VECTOR.
C1, C2, C3=CAPTURE DATA FROM THE FIRST TEST VECTOR.
BIST (Built-In Self Test)
There are generally two types of BIST methods:
A memory is considered embedded if some or all of its terminal are not directly
connected to the pins of the host chip.
Difficulties in testing embedded memories:
Resulting interconnect may lead to large and probably uneven propagation delay
making application of test pattern difficult at-speed
The number of memory inputs and outputs might be more than number is chip-level
signal pins
What is MBIST ?
Memory Built-in self-test (MBIST) circuitry, along with scan circuitry, greatly
enhances a design’s testability. BIST leaves the job of testing up to the device itself,
with minimum direct interaction from external tester
The principle is to generate test vectors, apply them to the circuit under test ( CUT )
and then check/compare the response
Why MBIST ?
A comparator(Comp) compares the values read out of the memory with expected
values generated by the signal generation block
Back
MBIST CONTROLLER’S INPUTS
System addresses (sys_addr) — The system address inputs to the memory array
System data inputs (sys_di) —The system data inputs to the memory array
System write enables (sys_wen) —The system write enable which enables R/W operation
Reset (rst_l) — An active-low signal that resets the finite state machine.
Hold (hold_l) — An optional active-low signal that forces the MBIST controller to stop processing and
maintain its current state.
Test (test_h) — An active-high signal that enables the MBIST controller. When test_h is high, self-test
is in progress. When test_h is low, the hold_l signal is activated to discontinue the clocking of the BIST
controller and conserve power
Diagnostic Mode (debugz) — (Debug only) The diagnostic mode enable signal. When debugz is low,
the BIST controller performs the default memory tests. When debugz is high, the diagnostic mode is
enabled. Works with hold_l and scan_out.
MBIST CONTROLLER’S OUTPUT
Write enable (wen) —The output that drives the write enable of the one or more
memories under test
Restart (restart_h) —An active high signal that is asserted when the BIST controller is in a
restart mode, and is deasserted when the controller successfully restarts
the BIST
Test Done (tst_done) —When high, indicates completion of the self-test operation.
Fail (fail_h) —The pass/fail flag for the BIST controller.
Data Outputs (di_n) —The memory data inputs.
Address Outputs (ao_n) —The memory address inputs.
Scan Output (scan_out) —(Debug only) The scan output port for diagnosing serially
scanned out failing data.
Compress (compress_h) —(Compressor only) An active-high signal that controls
compressor operation. When high, it enables data compression.
BIST Controller with Comparator
BIST Controller with compressor
Comparator Vs Compressor
Comparator :
Used for testing RAMs
Stops on the first fail
Adds diagnosis capabilities to the BIST controller
However it adds additional area overhead since comparator width is same as
memory data width
Compressor :
Used for testing ROMs – since we need to compress only once and a golden
signature is used
A ROM test requires it since here the repair feature is not needed
Basic Fault Types (Memory BIST)
Stuck-at
Transition
Coupling
Neighborhood Pattern Sensitive
Address Decoder Faults (ADF)
Retention Faults (RF)
Stuck-at faults
A memory fails if one of its control signals or memory cells remains stuck at a particular
values(0 or 1)
A memory fails if one of its control signals or memory cells can not make a transition
from 0 to 1 or vice versa.
Memories can also fail when a write operation in one cell influences the value in
another cell.
> Inversion
> Idempotent
> Bridging
> State
Inversion Coupling faults
Commonly referred to as CFins, occurs when one cell’s transition causes inversion in
another cell’s value
Commonly referred to as CFids, occurs when one cell’s transition forces a particular
value in another cell
Abbreviated as SCFs,when a certain state in one cell causes a specific state in another
cell
Bridge Coupling Faults
Abbreviated as BFs, when a short or bridge exists between two or more cells or
signals:
> ABFs exhibits AND gate behavior, bridge has 1 value only when
all connected cells or signals have a 1 value
> OBFs exhibits OR gate behavior, bridge has 1 value when any of
the connected cells or signal have 1 value
Neighborhood Pattern Sensitive Faults
Memory cell can fail when write operation on a group of surrounding cells that affects
the values of one or more neighboring cells.
Address Decoder Faults
No cell will be accessed with certain address, or multiple cells are accessed
simultaneously, or a certain cell can be accessed with multiple addresses
Retention Faults
.
Memory BIST algorithms
Need of algorithms
Certain types of pattern sequences need to be applied to exercise and detect the
different failure modes
Needs to detect as many as faults classes in least number of operations
(Conserving test time)
Different types of Algorithms (MBIST)
Increasing
address
space
Decreasing
address
space
March C+ (March 13n) algorithm
Note:
March C+ detects same faults as
March C, in addition to that stuck-
Open faults, and some timing faults
March algorithm normally reads and writes words of either all 1’s or 0’s.By varying
the data values or data background fault detection can be increased.
Back
Checkerboard Algorithm
The checkerboard algorithm detects stuck-at faults for memory cells and adjacent
cell shorts, providing previous tests prove the address decoding circuitry is fault free
Diagonal Algorithm
The diagonal algorithm detects stuck-at faults in some memory cells, as well as
faults on address lines.
MBIST Controller Modes
Functional Mode
This is the normal functional mode in which all the memories are connected to
Functional I/Os, and MBIST Controllers are idle.
Debug Mode
In this mode Controllers check memories for failure and scans out the failed data to the
tester. Fail data scan out takes place with slow tester clock
Retention Mode
A test which tests the memory’s capability to retain the data contents.
MBIST Diagnostics using DATA logger
DEBUGH
Failure Hold_ctlr
Monitor Restart
Data Logger
BIST_CLK
DIAG_CLK
DATA Logger (Contd..)
By default , the go/no go test will indicate failures to ensure that the bad part is
rejected . It is necessary to identify the cause of these failures . Data needed to
evaluate the cause of this failure is provided by Data Logger
Data Logger requires the controller’s hold capability as well as additional functionality
to down load the failing data on every occurrence of a miscompares
Port IO Function
DEBUGH
I MBIST diagnostic mode active when LOW, normal BIST mode when HIGH.
FAIL_L O Indicates BIST test has failure when LOW, passing when HIGH.
Form of testing for logic circuits where the stimulus generator and/or the response
verifier is placed within the circuit. The most common form of logic BIST is to use
linear feedback shift registers (LFSR) to conduct pseudo-random pattern
generation (PRPG) and to conduct output pattern compression (signature analysis)
using MISR (Multiple Input Shift Register)
Logic BIST architecture is called STUMPS (Self-Test Using MISR Parallel Shift
Register ) architecture where scan chains configured in the designs are called
STUMPS channels
Phase Shifter (XOR Gates)
Let y0, y1, y2 represent the present state of the registers and Y1,Y2,Y3 represent the
next state, then Y1 = y0, Y2 = y1 and Y3 = y2.
Two configurations:
Standard
Modular
LFSR Configuration Examples
This LFSR is equivalent to the version given in (a) previously.
Modular version
Standard
Modular
Response Compaction
Output Sequences
Boundary Scan ( IEEE 1149.1 or JTAG )
Motivation
Testing Printed Circuit Boards (PCBs) with Bed-of- nails tester is no longer
possible due to :
Multi-layer PCBs
Reduced spacing between wires
Increasing the complexities of logic
Due to physical space constraints and loss of physical access to fine pitch
components fixturing cost increased dramatically while fixture reliability decreased
at the same time
Purpose of the Standard
Mandatory Instruction
Bypass Instruction
Mandatory Instruction
Extest Instruction
Mandatory Instruction
Intest Instruction
Optional Instruction
Usercode Instruction
Optional Instruction
RunBist Instruction
One-bit shift register, selected by the Bypass instruction and provides basic serial-
shift function
Captures a hard-wired 0
Note: in the Test-Logic/Reset state, the Bypass register is the default register if no
identification register presents
General Strategy
Boundary Scan Description Language (BSDL)
Purpose: Facilitate communication of information describing test logic (interface with
CAD tools)