D Algorithm
D Algorithm
Summary
2/10/2012 2
Forward Implication
Results in logic gate inputs that are significantly labeled so that output is uniquely determined AND gate forward implication table:
2/10/2012
Backward Implication
Unique determination of all gate inputs when the gate output and some of the inputs are given
2/10/2012
E
1
1 0
0 0
2/10/2012
B
1 0
1
5
Backtrace Determines which primary input and value to set to achieve objective
U h i ti such as nearest PI Use heuristics h t
Forward trace Determines gate through which the fault effect should be sensitized
Use heuristics such as output that is closest to the present fault effect
2/10/2012 6
Backtracking Search fails, therefore undo some of the work completed and start searching from a location where search options still exist p
2/10/2012
2/10/2012
2/10/2012
Gate AND 1 2 3
Inputs Output X 1 0
1 X 0
F
0 0 1
AND Output sa0: 1 1 D 1 D AND Output sa1: 0 X D X 0 D Wire sa0: D p g Propagation D-cube models conditions under
which fault effect propagates through gate
2/10/2012 10
Cube-set a b c 0 0 1 0 1
2/10/2012
Cube-set
a b
0 1 1 0
c
D D
0 X 1 0 1 X
X 0 1 0 X 1
12
D 1 D D 1 D
B
1 D D D D 1
D D D D D D
13
2/10/2012
0 1 X D D
0 0
1 1
0 1 X D D
14
Implication Procedure
1. 1 Model fault with appropriate primitive D D2. 2 3.
cube of failure (PDF) 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 g g Regrettably, cubes are selected very arbitrarily by D-ALG y y
15
2/10/2012
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 t i d & f il d) break; ( ll ti D b tried failed) b k 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 (); 2/10/2012 if (intersection fails) break; else
17
D-Algorithm -- Consistency
g = coordinates of test cube with 1 & 0 di t f t t b ith 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; ( ) p; 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, fi d all forward and backward implications of i l t find ll f d db k d i li ti f new assignment, and break; 2/10/2012 18 If (intersection fails) mark singular cover as failed;
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; f
else return;
2/10/2012
19
Inputs
b
0 0 1 1 0 0 1 1
c
0 1 0 1 0 1 0 1
Output
0 0 0 1 0 0 0 0
20
B
1 0 1 0
C
1 0
d
1 0 0
e
0 1 1 1 0 D D D 0 D D
Singular cover
Used for justifying lines
D 1 D
1 D D D 1 D
1 D D
1 0 D D D D 0 D
0 0 1
D D D
2/10/2012
21
2/10/2012
22
0 sa1 D
2/10/2012
23
0 sa1 D
2/10/2012
24
2/10/2012
25
Inconsistent
d = 0 and m = 1 cannot justify r = 1 (equivalence)
Backtrack Remove B = 0 assignment
2/10/2012
26
0 sa1 D
2/10/2012
27
0 sa1 D D
2/10/2012
28
0 sa1 D D
D 1
2/10/2012
29
0 sa1
30
Motivation
IBM i t d d semiconductor DRAM introduced i d t memory into its mainframes late 1970s Memory had error correction and translation circuits improved reliability
D-ALG unable to test these circuits D ALG Search too undirected Large XOR-gate trees g g Must set all external inputs to define output Needed a better ATPG tool
2/10/2012 32
sa1
2/10/2012
34
sa1
2/10/2012
35
sa1
2/10/2012
36
2/10/2012
37
2/10/2012
38
2/10/2012
39
2/10/2012
40
2/10/2012
41
2/10/2012
42
2/10/2012
43
Step 11 -- s sa1
Set B = 0 (alternate assignment)
1
0 0 sa1
2/10/2012
44
Backtrack -- s sa1
Forward implications: d = 0 X = 1 m = 1 r = 0 0, 1, 1, 0, s = 1, q = 0, Y = 1, v = 0, Z = 1. Fault not sensitized.
0 0 0 0 1 sa1 1 0 1 1 0 1 1
2/10/2012
45
Step 13 -- s sa1
Set A = 1 (alternate assignment)
1
1 sa1
2/10/2012
46
Step 14 -- s sa1
Backtrace from r again
1
1 sa1
2/10/2012
47
Step 15 -- s sa1
Set B = 0. Implications in stack: A = 1, B = 0
1
1 0 sa1
2/10/2012
48
Backtrack -- s sa1
F Forward i li ti d implications: d = 0 X = 1 m = 1 r = 0 0, 1, 1, 0. Conflict: fault not sensitized. Backtrack
0 1 0 0 1 sa1 1 0 1 1 0 1 1
2/10/2012
49
Step 17 -- s sa1
Set B = 1 (alternate assignment)
1
1 1 sa1
2/10/2012
50
53
PODEM Algorithm
while (no fault effect at POs)
if (xpathcheck (D-frontier) (l, vl) = Objective (fault, vf lt); fault (pi, vpi) = Backtrace (l, vl); Imply (pi, vpi); if (PODEM (fault vfault) == SUCCESS) return (SUCCESS); (fault, (pi, vpi) = Backtrack (); Imply (pi, vpi); p if (PODEM (fault, vfault) == SUCCESS) return (SUCCESS); Imply (pi, X); return (FAILURE); else if (implication stack exhausted) return (FAILURE); else Backtrack ();
return (SUCCESS);
2/10/2012 54
Summary y
D-ALG First complete ATPG algorithm
D Cube D-Cube D-Calculus Implications forward and backward Implication stack Backup
PODEM
Expand decision tree only around PIs Use X-PATH-CHECK to see if D-frontier exists f Objectives -- bring ATPG closer to getting D (D) to PO Backtracing
2/10/2012 55
Appendices A di
2/10/2012
56
Implication Stack
Each signal set in circuit by ATPG Whether alternate signal value already tried Portion of binary search tree already searched
2/10/2012
57
Backtrace Determines which primary input and value to set to achieve objective l t tt hi bj ti
Use testability measures
2/10/2012
58
2/10/2012
59
a* b*
0 X 1 X 0 1 1
Cube-set
a b a* b*
2/10/2012
60
2/10/2012
61
0 1 D D
2/10/2012
62
2/10/2012
63
2/10/2012
64
2/10/2012
65
2/10/2012
66
Test cube: A B, C, D, e, f, g h k L A, B C D e f g, h, k,
2/10/2012 67
sa1
2/10/2012
68
sa1 0
2/10/2012
69
sa1 0
2/10/2012
70
sa1 0
D 1
2/10/2012
71