Major Combinational Atpg
Major Combinational Atpg
Major Combinational Atpg
Summary
Forward Implication
Results in logic gate inputs that are significantly labeled so that output is uniquely determined AND gate forward implication table:
Backward Implication
Unique determination of all gate inputs when the gate output and some of the inputs are given
Implication Stack
Push-down stack. Records: Each signal set in circuit by ATPG Whether alternate signal value already tried Portion of binary search tree already searched
E
1
1 0
0 0
Feb.. 16, 2001
B
1
0
1
5
Branch-and-Bound Search
Efficiently searches binary search tree Branching At each tree level, selects which input variable to set to what value Bounding Avoids exploring large tree portions by artificially restricting search decision choices Complete exploration is impractical Uses heuristics
D-Cube D-Calculus Implications forward and backward Implication stack Backtrack Test Search Space
Feb.. 16, 2001 VLSI Test: Bushnell-Agrawal/Lecture 11 8
Minimal set of logic signal assignments to show essential prime implicants of Karnaugh map
Gate AND 1 2 3
Feb.. 16, 2001
Inputs Output
1 X 0
X 1 0
F
0 0 1
D-Cube
Collapsed truth table entry to characterize logic Use Roths 5-valued algebra Can change all Ds to Ds and Ds to Ds (do both) AND gate:
A
Rows 1 & 3 Reverse inputs And two cubes Interchange D and D D 1 D D 1 D
B
1 D D D D 1
D D D D D D
10
0 1 X D D
0 0 f 0 y y
1 f 1 1 y y
X 0 1 X D D
D y y D m l
D y y D l m
11
AND Output sa0: 1 1 D AND Output sa1: 0 X D X 0 D Wire sa0: D Propagation D-cube models conditions under which fault effect propagates through gate
VLSI Test: Bushnell-Agrawal/Lecture 11 12
Stuck-at-0 Stuck-at-1 Bridging fault (short circuit) Arbitrary change in logic function
Implication Procedure
1. Model fault with appropriate primitive
D-cube of failure (PDF) 2. Select propagation D-cubes to
propagate fault effect to a circuit output (D-drive procedure) Select singular cover cubes to justify internal circuit signals (Consistency procedure) Put signal assignments in test cube Regrettably, cubes are selected very arbitrarily by D-ALG
VLSI Test: Bushnell-Agrawal/Lecture 11 13
3.
14
4.
a* b*
0 X 1 X 0 1 1
Cube-set
a b a* b*
16
Cube-set a b c a0 a1 b0 b1 0 X 1 0 1 X X 0 1 0 X 1
Cube-set
a b
0 1
c
D
1 0
17
18
D-Algorithm D-drive
while (untried fault effects on D-frontier) select next untried D-frontier gate for propagation; while (untried fault effect fanouts exist)
select next untried fault effect fanout; generate next untried propagation D-cube; D-intersect selected cube with test cube; if (intersection fails or is undefined) continue; if (all propagation D-cubes tried & failed) break; if (intersection succeeded) add propagation D-cube to test cube -- recreate D-frontier; Find all forward & backward implications of assignment; save D-frontier, algorithm state, test cube, fanouts, fault; break; else if (intersection fails & D and D in test cube) Backtrack (); else if (intersection fails) break;
19
D-Algorithm -- Consistency
g = coordinates of test cube with 1s & 0s; if (g is only PIs) fault testable & stop; for (each unjustified signal in g) Select highest # unjustified signal z in g, not a PI; if (inputs to gate z are both D and D) break; while (untried singular covers of gate z)
select next untried singular cover; if (no more singular covers) If (no more stack choices) fault untestable & stop; else if (untried alternatives in Consistency) pop implication stack -- try alternate assignment; else Backtrack (); D-drive (); If (singular cover D-intersects with z) delete z from g, add inputs to singular cover to g, find all forward and backward implications of new assignment, and break; If (intersection fails) mark singular cover as failed;
Feb.. 16, 2001 VLSI Test: Bushnell-Agrawal/Lecture 11 20
Backtrack
if (PO exists with fault effect) Consistency (); else pop prior implication stack setting to try alternate assignment; if (no untried choices in implication stack) fault untestable & stop; else return;
21
b
0 0 1 1 0 0 1 1
c
0 1 0 1 0 1 0 1
Output
F
0 0 0 1 0 0 0 0
22
B
1 0 1 0
C
1 0
d
1 0 0
e
0 1 1 1 0
D D D 0 D D
D 1 D
1 D D D 1 D
1 D D
1 0 D D D D 0 D
0 0 1
Propagation D-cubes
Conditions under which difference between good/failing machines propagates
D D D
23
24
25
0 1 D D D
26
1 0 1 D D D D
27
1 D D
28
1 D D
29
1 D
30
1
0 0 1
1 D D
0 D
Test cube: A, B, C, D, e, f, g, h, k, L
VLSI Test: Bushnell-Agrawal/Lecture 11 31
sa1
32
sa1
33
1 1
sa1
34
1 1
sa1
D 1
35
sa1
36
0 sa1 D
37
0
0
1 0 D
0 sa1
38
Inconsistent
39
sa1
40
sa1
D D
41
0 sa1
D 1
42
1 1
1 1 0 D sa1 0
43
New concepts introduced: Expand binary decision tree only around primary inputs Use X-PATH-CHECK to test whether D-frontier still there
Backtracing
Feb.. 16, 2001 VLSI Test: Bushnell-Agrawal/Lecture 11 44
Motivation
IBM introduced semiconductor DRAM memory into its mainframes late 1970s Memory had error correction and translation circuits improved reliability D-ALG unable to test these circuits Search too undirected Large XOR-gate trees Must set all external inputs to define output Needed a better ATPG tool
VLSI Test: Bushnell-Agrawal/Lecture 11 45
maybe, go to Step 1 5. Is there untried combination of values on assigned PIs? If not, exit: untestable fault 6. Set untried combination of values on assigned PIs using objectives and backtrace. Then, go to Step 2
Feb.. 16, 2001 VLSI Test: Bushnell-Agrawal/Lecture 11 46
sa1
47
sa1
48
Backtrace from r
sa1
49
1
0 sa1
50
Forward implications: d = 0, X = 1
1
0 0 sa1
51
1
0 0 sa1
52
1
0 0 sa1
53
1
0 1 0 sa1
54
0 1
55
0 sa1
56
Step 11 -- s sa1
1
0 0 sa1
57
Backtrack -- s sa1
0 0
0 1 sa1
1 0
1
0 1
58
Step 13 -- s sa1
1
1 sa1
59
Step 14 -- s sa1
1
1 sa1
60
Step 15 -- s sa1
1
1 0 sa1
61
Backtrack -- s sa1
1
0 1
62
Step 17 -- s sa1
1
1 1 sa1
63
D
X
64
66
PODEM Algorithm
while (no fault effect at POs) if (xpathcheck (D-frontier) (l, vl) = Objective (fault, vfault); (pi, vpi) = Backtrace (l, vl); Imply (pi, vpi); if (PODEM (fault, vfault) == SUCCESS) return (SUCCESS); (pi, vpi) = Backtrack (); Imply (pi, vpi); if (PODEM (fault, vfault) == SUCCESS) return (SUCCESS); Imply (pi, X); return (FAILURE); else if (implication stack exhausted) return (FAILURE); else Backtrack (); return (SUCCESS);
Feb.. 16, 2001 VLSI Test: Bushnell-Agrawal/Lecture 11 67
Summary
PODEM Expand decision tree only around PIs Use X-PATH-CHECK to see if D-frontier exists Objectives -- bring ATPG closer to getting D (D) to PO
Backtracing
68