Efficient Static Compaction Algorithms for Combinational Circuits Based on Test Relaxation

advertisement
Efficient Static Compaction Algorithms for
Combinational Circuits Based on Test
Relaxation
Yahya E. Osais
Advisor: Dr. Aiman H. El-Maleh
Members: Dr. Sadiq Sait & Dr. Allaeldin Amin
Dept. of Computer Engineering
KFUPM
11-Oct-03
Outline
Motivation.
 Research problems & contributions.
 Taxonomy of static compaction algorithms.
 Test vector decomposition.
 Independent fault clustering.
 Class-based clustering.
 Test vector reordering.
 Conclusions & future research.

11-Oct-03
yosais
2
Motivation
Rapid advancement in VLSI led to SoC.
 Testing SoCs requires large amount of
data.
 Impact on testing time & memory
requirements of test equipment.
 Challenges:



11-Oct-03
Reduce amount of test data.
Reduce time a defective chip spends on a
tester.
yosais
3
Research Problems

Static compaction for combinational
circuits.


Reduce the size of a test set as much as
possible.
Test vector reordering for combinational
circuits.

11-Oct-03
Steepen the curve of fault coverage vs.
number of test vectors.
yosais
4
Contributions
Taxonomy of static compaction algorithms.
 Test vector decomposition.



Efficient static compaction algorithms.



Test vector can be eliminated if its components
can be moved to other test vectors.
IFC
CBC
Efficient test vector reordering algorithm.

11-Oct-03
Solutions to time and memory bottlenecks.
yosais
5
Taxonomy of Static Compaction
Algorithms
Static Compaction Algorithms for Combinational Circuits
Redundant Vector
Elimination
Set Covering
Test Vector
Reordering
Based on
Relaxation
11-Oct-03
Merging
Test Vector
Modification
Test Vector Addition &
Removal
Essential
Fault Pruning
Essential Fault
Pruning
Test Vector
Decomposition
Based on
ATPG
Based on
Raising
IFC
yosais
CBC
Based on
ATPG
Graph Coloring
6
Test Vector Decomposition (TVD)
Decompose a test vector into its atomic
components.
 Employ relaxation per a fault.
 tp = 010110 & Fp = {f1,f2,f3}





(f1,01xxxx)
(f2,0x01xx)
(f3,x1xx10)
Compaction modeled as graph coloring.
11-Oct-03
yosais
7
Independent Fault Clustering
Preliminaries
Two faults are independent if they cannot
be detected by a single test vector.
 Two faults are compatible if their
components are compatible.
 A set of faults is independent (IFS) if no
two faults can be detected by the same
test vector.
 A set of faults is compatible (CFS) if all
faults can be detected by the same test
vector.

11-Oct-03
yosais
8
Independent Fault Clustering
Algorithm Description
Fault simulate T without fault dropping.
 Match essential faults:



Extract atomic component cf from t.
Map to cf CFS.
Find IFSs.
 Match remaining faults:



11-Oct-03
Extract atomic component cf from t  Tf.
Map cf to CFS.
yosais
9
Independent Fault Clustering
Illustrative Example
Test Vector
v1
v2
v3
v4
v5
v6
11-Oct-03
0xx11x0x10
10x1xxxx00
0xx0xxx00x
111xxxx0x0
xx000x11x1
x0x01xxx1x
Fault
Detected
Fault Component
f1
xxx1xx0xxx
f2
0xxx1xxxx0
fe3
0xxxxx0x10
f1
x0x1xxxxxx
fe4
1xxxxxxx00
fe5
10x1xxxxxx
fe6
0xx0xxxxxx
fe7
xxxxxxx00x
f2
x11xxxxxx0
fe8
11xxxxx0xx
f9
xx000xxxxx
fe10
xx0xxx11x1
f9
xxx0xxxx1x
fe11
x0x01xxxxx
yosais
10
Independent Fault Clustering
Illustrative Example
After Mapping
Essential Faults
After Mapping IFSs
After
Merging
Components
Cluster
Fault
Fault
Component
Fault
Fault
Component
Test Vector
1
f3
0xxxxx0x10
f3
0xxxxx0x10
00x01x0x10
f6
0xx0xxxxxx
f6
0xx0xxxxxx
f11
x0x01xxxxx
f11
x0x01xxxxx
f2
0xxx1xxxx0
2
3
4
11-Oct-03
f4
1xxxxxxx00
f4
1xxxxxxx00
f5
10x1xxxxxx
f5
10x1xxxxxx
f7
xxxxxxx00x
f7
xxxxxxx00x
f1
xxx1xx0xxx
f8
11xxxxx0xx
f9
xx000xxxxx
f10
xx0xxx11x1
f8
f10
11xxxxx0xx
xx0xxx11x1
yosais
IFS1={f1,f9}
IFS2={f2}
10x1xx0000
11000xx0xx
xx0xxx11x1
11
Class-Based Clustering
Preliminaries

