VLSI System Testing: Krish Chakrabarty Test Generation: Part 1
VLSI System Testing: Krish Chakrabarty Test Generation: Part 1
Introduction
• Classification of test generation methods
• Fault table analysis
• Boolean difference method
• Propagation, implication and justification
procedures
• D-algorithm
• 9-V algorithm (multiple path sensitization)
1
General Approaches
• Systematic (algorithmic)
– Fault table analysis
– Boolean difference method
– Fault-oriented methods (D-algorithm, PODEM)
– Fault-independent methods (critical path tracing)
• Exhaustive/pseudoexhaustive
• Random/pseudorandom
2
Fault-Oriented ATPG
Procedure Generate_Tests()
begin
repeat
begin
Select uncovered fault f
Generate test for f
Evaluate current fault coverage
end
until fault coverage > limit, or time runs out
end
Boolean Difference
The Boolean difference of F(x1, x2 , x3,…, xn) with respect to xi is given
by
∂F
= F(x1, x2 ,…,1, x3,…, xn) ⊕ F(x1, x2 ,…,0, x3,…, xn)
∂xi
3
Boolean Difference
a f j
b
g
c
h i z
d
k
e
To find a test for a/0 or a/1, determine the Boolean difference of output z with
respect to a:
∂z
=?
∂a
How to handle internal faults, e.g. j/0?
Key Terminology
• Backtrace: move a goal value backwards in a circuit to a
primary input
• Backtrack: return to a previous decision point in an algorithm
and make an alternative decision
• D-frontier: Set of gates closest to primary output with D or D
on some input
• Implication: Determine unique signal values that are forced
by signal values already assigned
• Justification: Determine values to unspecified inputs of gates
whose outputs are specified (backward)
• Propagation (D-drive): Determine path values needed to
propagate an error signal to a primary output (forward)
4
Testing Fanout-Free Circuits
• No (reconvergent) fanout
– Propagation path from any line is unique
– Each line justification problem is independent of all others
Propagate(l,err)
/* err is D or D */
begin 1 err
set l to err l err
if l is PO then return 1
k = the fanout gate of l
c = controlling value of k
i = inversion of k
for every input j of k other than l
Justify(j,c)
Propagate(k,err⊕ i)
end
5
Testing Fanout-Free Circuits
Justify(l,val) Line Justification
begin
set l to val
if l is PI then return
/* l is a gate (output) */ 1 0
c = controlling value of l 1
l
1
i = inversion of l
inval = val ⊕ i
if(inval = c) X 1
then for every input j of l 0
Justify(j,inval) X l
else
begin
Select one input (j) of l
Justify(j,inval)
end
ECE 538 Krish Chakrabarty 11
6
Algorithm Completeness
• Definition: Algorithm is complete if it ultimately
can search entire binary decision tree, as needed,
to generate a test
• Untestable fault – no test for it even after entire
tree searched
• Combinational circuits only – untestable faults
are redundant, showing the presence of
unnecessary hardware
D-Algorithm
b
a C
B
c G z
A B/1 E
d
e F
b
H
7
D-Algorithm
b
a C
B
c G z
A B/1 E
d
e F
b
H
D-Algorithm
Fault e/0
h
f
c i Single path sensitization
a e does not always work!
b z
j
d
g k
8
Comments on the D-Algorithm
• Based on propagation (primary procedure),
justification and implication
• In complete form, guarantees test generation but
may require multiple path sensitization
(computationally expensive)
• Practical restrictions:
– Single path sensitization only
– Limits placed on backtracking time (aborted faults)
9-V Algorithm
• Nine logic values, specified as good/bad pairs:
1/1, 0/0, 1/0, 0/1, u/u, 1/u, 0/u, u/0, u/1
• Example of logic operations: D.X = 1/0.u/u = u/0,
i.e. provides more information than the X outcome
for 5-valued algebra
• Reduces backtracking
– When there are k possible paths for error propagation,
D-algorithm may try all 2k-1 combinations of paths
– 9-V enumerates only k ways of propagation
9
Path Sensitization
1 Fault Sensitization
2 Fault Propagation
3 Line Justification
Path Sensitization
Try path f – h – k – L blocked at j, since there
is no way to justify the 1 on i
1 D
D D
1 D
D 0
1
10
Path Sensitization
Try simultaneous paths f – h – k – L and
g – i – j – k – L blocked at k because D-frontier (chain of D
or D) disappears
1 D
D 1
1
D D
D
1
Path Sensitization
Final try: path g – i – j – k – L – test found!
0
0 D
1 D
D D D
1
1
11
Random Test Generation
• Flow chart for
method
• Use to get tests
for 60-80% of
faults, then
switch to D-
algorithm or
other ATPG for
rest
12