Chapter 3 Fault Modeling
Outlines
Introduction Fault Models Properties of Stuck-at Faults Stuck-at Fault Collapsing
Fault Model and Structural Tests
Fault model is the foundation of structural testing methods Structural tests
Use the information of interconnected components (e.g., gates) to derived test regardless of the functions Define faults
fault coverage (quality evaluation) ATPG to generate tests for faults DfT for enhancing fault detection.
Characteristics of Fault Models
Model the effects of physical defects on the logic function and timing Identifies target faults
Model faults (defects) most likely to occur Depends on the process, design platform, design style, design level, etc.
Create tests only for the modeled faults
Limits the scope of test generation
Levels of Fault Models
Physical Defects
Silicon Defects Photolithographic Defects Mask Contamination Process Variation Defective Oxides
Electrical Effects
Shorts (Bridging Faults) Opens Transistor Stuck-On/Open Resistive Shorts/Opens Change in Threshold Voltages
Logical Stuck-at 0/1 Slower Transition (Delay Faults) AND-bridging, OR-bridging
5
Logical Effects
Defect, Fault, and Error
Defect
Physical imperfection
The unintended difference between the implemented hardware and its intended design
Error
A wrong output signal produced by a defective system
Fault
A representation of a defect at the abstracted function level
One of the gate input terminal was mistakenly connected to ground Defect: short to ground Error: f = 0 when a = b = 1 Fault: b stuck at 0
6
a b
Common Fault Models
Stuck-at faults Interconnect short and opens Transistor stuck-on/open faults Memory faults Delay faults
Single Stuck-At Fault Model
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
One of the gate input terminal was mistakenly connected to ground Fault: b stuck at 0 signal b will always be 0
8
a b
The Popularity of Single StuckAt Faults
Complexity is greatly reduced Technology independent
Can be applied to TTL, ECL, CMOS, BiCMOS etc.
Design style independent
Gate array, standard cell, custom VLSI
Empirically many defects accidentally detected by test derived based on single stuck-at fault
Detection capability of un-modeled defects
Multiple Stuck-At Faults
Several stuck-at faults occur at the same time For a circuit with k lines
there are 2k single stuck-at faults there are 3k-1 multiple stuck-at faults A line could be stuck-at-0, stuck-at-1, or fault-free One out of 3k resulting circuits is fault-free
Most Multiple faults are covered by single-fault tests of combinational circuit:
4-bit ALU (Hughes & McCluskey, ITC-84) All double and most triple-faults covered. Large circuits (Jacob & Biswas, ITC-87) Almost 100% multiple faults covered for circuits with 3 or more outputs.
Bridging Faults For CMOS Logic
Two or more normally distinct points (lines) are shorted together
Could be AND-bridging or OR-bridging
depends on the inputs
VDD
(A=B=0) and (C=1, D=0) (f and g) is OR-bridging fault
pull to VDD
VDD
f
B A GND
bridging
g
C D
pull to zero GND
11
(A=B=0) and (C=1, D=1) (f and g) is AND-bridging fault
Interconnet Opens
Open defects are due to a defect which splits up a node into two or more distinct nodes.
Large open (break): No current can go between the two ends of the open when a voltage is applied across it. Narrow open: The opening is usually < 100 nm. In this case a small leakage current (by tunnel effect) go across the open.
VDD VDD
C A Open defects as a large resistor
f B D C
A
GND GND
12
CMOS Transistor Stuck-On
VDD
IDDQ current
Example: N transistor is always ON
0
stuck-on GND
Output level?
Transistor Stuck-On
May cause ambiguous logic level
Depends on the relative impedances of the pull-up and pull-down networks Both P and N transistors are conducting, causing increased quiescent current, called IDDQ fault
When Input Is Low in the example
13
CMOS Transistor Stuck-Open
Transistor stuck-open
May cause the output to be floating The faulty cell has sequential behavior
VDD
Stuck-open might require two vector tests
stuck-open
Initialization vector
(0/0) ->(1/0)
Faulty value
1 -> 0 GND
14
Pseudo-Stuck-At Fault Model
It is similar to single stuck-at fault model, except that every cell output is considered observable by IDDQ testing.
The fault site at a gate input requires sensitization and propagation to an output of the same gate (but not to an output of the device) in order to be given credit for IDDQ fault detection.
1/0
a=1 b=1 c=0
f=0
Pseudo-Stuck-At Fault Model
The exhaustive pseudo-stuck-at patterns for IDDQ testing cover all leakage faults in fully complementary combinational CMOS circuits.
ab 01 10 cd 01 11 Detected Pseudo Stuck-At Faults a-sa1 d-sa0 b-sa1 d-sa0 Detected leakage Faults (total 6C2 = 15 leakage faults) <b, 0> <c, 1> <d, 0> <a, 1> <a, b> <a, d> <b, c> <c, d> <0, 1> <a, 0> <c, 0> <d, 0> <b, 1> <a, b> <b, c> <b, d> <0, 1>
11
00
a-sa0 b-sa0 d-sa1
<a, 0> <c, 0> <c, 1> <d, 1> <a, c> <a, d> <b, c> <b, d> <0, 1>
2-input NAND2
S.T., Zachariah, A comparative study of pseudo stuck -at and leakage fault model, IEEE Intl Conf. on VLSI Design 1999
Memory Faults
Parametric Faults
Speed Power Consumption Noise Margin Data Retention Time
Functional Faults
Stuck Faults in Address Register, Data Register, and Address Decoder Cell Stuck Faults Adjacent Cell Coupling Faults 0 0 0 the presence of a faulty signal depends on 0 d b the signal values of the neighboring cells Pattern-Sensitive Faults 0 a 0 Pattern sensitivity between cells a=b=0 => d=0
a=b=1 => d=1
Delay Fault Models
Delay faults change the timing of circuit.
Testable when circuit operates at higher speed
Insufficient stuck-at tests
Chip with timing defects may pass the low speed stuck-fault testing, but fail at the system speed Transition Fault, Gate Delay Fault, Line Delay Fault, Path Delay Fault, Segment Delay Fault
Types
18
Fault Model Summary
Current practice
Single stuck-at faults Transition faults
Other models to enhance defect coverage
N-detect faults
Interconnect open faults and bridging faults Stuck-open (CMOS)
Path delay faults (high performance circuits)
19
Properties of Stuck-at Faults
Definition Of Fault Detection
A test (vector) t detects a fault f iff
t detects f z(t) zf(t) Note that there can be multiple outputs for z(t) A fault f is said to be detectable If there exists a test t that detects f; otherwise, f is undetectable. Example
X1
x
s-a-1
X2
Z1
Z1=X1X2 Z1f =X1
Z2
Z2=X2X3 Z2f =X2X3
X3
The test (x1,x2,x3) = (100) detects f because z1(100)=0 while z1f (100)=1
Redundancy of Faults
For combinational circuits, an undetectable fault is corresponding to a redundant wire.
Undetectable faults do not change the function of the circuit The wire can be connected to a constant value without changing circuits function.
22
Examples of Simplifying Circuits with Redundancy
If l s.a.1 is undetectable, the gate can be simplified as
s. a. 1
l x m n
l m n
m n
If l s.a.0 is undetectable, the entire gate can be removed & replaced by a constant 0 wire
s. a. 0
l m n
l
m n
23
Cause of Circuit Redundancy
Design to satisfy certain physical characteristics
Speed: carry look-ahead adders Fault tolerant circuits: triple module redundant (TMR)
Un-intentional redundancy by design partitioning.
Under specified requirements.
24
Example: Redundancy Removal
Redundant faults: e s-a-1, d s-a-0 and d s-a-1 The NAND gate with d is redundant
a
e e sa1
c
d f
b a c b
simplify the redundant signals and gates
Fault Masking
The existence of an undetectable fault may invalidates the test for another fault.
Test pattern masking by undetectable faults
e a e sa1 c
d f
Fault a is undetectable, i.e., f(t) = f(t) for all t.
26
Fault b can be detected by test vector 1101. (X10X) 1 a 0 0 1 d 1 1 c 0 1 0/1 1/0 1 g b b g sa0 1/0
0/1
In the presence of the undetectabe fault a, the test vector 1101 becomes invalidate for fault b.
1 1 a c 0 d 1 1
1
1
0 1/0 0/1
g b g sa0 1/0
27
But fault b can also be detected by test vector 010X with fault a.
0 1 a d X 1 0
c
b
1
1/0 0/1
0/1
1 g b g sa0 1/0
28
Stuck-at Fault Collapsing
Fault Equivalence Fault Dominance Checkpoint Theorem
Fault Equivalence
Distinguishing test
A
test t distinguishes faults a and b if
Za t Zb t 1
Equivalent Faults
faults, a & b are said to be equivalent in a circuit , iff 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)
Two
Equivalence Analysis of a Single Gate
AB
A C
C 0 0
A B C A B C sa1 sa1 sa1 sa0 sa0 sa0 1 1 1
00 01
10
11
0
1
1
0 0 0
Fault Equivalence Class
(A s-a-0, B s-a-0, C s-a-0)
Faults that can be ignored:
A s-a-0, B s-a-0, or C s-a-0
31
Fault Equivalence of Faults on a Gate
AND gate:
all s-a-0 faults are equivalent all s-a-1 faults are equivalent all the input s-a-0 faults and the output s-a-1 faults are equivalent all input s-a-1 faults and the output s-a-0 faults are equivalent
OR gate:
x s-a-0
x s-a-0
NAND gate:
same effect
NOR gate:
Inverter:
input s-a-1 and output s-a-0 are equivalent input s-a-0 and output s-a-1 are equivalent
Equivalence Fault Collapsing of a Single Gate
n+2 instead of 2(n+1) faults need to be considered for n-input gates
s-a-1
s-a-1 s-a-1 s-a-0
s-a-0 s-a-0
s-a-1 s-a-0
s-a-1 s-a-1
s-a-1 s-a-0
s-a-0 s-a-0
s-a-1 s-a-0
Equivalent Fault Group
In a combinational circuit, many faults may form an equivalent group
These equivalent faults can be found by sweeping the circuit from the primary outputs to the primary inputs Transitive Rule: When a == b and b == g, then a == g
s-a-0
x
s-a-1
x
s-a-1
x
Three faults shown are equivalent !
Finding Equivalent Fault Groups
Construct a Graph
A node is a fault When there is a link between two node, the two faults are equivalent
a s-a-0
a s-a-0
b s-a-0
x x
c s-a-1
x b s-a-0 c s-a-1
Example of Finding Equivalent Fault Groups
Construct a bigger fault equivalent graph by sweeping the netlist from POs to PIs
a b d e
c
a s-a-0 c s-a-1
b s-a-0
d s-a-1
e s-a-1
Limitation of Structural Analysis
c
a
b s-a-0 f s-a-1
There is no rule to guarantee equivalence between faults of branches. It is a special case here b s.a.0 == f s.a.1
In general, they cannot be identified by simple structure analysis.
37
Fault Dominance
Dominance Relation
A fault b is said to dominate another fault a in an irredundant circuit, iff 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 once a is detected
Test(a)
Test(b)
a is dominated by b
Fault Dominance
AND gate:
Output s-a-1 dominates any input s-a-1 Output s-a-0 dominates any input s-a-1
Easier-to-test x s-a-1
NAND gate:
x s-a-1
OR gate:
Output s-a-0 dominates any input s-a-0
Output s-a-1 dominates any input s-a-0
harder-to-test
NOR gate:
Dominance fault collapsing:
The reduction of the set of faults to be analyzed based on dominance relation
Dominance Analysis of a Single Gate
AB
A C
C 0 0
A B C A B C sa1 sa1 sa1 sa0 sa0 sa0 1 1 1
00 01
10
11
0
1
1
0 0 0
Fault Dominance Relations
(C s-a-1 > A s-a-1) and (C s-a-1 > B s-a-1)
Faults that can be ignored for test generation:
C s-a-1
40
Complete Fault Collapsing of a Single Gate
Equivalence + Dominance
For each n-input gate, we only need to consider n+1 faults during test generation
s-a-0
s-a-0 s-a-0
s-a-1
s-a-1
s-a-1
s-a-1
s-a-1
s-a-0
s-a-1
s-a-0
s-a-0
Dominance Analysis for a Group of Faults
Construct a dominance graph
A node is a fault When fault a dominates fault b, then an arrow is pointing from a to b
a s-a-1
a s-a-1
b s-a-1
x x
c s-a-0
x
b s-a-1
c s-a-0
42
Example of Finding Dominant Fault Groups
Construct a bigger fault equivalent graph by sweeping the netlist from POs to PIs
a
d e
a s-a-1
c s-a-0
b s-a-1
d s-a-0
e s-a-0
Fault Collapsing Flow
Start Sweeping the netlist from PO to PI To find the equivalent fault groups Equivalence analysis
Sweeping the netlist To construct the dominance graph
Dominance analysis
Discard the dominating faults
Select a representative fault from each remaining equivalence group
Generate collapsed fault list
Done
44
Checkpoint Theorem
Checkpoints Theorem
Checkpoints = primary inputs + fanout branches In a combinational circuit, any test which detects all single stuck faults on all checkpoints detects all single faults in the circuit.
The faults marked by X are checkpoint faults.
Why Inputs + Branches Are Enough ?
Sweeping the circuit from PO to PI to examine every gate and replace output faults by input faults until a PI or branch is met.
Based on an reversed levelized order: EDABC If a branch is met, start the above process from the stem again.
In this example, checkpoints are marked in solid blue.
A
D
PO branch faults are ignored, since they are represented by gate output faults, e.g., Ds output
E
46
An Example of Fault Collapsing + Checkpoint
10 checkpoint faults
a s-a-0 == d s-a-0, c s-a-0 == e s-a-0 b s-a-0 > d s-a-0, b s-a-1 > d s-a-1
Note that the branch dominance is not obvious.
6 out of 10 faults are enough.
a
d
f
g
b
e c