Conflicting Component (CC)
A component c of a test vector t belonging to a
test set T is called a CC if it is incompatible
with every other test vector in T.

Degree of Hardness of a Test Vector
A test vector is at the nth degree of hardness if
it has n CCs.

Class of a Test Vector
A test vector belongs to class k if its degree of
hardness is k.
11-Oct-03
yosais
12
Class-Based Clustering
Preliminaries

Movable CC
A CC ci is movable to a test vector t if the
components in t incompatible with ci can be
moved to other test vectors.

Candidate Test Vectors
Set of test vectors to which the CC ci can be
moved.

Potential Test Vector
A test vector whose CCs are all movable.
11-Oct-03
yosais
13
Class-Based Clustering
Algorithm Description









Fault simulate T without fault dropping.
Generate atomic components.
Remove redundant components using fault
dropping simulation.
Classify test vectors.
Process class ZERO test vectors.
Re-classify test vectors.
Process class ONE test vectors.
Re-classify test vectors.
Process class i test vectors, where i > 1.
11-Oct-03
yosais
14
Class-Based Clustering
Component Generation

For every test vector t:

For every fault detected by t:

If f is essential
 Extract atomic component cf from t.

Else
 Decrement the number of test vectors detecting f by
one.
Component of a fault is extracted from
a test vector that detects a large
number of faults.
11-Oct-03
yosais
15
Class-Based Clustering
Blockage Value
NumComp
TVB (t )


Blockage value
of component ci
CB (ci )
i 1
CB (ci )
11-Oct-03



Min CB (ci , t j )
yosais
Number of
class ZERO test
vectors blocked
when ci is
moved to tj.
16
Class-Based Clustering
Blockage Value
Components of a test vector whose
blockage value is ZERO can be moved
without blocking any class ZERO test
vector.
 Blockage value MUST be updated after
moving components.
 Update Rules:




