Professional Documents
Culture Documents
Outline
Quality Policy of Electronic Design
Tradeoffs of Design for Testability
Testability measures
Heuristic measures
Probabilistic measures
Calculation of testability
Parker - Mc Cluskey method
Cutting method
Conditional probabilities based method
Raimund Ubar
Quality Policy
Chips from
manufactory
Yield
Defect level
How many chips from
hundred escape?
2
Cost of
the fault
How to succeed?
Try too hard!
How to fail?
Try too hard!
(From American Wisdom)
Test
coverage
function
Fault Coverage
Cost of quality
Time
Time
Conclusion:
Quality
0%
Optimum
test / quality
100%
Quality policy
Y (1 P )
Quality policy
Pa
Pa
nm
DL
(
1
P
)
1 Y
n
(1 P ) Pa
nm
n
n - number of defects
Pa
m - number of faults tested
P - probability of a defect
Pa - probability of accepting a bad product
T - test coverage
1 Y
(1
m
)
n
1 Y (1T )
(1 P ) (1 P )
m
Y (1 P ) n
DL 1 Y
DL
Y
Y(%)
T(%)
0
Goal:
(1T )
100
90
50
45
25
10
81
45
DL T Testability
Paradox: Testability
10
50
90
DL (Y )
Technical University Tallinn, ESTONIA
T(%)
DFT: Resynthesis or
adding extra hardware
Performance
Economic tradeoff:
C (Design + Test) < C (Design) + C (Test)
Logic complexity
Area
Number of I/O
Power consumption
Yield
Design
Product
Testability Criteria
Qualitative criteria for Design for testability:
Testing cost:
OUT
Combinationa
l circuit
IN
OUT
Combination
al circuit
Scan-IN
Scan-OUT
Control Part
y1
R1
y3
M1
M2
M3
y4
IN
y2
Solutions:
Scan-Path design strategie
Data-Flow design
e
R2
Data Part
Raimund Ubar
System
ATE
Response
H.-J.Wunderlich, U Stuttgart
Fault
Test
patterns
Test
Sequence of
216 bits
&
16 bit
counter
1
System
Decoders
Circuits with feedback
Counters
Clock generators
Oscillators
Self-timing circuits
Self-resetting circuits
Error-checking circuits
Circuits with redundant
nodes
x4
&
1
&
x3
&
&
Faults at
x2 is not testable
Optimized function:
y x1 ( x1 x2 ) x4 x3 x4
y
0
x2
&
1
&
Impossible pattern,
OR XOR is not testable
y x1 x4 x3
Technical University Tallinn, ESTONIA
Raimund Ubar
Fault Redundancy
Hazard control circuit:
1
&
01
&
&
0
01
10
Decoder
1
101
Hazard
Redundant AND-gate
Fault 0 is not testable
1
E=1
E = 1 if decoder is fault-free
Fault 1 is not testable
17
Raimund Ubar
Fault Redundancy
Redundant gates
(bad design):
x1
x2
&
1
&
&
x41
&
Faults at x2 are
not testable, the
node is redundant
&
x3
x4
y x1 ( x1 x2 ) x4 x3 x4
y
0
x2
&
x12
&
x3
x4
x11
x1
x42
&
&
if
x4 0
18
Raimund Ubar
Fault Redundancy
Redundant gates
(bad design):
x11
x1
x11
x1
&
x12
x41
x12
1
&
x3
x4
x42
&
&
y
1
x42
x4
&
x3
Fault
&
if
x4 0
y
1
x12
Fault
if
x1 1
y x1 x4 x3
x1
x4
x3
y
19
Testability Measures
Evaluation of testability:
Controllability for 1 needed
Controllability
C0 (i)
C1 (j)
Observability
OY (k)
OZ (k)
Testability
1
2
20
1
2
20
&
1
i
j
x
1
2
k 20
&
1
2
20
&
Defect
Probability of detecting 1/260
C0(x1) = 1
C0(x2) = 1
C0(xi) = 23
C0(xj) = 11
C0(x1) = 1
C0(x2) = 1
C0(xi) = 23
1
C0(xj) = 11
C1(x1) = 1
C1(x2) = 1
C1(xi) = 23
&
C1(xj) = 11
C1(xi) = 18
C0(xj) = 12
min{ (23
min (35,38)
C1(xj) = 20
&
C0(y) = C1(x) + 1
C1(y) = C0(x) + 1
x1
x2
x1
x2
&
x1
x2
O(xk) = 23
O(y) = 1
C1(xj) = 11
&
O(x) = O(y) + 1
x1
x2
&
x1
x2
x1
x2
O(x1) = O(y) + 1
O(xk) = 23
O(y) = 1
C1(xj) = 11
1
2
3
4
5
71
&
&
a
&
72
&
b
&
73
&
&
x
1
2
3
4
5
6
7
71
72
73
a
b
c
d
e
y
Controllabilies
C0(x)
C1(x)
1
1
1
1
1
1
1
1
1
1
1
1
3
2
3
2
3
2
3
2
4
2
4
2
4
2
4
2
5
5
8
5
Obs.
O(x)
10
12
11
11
10
10
9
11
9
9
9
7
7
7
4
1
1
2
3
4
5
71
&
&
a
&
72
&
b
&
73
&
&
x
1
2
3
4
5
6
7
71
72
73
a
b
c
d
e
y
Controllabilies
C0(x)
C1(x)
1
1
1
1
1
1
1
1
1
1
1
1
3
2
3
2
3
2
3
2
4
2
4
2
4
2
4
2
5
5
8
5
Obs.
O(x)
10
12
11
11
10
10
9
11
9
9
9
7
7
7
4
1
Testab.
T(x0)
11
13
12
12
11
11
11
13
11
11
11
9
9
9
9
6
&
py = 1 - p x
p y p xi
i 1
&
x1
x2
x1
xn
..
.
&
..
.
x1
xn
x1
x2
p y 1 (1 p xi )
i 1
py = 1 - (1 - pa ) (1 - pb)
y
1
&
= 1 - 0,75*0,75 = 0,44
b
Signal correlations:
x
&
py= px px = px2
py = 1 - (1 - pa ) (1 - pb) =
= 1 - (1 - px1(1 - px2))(1 - px2(1 - px1)) =
= 1 - (1 - px1+ px1px2) (1 - px2+ px1px2) =
= 1 (1 - px2+ px1px2 - px1 + px1 px2 - p2x1 px2 +
x1
x2
&
&
21 &
pa = 1 p1p2 = 0,75,
&
22
&
&
23
Observability:
p(y/a = 1) = pb p2 =
21 &
= (1 - p2p3) p2 = p2 - p22p3
x
&
22
&
= p2 - p2p3 = 0,25
Testability:
&
23
1
2
3
4
5
71
&
&
&
a
&
72
&
b
&
73
&
1
2
3
4
5
6
1/2
[0,1] 71
&
&
72
&
3/4
73
3/4 &
1/2 &
a
[1/2,1]
&
[1/2,1]
c
Calculation steps:
pk [pLB , pHB) Exact pk
p7
3/4
3/4
p71
[0, 1]
3/4
p72
[0, 1]
3/4
p73
3/4
3/4
pa
[1/2, 1]
5/8
[1/4,3/4]
1/2
Cutting method
d
[1/2,3/4]
5/8
pk
pb
pc
pd
pe
py
&
y [34/64,54/64]
Exact value:
41/64
[pLB , pHB)
[1/2, 1]
5/8
[1/2, 3/4]
[1/4, 3/4]
[34/64, 54/64 ]
Exact pk
5/8
5/8
11/16
19/32
41/64
Probabilitiy for y
Conditions x set of conditions
p( y)
p( y /( x i) p( x i)
i( 0 ,1)
Conditional probabilitiy
p( y /( x i) p( x i)
i( 0 ,1)
1
2
3
4
5
71
7 72
&
3/4
&
&
73
&
x
NB! Probabilities
&
a
[1,1/2]
[Pk* , Pk**]
[1, 1/2]
&
e
[1/2,5/8]
[1,1/2]
&
Pk
Pb
Pc
Pd
Pe
Py
[1/2,11/16]
[1,1/2]
Pk
P7
P71
P72
P73
Pa
d
[1/2,3/4]
[Pk* , Pk**]
[1, 1/2]
[1, 1/2]
[1/2, 3/4]
[1/2, 5/8]
[1/2, 11/16 ]
21 &
py = p(L1) + p(L2) =
&
21
&
&
L1
23
p2 p1
y
L2
22
22
23
p1 p21 p23
3
3
(1-p1)p22p3p23
p2(1-p1)p3
Technical University Tallinn, ESTONIA
py =
1
2
px
21
&
&
22
LkL(1)
xXk
&
&
23
Example:
21
23
L1 = (1,21,23)
L2 = (1,22,3,23)
L1
L2
22
min
k: lkL(1) mMk
Probabilistic measure:
py =
k: LkL(1)
xXk
21
px
23
L1
L2
22
Heuristic Controllabilities
Using BDDs for controllability
calculation:
BDD-based algorithm
for the heuristic
measure is the same
as for the probabilistic
measure
21 &
a
&
22
&
c
y
&
23
y
1
21
23
L1
L2
22
21 &
Observability:
&
22
&
&
23
Testability:
p(x21 0) = p21 p(y/x21 = 1) =
L1
L2
21
22
23
L3
Technical University Tallinn, ESTONIA
1
2
3
4
5
6
71 &
&
&
a
&
7 72
&
&
b
c
73
&
73
1
2
71
72
1
2
71
3
4
5
&
&
&
&
73
73
71
72
2
2 7
1
5
5
1/64
1/64
2
1
2
2
2
5
6
&
73
Calculation procedure:
&
7 72
&
72
2
2
1/64
1/64
4/64
1/64
1/64
1/64
p(y/x1= 1) = 11/64
Technical University Tallinn, ESTONIA
y
z
Using BDDs gives correct results only inside the blocks,
not for the whole system
New method:
Block level: use BDDs and straightforward calculation
y3
R1
M1
M2
y4
R2
c
M3
IN
y2
y4
y3
R2
1
2
y1
R1 + R 2
IN + R 2
IN
R1
y2
0
1
R1 * R 2
IN* R2
Gate-level calculation:
py =
LkL(1)
px
R2
y4
0
1
xXk
RT-level calculation:
P(y=z(m )) =
P(x=e)
LiL(m0,m ) xXi
0
R2
0
y3
R1 + R2
1
1
2
Example:
y1
IN + R 2
IN
R1
y2
0
1
R 1* R 2
IN* R 2
LkL(1)
xXk
py = p(y=1) =
Nonterminal nodes
(control-path):
px
RT-level calculation:
1
xA
0
1
P(y=k) =
LiL(k)
Example:
P(x=e)
xXi
3,4
xB
1
4
2
5
3