ICTEST5
ICTEST5
Testing
In a second phase, we
– other algorithms will study actual
algorithms
• Sequential algorithms
A B Carry-in
64 64 1
+
64 1
Sum Carry-out
A
B
Sum generation of sum
Carry-in
Carry-out generation of
carry
The functional and structural examples achieve the exact same fault coverage
In practice:
• a subset covering <75% faults is provided by the designer as functional
test-patterns
• ATPG is applied to supplement and raise the coverage to >98% stuck-at
fault coverage
• activate the fault, and cause its effects to propagate to a circuit primary
output
• if the circuit output is different from what would be expected from a fault-
free circuit, then the fault can be detected
But also:
“backtracking”
The tree represents all possibilities for input patterns x1 and x2
The leaf nodes represent the good machine output for the selected inputs
1
Any switching function can be described 0
x1
by a BDD
0 1
0 1
In order to read the diagram:
• start from root node (top) binary decision diagram
• the product of all visited nodes forms representation of the circuit
the maxterms/minterms
• the output value is read at the leaf
cj
x2
Searched and Infeasible
0 1 Unexplored
x1 x1
0 1 0 1
0 0 0 1
Present Assignment
D three examples
D
1
AND gate forward implication
table
D D
0
D D
0
three examples
1 1
1
Used by the ATPG in the
justification step, as
D D backtracing procedure, where
given an output objective, the
0 input conditions are traced in a
backward pass
D D
backtracking backtracing
0
s-a-1 1
D D x D-Frontier
x
0 0
Fault cone set of hardware that can be reached while performing a forward
tracing, starting at the fault site
D-frontier set of gates closest to POs with D or D at the input and X at the
output
1 f
s-a-0
D z
a
c
g b
Step1: assuming the second input s-a-0, fault activation requires that this
node be controlled to logic 1, thus causing a D downstream of the fault
– backtrack, again …
Step3: justifying
– g=0 causes c=0
– no conflict remains, the vector is discovered as 010x
The test for the s-a-0 fault is vector ABCD=010x, and produces output
• process definitions
– singular cover
– D-cube
– D-intersection operation
• implication procedure
– D-drive
– it is presented in the form of a reduced truth table, still covering all cases using
(1, 0, X) - for clarity purposes, writing the X is often omitted in large tables
A
d
B
G3 F
B e
G2
C
Each axis holds one or more variables, which are to be localized in pairs or
triplets, and numbered following a Gray code. The Gray code dictates that only
one binary value may change between two adjacent codes.
AB A
CD 00 01 11 10
Following figure shows an example 00 0 0 1 1
of a Karnaugh table, implementing
01 0 1 1 0
the Boolean function D
11 1 1 0 0
C
10 0 1 1 1
– the primitive D-cube of a failure evidences the effect of a fault on the gate output
• all obtained cubes constitute the set of propagated D-cubes describing the way
of propagation of fault effect through a gate
D can be replaced by D
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 logic outputs with inputs labeled as D (D) onto the D-frontier;
D-drive ();
Consistency ();
Return ();
d
A
G1
G3 F
B e
G2
C
Fault is d s-a-0
d
A
G1 s-a-0
G3 F
In this specific case:
B e
G2 Select in the D-cube propagation table
C one cube which has a fault D at d,
where d is an output
Note that the error propagates forward from d, thus we don’t see any D in the inputs,
however A=1 and B=1 is the only combination which may propagate as a D at the output
of an AND Boolean gate
h m
B
Z
g
k
C
f
E
s-a-0 D
1
h m
B
Z
g
0 k D
C
f D
E
s-a-0 D
1
A
1 0 1
h m
B
Z
g
0 k D
C
f D
E
s-a-0 D
0
A
0 1 1
0 h m
B
Z
g
0 0 0 k D
C
f D
E
s-a-0 D
Thus from now on, we only work with tables, as if we had no prior
knowledge of the schematic
Propagation D-cubes
and singular cover
Test yes
generated Exit - Fault tested
?
no
Test
maybe possible with
additional assigned
primary inputs
?
no
Is there no
an untried combination
Exit - Fault untestable
of values on assigned
primary inputs
?
yes
Set untried combination of
values on assigned primary
inputs
Source: P. Goel, An Implicit Enumeration Algorithm to Generate Tests for Combinational Logic Circuits, IEEE T. Computers, Vol. C30, pp. 215-222, 1981
Pseudo Pseudo
PIs POs
Memory block
CLOCK
s- k+1 s- 1 s0 s0
s- k C M M C M C
Pseudo
memory
vk input, binary
sk state vector, nine-valued logic
s- k+1 s- 1 s0 s0
s- k C M M C M C
Pseudo
memory