11-Oct-03
If Scomp of a component is modified.
If a test vector receives new components.
If ci is in conflict with cj, Scomp(cj) modified, and
Scomp(cj) = 1.
yosais
17
Class-Based Clustering
Illustrative Example
Test
Vector
Class
Fault
Component
Set of
Compatible
Test Vectors
v1
0
f3
0xxxxx0x10
{v6}
v2
0
f1
x0x1xxxxxx
{v1,v5}
f4
1xxxxxxx00
{v4}
f5
10x1xxxxxx
{v5}
f6
0xx0xxxxxx
{v1,v5,v6}
f7
xxxxxxx00x
{v2,v4}
f2
x11xxxxxx0
{v1,v3}
f8
11xxxxx0xx
{}
v3
v4
11-Oct-03
0
1
v5
0
f10
xx0xxx11x1
{v6}
v6
0
f9
xxx0xxxx1x
{v1,v4,v5}
f11
x0x01xxxxx
{v1,v3,v5}
yosais
18
Class-Based Clustering
Illustrative Example
Test
Vector
Class
Fault
Component
Set of
Compatible
Test Vectors
v2
0
f1
x0x1xxxxxx
{v5}
f4
1xxxxxxx00
{v4}
f5
10x1xxxxxx
{v5}
f6
0xx0xxxxxx
{v5,v6}
f7
xxxxxxx00x
{v2,v4}
f2
x11xxxxxx0
{v3}
f8
11xxxxx0xx
{}
v3
f7
f6
11-Oct-03
v4
0
1
v5
1
f10
xx0xxx11x1
{}
v6
1
f9
xxx0xxxx1x
{v4,v5}
f11
x0x01xxxxx
{v3,v5}
f3
0xxxxx0x10
{}
yosais
19
Class-Based Clustering
Illustrative Example
f4
f5
f1
11-Oct-03
Test
Vector
Class
Fault
Component
Set of
Compatible
Test Vectors
v2
0
f1
x0x1xxxxxx
{v5}
f4
1xxxxxxx00
{v4}
f5
10x1xxxxxx
{v5}
f2
x11xxxxxx0
{}
f8
11xxxxx0xx
{}
f7
xxxxxxx00x
{v2}
v4
2
v5
1
f10
xx0xxx11x1
{}
v6
1
f9
xxx0xxxx1x
{v5}
f11
x0x01xxxxx
{v5}
f3
0xxxxx0x10
{}
f6
0xx0xxxxxx
{v6}
yosais
20
Class-Based Clustering
Illustrative Example
Test
Vector
Class
Fault
Component
Set of
Compatible
Test Vectors
v4
4
f2
x11xxxxxx0
{}
f8
11xxxxx0xx
{}
f7
xxxxxxx00x
{}
f4
1xxxxxxx00
{}
f10
xx0xxx11x1
{}
f1
x0x1xxxxxx
{}
f5
10x1xxxxxx
{}
f9
xxx0xxxx1x
{}
f11
x0x01xxxxx
{}
f3
0xxxxx0x10
{}
f6
0xx0xxxxxx
{}
v5
v6
11-Oct-03
3
4
yosais
21
Test Vector Reordering
Bottlenecks
Algorithm: Rorder


Using non-fault dropping fault simulation, set of all faults
detected by each test vector is recorded.
Repeat the following steps until no test vector is left in T:




Select a test vector ti from T such that ti detects the largest number
of faults.
Remove ti from T and append ti to the end of the ordered test set T*,
which is initially empty.
For each test vector tj in T, remove the faults detected by ti from the
set of faults detected by tj.
Return T*.
● Fault simulation without fault dropping is time consuming.
● Memory requirement is high since all faults detected by every
test vector are recorded.
11-Oct-03
yosais
22
Test Vector Reordering
Recently Proposed Solution

Double detection fault simulation

A fault is dropped once it is detected twice.


Not all faults are considered by a test vector.


Memory is always 2xF.
Impact on quality of final test sets

11-Oct-03
Significant reduction in fault simulation time.
If average number of test vectors detecting a fault is
much greater than two.
yosais
23
Test Vector Reordering
Our Proposed Solution to Time Problem

Use of CRItical Path Tracing (CRIPT) as a
fault simulator.

Cost of fault simulation without dropping is the
same as that of fault simulation with dropping.


Experimental results reported by the inventors show
that CRIPT is faster than concurrent fault simulation.
CRIPT does not solve the memory problem
although it considers less faults.
11-Oct-03
yosais
24
Test Vector Reordering
Our Proposed Solution to Memory Problem

For i = 1 to n:




