Documente Academic
Documente Profesional
Documente Cultură
ATPG
ATPG Algorithms
Algorithms
Virendra Singh
Indian Institute of Science (IISc)
Bangalore
virendra@computer.org
E0-286: Testing and Verification of SoC Design
Lecture - 10
Feb 9, 2008
E0-286@SERC
D-Algorithm
D-Algorithm
Start
Initialize test cube (tc)
None
exists
None
exists
Feb 9, 2008
No test
exists
Yes
Line Justification
Impossible
No
done
Test
generated
D-Algo
D-Algo (Line
(Line Justification)
Justification)
Begin
No
Test has
been
generated
Yes
Select an unjustified line and
a singular cube C to justify the line
Consistent
Feb 9, 2008
E0-286@SERC
Example2:
Example2: Fault
Fault A
A sa0
sa0
Feb 9, 2008
E0-286@SERC
Step
Step 2
2 --- Example
Example 2
2
0
1
Feb 9, 2008
E0-286@SERC
Step
Step 3
3 --- Example
Example 2
2
Feb 9, 2008
D
D
E0-286@SERC
Step
Step 4
4 --- Example
Example 2
2
Feb 9, 2008
1
D
D
E0-286@SERC
Step
Step 5
5 --- Example
Example 2
2
Feb 9, 2008
1
D
D
E0-286@SERC
Step
Step 6
6 --- Example
Example 2
2
Feb 9, 2008
D
D
E0-286@SERC
D-Chain
D-Chain Dies
Dies -- Example
Example 2
2
0
0
1
1
D
D
Test cube: A, B, C, D, e, f, g, h, k, L
Feb 9, 2008
E0-286@SERC
10
D-Algorithm
D-Algorithm :: Example
Example
1
D
1 1
1
1
D
1
1
1
Feb 9, 2008
E0-286@SERC
D 1
D
11
Decision
Decision Tree
Tree
Feb 9, 2008
E0-286@SERC
12
9
9 -- V
V Algorithm
Algorithm (Muth)
(Muth)
Logic values {0/0, 1/1, 0/1, 1/0, 0/u, 1/u, u/0, u/1, u/u}
0/u = {0, D}, 1/u = {D, 1}, u/0 = {0, D}, u/1 = {D, 1}
u/u = {0, 1, D, D}
Feb 9, 2008
E0-286@SERC
13
9
9 -- V
V Algorithm
Algorithm
Feb 9, 2008
E0-286@SERC
14
9
9 -- V
V Algorithm
Algorithm
1
D
1/u
Feb 9, 2008
E0-286@SERC
15
9-V
9-V Algorithm:
Algorithm: Value
Value Comp
Comp
Feb 9, 2008
E0-286@SERC
16
9-V
9-V Algorithm:
Algorithm: Value
Value Comp
Comp
No Backtracking
Feb 9, 2008
E0-286@SERC
17
Path
Path Oriented
Oriented DEcision
DEcision
Making
Making
(PODEM)
(PODEM)
P.
P. Goel,
Goel, IBM,
IBM, 1981
1981
Feb 9, 2008
E0-286@SERC
18
PODEM
PODEM
Backtracing
Feb 9, 2008
E0-286@SERC
19
Motivation
Motivation
Feb 9, 2008
E0-286@SERC
20
PODEM
PODEM High-Level
High-Level Flow
Flow
1. Assign binary value to unassigned PI
2. Determine implications of all PIs
3. Test Generated? If so, done.
4. Test possible with more assigned PIs? If
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 9, 2008
E0-286@SERC
21
PODEM-Algorithm
PODEM-Algorithm
Start
Assign binary value to an unssigned PI
Deternine implications of all PIs
Test
generated
Yes
Is there a D or D
on any PO?
No
Test Possible with additional
Assigned PIs?
May be
No
Is there an untried combination of
No PIs?
Values on assigned
No
No test
exists
Yes
Set untried combination of vaues
On assigned PIs
Feb 9, 2008
E0-286@SERC
22
PODEM
PODEM
Feb 9, 2008
E0-286@SERC
23
D-Algorithm
D-Algorithm :: Example
Example
1
D
1
D
1
1
1
Feb 9, 2008
E0-286@SERC
1
24
PODEM
PODEM :: Example
Example
Feb 9, 2008
E0-286@SERC
25
PODEM
PODEM :: Value
Value Comp
Comp
Feb 9, 2008
E0-286@SERC
26
PODEM
PODEM :: Decision
Decision Tree
Tree
Feb 9, 2008
E0-286@SERC
27
PODEM
PODEM
PODEM doesnt need
Consistency check conflict can never
occur
J-frontier there are no values that
require justification
Backward implication values are
propagated only in forward directions
Feb 9, 2008
E0-286@SERC
28
Example
Example
sa1
Feb 9, 2008
E0-286@SERC
29
Example
Example --- Step
Step 2
2 ss sa1
sa1
sa1
Feb 9, 2008
E0-286@SERC
30
Example
Example --- Step
Step 3
3 ss sa1
sa1
Backtrace from r
sa1
Feb 9, 2008
E0-286@SERC
31
Example
Example --- Step
Step 4
4 ss sa1
sa1
1
0
sa1
Feb 9, 2008
E0-286@SERC
32
Example
Example --- Step
Step 5
5 ss sa1
sa1
Forward implications: d = 0, X = 1
1
0
0
sa1
Feb 9, 2008
E0-286@SERC
33
Example
Example --- Step
Step 6
6 ss sa1
sa1
1
0
0
sa1
Feb 9, 2008
E0-286@SERC
34
Example
Example --- Step
Step 7
7 ss sa1
sa1
1
0
0
sa1
Feb 9, 2008
E0-286@SERC
35
Example
Example --- Step
Step 8
8 ss sa1
sa1
1
0
1
Feb 9, 2008
0
sa1
E0-286@SERC
36
Example
Example --- Step
Step 9
9 ss sa1
sa1
Forward implications: k = 1, m = 0, r = 1, q = 1,
Y = 1, s = D, u = D, v = D, Z = 1
1
1
0
0
1
1
sa1
D
1
D
Feb 9, 2008
E0-286@SERC
37
Backtrack
Backtrack --- Step
Step 10
10 ss sa1
sa1
1
0
suv
0
sa1
Feb 9, 2008
E0-286@SERC
38
Step
Step 11
11 --- ss sa1
sa1
1
0
0
Feb 9, 2008
sa1
E0-286@SERC
39
Backtrack
Backtrack --- ss sa1
sa1
Forward implications: d = 0, X = 1, m = 1, r = 0,
s = 1, q = 0, Y = 1, v = 0, Z = 1. Fault not sensitized.
0
0
0
0
1
sa1
0
1
0
Feb 9, 2008
E0-286@SERC
40
Step
Step 13
13 --- ss sa1
sa1
1
1
sa1
Feb 9, 2008
E0-286@SERC
41
Step
Step 14
14 --- ss sa1
sa1
1
1
sa1
Feb 9, 2008
E0-286@SERC
42
Step
Step 15
15 --- ss sa1
sa1
1
1
0
Feb 9, 2008
sa1
E0-286@SERC
43
Backtrack
Backtrack --- ss sa1
sa1
0
1
0
0
1
sa1
0
1
0
Feb 9, 2008
E0-286@SERC
44
Step
Step 17
17 --- ss sa1
sa1
1
1
1
Feb 9, 2008
sa1
E0-286@SERC
45
Fault
Fault Tested
Tested -- Step
Step 18
18 ss sa1
sa1
d = 1, m = 1, r = 1, q = 0, s = D, v =
Forward implications:
D, X = 0, Y = D
1
1
1
1
1
sa1
0
D
Feb 9, 2008
E0-286@SERC
46
Backtrace
Backtrace (s,
(s, vvss)Pseudo-Code
)Pseudo-Code
v = vs;
Feb 9, 2008
E0-286@SERC
47
Objective
Objective Selection
Selection Code
Code
if (gate g is unassigned) return (g, v);
select a gate P from the D-frontier;
select an unassigned input l of P;
if (gate g has controlling value)
c = controlling input value of g;
else if (0 value easier to get at input of
XOR/EQUIV gate)
c = 1;
else c = 0;
return (l, c );
Feb 9, 2008
E0-286@SERC
48
PODEM
PODEM Algorithm
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 9, 2008
E0-286@SERC
49
Thank You
Feb 9, 2008
E0-286@SERC
50