Combinational ATPG
Ganesh C. Patil
Tuesday, November 7, 2023
1
Irredundant Hardware and Test
Patterns
Fault Test Response (good/failing)
a sa0, A=0 D
a sa1 A=1 D_bar
b sa0 A=1 D_bar
b sa1 A=0 D
Therefore, these faults are not redundant
Tuesday, November 7, 2023
2
Redundant Hardware and
Simplification
Tuesday, November 7, 2023
3
Fault q sa1
Tuesday, November 7, 2023
4
Redundant Fault q sa1
Tuesday, November 7, 2023
5
Redundant Fault q sa1
Tuesday, November 7, 2023
6
Fault f sa0
Tuesday, November 7, 2023
7
Fault f sa0
Single fault f sa0 is tested by input vector
110.
Tuesday, November 7, 2023
8
Multiple Fault Masking
Single fault f sa0 is tested by input vector
110.
Tuesday, November 7, 2023
9
Multiple Fault Masking
f sa0 is masked when fault q sa1 is also
present.
Tuesday, November 7, 2023
10
Hazardous Circuit
x1 = x2 = x3 =1 => f =1
Now let x1 change from 1 to 0.
Then circuit supposed to
maintain f =1
For x1 = 0, p = 0.
Because of presence of
Circuit with Static Hazard
inverter p = 0 before signal q
become1
For short time p =0, and q =0
causing f to drop to 0 before
it recovers back to 1
Tuesday, November 7, 2023
11
Design of Hazard free circuit Example-1
Circuit with Static Hazard
Hazard free circuit
Tuesday, November 7, 2023
12
Intentional Redundant Implicant
Elimination of hazards in circuit output
Tuesday, November 7, 2023
13
Intentional Redundant Implicant
Redundant Fault e sa0
Tuesday, November 7, 2023
14
Fault Cone and D-frontier
Fault Cone – Set of hardware affected by fault
D-frontier – Set of gates closest to POs with fault
effect(s) at input(s)
D-frontier
Fault Cone
Tuesday, November 7, 2023
15
Redundancy Removal Algorithm
Repeat until there are no redundant faults:
{
Use ATPG to find all redundant faults;
Remove all redundant faults with non-
overlapping fault cone areas;
}
Tuesday, November 7, 2023
16
Combinational ATPG Algorithms
D-Algorithm (Roth) – 1966
PODEM (Goel) – 1981
FAN – Multiple Backtrace (1983)
TOPS – Dominators (1987)
SOCRATES – Learning (1988)
Legal Assignments (1990)
EST – Search space learning (1991)
BDD Test generation (1991)
Tuesday, November 7, 2023
17
D-Algorithm - Roth
IBM (1966)
Fundamental concepts invented:
First complete ATPG algorithm
D-Cube
D-Calculus
Implications – forward and backward
Tuesday, November 7, 2023
18
Forward Implication
Results in logic gate inputs
that are significantly labeled so
that output is uniquely
determined
AND gate forward implication
table:
Tuesday, November 7, 2023
19
Backward Implication
Unique determination of all gate inputs when the
gate output and some of the inputs are given
Tuesday, November 7, 2023
20
D-Frontier
All gates whose outputs are X but has at least one D
or D-bar at the input of the gates
Initially, the D-frontier consists of only 1 gate (output
of the fault-site)
The D-frontier contains 2 gates
Tuesday, November 7, 2023
21
J-Frontier
All gates whose outputs are specified by are
not justified by the input assignments
The J-Frontier contains 2 gates
Tuesday, November 7, 2023
22
Singular Cover
Minimal set of logic signal assignments to show
essential prime implicants of Karnaugh map
Gate Inputs Output Gate Inputs Output
AND A B d NOR d e F
1 0 X 0 1 1 X 0
2 X 0 0 2 X 1 0
3 1 1 1 3 0 0 1
Tuesday, November 7, 2023
23
D-Cube
Collapsed truth table entry to characterize logic
Use Roth’s 5-valued algebra
Can change all D’s to D’s and D’s to D’s (do both)
AND gate:
A B d
Gate InputsOutput D 1 D
Rows 1 & 3
AND A B d 1 D D
Reverse inputs
1 0 X 0 D D D
And two cubes
2 X 0 0 D D D
Interchange D and D
3 1 1 1 1 D D
D 1 D
Tuesday, November 7, 2023
24
D-Cube NOR gate
A B d
Gate Inputs Output D 0 D
Rows 1 & 3
NOR d e F 0 D D
Reverse inputs
1 1 X 0 D D D
NOR two cubes
2 X 1 0 D D D
Interchange D and D
3 0 0 1 0 D D
D 0 D
Tuesday, November 7, 2023
25
Primitive D-Cube of Failure
Models circuit faults:
Stuck-at-0
Stuck-at-1
Bridging fault (short circuit)
AND Output sa0: “1 1 D”
AND Output sa1: “0 X D ”
“X 0 D ”
Wire sa0: “D”
Tuesday, November 7, 2023
26
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)
3. Select singular cover cubes to justify internal
circuit signals (Consistency procedure)
Tuesday, November 7, 2023
27
Example 1
Inputs Output
A B C F
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 0
Tuesday, November 7, 2023
28
Singular Cover & D-Cubes
A B C d e F
1 1 1
0 0
0 0
1 1 0
0 1
0 1
1 0 Singular cover – Used for
1 0 justifying lines
0 0 1
D 1 D
1 D D
D D D Propagation D-cubes –
D 1 D Conditions under which
1 D D difference between
D D D
D 0 D good/failing machines
0 D D propagates
D D D
Tuesday, November 7, 2023
29
Fault d sa0
Step A B C d e F Cube type
1 1 1 D PDF of AND gate
2 D 0 D Prop. D-cube for NOR
3 1 1 0 Sing. Cover of NAND
Tuesday, November 7, 2023
30
Example 2 Fault A sa0
Step 1 – D-Drive – Set A = 1
D
1 D
Tuesday, November 7, 2023
31
Step 2 – Example 2
Step 2 – D-Drive – Set f = 0
0
D D
1 D
Tuesday, November 7, 2023
32
Step 3 – Example 2
Step 3 – D-Drive – Set k = 1
1
D
0
D D
1 D
Tuesday, November 7, 2023
33
Step 4 – Example 2
Step 4 – Consistency – Set g = 1
1 1
D
0
D D
1 D
Tuesday, November 7, 2023
34
Step 5 – Example 2
Step 5 – Consistency – f = 0 Already set
1 1
D
0
D D
1 D
Tuesday, November 7, 2023
35
Step 6 – Example 2
Step 6 – Consistency – Set c = 0, Set e = 0
1 1
0 D
0
0
D D
1 D
Tuesday, November 7, 2023
36
D-Chain Dies Example 2
Step 7 – Consistency – Set B = 0
Fault detected at PO, although D-Chain dies
X
1 1
0 D
0 0
0
D D
1 D
Test cube: A, B, C, D, e, f, g, h, k, L
Test Vector {X 0 0 1}
Tuesday, November 7, 2023
37
D-Cube Table
Test Vector DCBA = {X 0 0 1}
Tuesday, November 7, 2023
38
Example 3 – Fault s sa1
Primitive D-cube of Failure
D
sa1
Tuesday, November 7, 2023
39
Example 3 – Step 2 s sa1
Propagation D-cube for v
D
1 sa1 D
0
Tuesday, November 7, 2023
40
Example 3 – Step 2 s sa1
Forward & Backward Implications
0
1
1 1
1 D
1 sa1 D
0
Tuesday, November 7, 2023
41
Example 3 – Step 3 s sa1
Propagation D-cube for Z – test found!
0
1
1 1
1 D
1 sa1 D
0
D
D
1
Tuesday, November 7, 2023
42
D-Cube Table s sa1
Test Vector ABC = {1 1 1}
Tuesday, November 7, 2023
43
Example 3 – Fault u sa1
Primitive D-cube of Failure
sa1 D
Tuesday, November 7, 2023
44
Example 3 – Step 2 u sa1
Propagation D-cube for v
0 0
sa1
D
D
Tuesday, November 7, 2023
45
Example 3 – Step 2 u sa1
Forward and backward implications
1
1
0
0 1
0 0
0
sa1
D
D
Tuesday, November 7, 2023
46
Inconsistent
d = 0 and m = 1 cannot justify r = 1
(equivalence)
Backtrack
Remove B = 0 assignment
Tuesday, November 7, 2023
47
D-Cube Table
Tuesday, November 7, 2023
48
Example 3 – Backtrack
Need alternate propagation D-cube for v
sa1 D
Tuesday, November 7, 2023
49
Example 3 – Step 3 u sa1
Propagation D-cube for v
1 0
sa1 D
Tuesday, November 7, 2023
50
Example 3 – Step 4 u sa1
Propagation D-cube for Z
1 1 0
sa1
D
D D
1
Tuesday, November 7, 2023
51
Example 3 – Step 4 u sa1
Propagation D-cube for Z and implications
0
1
1 1
1 1 0
0
0
sa1
D
D D
1
Tuesday, November 7, 2023
52
D-Cube Table u sa1
Test Vector ABC = {1 1 1}
Tuesday, November 7, 2023
53
D-Algorithm – Top Level
1. Number all circuit lines in increasing
level order from PIs to POs;
2. Select a primitive D-cube of the fault to
be the test cube;
Put logic outputs with inputs labeled as D
(D) onto the D-frontier;
3. D-drive ();
4. Consistency ();
5. return ();
Tuesday, November 7, 2023
54
Thank you !!!
Tuesday, November 7, 2023
55