Run CRIPT. Do not store faults. Store only the
number of faults detected by every test vector.
Select the best m test vectors.
Drop all faults detected by the selected test
vectors.
Run algorithm Reorder. Use CRIPT as a
fault simulator.
11-Oct-03
yosais
25
Experimental Results
Benchmark Circuits
Cct
# Inputs
# Outputs
# Gates
# TVs
# CFs
# DFs
FC
c2670
233
140
1193
154
2747
2630
95.741
c3540
50
22
1669
350
3428
2895
84.452
c5315
178
123
2307
193
5350
5291
98.897
s13207.1f
700
790
7951
633
9815
9664
98.462
s15850.1f
611
684
9772
657
11725
11335
96.674
s208.1f
18
9
104
78
217
217
100
s3271f
142
130
1572
256
3270
3270
100
s3330f
172
205
1789
704
2870
2870
100
s3384f
226
209
1685
240
3380
3380
100
s38417f
1664
1742
22179
1472
31180
31004
99.436
s38584f
1464
1730
19253
1174
36303
34797
95.852
s4863f
153
120
2342
132
4764
4764
100
s5378f
214
228
2779
359
4603
4563
99.131
s6669f
322
294
3080
138
6684
6684
100
s9234.1f
247
250
5597
620
6927
6475
93.475
11-Oct-03
yosais
26
Experimental Results
Results by RM, GC, and IFC
Cct
ROF
RM
# TVs
# TVs
# Comp
# TVs
Time (sec.)
# TVs
Time (sec.)
c2670
106
100
761
99
8.03
96
6.95
c3540
83
80
657
83
9.08
83
8.98
c5315
119
106
1491
117
34.95
103
31
s13207.1f
476
252
3516
248
339.93
243
169
s15850.1f
456
181
4135
169
463.95
144
249
s208.1f
33
33
94
33
0.009
32
0.93
s3271f
115
76
1212
69
14.97
61
7.02
s3330f
277
248
1263
233
11.01
208
9
s3384f
82
75
1048
73
15.01
72
7.97
s38417f
822
187
12215
173
5327.3
145
2072
s38584f
819
232
16086
210
9250
145
2590
s4863f
65
59
607
52
24.01
49
25.96
s5378f
252
145
1460
130
34.95
123
23
s6669f
52
42
1286
40
60.01
35
37.91
375
202
2093
185
104.01
172
68.06
s9234.1f
11-Oct-03
GC
yosais
IFC
27
Experimental Results
Results by RM, GC, and IFC

GC computes smaller test sets.



As much as 11.9% smaller compared to RM.
1% for c2670; 9.5% for s38584f; 11.9% for s4863f.
Results by IFC are better compared to RM & GC.



11-Oct-03
Improvement over RM:
3% for s208.1f – 37.5% for s38584f
Improvement over GC:
1.4% for s3384f – 31% for s38584f
Runtime of IFC is better than that of GC.
yosais
28
Experimental Results
Sources of Time Consumption in IFC
Cct
Time (Sec.)
FS
ND
Mat.
EFs
Build
IFSs
Mat.
Rem.
Faults
Total
c2670
0.95
0.06
1.96
3.96
6.95
c3540
0.95
0.07
0.97
7
8.98
c5315
1.93
1.03
4
24.1
31
s13207.1f
15
10
61.97
75
169
s15850.1f
23
15
56.05
151
249
s3271f
0.05
0.93
1.06
5
7.02
s3330f
1.04
0.96
3
3.94
9
s3384f
0.95
0.02
1.97
5
7.97
s38417f
87
74
753
1133
2072
s38584f
89
66
1212
1189
2590
s4863f
0.96
0.98
2.05
21.95
25.96
s5378f
2.04
1.01
5.96
14
23
s6669f
0.96
0.95
8.02
27.04
37.91
9
5.06
11
42.02
68.06
s9234.1f
11-Oct-03


Building IFSs.
Matching nonessential faults.
Non-dropping fault
simulation for large
circuits.
yosais
29
Experimental Results
Results by Iterative IFC
Cct
Iterative IFC
# TVs
# TVs
#
Iterations
Time (sec.)
c2670
96
85
6
42.07
c3540
83
75
3
26.95
c5315
103
86
4
88.04
s13207.1f
243
238
2
473.12
s15850.1f
144
129
1
374.95
s208.1f
32
32
1
0.01
s3271f
61
60
2
18.98
s3330f
208
196
3
30.02
s3384f
72
72
1
7.07
s38417f
145
120
2
3775.06
s38584f
145
124
3
8217.08
s4863f
49
42
3
70.88
s5378f
123
117
6
109
s6669f
35
30
4
175.01
155
4
200.93
s9234.1f
11-Oct-03
IFC
172
yosais
30
Experimental Results
Results by Iterative IFC

