VLSI Testing
Boolean Testing (Fault Model Based ) Part I: Combinational Circuits ATPG*
Professor Chien-Mo James Li Graduate Institute of Electronics Engineering National Taiwan University
* Some slides in this lecture are courtesy of Prof. Jiun-Lang Huang, NTUEE
VLSI Testing /Testability NTUEE/GIEE
Combinational ATPG
Outline
Introduction Random pattern generation Boolean difference approach Path sensitization method D-Algorithm PODEM FAN Other ATPG acceleration techniques Summary
VLSI Testing /Testability
NTUEE/GIEE
Exhaustive Test Too Long
Example: 64-bit ripple-carry adder
A total of 64 + 64 + 1 = 129 inputs. 65 outputs. Assume that both ATE and the adder operates at 1GHz.
Exhaustive Test Strategy # of patterns Test time Exercise all input combinations 2129 72 x 1022 yrs
SSF Test Exercise all stuck-at faults 1,728 1.728 s
VLSI Testing /Testability
NTUEE/GIEE
Boolean Testing (Fault Model Based)
General Fault Objective (i.e. no specific targeted faults)
Random pattern generation Critical Path Specific Fault Objective (aka deterministic ATPG) (Focus of this Chapter) Boolean Algebraic and Boolean difference Path Tracing Path Sensitization, D algorithm, PODEN, FAN
VLSI Testing /Testability
NTUEE/GIEE
Why Combinational ATPG?
Easier computation
Combinational ATPG much faster than sequential ATPG Most sequential circuits have scan chains Internal memory elements controllable (like PI) and observable (like PO)
Design For Testability (DFT) very popular now
VLSI Testing /Testability
NTUEE/GIEE
Scan Design
One of the most popular Design-for-Test (DfT) techniques. Stitch memory elements (aka. bistables) into shift registers.
Test vectors can be shifted in. Output response can be shifted out. Note: excluding RAM Convert the difficult sequential ATPG problem to a more tractable combinational ATPG problem.
VLSI Testing /Testability
NTUEE/GIEE
Cost of scan-design:
5 20% area overhead Performance degradation Extra pins for scan-chain control Longer test time Still, the combination of scan-design + combo. ATPG remains the most popular test solution.
VLSI Testing /Testability
NTUEE/GIEE
Example: MUX-D Scan Design
Scan_enable =1 shift mode Scan_enable = 0 normal operation mode CL = Combinational Logic
Scan_out Scan_in Primary inputs CL 1 0 D ck Q CL 1 0 D ck Q 1 0 D ck Primary outputs Q CL
Scan_enable clock
VLSI Testing /Testability
NTUEE/GIEE
Scan Operation (for Stuck-at Faults)
PI = primary inputs; PO = primary outputs SO = Scan Output; Strobe = Observe
Cycle
Scan -in
System clock Normal
Scan-out Shift-out
Scan chain Shift in operation wafeforms
operation (& shift in )
Apply PI
clock
Strobe PO Strobe SO
Scan_Enable
VLSI Testing /Testability NTUEE/GIEE
Combinational ATPG
Outline
Introduction Random pattern generation Boolean difference approach Path sensitization method D-Algorithm PODEM FAN Other ATPG acceleration techniques Summary
VLSI Testing /Testability
NTUEE/GIEE
10
Random Pattern Generation
Randomly generated input patterns are selected by a fault simulator Problem
Fault coverage often saturates after easy-to-detect faults are detected
Fault Coverage
Test Length
VLSI Testing /Testability NTUEE/GIEE
11
Random Pattern Resistant Faults
Definition Faults that are difficult to be tested by random patterns Example: stuck-at-0 fault at an n-input AND gate output Need test pattern (1,1,1,1) If random patterns, (Assume equal signal probability of 0.5 at each input), P(1,1,1) = 0.5n
VLSI Testing /Testability
NTUEE/GIEE
12
Combinational ATPG
Outline
Introduction Random pattern generation Boolean difference approach Path sensitization method D-Algorithm PODEM FAN Other ATPG acceleration techniques Summary
VLSI Testing /Testability
NTUEE/GIEE
13
Notation
Consider a network N that realizes the function f(x1,x2,,xn), and
denote by the input xi stuck-at-0 fault. f(x1,x2,,xn) = f(x1,x2,, xi-1,0, xi+1,,xn) = fi(0) Similarly, denote xi stuck-at-1 () by f(x1,x2,,xn) = f(x1,x2,, xi-1,1, xi+1,,xn) = fi(1)
VLSI Testing /Testability
NTUEE/GIEE
14
Shannons Expansion
f = xifi(1) + xifi(0)
fi(0) fi(1) xi f
VLSI Testing /Testability
NTUEE/GIEE
15
Boolean Difference Approach
A test vector t detects fault if f(t) f(t)
i.e. f(x) f(x) =1 The set of tests that detect (xi stuck-at-0) is: T = f(x) f(x) =1 T = [xifi(1) + xifi(0)] fi(0) = xi[fi(1) fi(0)] =1 Similarly, set of tests that detect (xi stuck-at-1) is: T = f(x) f (x) =1 T = [xifi(1) + xifi(0)] fi(1) = xi[fi(1) fi(0)] =1
Definition
fi(1) fi(0) is referred to as Boolean difference of f w.r.t. xi and is denoted by f/xi Therefore xi f/xi represents the set of all tests for xi stuck-at-0. xif/xi represents the set of all tests for xi stuck-at-1. 16 NTUEE/GIEE
VLSI Testing /Testability
Boolean Difference Example
1a xb 1c 0d sa0 1/0 1/0 0/1 1 1/0 1/0 0 f Good/faulty
f = (a + b)c + cd The set of all tests for c stuck-at-0 is T = c f/c.
df/dc = f(a,b,0,d) f(a,b,1,d) = d (a + b) = (a + b)d + abd T = acd + bcd + abcd = {1x10, x110, 0011}
VLSI Testing /Testability
NTUEE/GIEE
17
Boolean Difference Properties
f/xi is condition to sensitize xi to f
f/xi =1 means f dependent on xi f/xi =0 means f independent of xi
f/xi = f/xi f/xi = f/xi Exercise
(f+g)/xi = f[g/xi] g[f/xi] [f/xi g/xi ] (fg)/xi =? (f g)/xi =?
VLSI Testing /Testability
NTUEE/GIEE
18
Internal Faults
The Boolean difference can also be used to derive tests for stuck-at
faults that are internal to the circuit. Let g be an internal signal of a network N represented by f(x1,x2,,xn). g is also a function of input variables g = G(x1,x2,,xn) f can be expressed as a function of input variables and g: f(x1,x2,,xn) fg(g,x1,x2,,xn). The test sets for faults at g are g sa0: G [fg/g] g sa1: G [fg/g]
VLSI Testing /Testability
NTUEE/GIEE
19
Example
0a 0b 1c xd 0/1 g sa1 0/1 0 0/1 0 f
Consider signal g. f = (a + b)c + cd
g=a+b fg = gc + cd fg/g = fg=0 fg=1 = ( cd)(c + cd) =c
Tests for g sa0
(a + b)c = ac + bc Tests for g sa1 (a + b)c = abc
VLSI Testing /Testability
NTUEE/GIEE
20
Chain Rule
f(x) y g(x,y)
x and y are two vectors with no common variables. g(x,y) = gf(y) g/xi = g/f f/xi Can generalize the chain to arbitrary length.
VLSI Testing /Testability
NTUEE/GIEE
21
Chain Rule - Example
a b f g c d
f = ab g/f = 1 cd = c + d f/a = 0 b = b g/a = g/f f/a = (c + d)b
VLSI Testing /Testability
NTUEE/GIEE
22
Problem with Boolean Difference
Boolean expression not always available
Especially in synthesized circuits
VLSI Testing /Testability
NTUEE/GIEE
23
Combinational ATPG
Outline
Introduction Random pattern generation Boolean difference approach Path sensitization method D-Algorithm PODEM FAN Other ATPG acceleration techniques Summary
VLSI Testing /Testability
NTUEE/GIEE
24
Path Sensitization Methods
Composed of the following atomic operations
Fault activation (aka. Excitation, provoke) Error propagation Line justification Implication
VLSI Testing /Testability
NTUEE/GIEE
25
Single Path Sensitization Method
1. 2. Specify inputs to generate appropriate value at the fault site for fault excitation. Select one path from the fault site to an output and specify additional input values to propagate the fault effect along the path to the output. Specify input values so as to justify the signal values assigned in 1 and 2.
3.
VLSI Testing /Testability
NTUEE/GIEE
26
Rules for Error Propagation
Type of gate AND OR NAND NOR Restrictions on off inputs All must be 1 All must be 0 All must be 1 All must be 0
Off inputs = inputs that not on the sensitization path For a given fault, there might be more than one sensitization path If a chosen path lead to inconsistent input values, change a
sensitization path
VLSI Testing /Testability
NTUEE/GIEE
27
Example
d 1 a 1 b 1 c e 0 1 0 G2 G1 0/1 sa1 1 3 0 0 G4 G5 G6 f1 f2
Consider stuck-at-1 Fault excitation
a=b=c=1 Through G5 Through G6 G2 = 1 G4 = 1 a=d=0 contradiction c = 1, e = 0 test vector: abce
Two error propagation paths
VLSI Testing /Testability
NTUEE/GIEE
28
Problem of Single Path Sensitization
Single path sensitization is NOT complete.
Boolean difference approach finds test abce for d sa0. Can single path sensitization?
1 a 1 b
G2 G3 G4
1 0/1 0/1 1 G6 1/0 f
d sa0 G1 1/0 e 1
G5
VLSI Testing /Testability
NTUEE/GIEE
29
1 a 1 b
G2 G3 G4 G5
1 0/1 1 1 G6 1/0 f
d sa0 G1 1/0 e
Single path sensitization
Fault activation a=b=1 Fault propagation Through G3, G6 : G2 = G4 = G5 = 1 G2 = 1 c=1 G4 = 1 e=0 G5 = 0 contradiction G1 = 0 contradiction Through G4, G6 also fails. Fails to find a test for d sa0.
VLSI Testing /Testability
NTUEE/GIEE
30
Multiple Path Sensitization
1 0/1 0/1 1 G6 1/0 f
1 a 1 b
G2 G3 G4 G5
d sa0 G1 1/0 e 1
Both the two paths G3-G6 and G4-G6 are sensitized, i.e., the error is
propagated along both paths. G2 = G5 = 1 c=e=1
VLSI Testing /Testability
NTUEE/GIEE
31
Combinational ATPG
Outline
Introduction Random pattern generation Boolean difference approach Path sensitization method D-Algorithm PODEM FAN Other ATPG acceleration techniques Summary
VLSI Testing /Testability
NTUEE/GIEE
32
The D-Algorithm [Roth 66]
The D-algebra DTypes of cubes Components of the D-algorithm An D-algorithm example Flowchart of the D-algorithm Another example Problems with the D-Algorithm
VLSI Testing /Testability
NTUEE/GIEE
33
The D-Algebra
The D-Algebra
Represent the good and faulty behavior at the same time. Introduce the symbol D in addition to 0, 1, x D = 1/0 represents a signal which has value 1 in fault-free circuit and 0 in the faulty circuit. (i.e. Stuck-at zero) D 0/1 x means not yet specified or dont care in ATPG
D D D D
D D 0
D D D D D D
D D 1
D 0
NTUEE/GIEE
VLSI Testing /Testability
34
The D-Algorithm
The D-algebra Types of cubes Components of the D-algorithm An D-algorithm example Flowchart of the D-algorithm Another example Problems with the D-Algorithm
VLSI Testing /Testability
NTUEE/GIEE
35
Primitive D-Cubes
Specify the minimal input conditions which must be applied
to a logic element to produce an error signal at its output.
Primitive D-cubes of AND gate output stuck-at faults:
Stuck-at-0 fault: 11D Stuck-at-1 fault: 0xD and x0D Used when Fault Activation
VLSI Testing /Testability
NTUEE/GIEE
36
Singular Cover
The minimum input assignments for the output of a gate/function to
be 0 or 1. Used in Line Justification and Implication
a b a b 0 1
VLSI Testing /Testability
f 0 0 0 1 0 1
NTUEE/GIEE
Singular covers of AND
a 1 0 x b 1 x 0 f 1 0 0
37
Find the singular covers of the function f(a,b,c) = ac + b
Singular covers of f
b=1
a
1
b x 1 0 0
c 0 x x 1
f 1 1 0 0
0 x
a=1
1 x
c=1
VLSI Testing /Testability
NTUEE/GIEE
38
Cubes Example
a b 1 2 h j G1 G2
1
Primitive D-cube Singular covers of G2 Singular covers of G3 Singular covers of G4 Singular covers of G5 Singular covers of G6
VLSI Testing /Testability NTUEE/GIEE
3 c e 4
8 G4 10 9 5 sa0 G3 7 6 11 f
3
x 0 x 1
G5 12 G6 13
7 8 9 10 11 12 13
2
1 0 x x 1
4
x x 0 1
5
D 1 1 1 0 1 x 0
x 1 0
1 1 0 1 x 0 x 0 1 x 0 1 x 1 0 1 1 0 0 x 1 0 x 1
0 0 1 0 0 1
39
The Propagation D-Cube
The minimum input assignments required to propagate an error
signal (D or D) from the input(s) to the output of a gate/function.
Used in D-Drive
A D 1 D D 1 D
VLSI Testing /Testability
B 1 D D 1 D D
Z = AB D D D D D D
NTUEE/GIEE
A 0 D D 0 D D
B D 0 D D 0 D
Z = (A+B) D D D D D D
40
The D-Algorithm
The D-algebra Types of cubes Components of the D-algorithm DAn D-algorithm example Flowchart of the D-algorithm Another example Problems with the D-Algorithm
VLSI Testing /Testability
NTUEE/GIEE
41
D-Frontiers
During the test generation process, the gates whose output value is
currently x, but have one or more error signals (D or D) at their inputs.
D D
x
D
D D D
x x
VLSI Testing /Testability
NTUEE/GIEE
42
D-Drive
The D-drive selects an element in the
D-frontier and attempts to propagate the D and/or D from its input(s) to its output (using propagation D-cube).
Da 1 b
c D
Test cube Propagation D cube of gate C Test cube after D-drive
VLSI Testing /Testability
a D D D
b X 1 1
c X D D
NTUEE/GIEE
43
Test Cube
Specified Boolean values for testing a fault
Not only primary inputs, also internal nodes Notation TC(n) = test cube at ATPG step n
VLSI Testing /Testability
NTUEE/GIEE
44
Implication
Forward Implication
For some gates, partially specified input values uniquely determines the output values. Backward Implication For some gates, knowing the output values (and some input values) can uniquely determine the un-specified input values.
Use singular cover
1 0
0 0
1 0
VLSI Testing /Testability
NTUEE/GIEE
45
Justification
Check if specified values are consistent
1 Justification failed 0 1 1
Want 0 here
VLSI Testing /Testability
NTUEE/GIEE
46
Backtrack
When a conflict occurs, backtrack to the last decision point and take
another choice.
Decision point 1 4
2 Justification Fail
3 Justification Fail
VLSI Testing /Testability
NTUEE/GIEE
47
The D-Algorithm
The D-algebra Types of cubes Components of the D-algorithm A D-algorithm example DFlowchart of the D-algorithm Another example Problems with the D-Algorithm
VLSI Testing /Testability
NTUEE/GIEE
48
An Example 8 h
a b 31 c 1 e 4
1
1 2
1 1
G4 10 9 j D5 sa0 G1 D G3 7 06 G2 11 f
6 7 8 9 10 11 12 13
G5 12 G6 13
Comments Fault Activation
Initial test cube TC(0) = Primitive D-cube for G1 Propagation D-cube of G3, PDG3 TC(1)=TC(0)PDG3 Singular Cover SCG2 TC(2)=TC(1)SCG2
VLSI Testing /Testability
D-frontier: {G3}
1 1 1 1 1 1
0 0
D-Drive through G3
Backward implication
NTUEE/GIEE
49
a b 31 c e 41
1 2
1 1
x1 h 8 10 9 1 x G4 j D sa0 G1 5 D G3 7 06 G2 f 11
2 3 4 5 6 7 8 9
D G5 12 G6 13
10
11
12
13
Comments D-frontier: {G5,G6}
TC(2) Propagation D-cube of G5, PDG5 TC(3)=TC(2)PDG5
D D 1 D
Choose path through G5. D-drive through G5
D 1 X X 1
Singular Cover SCG4
1 1 1 D D
line justification Done!
TC(4)=TC(3)SCG4
VLSI Testing /Testability
1 1
1 1
1 1
1 1
D D
0 0
D D
1 1
NTUEE/GIEE
50
The D-Algorithm
The D-algebra Types of cubes Components of the D-algorithm A D-algorithm example Flowchart of the D-algorithm DAnother example Problems with the D-Algorithm
VLSI Testing /Testability
NTUEE/GIEE
51
Flowchart of the D-Algorithm
Initial test cube TC(0)
Select a primitive D-cube (C) C TC(i) TC(i+1) perform implication Select from the D-frontier a gate and for the gate a propagation D-cube (C). no
Is there a D or D at PO? yes yes
Backtrack
VLSI Testing /Testability
no
Line justification possible?
Test generated
NTUEE/GIEE
52
Line Justification
no Any un-justified line in TC? yes Select an un-justified line, and for the line a Singular Cover (SC)
Test generated
Intersect SC with TC yes
No more backtrack Line justification impossible
VLSI Testing /Testability
Consistent? no Backtrack
NTUEE/GIEE
53
The D-Algorithm
The D-algebra Types of cubes Components of the D-algorithm A D-algorithm example Flowchart of the D-algorithm Another example Problems with the D-Algorithm
VLSI Testing /Testability
NTUEE/GIEE
54
Another D-Algorithm Example
2 1 1 1 4 3 1
1 2 3 4 5 Primitive Dcube:TC(0) Implication: Select D-frontier G5: TC(1) Implication: SCG1 TC(2) Implication: SCG4 TC(3) 1 1 1 1 1
G1 5 0 sa1 6 G2 D G3 7
1 2 3
G4 G5
81 9D G8 12
G6 10 G7 11
4 5 6 7
10
11
12
1 1 1 1 X 1
1 1 1 1 1 1
NTUEE/GIEE
D D D D 0 0 0 0 D D 1 1 D D D D
VLSI Testing /Testability
55
2 1 1 1 4 0 3 1
G1 5 0 sa1 6 G2 D 0 G3 7 1
G4 G5
81 9D G8 D 12
G6 101 G7 111
10
11
12
TC(3) 6 Select D-frontier G8: (from {G6,G8}). Implication: TC(4) Justify line 10: SCG6 TC(5) Justify line 7: fail Backtrack to 6 TC(3)
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1 1 0 0 0
0 0 0 0 0 0
D D D D D D D 0 0 0 1
1 1 1 1 1 1 1
D D D D D D D 1 1 1 1 1 1 1 1 1 1 1 1 D D D D D
7 8
VLSI Testing /Testability
NTUEE/GIEE
56
2 1 1 1 4 1 3 1
G1 5 0 sa1 6 G2 D G3 7 0
1 2 3
G4 G5
81 9D G8 D 12
G6 10D G7 111
4 5 6 7
10
11
12
Backtrack to 6 9 10 11 12 13 Select D-frontier G6 TC(4) Implication: SCG3 TC(5) Implication: SCG7 TC(6) Implication: SCG8 TC(7) Test generated
1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0
D D D D D D 0 0 0 0 0
1 1 1 1 1 1
D D D D D D D D D D D D 1 1 1 1 D D
VLSI Testing /Testability
NTUEE/GIEE
57
The D-Algorithm
The D-algebra Types of cubes Components of the D-algorithm A D-algorithm example Flowchart of the D-algorithm Another example Problems with the D-Algorithm D-
VLSI Testing /Testability
NTUEE/GIEE
58
Problems with the D-Algorithm
Large search space
Assignment of values is allowed for internal signals Backtracking could occur at each gate Inefficient for large circuits and some special classes of circuits Example: ECAT (error-correction-and-translation) circuits.
VLSI Testing /Testability
NTUEE/GIEE
59
ECAT Circuits
A B C E F G H sa0 J K L M Q R N P
Primitive D-cube: A = B = 1, H = D To propagate through P to output R
One possible choice is N = Q = 1, but this is impossible because N and Q realize complementary functions. D-algorithm will exhaustively enumerate input values to confirm that N = Q = 1 is impossible.
VLSI Testing /Testability
NTUEE/GIEE
60
The Decision Tree
A B C E F G H sa0 J K L M
J=1,K=0 Q=1 N=1 J=0,K=1 L=0,M=0 L=1,M=1 C=0,E=0 F=0,G=1
Q
C=1,E=1 F=1,G=0
Justification impossible
VLSI Testing /Testability
NTUEE/GIEE
61
Combinational ATPG
Outline
Introduction Random pattern generation Boolean difference approach Path sensitization method D-Algorithm PODEM FAN Other ATPG acceleration techniques Summary
VLSI Testing /Testability
NTUEE/GIEE
62
The PODEM Algorithm [Goel 81]
Only allow assignments of input values.
Greatly reduce the search space.
The assigned input values are then propagated toward internal lines
by implication.
VLSI Testing /Testability
NTUEE/GIEE
63
PODEM
Essentially a process of finding a PI and a binary value for initial
assignment.
Continue assigning PI values.
Check if D or D is being propagated to primary outputs. After each PI assignment, perform forward implication. If at any stage, either the fault cannot be excited or the error cannot be propagated further, backtrack to the most recent PI assignment and change it.
VLSI Testing /Testability
NTUEE/GIEE
64
Flowchart of PODEM
Assign a binary value to an unassigned PI Forward implication of all PIs. No test Exists. Test generated yes Is there a D or D at PO? no no Is there an untried no combination of values on assigned PIs? yes Set untried combination to assigned PIs.
VLSI Testing /Testability NTUEE/GIEE
Test possible w/ additional PI assignments?
maybe
65
Components of PODEM
Determine an initial objective.
If the fault effect has not appeared at the fault site, the initial objective is directed toward fault activation. Given the initial objective, a PI and a binary value are chosen such that there is a good likelihood of meeting the objective. By using the backtrace procedure.
VLSI Testing /Testability
NTUEE/GIEE
66
PODEM Example
1 2 8 1 h G4 10 9 j D5 sa0 G1 D G3 7 06 G2 11 f 1 D G5 12 G6 13
a b 31 c 1 e 4
1 1
Initial objective: G1 output =1 Backtrace to PI: b = 1 Backtrace to PI: a = 1 Objective: propagate through G3, G3 output = D Backtrace to PI: C = 1 Backtrace to PI: e = 1 Objective: propagate through G5, G5 output = D Backtrace to PI: h= 1 Test Generated: abceh=11111
VLSI Testing /Testability NTUEE/GIEE
67
Questions to Be Answered
What path to backtrace? What PI value to assign? What path to propagate D (D) to PO?
VLSI Testing /Testability
NTUEE/GIEE
68
What Path to Backtrace?
Decision Gate:
One input can control gate output to objective value OR/NAND with output objective =1 AND/NOR with output objective =0 choose easiest input Imply Gate: One input cant control gate output to objective value OR/NAND with output objective =0 AND/NOR with output objective =1 Choose hardest input Why? find out if test exists or not ASAP
VLSI Testing /Testability
NTUEE/GIEE
69
Example
If Objective c=0; choose c1 If objective C=1; choose c2
U V + Y Z A c1 c2
&
B
&
+ F
C
&
Note: need testability measures to guide ATPG
VLSI Testing /Testability
NTUEE/GIEE
70
What PI Values to Assign?
If even parity path
Assign same value as objective Assign opposite value as objective
If odd parity path
VLSI Testing /Testability
NTUEE/GIEE
71
Flowchart of Back-trace
Backtrace(s,vs) a=s v = vs
Return (a,v)
yes
Is a a primary input? no
Set a to be the hardest-to-control input to v.
Set a to be the easiest-to-control input to v. No, decision gate Objective requires setting all inputs?
NTUEE/GIEE
no Is a a NAND, NOR, or NOT gate? yes v = v
Yes, imply gate
VLSI Testing /Testability
72
What Path to Propagate D to PO?
All gate output of the chosen path must have X values
Called X-PATH chose shortest path to PO do backtrack
If more than one X-path to choose,
If X-path disappear,
VLSI Testing /Testability
NTUEE/GIEE
73
Example of Backtrack
b1 a1 1 d0 c1
Initial objective: (G2,0) Backtrace to PI: b = 1 Initial objective: (G2,0) Backtrace to PI: c = 1 Implication:G2 = D Try error propagation through G5. a=1 Implication: G1 = 0,G4 = 1,G5 = D
VLSI Testing /Testability
G1 0 G2 sa1 D
G4 1 G5 D G6 1 D G7 0 1
Try error propagation through G8. Initial objective: (G6,1) Backtrace to PI: d = 0 Implication:G3 = 1,G7 = 0,G8 = 1 X-path disappear! Backtrack to most recent PI assignment: d=0 d=1 Implication:G3 = 0,G6 = D,G8 = D
NTUEE/GIEE
G8 1 D z
G3 1 0
Test generated!
74
Combinational ATPG
Outline
Introduction Random pattern generation Boolean difference approach Path sensitization method D-Algorithm PODEM FAN Other ATPG acceleration techniques Summary
VLSI Testing /Testability
NTUEE/GIEE
75
FAN Fanout-Oriented Test Generation
Techniques to accelerate the test generation process [Fujiwara 85] Adding these improvements to PODEM
Stop backtraces at Headlines Immediate Implications Unique sensitization Multiple backtrace
VLSI Testing /Testability
NTUEE/GIEE
76
Bound, Free, Head Lines
Bound line: line fed (directly or indirectly) by fanout stem Free Line: line that is not Bound Head Line: free line that is either
Fanout stem (e.g. line j), or Input to a gate with bound output (e.g. line h)
a b c d e Bound
VLSI Testing /Testability
&
h i + m
&
k Head
Free
NTUEE/GIEE
77
Stop Backtraces at Head Lines
headlines
Primary inputs
Primary outputs
Headlines are
Points where the circuit can be partitioned such that a cone of logic driven by PIs can be isolated from the rest of the circuit by cutting the headlines. The values of the PIs that feed the headline points are deferred until the ATPG algorithm knows the value assignments for the headline points. Reduce search space.
VLSI Testing /Testability NTUEE/GIEE
78
Immediate Implications (BA Fig 7.25)
A B C G1 G2 H K E
FAN Initial objective L = 0
G3
J G4
sa1
PODEM (different from textbook ) Initial objective L = 0 Backtrace to PI: A=1 (G4 is imply gate, choose hardest path Three bubbles, assign opposite value) Backtrace to PI: B=1 Forward Implication: H = 0, J = 1 Objective K=1; Backtrace to PI: C=0 Objective E=1; Assign E=1
VLSI Testing /Testability NTUEE/GIEE
Set J = K = E = 1
J=1
H=0 A=B=1 K=1 C=0
79
Unique Sensitization
Only one path to propagate D on signal C to output H. Example: want to propagate D from C to H
A 1 B 0
G1
G2 E
D G3 1 F
D 1
G4
FAN
Set all the off-path inputs to non-controlling values. G1 = 1, E = 1, F = 1, A = 1 B=0 PODEM Initial objective: set G1 to 1 Backtrace to PI: A = 0 assigning A = 0 will later block the propagation of D
VLSI Testing /Testability NTUEE/GIEE
80
Breadth-First Multiple Backtrace
All must be set to 1.
11 1
Both must be set to 0.
1 0
11 1
0
Set to 1 the input w/ easiest-to-control to 1 input.
PODEMs depth-firth search is sometimes inefficient. Breadth-firth multiple backtrace identifies possible signal conflicts
earlier.
VLSI Testing /Testability NTUEE/GIEE
81
Combinational ATPG
Outline
Introduction Random pattern generation Boolean difference approach Path sensitization method D-Algorithm PODEM FAN Other ATPG acceleration techniques Concluding Remarks
VLSI Testing /Testability
NTUEE/GIEE
82
Current ATPG Approach
First General Fault Objective
Generate random patterns until FC saturate Generate deterministic until FC reach 100% Or computation time exceed certain limit
Then use Specific Fault Objective
VLSI Testing /Testability
NTUEE/GIEE
83
Algorithm Completeness
The completeness of an ATPG program represents its ability to
exhaust the whole input space to report that a fault is un-testable. Important in applications like redundancy removal. An incomplete ATPG program may reports a fault as un-testable even though a test for that fault does exist.
VLSI Testing /Testability
NTUEE/GIEE
84
Reading
BA Ch. 7
Especially Sec. 7.5
VLSI Testing /Testability
NTUEE/GIEE
85