Improvement over RM:
3% - 46.6%

e.g. 35.8% for s38417f
Improvement over IFC:
1.6% - 17.2%
11-Oct-03
e.g. 14.5% for s38584f
yosais
31
Experimental Results
Results by CBC (ROF+RM)
Cct
RM
CBC
# TVs
# TVs
After Class 0
After Class 1
After Rem. Classes
Time
(sec.)
c2670
100
94
94
94
10
c3540
80
78
78
78
13.02
c5315
106
96
96
95
29.03
s13207.1f
252
243
243
243
443
s15850.1f
181
147
145
145
476.02
s208.1f
33
33
33
33
0.01
s3271f
76
66
65
65
15.95
s3330f
248
226
223
223
27
s3384f
75
72
72
72
11.02
s38417f
187
146
143
143
5750
s38584f
232
159
153
153
8813
s4863f
59
52
52
52
24.04
s5378f
145
122
117
116
52
s6669f
42
37
37
37
50.1
202
168
166
163
136
s9234.1f
11-Oct-03
yosais
32
Experimental Results
Statistics about Test Sets
Cct
# Elim.
Comp.
# TVs
Class 0
Class 1
Class 1
Potential
Maximum
Degree of
Hardeness
c2670
1869
12
46
0
18
c3540
2263
0
12
0
23
c5315
3758
77
21
0
29
s13207.1f
6219
252
150
0
49
s15850.1f
7283
180
63
4
39
s208.1f
123
0
22
0
15
s3271f
2090
76
39
1
7
s3330f
1595
194
134
5
21
s3384f
2363
3
24
0
3
s38417f
19055
186
24
24
70
s38584f
20386
232
10
10
41
s4863f
4173
58
17
0
9
s5378f
3085
144
17
16
14
s6669f
5426
41
15
0
13
s9234.1f
4414
194
64
2
28
11-Oct-03
yosais
33
Experimental Results
Results by CBC (ROF+RM)
Maximum reduction is 34%.
 2.5% for c3540; 23.5% for s38417f; 34%
for s38584f.

11-Oct-03
yosais
34
Experimental Results
Sources of Time Consumption in CBC
Cct
Time (sec.)
FS
ND
Comp.
Gen
Comp.
Elim.
TV
Block.
Proc.
Class 0
Peoc.
Class 1
Total
c2670
0.05
3
5.03
0.001
0.002
0.01
10
c3540
0.96
5.03
7.02
0
0
0.0001
13.02
C5315
1.01
7.05
16.94
1
1.96
0.004
29.03
s13207.1f
8.01
26.92
123
174
257
0.99
443
s15850.1f
9.01
73.93
177
116
200
6.91
476.02
s208.1f
0.001
0.003
0.002
0
0.00001
0.0001
0.01
s3271f
0.94
2.05
6.93
4
5.02
0.03
15.95
s3330f
1.02
2.03
5.92
7
14.01
2
27
s3384f
0.94
2.06
6.97
0.0005
0.001
0.01
11.02
s38417f
20
588
1102
2310
2919
119
5750
s38584f
25.04
730
1369
4092
5340
256
8813
s4863f
0.06
10.92
12
0.1
1.03
0.0003
24.04
s5378f
1.92
5
19
10
19.03
2.05
52
s6669f
0.06
18.03
25.96
4.93
6
0.002
50.1
s9234.1f
4
12
54.02
24.02
48.03
2.01
136
11-Oct-03
yosais



Component
generation.
Component
elimination.
Blockage value
computation.
Non-dropping
fault simulation
for large
circuits.
35
Experimental Results
Results by CBC (ROF+IFC & ROF+Iter_IFC)
Cct
ROF+IFC
ROF+IFC+CBC
ROF+Iter_IFC
ROF+Iter_IFC+CBC
# TVs
# TVs
Time (sec.)
# TVs
# TVs
Time (sec.)
c2670
96
93
10
85
83
9.97
c3540
83
78
13.95
75
73
13
c5315
103
78
31.96
86
70
33
s13207.1f
243
239
174
238
236
180
s15850.1f
144
134
248
129
126
250
s208.1f
32
32
0.01
32
32
0.01
s3271f
61
59
9.98
60
58
10
s3330f
208
201
11.93
196
188
7
s3384f
72
72
11
72
72
11.96
s38417f
145
122
4684
120
111
3433
s38584f
145
129
5322
124
121
3563
s4863f
49
44
24
42
42
25.96
s5378f
123
113
37.96
117
112
26.97
s6669f
35
35
43
30
30
44
172
156
82
155
143
72
s9234.1f
11-Oct-03
yosais
36
Experimental Results
Results by CBC (ROF+IFC & ROF+Iter_IFC)

ROF+IFC+CBC



ROF+Iter_IFC+CBC



1.1% - 18%
ROF+Iter_IFC+CBC vs. ROF+RM+CBC


Maximum reduction is 18.6%.
7.7% for s9234.1f; 18.6% for c5315.
ROF+IFC+CBC vs. ROF+RM+CBC


Maximum reduction is 23.5%.
16% for s38417f; 23.5% for c5315.
3% - 26.3%
ROF+Iter_IFC+CBC vs. ROF+IFC+CBC

11-Oct-03
1.3% - 14.3%
yosais
37
Experimental Results
Runtimes spent by reordering procedures
Cct
#
TVs
Time (sec.)
Greedy
DD
CPT
CPT+
s13207.1f
633
11.97
14.04
37
74
s15850.1f
657
28
28
166
204
s38417f
1472
807
183
1800
2569
s38584f
1174
702
124
1410
2188
s5378f
359
1.97
1.12
6.01
15
s9234.1f
620
8
11
17
38
● In Greedy, fault simulation
is performed using HOPE.
● In CPT, fault simulation is
performed using CRIPT.
● DD is run for four iterations.
● In CPT+, n = 4 & m = 4.
Effect of non-dropping
fault simulation on the
performance of TVR
procedures.
11-Oct-03
yosais
38
Experimental Results
Memory Required for Circuits
Cct
11-Oct-03
#
Faults
Total Memory (bytes)
Memory
Reduction
(%)
DD
CPT
CPT+
DD
CPT
s13207.1f
9815
19630
1364941
17886
9
98.7
s15850.1f
11725
23450
1546227
29359
0
98
s38417f
31180
62360
9745991
287771
0
97
s38584f
36303
72606
9317334
321100
0
96.6
s5378f
4603
9206
353358
5594
39.2
98.4
s9234.1f
6927
13854
640525
16631
0
97.4
yosais
39
Experimental Results
Fault Coverage Curves for s5378f
11-Oct-03
yosais
40
Experimental Results
Fault Coverage Curves for s38417f
11-Oct-03
yosais
41
Experimental Results
Efficiency of Reordering Procedures
11-Oct-03
yosais
42
Experimental Results
Efficiency of Reordering Procedures
11-Oct-03
yosais
43
Conclusions & Future Research

Contributions



Taxonomy of static compaction algorithms for combinational
circuits.
Test vector decomposition.
Efficient static compaction algorithms.




IFC
CBC
Efficient test vector reordering algorithm.
Future Work




11-Oct-03
Investigate the impact of CRIPT & DD on the quality of
compacted test sets.
Consider reducing the complexity of non-essential fault
matching in IFC.
Improve the current implementation of building the IFSs.
Consider improving the time consuming phases in CBC.
yosais
44
Publications




Aiman H. El-Maleh and Yahya E. Osais, "Test Vector
Decomposition-Based Static Compaction Algorithms for
Combinational Circuits", ACM Transactions on Design
Automation of Electronic Systems, Special issue on
VLSI Testing, pp. 430-459, vol. 8, issue 4, Oct. 2003.
Yahya E. Osais and Aiman H. El-Maleh, "A Static Test
Compaction Technique for Combinational Circuits Based
on Independent Fault Clustering", To appear in Proc. of
the 10th IEEE Int'l Conference on Electronics, Circuits,
and Systems, Dec. 2004.
Aiman H. El-Maleh and Yahya E. Osais, "A Class-Based
Clustering Static Compaction Technique for
Combinational Circuits", Submitted to ISCAS 2004.
Aiman H. El-Maleh and Yahya E. Osais, "On Test Vector
Reordering for Combinational Circuits", Submitted to
ISCAS 2004.
11-Oct-03
yosais
45
11-Oct-03
yosais
46
Class-Based Clustering
Blockage Value
Technique is NOT exact.
 Although v1 has a ZERO blockage value, it
blocks v2.

Test
Vector
Component
Set of Compatible
Test Vectors
v1
c11
{v3}
c12
{v4}
c21
{v3,v4}
v2
11-Oct-03
yosais
47
Worst-Case Analysis
Methodology







Test set, fault list, and circuit structure are given
as inputs.
NT = No. of test vectors in given test set.
NPI = Size of a test vector.
NF = Number of faults in given circuit.
NG = Number of gates in given circuit.
Logic simulation of a test vector requires O(NG)
basic operations.
Fault simulation of a test vector for a single fault
requires O(NG) basic operations.
11-Oct-03
yosais
48
Worst-Case Analysis
Space Complexity of IFC
O(NFNT)
Storing the indexes of test vectors detecting every fault.
O(NPI)
Storing a component when it is generated.
O(NTNPI)
Storing test vectors of compatibility sets.
O(NF)
Memory space required for building IFSs.
O(NT(NF+NPI))
11-Oct-03
yosais
49
Worst-Case Analysis
Space Complexity of CBC
O(NFNT)
Storing set of faults detected by every test vector.
O(NFNPI)
Storing all components.
O(NT)
Storing the indexes of compatible/candidate test vectors for every
component.
O(NT)
Storing blockage values for every component belonging to class
zero test vector.
O(NF(NT+NPI))
11-Oct-03
yosais
50
Worst-Case Analysis
Time Complexity of IFC
O(NFNTNG)
Fault simulation without dropping.
O(NF)
Finding essential faults.
O(NG)
Extracting a single component.
O(NTNPI)
Mapping a single component.
O(N2FN2T)
Computing IFSs.
O(NFlog NF)
Sorting IFSs.
O(NFNTlog NT)
Sorting test vectors detecting every fault.
2
2
• Dominating sources of time consumption:
• Computing IFSs = O(N2FN2T).
• Matching non-essential faults = O(NFNT(NTNPI+NG)).
11-Oct-03
yosais
51
Worst-Case Analysis
Time Complexity of CBC
O(NFNTNG)
Fault simulation without fault dropping.
O(NTlog NT)
Sorting test vectors.
O(NFNG)
Component generation.
O(N2FNG)
Dropping redundant components using fault simulation with dropping.
O(NF)
Merging components.
O(NFNTNPI)
Classification of test vectors.
O(N2FNTNPI)
Computing blockage values for all class zero test vectors.
O(NFNT)
Moving components to appropriate test vectors.
O(NFNTNPI)
Updating Scomp for all components belonging to class zero test vectors.
O(N2FN2TNPI)
Updating blockage values for all class zero test vectors.
O(NFN2TNPI)
Processing remaining class zero test vectors.
O(NT)
Finding class i test vectors.
O(NFNPI)
Computing Scand of a CC belonging to class one test vector.
2
11-Oct-03
yosais
52
Worst-Case Analysis
Time Complexity of CBC
O(NFN2TNPI)
Processing class one test vectors.
O(NFN2TNPI)
Processing remaining classes.
• Dominating sources of time consumption in class zero
algorithm:
• Computing blockage value = O(N2FNTNPI).
• Updating Scomp = O(NFNTNPI).
• Updating blockage values of components = O(N2FN2TNPI).
• Dominating sources of time consumption in CBC:
• Component generation = O(NFNG).
• Component elimination = O(N2FNG).
• Blockage value computation = O(N2FNTNPI).
11-Oct-03
yosais
53
Download