(MIT Press Series in Computer Systems) Hideo Fujiwara-Logic Testing and Design For testability-MIT Press (1985) PDF
(MIT Press Series in Computer Systems) Hideo Fujiwara-Logic Testing and Design For testability-MIT Press (1985) PDF
Hideo Fujiwara
M IT
P r85S
.~"~~_
0262060965
.i .]
t,~ :. : . :
r ,
FUJIWARA
LOGIC TESTING
~
\\\\\\\\\\\\\\
Contents
Foreword
Preface
VII
IX
I LOGIC TESTING
1 Introduction to Logic Testing
I.I
1.2
1.3
1.4
Logic Circuits
Fault Modeling
Testing Problems
Testing Schemes
8
12
18
2 Test Generation
24
2.1
2.2
2.3
2.4
2.5
24
30
45
53
Boolean Difference
The D-Algorithm
The POD EM Algorithm
The FAN Algorithm
Test Generation for Sequential Circuits
70
3 Fault Simulation
84
3.1
3.2
3.3
3.4
3.5
85
89
96
Simulation Methodology
Parallel Fault Simulation
Deductive Fault Simulation
Concurrent Fault Simulation
Hardware Simulators
84
102
109
4.1 NP-Completeness
4.2 Polynomial Time Class
4.3 Closedness under Faults
109
115
120
133
5.1
5.2
5.3
5.4
133
Testability
Minimization of Testing Cost
Combinational Logic versus Sequential Logic
Ad Hoc Design and Structured Design
139
142
144
vi
Contents
150
150
156
161
167
171
171
181
188
192
206
206
213
232
238
238
247
226
9.4 Self-Verification
259
267
Biblio graphy
272
Index
279
Series Foreword
This series is devoted to all aspects of computer systems. This means that
subjects ranging from circuit components and microprocessors to architecture to supercomputers and systems programming will be appropriate.
Analysis of systems will be important as well. System theories are developing, theories that permit deeper understandings of complex interrelationships and their effects on performance, reliability, and usefulness .
We expect to offer books that not only develop new material but also
describe projects and systems. In addition to understanding concepts, we
need to benefit from the decision making that goes into actual development
projects; selection from among alternatives can be crucial to success . We are
soliciting contributions in which several aspects of systems are classified
and compared. A better understanding of both the similarities and the
differences found in systems is needed.
It is an exciting time in the area of computer systems. New technologies
mean that architectures that were at one time interesting but infeasible are
now feasible. Better software engineering means that we can consider
several software alternatives, instead of "more of the same old thing," in
terms of operating systems and system software. Faster and cheaper communications mean that intercomponent distances are less important. We
hope that this series contributes to this excitement in the area of computer
systems by chronicling past achievements and publicizing new concepts.
The format allows publication oflengthy presentations that are of interest
to a select readership.
Herb Schwetman
Preface
With the great and growing use of computers (especially microcomputers) in many aspects of society, it is evident that the
computers must perform more and more reliably. The reliability of a
computer depends much on testing-that is, the determination
whether circuits have been manufactured properly and behave correctly. However, because of the rapidly increasing circuit density in
large-seale-integration and very-large-scale-integration technology,
testing is getting much more difficult. One approach to alleviating
this problem is embodied in "design for testability" techniques, by
which extra circuitry is added to a circuit or a chip to reduce the
complexity of testing. In the past, design problems were approached
with the idea of minimizing the complexity of the hardware. Testing
was considered only after the design of a circuit had been completed.
Recently, however, design for testability has attracted interest in
connection with LSI and VLSI designs, because the cost of hardware
has been decreasing while the cost of testing has been increasing.
There is now a growing interest in design for testability with the
increasing use of VLSI circuits.
This book is intended to provide insight into the theory and
practice of logic testing and design for testability. The book is
divided into two parts. Part I deals with logic testing and part II with
design for testability. Although an attempt is made to include topics
of general importance, many important techniques associated with
logic testing and design for testability are also dealt with . Related
topics include test generation, fault simulation, complexity of testing,
design techniques to minimize the cost of test application and test
generation, scan design, compact testing, built-in testing, and various design techniques for self-testable systems.
The book may be used as a text for a graduate-level course in
electrical engineering or computer science. It should also be helpful
to computer designers, logic designers, and test designers who want a
better understanding of the principles of logic testing and design for
testability and who may apply the techniques to their designs. Researchers who may be interested in going deeper into the study of
logic testing and design for testability will also find the book useful.
I wish to express deep gratitude to H . Ozaki of Osaka University
and K. Kinoshita of Hiroshima University for their encouragement
and support for this work. I am heavily indebted to various persons
Preface
LOGIC TESTING
The development of computers has been stimulated greatly by integratedcircuit technology. Circuit density has increased dramatically, and the cost
of devi ces has decre ased as their performance has improved. With these
developments, reliability has become increasingly important. Ho wever.
with the advent of very-large-scale integration (VLSI), test ing has come up
aga inst a wall of "intractability" and is at a standstill. Since the gate dens ity
of VLSI circuits is increasing much more rapidly than the number of access
terminals. the ability to generate test patterns and to process fault simulations is deteriorating. The difficulty can be reduced by the development of
faster and more efficient algorithms for test-pattern generation or by the use
of design techniques to enhance testability.
1.1 Logic Circuits
The output z of an OR gate with inputs Xl and X2 is 1 ifand only ifany of its
inputs are 1, and can be expressed as
The output z of a NOT gate or an inverter with input X is 1 if and only if its
input is 0, and can be expressed as
Z
= X.
The output z of a NAND gate with inputs X I and X2 is 1 if and only if any of
its inputs are 0, and can be expressed as
Logic Testing
AND
OR
NAND
NOR
NOT
EOR
Figure I.l
Sym b ols for ga tes
Xl
, ,
EEBB
0------0
(a)
0
0
0
I
x2
( b)
Karnaugh
0
0
1
0
,
,
Tr ut h tabl e
Figure 1.2
Represe ntat ion s for a logic fun cti on
X,
x2
0
(c)
--{)o- z=x
map
x3
0
1
A se t of cubes
] x3
X2
Logic circuits can be categorized as combinational or sequential. A combinational (logic) circuit consists of an interconnected set of gates with no
feedback loops. (A feedback loop is a directed path from the output of some
gate G to an input of gate G.) The output values of a combinational circuit
at a given time depend only on the present inputs. Hence, each output can
be specified by a logic function of its input variables. A block diagram for
combinational circuits is shown in figure 1.3, where XI"' " x, are the inputs
and z I ' ... , Zm are the outputs.
A sequential (logic) circuit contains feedback loops. The output values at
a given time depend not only on the present inputs but also on inputs
applied previously. The history of previous inputs is summarized in the
state of the circuit. Figure 1.4 shows a block diagram for sequential circuits.
A sequential circuit consists of two sections: a combinational circuit and a
memory circuit. The circuit of figure 1.4 has n primary inputs X I' ... , x,; m
primary outputs ZI'
, Zm; P feedback inputs YI' ... , YP ; and p feedback
outputs YI , , Yp- YI ,
, Yp are also inputs to the memory, and YI" ' " Yp
are outputs of the memory. The present state of the circuit is represented by
the variables YI, ... , Y p ' and the next state is determined by Y1 , , Yp
The mathematical model of a sequential circuit is called a sequential
machine or a finite-state machine. A sequential machine M is characterized
by the following:
a
a
a
a
a
Logic Testin g
II
Xl
Combinati onal
lZ
Logi c
Circuit
xn
zm
Figure 1.3
Block diagram of combinat ional logic circuits
Logi c
Ci rcuit
~
Yl
,
Yl
. I Memory I ..,
,
Figure 1.4
Block d iagra m of sequent ial logic circu its
x
0
2. 0
3. D
3. D
2.
4, D
1,
1,
4, 0
( a)
1/1
1/ 0
(b)
St a te tab le
St a t e d ia gr am
Figure 1.5
Representat ions for a sequen tial machine
Xl
xl
X
Combina t ional
Logi c
zl
z2
zm
cl oc k
Figure 1.6
Block diagra m for a synch ronous seq uential lo gic circuit
Logic Testing
clock
~
CP
SR
\ I 0: I0: 11~ I l~
(a)
SR flip-flop
JK
=t]=
CP
(b )
CIITJ
00
11
10
J K flip-fl op
-ft-
LGJ
-tj(e)
01
T fli p-fl op
---fl-U(d)
Figure 1.7
Representations for flip-Oops
om
o
0 f li p-f l op
clock
R
Figure 1.8
Realization of the SR flip-flop
Combinational
Logic
,
Zm
Circuit
r
:
f-:~
.p
Figure 1.9
Block diagram for asynchronous sequential logic circuit
clocked. Each feedback line is assumed to have a finite, positive, pure delay,
as is shown in figure 1.9. Proper operation of such an asynchronous circuit
Logic Testing
Base
-{)o--
z ,
(a) Bipolar
re ~ l iz~ t1on
Figure 1.10
Inverter
delays. Those faults that relate to circuit delays such as slow gat es are called
delay fa ults. Usually, delay faults only affect the timing operat ion of the
circuit, which may cause hazards or critical races.
Faults that are present in some intervals of time and ab sent in others are
intermitt ent faults . Faults that are always present and do not occur, disappear, or change their nature during testing a re called permanent fa ults or
solid faults. Although many intermittent faults eventually become solid,
the early detect ion of intermitt ent faults is very important to the reliable
operation of the circuit . H owever, there are no reliable mean s of detecting
their occurrence, since such a fault may disappear when a test is app lied. In
this book, we will con sider mainly logical a nd solid fault s.
Figure 1.1 0 shows an n-p -n tran sistor implementi ng an inverter. When
the input x is a high volt age, the outpu t z is a low voltage; when x is a low
voltage, z is a high voltage. An open collector or base of the transis to r would
cause the output z to be perma nently high, i.e., stuck at I (s-a-I) . O n the
oth er hand, a short circ uit between the collector a nd the emitt er would
cau se z to be permanently low, i.e., stuck at 0 (s-a-O). Th ese faults a re called
stuck-at fault s.
Faults in which two lines are shorted are called bridging faults. The
technology used will determine what effect the bridging will ha ve. Generally, either high or low will dominate. If two output lines are shorted and
low dominates, both are replaced by the AND gate of the two lines, as
shown in figure 1.11.This effect is the same as the Wired-AND usually used
in TTL gates. (Figure 1.1 2 shows the Wired-AND logic used in TTL gates.)
10
Logic Testing
f
9
z
w
(al
Figure 1.11
AND-type bridging fa ult
x
y
z
W
o----J
Figure 1.12
Wired-AND used in TTL gates
( b)
(a)
11
N - 16
toctc syrrbol
Voo
0y
'1
CD
'2
i(
M)S
Figure 1.13
CMOS two-input NAND gate
__ e-.1
C,',
C/
-,
z-"}.)"
I
realization
y\J UC-r
~\
!J\\
_'.~ __
',--,
(b)
i7
r~" u !-f
z--
:r\' L,
V dci
, J,i~
ra
}lLl.'-, ~~
/11';"",(. ",)
If high dominates, both of the lines are replaced by the OR gate of the two
lines. The ECL gate has the feature that the OR of the outputs can be
realized simply by tying together these outputs. Hence, in logic circuits
implemented by ECL gates, bridging faults cause the affected signals to be
ORed.
For most practical purposes, logical faults are successfully modeled by
stuck-at faults or bridging faults. However, not all faults can be modeled by
these classical faults. This is illustrated by the following examples. Figure
1.13 shows a CMOS two-input NAND gate with p-MOS and noMOS
FETs. The output z is a low voltage if and only if both inputs Xl and X 2 are
high. In figure 1.13, four possible open faults (numbered I through 4) are
indicated. The first fault, numbered I, is caused by an open, or missing, pchannel x,-input pull-up transistor. Under this fault, when the input x, is
low and the input X2 is high, the output z becomes an undesired, highimpedance state and retains the logic value of the previous output state. The
length of time the state is retained, however, is determined by the leakage
current at the node. (Table 1.1 is the truth table for the two-input CMOS
NAND gate for both the fault-free condition and the three faulted
Logic Testing
12
Table 1.1
0
0
I
1
x,
normal
open at <D
open at C!l
open at G) or @
I
0
I
0
1
1
Previous state
Previous state
1
1
Previous state
X IX2
will shrink to
(a)
-os
".1
13
J:
~~
- /
'~
xl
x2
~1
x2
x3
(b )
Figure 1.14
Programmable logic array
14
Logic Testing
s-d-1
A~D
o c
(a)
::f)
Figure 1.15
T est for stu ck-at fa ult
15
Figure 1.16
A/o
+ p/ )
Table 1.2
X,
z
I
~c>I )
'l-':
:; '~
".1'-
r\J :~ J\"; S
e/J
E/l F/ l
I
-I
c ","",Y' o f
ie
stuck-at faults. F or mu ltiple faults, the number of possible fauJts increa ses
k
~1<.~ 5 '......A- 1A-/'~ "' 1 ~ ,
dramatically to 3 - I,'smce any' line may be fault-free, s-a-O, or s-a-L A
circuit with 100 Jines would contain ap pro ximately 5 x 1047 faults. This
wou ld be far too many faults to assume, and hence test ing for mu ltiple faults
wou ld be impractical. H owever, for mo st a pproaches the model of a single
stuck-at fault has proved to provide the best practical basis. For example,
every co mplete single-fa ult-detection test set in any internal fanout-free
combinational circuit is known to cover at least 98 percent of a ll multiple
fau lts made up of six or fewerfaults (Agar wal and Fung 1981).
Since several differen t fa ults often may cau se a circu it to malfunction in
preci sely th e same way, it is convenient 10 gro up these equivalent f aults (or
indistinguishable f ault s) into equivalence classes. In the circuit sho wn in
figu re 1.1 6, the re are six signal lines (nets); hence, there are at most twelve
possible single stuck-a t fault s. Ta ble 1.2 illustr ates a tru th tabl e with
columns listing all possible single stuck-at fa ults and rows indicating all
inpu t patterns, wher e a line A stuck-at-O fau lt, for example, is den oted as
Aj O. As can be seen fro m table 1.2, the malfunction s caus ed by AjO, BjO, Ej O,
OJ!, and Fj l are all the same, so they a re grouped together in a fault
eq uivalence class. Similarly, CjO, D jO, an d Ejl a re gro uped to gether, as
shown in table 1.3. A fault is called redundant if its presence causes no
malfuncti on . In other words. the o utput function of a circ uit with a red un-
16
Logic Testing
Table 1.3
Fault equivalence classes
10
I,
I,
13
I.
I,
rJ~)j,/b/7J
z (fault-free), C/I
A/I
B/l
Table 1.4
Fault table for representative faults
x,
o
o
1
I
I,
x
x
x
x
I,
13
x
x
C)
I 0
/ I
dant fault is exactly the same as that of the fault-free circuit. In the circuit of
figure 1.16,fault ell is redundant, as table 1.3 shows.
In fault detection and location, only the faults that are picked out as
representative faults from each fault equivalence class need be considered,
since any two equivalent faults are indistinguishable from input-output
behavior only. Table 1.4, which is a fault table for five representative faults
of table 1.3, indicates precisely which test pattern will detect each fault.
Finding a fault-detection test set is simply a matter of defining a set of rows,
each indicating a test pattern, so that each column indicating a fault class
may have an "x" in one of the rows. For this example we obtain {OO, 10, II}
as a fault-detection test set. A fault diagnostic test set is obtained by defining
a set of rows so that no pair of column patterns corresponding to the rows
may be the same. From table 1.4 we have {00,01, 10, II} as the diagnostic
test set.
The testing of logic circuits is performed in two main stages: generating
test patterns for a circuit under test (the test generation stage) and applying
the test patterns to the circuit (the test application stage). Thus, the generation of test patterns is important; however, it is very difficult for large (e.g.
17
LSI and VLSI) circuits, so mo st of the effort of the past 20 years in this field
went into research and de velopment on efficient and economical testgeneration procedures.
The quality ofa test (a set or a sequence of test patterns) depends much on
the fault coverage as well as the size or length of the test. The fault coverage
(or test coverage) of a test is the fraction of faults that can be detected or
located with in the circu it under test. The fault coverage of a given test is
determined by a process called fault simulation, in which every given test
patterns is applied to a fault-free circuit and to each of the given faulty
circuits, each circuit behavior is simulated, and each circuit response is
analyzed to find what fault s are detected by the test pattern. Fault simulation is also used to produce fault dictionaries, in which the information
needed to identify a faulty element or component is gathered.
Summary
The test-generation process includes fault modeling and reduction, testpattern generation, fault simulation, fault-coverage evaluation, and the
production of a fault dictionary. The first step consists of developing a fault
dictionary for the circuit (that is, modeling the fault s th at are assumed) and
reducing the number of faults in terms of the fault equivalence relation.
Usually, the "single stuck-at fault" model is adopted, and the fault dictionary is generated directly from the logic-circuit description by arranging the
distinguishable faults for each gate in tabular form . Next, test patterns are
generated to test for the set of faults listed in the fault dictionary. The test
patterns are then simulated against the faulted circuits in the fault dictionary, and the fault coverage is evaluated from the results of the fault simulation (which include lists of tested and untested fault s). If the fault coverage
is inadequate, then the process of test-pattern generation and fault simulation is repeated for the untested faults until an adequate fault coverage is
achieved. Finally, the fault dictionary is completed by specifying enough
information to detect and locate the faults.
To be practical and cost-effective, the above test-generation process is
generally automated in the form of a collection of application software. In
particular, the test-pattern generation and the fault simulation should
interact effectively to give a high level of fault coverage at a low computation cost. The application of LSI and VLSI requires more efficient automatic test generation (ATG) systems.
Logic Testing
18
Inadequate
Figure 1.17
19
off-line. Oll-lille tesrillg is execu ted duri ng system run time, con current with
norm al computer opera tio n. Data patterns from normal computat ion serve
as test patterns, an d a failure cau sed by some fault can be detected by builtin monitoring circuits. Since testing and no rmal computation ca n proceed
20
Logic Testin g
I nput s
Outputs
Test
Checker
Pass/Fa il
Figure U S
On-line testing using informa tion redundancy
Ci r cuit
Unde r
I nput s
r
I
Outputs
Tes t
L--.!-
Referenc e
Circu it
..
,
( compar e
Pass/Fail
Figure 1.19
On -line testing using ha rdware redunda ncy
code word, neve r an inco rre ct code word. In other words. the output of the
faulty circuit ca nnot be a code word and, at the same time, be different from
the correct output. T hus. as long as the ou tput is a code word, it ca n sa fely
he assumed to be correct. On the ot her han d, a cir cuit is self-testing for a set
of fau lts F if, for any fault fin F, th ere exists an allowable code inpu t th at
de tects f (i.e., th e resulting output is a non code word). In ot her words, the
inpu t set co ntains at leas t one test for every faul t in th e prescribed set. A
totally self-checki ng circuit is bo t h fault-secure and self-testing for all fau lts
und er consideration. He nce, a tota lly self-checking circui t ca n gua rantee
t hat any fault in the circuit cannot cause an error in the o utp ut without
det ection of the fault.
O ne of the most effective approaches to on-line testing using hardware
redundancy is dua l redundancy; t hat is, straightforward d uplica tio n of t he
resource being tested . Figure 1.19 shows this d up licatio n scheme for built-in
21
Reference va l ue
Test
Circuit
Pattern
Under
Source
Test
IComparator I
Good/Faulty
Figure 1.20
General test ing scheme
testing. Although full duplication is the upper bound on hardware redundancy for fault detection and thus requires more hardware than other
hardware-redundancy approaches, the duplication scheme can eas ily be
adopted at any part of the computer system and at any level within the
computer hierarchy.
In the external-testing approaches, the circuit under test (CUT) is tested
with automatic test equipment (ATE) in which a sequence of test patterns are
applied to the CUT and the responses of the CUT are compared against
reference values (correct responses). Figure 1.20 shows the general scheme
of testing. Test patterns and reference values are produced by either
software-based or hardware-based methods. In the software-based scheme,
test patterns and correct responses are generated in advance and stored in
memory. Test patterns are produced either manually, by a design or test
engineer, or automatically, by test-generation programs. In contrast, both
test patterns and reference values can be produced each time a CUT is
tested by hardware-implemented algorithms. In these hardware-based
schemes, test patterns are usually generated randomly or pseudorandomly
and simultaneously applied to the CUT and a known good circuit, called a
gold circuit. The output responses of the CUT are then compared with those
of the gold circuit. This type oftesting method (figure 1.21)is called random
testing, and in contrast the former software-based testing is called deterministic testing. Deterministic testing requires costly or time-consuming test
generation and memory to store huge amounts of test data, where as
random testing eliminates the cost and the time requirement of generating
or storing test data. However, random testing has disadvantages: The need
for a gold circuit may be bothersome, and the reliability of the gold circuit is
not guaranteed. Synchronization of the two circuits and fault coverage of
random test patterns may also cause problems.
In the above-mentioned testing schemes, the total responses are com-
Logic Testing
22
Circu it
Under
Test
Random
Good/ Faul ty
Pattern
Ge ner a to r
Gold
Ci rc uit
Figure 1.21
Random testi ng
Test
Circuit
Patternr----~~
Under
Source
Test
Data
Good/Fau1 ty
Compressor
Figure 1.22
Co mpact testin g
From
CUT
Figure 1.23
A 16-bit linear feedback shi ft register (Fr ohw erk 1977). Cop yright 1977 Hewlett-P ackard
Co mp any . Repr oduced with per mission .
23
pared with the correct reference values, which are usually high volumes.
This difficulty of analysis and storage of huge amounts of response data can
be avoided through an approach called compact testing, in which, rather
than the total responses, compressed response data are used for com-
parison. Figure 1.22 shows the general scheme for compact testing. The
model of figure 1.22 allows wide variations in the methods for test-pattern
generation and data compression. In a global sense, compact testing
methods may be classified as either deterministic or random in connection
with the techniques used to generate test patterns. The data compressor can
be implemented with simple circuitry, such as counters and linear-feedback
shift registers. Since compact testing requires little test equipment, it is
Test Generation
Test Generati on
25
and is denot ed by
dF(X)
~o
F,(1)
(I)
dF(X)
d;;-
dF(X)
= dXj
(2)
d dF(X) . d dF(X)
dXi
dXj
'- dXj
dX j
(3)
,
(4)
d [F(Xl + G(X)]
dx,
(5)
_dF(_X) Ei1 _
dG(_X) .
(6)
Ex ample 2.1
=
X 1X 2
dx,
dx,
Cons ider the circuit show n in figure 2.1. The output is F(X)
Logic Testing
26
dF
dX 1
d(G) + G2 )
dX 1
[by eq. 5]
.
dG2
[ SInce dX
[by eq. 4]
.
dX 1
dX2
]
[ since -dX1 = 1 and -dX 1 = 0
= x2
Consider F(x I ' . x n) as an output function of a combinational circuit.
Let 0: be a fault in wh ich input Xi is s-a-O. The function realized by the faulty
circ uit is
= F;(O).
The test pattern th at detects the fault ex is an input combination or vector X
th at satisfies
= 1.
27
Test Generation
Figure 2.1
x j ( Fj (1 ) EB Fi(O))
dF(X)
-
dXi
=X i -
=
{ x. x. dF(X)
dx,
,
Xi
s-a-O is
l}
_ dF
<z:
Xj
Example 2.2 Consider the circuit of figure 2.1. The output is F(X) =
X I X2
+ X2XJ' The set of tests that detect the fault Xl s-a-O is calculated as follows:
Thus, the set of all tests that detect this fault is defined by the Boolean
expression
28
Logic Testing
Figure 2.2
Internal sign al line
This means that the fault Xl s-a-O causes an erroneou s signal Xl and this
erroneous signal affects the output value of F only if X I X 2 = 1, that is, only
if X t = 1 and X2 = 1.
In general, faults can exist not only on external or primary inputs but also
on signal lines that are internal to the circuit. The Boolean difference can
also be used to derive tests for stuck-at faults on internal signal lines. For the
clfcuit of figure 2.2, let F(X) be the output function of the circuit and let h be
an internal signal line. We can express h as a function of X: h(X). We can
express the output function F as a function of X and It by considering It as an
input. Let this function be F*; that is,
Similarly, the set of all tests that detect the fault It s-a-l is defined by the
Boolean expression
J (X).
1
dF*(X. Ii)
dlt'
Example 2.3
For the circuit offigure 2.1, consider the fault h s-a-I, where It
is an input of Gz . The output function
Test G eneration
29
Figure 2.3
F*(X,h) ~
X,X ,
X2' x 3
and II:
+ hx ,
dF*(X,h)
dh
= XI X,
=
Ell (x , x, + x, )
{'ii , + x,)x, .
The set of all tests that detect the fault h s-a-l is defined by the Boolean
expression
-( I) . dF*(X, h)
,X
dh
(
= x, = 1.
Example 2.4 Con sider the circu it of figure 2.3. The output is F(X) = x,
+ X, X , = x, + X , . Compute the set of all tests that det ect thefaul t h s-a- L
where h is an input of G, as show n in figure 2.3. F can be expressed as a
function F* of X and 1J:
F*(X,h ) = x , + hx"
where h(X) = x, , Th us,
dF*(X, h) _
_
dh
= x, Ell(x ,+x,)
Logic Testing
30
The set of a ll tests tha t detect the fault Iz s-a- I is defined by Boolean
exp ression
- . dF*(X, Iz)
Iz(X)'
dlz
=xtx ,x,
= 0.
This mean s that no test patterns exist for the fault Iz s-a-I ; tha t is, the fault h
s-a- l is redun dant.
Th e effect of two fau lts a t the inpu t of a logic circuit on its o utput can be
a na lyzed by defining the doubl e Boolean d ifference as
by Sellers et al. (I968a). T he Boolean -difference ap proach can be cha racterized as algebraic in tha t it manipula tes circu it equa tions to gene rate
tests for a given fault, they ha ve the disad van tage of requiri ng a la rge
quantity of time and memory. which may make them imp ractical for large
circuits.
31
Figure 2.4
Single-path sensitizat ion
Example 2.5 For the circuit of figure 2.5, in order for the fault Xl s-a-Oto be
detected, Xl must be 1 and the error signal must be propagated along some
path. We have a choice of propagating the error signal to the output Zl via a
path through G l , Gs and G7 or through Gl , G4 , G6 , and G7 To propagate
through G l requires that X 2 be I. To propagate through Gs and G7 requires
the output of G3 to be I and the output of G6 to be O. This implies that the
output of G2 must be 0, and thus X3 = 0 or X 4 = O. Consequently, we have
two tests: X lX 2 X3 and XlX2X4' In these tests a difference between normal
LogicTesting
32
x1 _ _--r-__..
x2 - -
,,---
)---,...------1----..
3 _ _r--......
x4
--""'----~
r-~----L-----'
Figure 2.5
. . - - - - - - - - - - - - - - 1 -.. . .
X2
G
4
--+---I--..--r-----
x4 --+-~~-+--------;
Figure 2.6
Xl
Test Generation
33
o
Xl
x, -o-4-- - h -r-----,
x ":'---t-- -4-L---I
3
x4
...:1-4_ .-_ !-
--i.---I
o
Figure 2.7
Multiple-path sensitizatio n
pa th G. G, must also fail. This incon sisten cy seems to imply th at the fau lt
cannot be detected. However, th e input pattern x, = X , = x, = x. = 1
provides a test for the fault in qu estion. Figur e 2.7 shows the behavior of
bot h normal and fault y circu its for this inp ut. In this figure, we notice that
the effect of the fault has been propagate d simultaneou sly along two paths.
The single-path sensitizat ion method failed to derive the test because it
allowed only one path to be sensitized at a time. Therefore, in order to
guarantee finding a test for a fault if one exists, we must con sider the
sensitization of all possible paths from the site of the fault to the circuit
outputs simultaneously. This mult iple-path sensitization approach, called
the D-algorithm, was first formu lat ed by Roth (1966; see also Roth et al.
1967).T he D-algorit hm is formalized in terms ofa cubica l algebra ca lled the
D-calculus. Before describing the algorithm, I will introduce three types of
cube s a nd the D-ca leulus.
For a gate G which realizes the logicfunction f, the singular cover of G is
a set of the prime implicant s off and 1 Each pri me implica nt of the singular
cover is called a singular cube. For example, cons ider the two-input AND
gate sho wn in figure 2.8. The prime implica nt of f is x , x" a nd the prime
impl ican ts of J are X, a nd x,. Thus, the singula r cover of the AN D gate is
th at shown in figure 2.8.
A primitive D-cube of a f ault (pdcf) is used to expre ss tests for a fault in
terms of the input and output lines of the fau lty ga te. As an example,
34
Logic Testing
Xl
X -r\
~f
2~
3
1
Figure 2.8
A two-in put AND gate and its singula r cover
s-a- O
o
Figure 2.9
A fault and its pr imitive D-cube
consider the AND gate with an output s-a-O fault shown in figure 2.9. To
test the fault it is necessary to set 1 on the output line, and thus lines 1 and 2
must be forced to value 1. Then line 3 will ha ve value 0 if the fa ult is present
and value I ifit is absent. Hence, the corresponding primiti ve D-cube of the
fault is
2
where D mean s value 1 in the normal circuit and valu e 0 in the fault y circuit.
Similarl y, D will be used to represent a signal that has th e value 0 in the
normal circuit and I in the faulty circu it. Note that all appearances of D in a
cube ar e con strained to take the sam e value. Thus, the cub e DOD represents
the two cubes 001 and 100. On the contrary, the symbol X indicates "don't
care" and ma y take th e values 0 and 1 independent of other values. Thus,
the cube XOX represents the four values 000, 001, 100, and 101.
The primitive D-cubes of a fault are constructed by intersecting pairs of
singular cubes from the singular covers of the faulty and fault-free gat es. Let
the singular cubes for which the output of the fault-free ga te is 1 (0) be
denoted by (Xl (eto). Let the singular cubes for which the output of the faulty
gate is 1 (0) be denoted by PI (Po). The primitive D-cubes of the fault that
result in output D can be obtained by intersecting the inputs of eac h cube in
~ I with those for each cube in Po . Similarly, th e prim itive D- cub es of the
fault resulting in output D can be obtained by intersecting cubes in eto and
PI.
35
(.)
"I
"0
( b)
;]
'1
ii
ii
1 0.0 n 61
'0
(e)
( d)
FiCure2.10
A fault and its primitive D-cubes
Example 2.6 Suppose there is a fault that transforms an AND gate into an
OR gate. T he singular covers of the fault-free and faulty gates a re shown in
figure 2.10. By intersecting each pair of cubes from ~, and Po. and ~o and P"
we obtain the primitive D-cubes of the fault as shown in figure 2.IO(d). The
first cube is derived by intersecting the inputs of the first cubes of ~o and P,
and placing i5 at the output. The second cube is obtained similar ly from the
second cubes of ~o and PI . The inte rsection of the inp uts of ~I and Po is
empty.
For the purpose of generating tests for faults that can be detected by
primary outputs of the circuit. there arc propagation D'-cubes of a gate,
which specify the minimal input co nditions to the gate that arc required to
propagate an error signal on an input (or inputs) to the output of that gate.
Roth (1966)calls these cubes "primitive D-eubes of a logical block ." Pro pagat ion D-eubes can be derived from the singular cover as follows. For each
pair of cubes in the singular cover that have different output values,
intersect them by the following rules:
36
Logic Testing
~~
AND
(a)
2
a,
0
0
(c)
(b)
Figure1.11
A two-input AND gate and its singular cover and propagation D-cubes
The propagation D-cubes for a two-input AND gate are given in figure
2.11(c). The D-cube DID represents the two cu bes III in the normal circuit
and 010 in the faulty circuit. Thus, the D-cube speci fies an input condition
to propagate an error signal on line I through the gate to line 3.
Propagation D-cubes for multiple input errors can be obtained similarly.
For example, consider the propagation of double error sign als on input
lines 1 and 2 of the AND gate in figure 2.11. When both lines 1 and 2 have
value 1 in the normal circuit and 0 in the faulty circuit, output line 3 will take
1 in the normal circuit and a in the faulty circuit. Thus, the pr opagati on Dcube becomes
1
D D D
This D-cube can be obtained by intersecting the cubes 111 and OOO,just as is
done for single-error propagation D-cubes. Similarly, by intersecting 000
with III we obtain
D fj
15
Test Generation
37
Table 2.1
Coordinate D-intersection
0
1
D
[j
>j;
>j;
1
I
>j;
>j;
>j;
>j;
D
[j
>j;
[j
>j;
>j;
[j
>j;
[j
1
D
D
1
D
D
1
D
D
D
D
D
D
D
1
I
D
D
D
I
D
D
D
1
D
D
D
D
Let C( and j3 be two D-cubes. The Ir-intersection C( (') j3 is defined using the
coordinate D-intersection in table 2.1 and the following rules:
C(
n j3
C(
n j3
C(
For example,
OXDlxnXDDll ~ ODDll,
OXDIXnlODXX=0,
OXDlX nOODDX = 1jJ.
Logic Testing
38
2
Figure 2.12
to line 5, we D-intersect the rele vant propagation Dvcubes for the two
NAND gates as follows :
D D
D 1
D D
This cube represents a test sen sitizing a path from line [ to line 5.
Now we can specify the D-algorithm, since the necessary preliminaries
have been defined. The flowchart of the D-algorithm is given in figure 2.13.
Each box in the flowchart will be explained in the followin g.
We begin by initializin g a test cube to be completely unspecified. We label
th is test cube 0 (tcO). Then, we select a primiti ve D- cube of the fault in
quest ion . For example, consider the circuit offigure 2.14 a nd the line 6 s-a-l
fault. The primitive D-cube of the fault is
2
36
D
Usually a choice exists , since more than one primiti ve D-cube of the fault
exist. For example, for the line 6 s-a-Ofault we have two primitive D -cubes:
236
In such a case we select a cube a rbitra rily, but we may need during the
execution of the algorithm to return and consider another possible choice.
This is called backtrackin g. Backtracking may have to be iterated un til all
choices have been considered.
In box 3 of figure 2.13 the selected D-cube is D-intersect ed with the test
cube tc'', In our example, the D-intersection of tc? with the pr imitive Dcube of the line 6 s-a-l fault is
2
36
D
Test Generation
39
( Start
t
i nconsi stent
I
none
ex; s ts
/ No test
exists
Is there a o or 0
on any primary
output?
no
yes
illJ;)ossible
Backtrack to the
last point a choice
ext sted
none
exists
Figure 2.13
Flowchart for D-algorithm
I line justification
done
I)
Lo gic Testing
40
G4
8
GS
2
12
11
Figure 2.14
Test Generation
41
D-drice. The set of all gates who se ou tput values are unspecified but whose
inpu t has some signa l D or 15 is called the Ir-frontier. For our example, the
D-frontier of the test cube tc? is {G s , G6 } . D-drive first selects a gate in the
D-frontier. Then D-intersection of the current test cube with a propagation
D-cube of the selected gate is perfo rmed. For our example, suppose we
select gate Gs in the D-fron tier and a propagation D-cube
pdc '
15
=X
pdc' = 1
tc ' = tcOnpdc l = 1
10 11
12
tc '
SCi
tel
= tel n SCi
=I
=1
=1
10
II
12
1
1
2
l
tc 3
sc =
= tel n sc? = 1
5
0
10 11
12
42
Logic Testing
pdc' =
tc"
tc' n pdc?
X 0
10 II
12
D 1
The implications for this test cube proceed as follows: The value I on line II
forces value 0 on line 7 since line 3 is fixed at value 1, and the value I on line
10 forces value 0 on line 4 since line 6 is currently value D. When gate G, is
examined for implications it is found to be inconsistent; the NAND gate
cannot have an input value 0 and an output value 0 simultaneously.
Hence, we backtrack to the last point at which a choice existed. In this
case, we reset the text cube to tc', whose D-frontier is {G 6 , G8 l. Since we
selected G8 1ast time, this time we select G6 The D-intersection oftc' with
a propagation D-cube of G6 is
tc' = 1
9
D
pdc' =
10 11 12
D X
This implication for tc" is as follows: the ones on lines 2 and 4 imply value 0
on line 7, which implies value 1 on line 11. At this point, lines 9 ad 10 are D,
and lines 8 and II are 0, thereby forcing value D on the primary output line
12. Thus we have
2
tc' = 1
678
10 11 12
DOl
Since the faulty signal D has reached the primary output, the line justification (consistency operation) would normally be started. The execution of
D-drive and implication may result in specifying the output of a gate G but
leaving the inputs of G unspecified. This type of output line is called an
unjustified line. It is necessary to specify input values so as to produce the
specified output values. This process is called line justification or consistency operation in box 5 of figure 2.13. Figure 2.15 is the flowchart of the
line-justification procedure. For our example. however, in the test cube te S
all gates with outputs 0 or 1 have their signals already accounted for by their
inputs. Thus, tc' is a test for the fault in question, line 6 s-a-L The test
pattern is T ~ 1111.
Test Generation
43
<i
prevt ous
inconsistent
Backtrack to the last point
a choice existed
none
exists
line justification
impossible
Figure 2.15
Line justification (consistency operation)
no
44
Logic Testing
P--
-8
2 _ _...
3 ----1
---J
F igure 2.16
As an illustrat ion oflinej ustification, consider the line 1 s-a-Ofau lt for the
circuit in figure 2.16. After D-d rive we obtain the test cube
jj
8
D
X
0
Suppose that we select the second singular cube and intersect it with tc' to
justify line 7. The D-intersection is
3
tc' = D
sc" =
= tc' n sc 2 = D
X
X
X
X
0
0
tc 2
8
D
D
tc 3
= tc 2 n
tc
se 3
sc 3
=D
=
=D
1
1
1
jj
1
1
jj
0
0
0
Since all lines in tc 3 are justified, the test generation for the line 1 s-a-O is
completed.
Test Generation
45
there is more than one choice available at each decision node. Through an
implicit enumeration process, all alternatives at each decision node are
examined until a test is found. Thus, we can see intuitively that the Dalgorithm will derive a test for any logical fault if such a test exists. This has
been proved by Roth (1966).
In the D-algorithm the computation of a test for a fault proceeds in two
stages: first the D-drive from the site of the fault to the primary output, then
consistency or line justification backward to the primary inputs. Roth
(1980) extended the original D-algorithm by mixing D-drive and linejustification processes. In that algorithm, at each stage the D-frontier (gates
with an X on their output and a D or a Don theirinputs) and the Ccfrontier
(gates whose output line is unjustified) are computed. A gate is said to be
"on the frontier" if it is on the D-frontier or the C-frontier. At each step, the
gate on the frontier is selected, whether on the D-frontier or the C-frontier,
that has the smallest distance. (The distance of a gate on the D-frontier is
measured in terms of the number of gates to the primary outputs. Similarly,
the distance of a gate on the C-frontier is measured in terms of the number
of gates to the primary inputs.) In the original D-algorithm, first each gate is
selected from the D-frontier to D-drive, and then after the faulty signal D or
D has reached the primary output each gate from the C-frontier is chosen
successively to perform the consistency operation. Hence, this algorithm
mixing the D-frontier and the C-frontier is an extended version of the 0algorithm.
There is another variation of the D-algorithm. The D-algorithm uses a
calculus based on five values: 0, I, D, D, and X. Cha et al, (1978) reported
another test-generation algorithm for combinational circuits using nine
values: 0, I, D, D, DID, DID, liD, liD, and X. Here, alb(a = 0 or I; b = D or D)
means that the value of the line is not completely specified yet and can be a
or b.
Akers (1976) presented a test-generation algorithm using a 16-value
calculus. Takamatsu et al. (1983) extended the nine-value algorithm of Cha
et al. to an algorithm using ten values: 0, I, D, D, DID, DID, ito, liD, X, and
DID.
2.3 The PODEM Algorithm
A test-generation algorithm called the PODEM (Path Oriented DEcision
Making) algorithm was reported by Goel (198Ia) and shown to be more
46
LogicTesting
c
F
G
Figure 2.17
ECAT circuit
efficient than the D-algorithm. The D-algorithm has been pointed out to
be ineffective for the class of combinational circuits used to implement
error-correction-and-translation (ECA T) functions. ECA T-type circuits
are characterized by consisting of some number of EOR trees with
reconvergence.
Consider figure 2.17, whic h shows an ECAT circuit. Fo r the fau lt H s-a-O,
the D-algorithm may go through the following steps. First, the primitive Dcube of the fault is chosen. In this case, A = B = 1 and H = D. To propagate the faulty signal to the primary output R, D-d rive operations are
performed by D -intersecting the test cube with the propagation D-cubes of
gates along the path. After D -d rive, N = 1, P = D, Q = 1, and R = D may
be obtained. Next, the D-algorithm begins to justify lines Nand Q. However, since lines Nand Q realize the complementary functions with each
other, no justification is possible for the concurrent assignment N = 1 and
Q = 1. Thus, the D-algorithm must enumerate input values exhaustively
until the ab sence of the justification will be confirmed. In this enumeration
process, the D-algorithm creates a decision tree and examines all alternatives at each decision node, as shown in figure 2.18. In thi s figure, the Dalgorithm backtracks tediously many time s until it reaches the assignment
N = 1 and Q = O.
In the D-algorithm, since the assignment of values is allowed to internal
lines, more than one choice is available at each internal line or gate and
Test Generation
47
START
INCONSISTENCY
BACKTRACK
Figure 2.18
Decisio n tree in D-algo rith m
48
Logic Testing
Te s t
possible with
additional assigned
primary inputs?
maybe
s
untried conblnatlon of
values on assigned ~
primary inputs?
Figure 2.19
Flowchart for PODEM algorithm (from Goe11981a; 1981 IEEE)
Test Generation
49
START
c-o
C- 1
\l
Test has
been generated
Figure 2.20
Decisio n tree in PODEM algo rithm
only at th e primary inpu ts, we need not consider the ba ckward implication.
For our example, since A = 1 causes no implication, we again choose a
primary input B and assign B ~ 1 to provide a faulty signa l. Th en, A = 1
and B = I imply H = D.
O nce the faul ty signal has been provided, the objective is to propagate a
D or a D one level of gate closer to a primary out put than before. For our
example, to propagate the val ue D on H to P we assign C = I, which is
followed by the assignmen t E = O. At this point, C = 1 a nd E = 0 imply J
= 1 and L = O. Continuing the assignment and implication. we have F = 0
and G = O. At this point, the implic ations of primary inputs force K = 0, M
= I, N = I, and Q = O. Moreover, H = D and N = 1 imply P = D, an d P
= Dand Q = 0 imply R = D. Thi s com pletes the genera tion of a test for the
fault H s-a-O.
In these proc esses, the PODEM algorit hm creat es a decision tree as
shown in figure 2.20. The deci sion tree is an order ed list of nod es with each
50
LogicTesting
ments were made. The decision tree can be implemented as a LIFO (last in
first out) stack. The above-mentioned example suggests that the PODEM
algorithm is more efficient than the D-algorithm for ECAT-type circuits.
While the D-algorithm backtracks many times to generate a test for the
fault H s-a-O, as shown in figure 2.18, the PODEM algorithm generates the
test without backtracking.
The process of choosing a primary input and a logic value for initial
assignment is performed in two steps:
(1) An initial objective is determined. An objective is defined by a pair (v,s)
where v is a logic value 0 or 1 (called the objective value) and s is an objective
line (the line at which the objective value is desired). If a faulty signal D or i5
has not yet appeared at the site of the fault, the initial objective is directed
toward providing the faulty signal on the associated line. For an s-a-O
(s-a-l) fault on line L, the objective line is L and the objective value is 1 (0).
If a faulty signal has already been provided, the initial objective is directed
toward propagating a D ori5 to a primary output. In this case, PODEM
uses a look-ahead technique called X-path check: It checks whether there is
any path from a gate in the D-frontier to a primary output such that all lines
along the path are at X. In the case when there exists no D-frontier with
such a path, backtracking occurs.
(2) Given the initial objective, a primary input and a logic value are chosen
such that the chosen logic value assigned to the chosen primary input has a
good likelihood of helping to meet the initial objective. This process is
called backtrace by Goel (1981a). The flowchart of the back trace procedure
is shown in figure 2.21. The back trace procedure searches a path from the
objective line backward to a primary input. During the process, the next
objective is chosen from the current objective by the following heuristics:
When the current objective value is such that it can be obtained by setting
anyone input of the gate to a controlling state (for example, 0 for an
AND/NAND gate or 1 for an OR/NOR gate), we choose the input that can
be most easily set. When the current objective value can be obtained only by
setting all inputs of the gate to a noncontrollinqstate (for example, 1 for an
AND/NAND gate or 0 for an OR/NOR gate), we choose the input that is
hardest to set, since an early determination of the inability to set the chosen
input will save the time that would be wasted in attempting to set the
remaining inputs of the gate. In these heuristics (i.e., the choice of the
"easiest to control" input or the "hardest to control" input), several mea-
Test Generation
51
yes
,----<Jine
Found primary input
initial assignemt
is the current
objective value
no (fed by gate G)
Current objectiv
value v and type of gatee;o
driving objectiv
1ine ?
no
r--<
yes
-,
Figure 2.21
Flowchart of back trace (from Goel198la; 1981 IEEE)
Logic Testing
52
GS
'1
'2
G
2
'1
'3
"
G]
Figure 2.22
53
START
TEST HAS
BEE N GENERATED
BACKTRACK
NO TEST
Figure 2.23
Decision tree for example 2.7
54
Logic Testing
or
Example 2.8 Consider the circuit of figure 2.24. For the fault L s-a-l, we
assign the value D to the line L and the value 1 to each ofthe inputs J, K, and
E. Then, after the implication, we have a test for the fault without backtracks as shown in figure 2.24(a). On the other hand, in PODEM, the initial
objective (0, L) is determined to set up the faulty signal D to L, and
backtrace starts. As shown in figure 2.24(b), the back trace causes a path
from L backward to a primary input B. The assignment B = implies
L = 1 and fails to provide the faulty signal on L. As seen in this example, by
assigning uniquely determined values we can avoid the unnecessary choice .
55
Test Generation
J=l
B"
K=l
c=o
E=l
(a)
a -----. ,
"-0""
(b)
POOEM
Figure 2.24
Effect of fault signal assignment
.----.~
,~---0
56
Logic Testin g
..
A-l-=~~~ ~:.~.,l
,oQc..
c-- - -LJ
(a)
: '
-"
.' .
-,
....
( bl
POOCH
live (0, F) to propagate the faulty signal to line F an d performs the backtrace proc edure. !fthe back trace performs along the path as shown in figure
2.25(b), we ha ve the assignment A = 0, which implies J = 0 an d K = L
Th ough no inconsistency appears at this point, an inconsisten cy or the
disap pearance of the D-frontier will occur in the future when the faulty
Strat egy 3 When the D-frontier consists of a single gate, app ly a uniq ue
se nsit ization.
As seen in the above exam ple, in orde r to reduce the numbe r of backtracks it is very effective to find as many uniq uely determined values as we
can in each step of the algori thm. This is because the assignment of the
uniquely det ermined values could decrease the number of possible cho ices.
The execution of the techniques mentioned ab ove may specify the output
of a gate G bu t leave the inputs of G unsp ecified. It is necessary to specify
input values so as to prod uce the specified output values for these unjustified lines. In PO DEM, since all the lines a re first assigned only to the
Test Generation
57
A
B
c
(a)
(b)
PODEM
Illustrative circuit
(cl
Figure 2.26
Effect or head lines
58
LogicTesting
head lines ofthe circuit since J and H are adjacent to the bound lines Land
M, respectively.
for the current assignment and PODEM backtracks to change the assignment on B as shown in figure 2.26(b). In this case, if we stop the back trace at
the head line J we can decrease the number of backtracks, as shown in figure
2.26(c).
In performing a unique sensitization, we need to identify the paths that
would be uniquely sensitized. Also, we need to identify all the head lines in
the circuit. These must be identified, and this topological information
should be stored somehow, before the test generation starts. The computation time of these preprocesses can be, however, as small as negligible
compared with the total computation time for test generation.
Strategy 5 Multiple backtracing (concurrent backtracing of more than
one path) is more efficient than back tracing along a single path.
59
Test Generation
' \D.....-- _.
B
... :"-
~; ,
.---
<W
'0
-'@ - --- -E
,,
--- -0
Figu re 2.27
R:!c k ,,, ,,c("
Th e computa tion of no(s) and n,(s) will be described lat er. The mu ltiple
backtrace sta rts with mo re than one initial objective. that is, a set of initial
objectives. Beginn ing with the set of initia l object ives, a set of object ives that
appea r during the proced ure is called a set of current objectives. A set of
objectives that will be obtained at head lines iscalled a set of headobjectives.
A set of objectives on fanout points is called a set of fa nout-point objectives.
An initial objectiv e req uired to set 0 to line s is
sively as follows:
Logic Testing
60
(A. l .O)
rs.c .u
8
~. n
( N. l , O)
tc .e.n
(K.O .l )
(H,O,2)
(0 .1 .0)
u .c.i )
(E.0. 1)
(M.O. n
o.e.n
(R.I. O)
Figure 2.28
Comp utation of no(s) and "I (S)
", (X) =
", (Y)
"o(X,) =
no(Y~
" ,(X,) = O.
NOT gate:
", (X ) = "o(Y~
61
first required to be set to I and 0, respectively. At the fanout point ll, n, (H)
is obtained by summin g n,(K ) and n,(L).
Figure 2.29 is a flowchart of the multiple-back trace proced ure. Each
curre nt objective is backtraced unt il either a fanout point or a head line is
reached. At that point, the o bjective becomes, respect ively, a fanou t-po int
objective or a head-line objective. After the set of current objectives
becomes empty, the fanout -point objecti ve closest to a primary output is
take n out, if one exists. If the fa nout-point objective satisfies the following
condition, the objective becomes the final objective in the back trace process
and the procedure ends at exit D in fi gure 2.29. T he condition is th at the
fanout point p is not reachable from the site of the fault and both no(p) and
n,(p) are nonzero. In this case, we assign a value [0 if no(p) > n,(p) or I if
no(p) < n,(p)] to the fanout point and perform the implica tions. Th e first
part of the co ndition is necessa ry to guarantee th at the value assigned is
binar y, tha t is, neither D nor D.
In POD EM , the assignment of a binar y value is allowed only to the
prima ry inputs. In th e FAN algorithm, a binary val ue may be assigned to
fanout points as well as to head lines, a nd thus back tracking occurs only a t
fanout points and head lines but not at primary inpu t. Th e reason we assign
a value to a fanout point p is that th ere might exist a great possibility of an
inconsistency when th e objective in backtracing has an inconsistent requir ement such that bot h no(p) and n,(p) are nonzero. To avoid fruitless
compu tat ion, we assign a bina ry value to the fanout point as soo n as the
objective involves a cont radicto ry requirement. T his leads to the early
detection of inconsis tency, which decreases the number of backtracks.
In the multiple backtrace, ifan objective at a fanout point p has
no(p) and n l (p) are nonzero.
stop the backtra ce so as to assign a binary value to the fanout point.
Strategy 6
When an objective at a fanout point p has no cont radiction, that is, when
either no(p) or n,(p) is zero, the backtrace continu es from the fanout po int.
If all the objectives a rrive a t head lines, that is, if both sets of curren t
objectives and fanou t-poin t objectives a re empty, then the multi plebacktrace proc edu re terminates at exit C in fi gure 2.29. After this, taki ng
ou t head lines one by one from the set of head object ives, we assign the
relevan t value to the head line and perform the implication .
T he flowchart of the FAN algorithm is given in figure 2.30. Each box in
the fl owchart is explained in the list o n pages 64-66.
Logic Testing
62
<,
. . . . . Is the se t of
current objectives
ty ?
.>--_..,
yes
no
output
yes
yes
Is p reachabl e
frm the faul t 11ne
?
no
yes
8y th e r ules (l)-(3)
detennfne next obfectf Yes and add them to
figure 2.29
Flowcha rt of multiple backt race
".
re bot h
63
T est Ge neration
Incons t stency
Il'Clltcatt Qn
no
yes
'""
zero
The numer
--(10f gates t" Dfrontier
plural
>----0-1
Is t here an
untried contJtnation
of value s on as sl gr.ed
head 1t nes or fan
ut.potn/
r,....,--~--,
Set uwtrt~
combl tton
of n lueSi
trace flag
F igure 2.30
Flowcha rt of FAN algo rithm
Detennlne a
ftnal objectfve to
as si gn a
val ue
64
Logic Testing
65
yes
~ se t bad:t race fla g and let
a11 t he sets of obj ectt ves be
empt y
1M se
of fanout -pOint
In
no
eefeet fves
_
t y?
yes
no
faul ty S1g"il
l"OPl gl ted to a
pdllllry output
1
Add II gate in 0-
yes
........
frontier to the
set of init1a1
object ives
Multiple backtrece
from the set of
1nt ti II1 obfectt yes
,.
'"
yes
Figure 2..31
Multiple backtnce
from a fanout-pot nt
objective
66
Xl
Logic Testing
-+---4>--+---------1--
x2
x
x4
-+-_--+-------IL...-
Figure 2.32
When both assignment choices at a node are rejected, then it is removed and
the predecessor node's current assignment is rejected. The backtracking
done by PODEM does not require saving and restoring of status because at
each point the status could be revived only by forward implications of all
primary inputs. The same backtracking can be done in FAN, which does
not require saving and restoring of status, by implications of all associated
head lines and fanout points. However, to avoid the unnecessary repetition
initial objectives are set to (G.,0, I) and (G" 0, I). By the multiple back trace,
we have the final objectives (Xl' 0, I) and (x., 0, I). Selecting the first assignment Xl = I, we obtain GI = 0, G. = I, and G, = D by implication. Successively, the second assignment x. = I implies G, = 0, G6 = D, G, ~ I,
and G8 = D. Consequently, FAN has generated a test for the fault in
Test Generation
67
2.33. Cutting the feedback loops where the clocked flip-flops are, we can
form the iterative combinational circuit M P of figure 2.34. The combinational circuits C(i), where i = I, ... , p, are all identical to the combinational portion C of the original sequential circuit M. In this transfer-
Table 2.2
Characteristics of circ uits
Circui t
1 Error-correcti ng
circuit
2 Arithmetic logic
unit (ALU)
3 ALU
4 ALU a nd
selector
5 ALU
Numbcrof
gates
Numbe r of
lines
Numbe r of
inputs
Number of
outputs
718
1,925
33
25
1,003
2,782
233
140
1,456
2,002
3,572
5,429
50
178
22
123
2,982
7,618
207
108
1983 IEEE.
Test Generation
69
Table 2.3
(sec)
Circuit
SPS
PO D EM
FA N
SPS
PODEM
FAN
1
2
3
4
5.2
4.5
14.5
1.3
3.6
5.6
1.9
4.8
31.2
51.7
189.7
1.5
38.1
4.9
42.3
6 1.9
5.0
53.0
1.2
15.2
0.6
0.2
23.2
3.1
3.4
1
1
1
1983 IEEE.
Suppose that we wish to find a test sequence of length p for a single fault
in a sequential circuit M . For this pu rpose we cons truct the itera tive com binational circuit with p identica l comb inat ional circuit s. A test sequence of
length p will be mapped into the test pattern as shown in figure 2.36. In this
figure, each cell M(i) consists of th e combinati ona l po rtion C a nd pseud o
flip-flops of the original sequential circuit M . States y(i) and y(i + I) are
called pseudo-inputs and pseudo-outputs of cell M(i ), respectively. The
iterative circuit AlP is combinational; thus, most of the test-generatio n
algorithms for comb inational circuits ca n be ap plied to this mod el. However, we ha ve to note the following points.
Ta ble 2.4
Test coverage
Percentage of aborted faul ts
SPS
pn OEM
99.04
9 US
66.25
98.77
94.73
99.20
94.25
92.53
98.75
94.38
2
3
4
FAN
SPS
PODEM
FA N
SP
99.52
95.49
96.00
98.90
96.81
0.48
4.70
16.25
0.07
3.54
0.48
3.49
5.05
0.26
4.79
0.11
1.38
0
0
2.17
19S3 IEEE.
Tab[e 2.5
FAN
Concurrent
simulator
I
2
3
4
3.8
4.6
34.6
7.4
4.0
76.5
3.7
9.5
10.5
18.9
Tota l
8.4
38.3
16.9
14.5
95.4
1983 IEEE.
Pe rcentage
of tested
fault s
99.52
95.74
96.00
98.90
98.20
72
Logic Testing
cloc k
Flgure 2.33
Synch rono us seq uentia l circui t
( Il l
)'l lJ
y I p)
uu
,
,
t ime fraone 2
,....
,
-,,,
time f rame p
Figure 2.J.t
Co rresponding iterat ive com bina tio nal circuit M"
present
5 t e te
:...
TCI
..
, - - - - - - "1
..
... . . -. . .. _..
( 4)
fi gure 2.35
Pseud o I li p-flc ps
..,.- _. _
..
_-- ----.
R
L. _ _
(b)
Pseu do SR fl f p fl cp
.1
73
Test Generation
xO)
y(1)
x(p)
x(2)
y(2)
M(1)
yep)
M(2)
'0)
M(p)
,(2)
zIp)
Figure 2.36
0,1/0
1/0'0
=D*-
s-a-O
(a)
0'0/1
0/0
DJ*s-a-O
(b)
Figure 2.37
74
Logic Testing
obtained by modifying the con bi national D -al go rit hm, with speci al attention to pse ud o-inputs and fault mu ltiplicity, as ind ica ted abo ve. T he proced ure is as follow s.
generate a test if one exists. However. for sequential circuits, the extended
D -al gorithm ment ioned abo ve d oes not gu arantee a test seq uence for a
fault even if one exist s. C onsider t he circ uit of figure 2.40. Suppose we wish
t o find a n inp ut co mbin ati on (x" x , ) th at forc es J = 1 by ret ain ing y = X .
75
Test Generation
Figure 2.38
Synchron ous circuit
.m-e
z(l)-fi"
K( 2)
" ll )
(. )
M(l)
M( 3)
M{ 2)
Ib)
Figun 2.39
Itera tive combinat iona l circuits
M( 4 )
76
Logic Testing
Xl
a
b
Figure 2.40
where a, is a value in the normal circuit, b j is a value in the faulty circuit, and
a, and b, are 0, 1, or X (unspecified binary value). Values 0/0, 1/1, 1/0, and 0/1
Test Generation
c o. t r ~ d i c t lo n
77
,.)
H~ )'~~~
. 111
bil l -
f 12 1_0
'0'
Flgure 2.41
Test generation for fault d s-a- l
78
Logic Testi ng
Table 2.6
Calculus of nine values
AND
a
a/x
fj
x/O
x
x/I
a
a
a
a
a
a/x
a
x/a
x/I
I/x
O/x
a/x
0
0
O/x
0
0
O/x
O/x
a/x
a/x
fj
a/x
fj
a/x
fj
O/x
O/x
O/x
x/a
x
x
x/a
x/O
x
x/I
D
D
x
x
x
x/I
x/a
x
x/l
x/O
x
x
fj
x/O
x/O
x/O
x/O
x/O
x/O
a
x/a
x/a
x/a
I/x
I/x
I/x
I
O/x
jj
x/O
x/I
I/x
x/O
x
x/I
x/a
x
x/I
x/I
x/I
x/I
x/I
x/t
I/x
I
l/x
I
I/x
I/x
I
l/x
l/x
I
l/x
I/x
x
x
x/I
x
x
x/I
I/x
l/x
I
jj
l/x
I
O/x
O/x
OR
a
a/x
O/x
a/x
fj
a/x
jj
jj
jj
fj
x/O
x
x/I
x/O
x
x/I
O/x
jj
x/a
I/x
I
l/x
l/x
x
x
x/I
I/x
I/x
x/I
x/I
x/I
I
I
I
a/x
t5
x/O
x/ I
l/x
!/x
x/ I
x/a
fj
a/x
NOT
l/x
x/I
I
I
faulty signa l on its out put. Fo r examp le, consider a th ree-in put AND ga te
and th e s-a -O fault on th e output. To pro vid e th e faulty signa l D on the
o utpu t, all th e inp ut s of the ga te need to tak e value I only in the normal
circuit. Hence, t he prim itive D -cube of the fa ult is
l /X
I jX
l /X
79
This cube 111D includes the unnecessary condition th at all the inputs of the
gate take the value 1 even in the faulty circuit. In the nine-value model we can
describe the minimal conditions precisely, since behaviors of the normal
and the fa ulty circuit are distinguished by using nine values. F or the s-a-l
fault on input 1 of the three-input AND gate, the primitive D-cube is
2
O/X X /I
X /I
fj
For the s-a-l fault on the output of the AND gate, the pr imitive D-cubes a re
a/x X
Q/X
D
fj
o/x
34
- _2
..
D
l/X l/X D
fj
X /I
X /I
234
DID
jj
234
Q/X X
Q/X
Q/X X
ci x
o/x
Q/X
Logic Testing
80
When the inputs are all unspecified but the output has value X/I, line
justification assigns the following cube.
234
X/I
X/I
X/I
X/I
Test Generation
81
yO I=X
'/I
a(2)=1 X
b(2)=l/X
c(2)=1/X
z{T)
D/X
Figure 2.42
Test generation for fault d s-a-I using nine-value model
degree offreedom afforded by the partly specified values O/X, I/X, X/O, and
X/I as compared with the values 0, I, D, and fj of the D-algorithm. The Dalgorithm does nol take into accounl correclly the repeated effects offaults
on the internal state of a circuit; the test-generation procedure using the
nine-value model does take them into account precisely. Moreover, the Ddrive along any path using the nine-value model simultaneously takes
account of all the possibilities of sensitizing this path as part of a multiplepath sensitization. Thus, at a fanout point having a fanout of N, at most N
attempts have to be made at sensitizing a path. However, in the 0algorithm it may be necessary to try all 2" - I possible selections of one or
more of the N branches to sensitize all possible single or multiple paths.
Although the nine-value model has these advantages, it also has some
disadvantages. One is the natural increase of computing time due to the
greater complexity of its calculus in comparison with that of the five-value
model of the D-algorithm.
Up to now we have considered the generation of tests for synchronous
sequential circuits only. Test generation is much more difficult for asynchronous circuits than for synchronous circuits because of races, hazards, or
oscillations. We will next briefly consider asynchronous circuits. In an
approach that is analogous to that taken for synchronous circuits, an
iterative combinational circuit model will be adopted for asynchronous
circuits in order to utilize test-generation procedures for combinational
circuits. Test generation for asynchronous circuits is performed in two
steps. First, a potential test is generated for the multiple fault in the iterative
combinational circuit that corresponds to a given fault in the original
asynchronous circuit. This potential test is then simulated for both the
normal and the faulty circuit to check its validity. In the real asynchronous
circuit the potential test might be invalid because of races, hazards, or
oscillations.
82
Logic Testing
z
C
y
(al
x \l)
y ( l)
x( 2)
x ( p)
C(l)
C(2)
C(p)
z(l}
z( 2)
z (pl
t----y(p)
(b)
Figure 2.43
Asynchronous circuit
83
Test Generation
XI
X2
0
0
X3
0
1
0
X2
X3
This modified inpu t seq uence is then simulated using three -value logic. The
simulator due to Eichelberger (1965) will detect any possible race, hazard,
or oscilla tion.
Fault Simulation
Fault Simulation
85
86
Logic Testing
Sf = S mask(S)
+ mask(S)' fvalue(S)
87
r- --,
,
M I
A
S :11 ----
$'
_
'
oJ
Figure 3.1
Model of fault injection
Bit Positio n
Faul t
Line
Mask
Fva1ue
[ 01000 ]
[ 00100 ]
[ 00011 ]
[ 00000 ]
[ 00100 ]
[ 00001 ]
Fault - Fr ee
A 5-a-0
B s-a- 1
C s-a -O
C s -a- 1
(b)
(al
A=[l1l1l]
A'=[10111]
~C=[11011J
---~
(cl
Figure 3.2
Parallel fau lt simulation
The masks used for fault injectio n a re gene rated during the preprocessing
of th e circ uit for fault simulatio n. Except for th e overh ead required to
generate the mask s an d carry o uut fault injection, n faults can be pro cessed
almost as rapidly as one fault.
Consider a two -input N AND gate and the four faults associated with the
gate (figure 3.2). The four fault s a re specified in figure 3.2(a), a nd the values
of th e ma sks associat ed with signal lines A, B, and C are defined as shown in
figure 3.2(b). For exa mple, mask (B) = [00100J since the bit position of th e
fault as sociated with line B is bit 3, and fvalu e(B) = [00100J because the
fault is stuck-ai-l and is processed in bit 3. Similarl y, since two faults
88
associated with line C (C s-a-Oa nd C s-a-l) must be injected into bits 4 and 5
of wo rd C, mask(C) = [00011] and fvalue(C)4 = 0 and fvalu etC] , = 1.
After the masks for fault injecti on have been gener at ed, parallel fault
simul ation is carried ou t. Suppose we want to simula te an input pattern
wit h A = 1 and B = O. First the words A and B are initialized to A
= [11111] and B = [00000]. The simulation is carried ou t from pri mary
inputs toward primary outputs. To evaluate properly the logic value of each
element, all element s of th e circuit should be ordered or levelized. The
details of levelizati on will be described later. In figure 3.2(c), A and Bare
masked to form A' and B':
A'
= A-mask(A) + ma sk(A)'fvalue(A}
= [11111]'[01000] + [01000] '[00000]
= [11111]' [10111] + [00000]
= [10111] ,
B' = B mask(B)
+ [ 00100]
= [001 00].
C=A' B'
= [10111]-[001 00]
= [00100]
= [11011].
Th en C is ma sked:
C' = C mask(C)
+ mask(C) 'fva1ue(C)
= [11011]' [00011]
= [11000]-[00001]
= [11001].
+ [00011]' [00001]
Fault Simulation
89
O n the ou tput C, bits 3 an d 4 are different from hit 1 o r the fault -free value,
and hence the fault s corresponding to the bits 3 an d 4, that is, B s-a- I and C
s-a-O, are detectable.
3.3 D eductive Fault S imulation
Deductioefau lt simulatioll was de veloped by Armstro ng (1972) and has been
used in the LAM P system (Cha ppell et a l. 1974b). T his metho d co nsists in
explicitly simulating the behavior of the fau lt-free logic circuit o nly, and
simultan eou sly deducing from the curr ent "good" state of the circu it a ll
fault s that are dete ctable at any int ernal o r output line while in the curr ent
state. Using the concept of ded uct ive simula tion, we can co mp ute all
detectable faults at the same time, and th us we need perform only a one pass
simulation for ea ch applied test pa tt ern . In pa ra llel fault simula tio n, if m is
the tot al number of faults to be sim ulated and Ii fau lts are simulated du ring
each pass, then rm/1l1 pas ses are requi red. T he simu lation time per pass for
ded uctive fa ult simulation is likely to be m uch longe r than the time per pass
for pa rallel fault sim ulation. Ho wever, it is expected to be less th an the time
for th e rm/1l1 passes requ ired by par allel fault simula tion to accomplish
eq uivalent results . Indeed, Ch an g et al. (1974) have show n experimentally
that deductive fault simulation is fast er than parallel simulation when a
lar ge circuit with a large n umber of fault s is to be simula ted, P arallel fault
simu lat ion is faste r tha n dedu ctive simula tion o nly for small (e.g., < 500
ga tes), hig hly seq uential cir cuits. However, com parison indica tes that a
pa rall el fau lt sim ulato r can be designed to requ ire less storage than a
deductive fault simu lato r.
A deductive fault simu la tor simula tes the fault-free circuit a nd co mputes
lists of faults. A list offa ults LA associa ted with line A co ntains the name o r
index ofevery fault that prod uces a n err o r on line A when th e circ uit is in its
cu rr ent logic state. Th at is, each fau lt in a list, ifi nserte d singly in the cir cuit,
woul d ca use complementation of the good state of the associ at ed signal
line. Th ese fault lists are pro paga ted fro m pri mary inputs toward prim ary
o utputs, level by level, th rou gh the circ uit. In this man ner, a fau lt list is
generated for eac h signal line, a nd it is updated as necessary with every
change in the logic state of the circuit.
A ded uctive simulato r employs the event-directed o r selecti ve trace
procedure; the out put stale of a log ic element is com puted o nly when an
event occ urs at one of its inpu ts. In ded uctive faul t simula tion there are two
90
Logic Testin g
E=O
Figure 3.3
Fa ult lists associated with NOR gate
typ es of events: logic events, which occur when a signal line takes on a new
logic value , and list events, which occur when a fault list changes. The
simula tor must recompute a fault list associated with the ou tput of an
element when a list event occurs at one of its inputs, even if no logic event
occurs at any of its inputs.
Let me first illustrate the procedure for computing fault lists in the case of
logic gates . Consider a NOR gate having inputs A = 0, B = 0, C = 1, and
D = 1. Suppose that inputs A, B, C, and D already have the fault lists shown
in figure 3.3. These are the lists currently associated with the logic elements
that feed these inputs. Several of the faults appear in more than one input
list because of the effects of reconvergent paths in the circuit.
Let a list offaults associated with line X be denoted Lx. In figure 3.3, the
fault lists are
LA = {a,e},
L B = {b,c},
L c = {a,b,c,d},
LD
= {a, d,f} .
91
where U, n, and
denote set umon , intersection, and complement,
respectively.
For the faults that propagate to the inputs of a logic element, we can
compute the list of faults pr op agat ing to the output by the abo ve computat ion using set operations. Ho wever, we also have to cons ider th ose faults
int ern al to the associ ated logic element th at produce the incorrect o utput
for the current good inputs. In figu re 3.3, we have the fault E s-a-l under the
single stuck-at fault assu mption. Hence, we have a complete list of faults
associa ted with E in the example of figure 3.3:
LE
((LA U LB)
n Lc n Lo ) U {E/l}
= {d,E/l} .
For the same 4-input NOR gat e of figure 3.3, if we co nsider A
= 0, and hence E = 1, then we ha ve
=B =C
= D
because in this case an y fault that cau ses a 1 on any inp ut line or a 0 on the
output will produce the incorrect logical output.
The pr ocedures for computing fault lists for other types of logic gates are
straightforward and involve the same considerations as above.
Fault propagation through memory elements is more complicated. Consider the SR latch realized by cro ss-connected NOR ga tes shown in figure
3.4. Suppose that the state at time 1 is (Ql,Q2) = (1,0), and the input is
(S, R) = (0, 1). If at time 2 R changes to 0 (that is, if a non enabl ing input is
applied at t 2), th en th e latch will remain in the same state, as show n in figure
3.4. Let Lb, and Lb2 be the fault lists pr esent at QI and Q2 at time 1'
respectively, and let L~, L~ , L~ " and L~ 2 be the fault lists ass ocia ted with
lines S, R, Ql ' and Q 2 a t time 2' respect ively.
92
Logic Testing
1
o
1
Figure 3.4
Propagation of fault lists through SR latch
The computation of the new lists depends on the previous logic state of
the latch at time t 1 and the new logic inputs to the latch at time t z, as well as
on the associated fault lists. That is, L~, and L~, can be expressed as a
function of Lbl' Lb2' L~, and L~. In other words, L~l and L&z may be
expressed as the union of appropriate subsets of the 16 fundamental
products:
LblnLb2nL~nL~,
LblnLb2nL~nL~,
... ,
Lb,nLb,nL~nL1,
In the following, we will compute the lists L~, and L~, by examining each
of the 16 fundamental products in turn to see if it is included in L~, or L~,.
To keep the discussion simple. we will first consider only faults external to
the latch.
Any fault in Lb, n Lb, n L~ n L1 causes both lines Q, and Q2 to be
incorrect at time t 1 and both inputs to be incorrect at time [2' That is, it
would cause Q, = 0, Q2 = I at t, and S = R = I at (2' This also causes
Q, = Q2 = 0 at (2' and an error is detected on Q, at (2' Consequently,
the product q, n Lb, n L~ n L1 is included in L~, but not in q,.
Next, consider the product Lb, n Lb, n L~ n L~. Any fault in this set
causes Q, = 0, Q2 = I at time (, and S = I, R = 0 at time (2' Therefore we
have Q, = 0, Q2 = I at time (2. which implies that this fault can be detected
on both outputs Q, and Q2 at time t 2 . Hence, Lb, n Lb, nL~ n L1 is
included in both q, and q,.
Fault Simulation
93
L~, =
Logic Testing
94
c
o
Figure 3.5
D eductive fault simula tio n
except
q ,=
L~, = (Lb.
Up to now we have not considered the faults internal to the latch. Any
internal fault causes (Q),Qz) to be either (1,0) or (0,1) . Hence, in the
example of figure 3.4, all internal faults causing (Ql' Qz) = (0, I) should be
included in the lists La. and L~, .
Example 3.1 The propagation of fault lists is illustrated by the circuit of
figure 3.5. This example shows how a deductive fault simula tor propagates
lists of sin gle stuck-at faults on each signal line under the input pattern
shown in the figure. The propa gation of fault lists is performed from
prim ary inputs to ward primary outputs in the order of ascending value of
logic level. First, the fault lists associ at ed with inputs A, B, C, and Dare
obtained as follows :
LA = {A/ I} ,
L o = {BIO},
Lc = {C/O},
L D = {D/O }.
F or gate G(, we have the fault list associated with the output E in
95
Fault Simulation
L F = LcULDU {F/O}
{C/O,D/O,F/O}.
Similarly, we have
L H = LFU{H/O} = {C/O,D/O,F/O,HIO},
LN
LFU{NjO} = {C/O,D/O,FjO,NjO},
= {AII,EII,K/I},
LL = LHU {L/I} = {C/O,D/O,F/O,H/O,L/l},
= {Pj!} ,
La = LMULNU{Q/O}
=
Lp={P/l},
but now
96
Logic Testing
and L R to
AIO; 010; 0
97
Fault Simulati on
A
B
C
Figure 3.6
Fa ult list associated with AND gate
which means that fault A/O cau ses inputs (0, 1,0) and output O. (This fault
A/O is contained in the list associated with line D although it causes no error
on D.) To facilitate fast processing, the entries are sorted by fault index and
are stored in the order of their indices in a list structure.
In deductive fault simulation, a fault list Lv associated with line D
contains only the names or indices offaults that produce an error on the line
D. In the example of figure 3.6, the fault list Lv would be
L D = {Cfl ,D/l}.
Hence, the deductive fault list is a subset of the concurrent fault list, and
concurrent fault simulation requires more storage than deductive fault
simulation.
How fault lists are propagated in concurrent simulation is illustrated in
figure 3.7 by a situation wherein input A = B = C = 0 is first applied and
then input line A changes to a I. In concurrent simulation, only the gates in
the faulty circuit that do not agree , in terms of their input and/or output
98
Logic Testing
o
E
c
All; 10; 0
BIl ; 01 ; 0
0/1; 00; 1
C/1 ; 01; 1
DIl i 10 ; 1
E/1; 00; 1
(al
E
0)--....--C --__!.___
* AIO;
00; 0
8/1 ;
C/1 ;
Oil;
E/l;
* BIl; 11; 1
* Oil; 10; 1
10; 1
01; 1
10; 1
00; 1
(b )
Figure 3.7
Pr op aga tion of faul t lists
values , with the corresponding gate in the fault-free circuit are explicitly
simulated. For gate D, in figure 3.7(a), faults A/I, B/l, and D/l produce an
error at an input and at the output of the gate. Hence, for each of these faults
gate D is simulated separately, and the associated fault list is obtained as
sh own in figure 3.7(a). For example, the first entry (A/I; 10; 0) in the list
implies that if A is s-a-l , the input to the gate will be A = I, B = 0 rather
than A = 0, B = 0, and the output is O. Here, only fault D/1 is propagated to
th e input of gate E, since the output value of D in the faulty circuit differs
from the fault-free value. For gate E, faults Cl1, D/1, and E/l are simulated
to evaluate their output values , and the gate's associated fault list is obtained as shown in figure 3.7(a). All the output values for Cl), D/l, and E/l
are ones and differ from the fault-free value, and hence these faults are
detectable at E.
Next, suppose that line A changes to 1.Since a logic event has occurred at
an input of gate D, the entire fault list associated with D mu st be processed.
For the entry (A/I ; 10;0), since A = I, this term is deleted and the term (A/O;
00; 0) is added to the list. Similarly, (B/l; 01; 0) changes to (B/1; 11; 1), and
Fault Simulation
99
(D/I; 00; 1) changes to (D/I; 10; 1),as shown in figure 3.7(b). Those gates and
entries in fault lists that have been processed are flagged by an asterisk in
figure 3.7(b). The fault list associated with D has three entries, all of which
have asterisks. Among these, only entry BII qualifies for further processing,
since this fault causes a change in the logic value ofline D. Hence, fault BII is
propagated to gate E. The fault list associated with E is then recomputed
only for the new fault Bl]; It is not necessary to reevaluate the other entries,
CII, D/I , and Ell, since their input values do not differ from their previous
status.
In this way, concurrent fault simulation simulates only the gates in the
faulty circuit that have an error at either an input or the output. If gate G has
some activity or event due to faults!lJ2,'" In, then these n faulty circuits
are simulated separately and these entries are placed in the fault list
associated with gate G. In concurrent fault simulation, the faulty circuits
and the fault-free circuit are simulated explicitly. In deductive fault simulation, only the fault-free circuit is simulated explicitly; the faulty circuits are
simulated deductively. Another significant difference between deductive
and concurrent fault simulation is related to the fact that a concurrent
simulator processes only the active circuits. In deductive simulation, if a list
event occurs, it is necessary to reevaluate all faults in the list because of the
complex process of set operations. In contrast, concurrent simulation need
not reevaluate a fault whose status has not changed, but need only resimulate the active faulty circuits. Furthermore, in concurrent simulation, since
each fault in a list is processed separately, fast processing is possible
throught techniques such as table lookup.
The disadvantages of concurrent fault simulation are that it requires
more memory space than does deductive fault simulation. Also, as in
deductive simulation, the amount of memory needed by concurrent simulation cannot be predicted accurately before a run. This can become serious
for large circuits such as VLSI circuits, and so dynamic memory allocation
is desirable.
Example 3.2 The differences between concurrent and deductive fault
simulation are clarified by fault simulations for the circuit of figures 3.8 and
3.9 using concurrent and deductive techniques, respectively. Suppose that
the input to the circuit is first A = B = C = 0, D = 1, and then input A
changes to 1. We begin with concurrent fault simulation in figure 3.8. For
gate E, faults All, BII, and 10 are simulated to form the fault list
re/ l; 11;
E/O ; 00:
F/O; 00;
H/ l : OJ ;
==lLY7
a
1
0
..
0
1
,,
c/i, "10: 1
"
""
0/ 0; 01: 1
E/O : 01; 1
G/O: 01: 1
A/ l; 10 : 1
BIl: 01: 1
E/ O: 00: 0
0
0/ 0; 10:
E/ O: 01:
G/O: 01:
J/ l: 11:
( a)
F igure 3.8
Co ncu rrent fa ult simu lat ion
HIl : 10: 1
JIl : 01: 1
K/l: 00 ; 1
A~
~"
,,
* A/O; 00; 1
* B/l : 11: 0
.. E/O: 10; 0
o~
1
1
(b)
Fault Simulation
All;
10;
B11 ;
01;
101
Ell ; 00; O.
Among these faults, on ly EIO is propagated further since it is the only
o utput value of the ga te in the faulty circuit that d iffers from th e fault-free
value. For gate H, faults ClI, EIO, FlO, and HII are simu lated; the resulting
fault list ass ociated with H is
Cl I;
II ;
10; 00; 0
FlO;
00; 0
nn,
01;
1.
All ; 10;
BII ; 01;
EIO; 00; 0
Since A is no w I, the first entry, (Al l; 10; I), is deleted a nd (AIO; 00; I) is
ad ded. Since a logic even t ha s occurred at an input of gate E, th e remaining
entries, (Bf! ; 0 1; I) and (10; 00; 0), are reev aluated. T he resulting faul t list is
Al l ; 00;
BI I; 11; 0
EIO; 10;
o.
Now, since gate E in th e fault-free cir cu it d oes not alter its output in spite of
the change in input A, no logic events occur after this. On ly fault B/1 causes
a change in the logic value of E as compared with the previ ou s status and
hen ce qualifies for further processing. Similar ly, only BII is sim ula ted after
102
Logic Testing
this, as shown in figure 3.8(b). In this way, a concurr ent fault simulator can
simulate each fau lt sepa rately an d thus process only the active circuits. This
leads to a significant redu ction in computing time.
Fo r the sa me circuit with the same tests, if we consider deductive fa ult
simulation, we can ob tain the result s shown in figure 3.9. T he result of the
simulation with A = B = C = 0 an d D = I is sho wn in figure 3.9(a). Comparing figure 3.9(a) with figure 3.8(a) makes it obvious that concurre nt fault
simula tion requires more memory than dedu ctive simulat ion. Figure 3.9(b)
shows the result of simulation afterinput A changes to 1. First, since a logic
event has occurred at A, the fault list associa ted with E must be recomp uted
by set operations, resulting in the fault list (B/ I, E/O}. T his new fa ult list is
different from the previous list associate d with E, which implies a n occurrence of a list event on E. Hence,furt her compu ta tions offault lists must be
continued at the following gates, H and J. For gate K , deduc tive simulation
must resimulate all fa ults B/I , en, D/O, E/O, G/O, un, J/ I, and K/ I, which
are flagged by an asterisk in figure 3.9(b). In concurrent simulat ion, only the
single fault B/I is processed, as show n in figure 3.8(b). The main reason
that dedu ctive simulation must process more faults than co ncu rrent simulat ion is that the deduc tive technique canno t simulate each offa ulty circuits
separately.
3.5 Hardware Simulators
T he development of increasingiy complex logic circuits has creat ed difficult
problems in logic design, verifica tion, an d testing. The complexity of circuits has led to significantly greater use of CAD (computer-aided design).
For examp le, 1,800 hou rs of IBM System/ 370 model 168 CP U time were
required to verify the logic design of one-fourth of a medium -range System/370 CPU (Pfister 1982). T his fact seems to indica te the limits of
current technology supported by genera l-purpose computers. Recently,
attempts to ov ercome these limits by using special-purpose processors that
utilize the parallelism/con curre ncy in CAD algorithms ha ve received a
great deal of attent ion. T he present commercial products ar e the Logic
Evalua tor and the Tagas accelerat or (Lineback 1982). The othe r systems,
discussed in th is section, are a logic-simulation machine pro posed by
Abramovici et al. (1982), the Yorkt own Simulation Engine (Pfister 1982;
Denneau 1982; Kr onstadt an d Pfister 1982), an d the Hardwa re Logic
Simulat or (Sasak i et a1. 1983). The se are all special-pur pose par allel com-
Fault Simulation
103
,,
00
,,
0
,,
:::: ,
~
,,
0
"
,0 ,0
= ;;
::::
~
n
0
::::
104
Logic Testing
EVENT
LIST
MEMORY
FROM
INPUT
FILE
EVENT
LIST
MANAGER
SCHEDULER
CURRENT
TO
EVENT
- - RESULT
FILE
PROCESSOR
I
CONFIGURATlON
EVALUATOR I-- PROCESSOR
MOOEL
ACCESSING
UNlT
..-
Figure 3.10
O verall a rchitecture of logic-simulation mach ine (Abramovici et a!. 1982; IEEE 1982)
puters that might be called hardware simulators (in contrast with conventional software simulators hosted by general-purpose computers).
Although all these hardware simulators are designed primarily for logic
simulation, they can be used for fault simulation. By simulating faulty
circuits as well as a normal circuit, they can perform fault simulatio n at high
speed.
T he basic structure of the logic-sim ulation machine of Abramovici et al.
(1982) is shown in figure 3.10. T he machine is organized in a distributed
processing architecture in which separate processing units are dedicated to
specific tasks of the simulation algorithm. The algo rithm adopted here is
base d on tab le-driven event-di rected sim ula tion. Usually, event-directed
simu lation perfo rms the following main processes (tasks): The first step is
retrieving an event from the event list. T he second is upda ting the configuration of the sou rce element tha t has generated that event, wher e the
configuration of an element consists of the values of its inputs, outputs, and
internal state variables. The fanout elemen ts to which the event propagates
are determined to update thei r configuratio n. After updating the configuration of all the elements associated with the event, the simulator determines
(that is, evaluates) the new values of their outputs and state variables. T he
evaluation of an element may result in events on its outputs and/or state
Fault Simulation
105
106
Logic Testing
TO SCI1EDULEIl
AND
~OD E l
ACCESSINGUNIT
SIM.P LE
CONFIGURATION
PR) CESSOR
FUNCTI ONAL
CONFIGURATION
PROCESSOR
Figure 3.11
Simple and functional evaluations {Abra m c vici et al. 1982; IEEE 1982)
In co ntrast with the lo w parall elism o f the mach ine o f Abramo vici et al.,
the Yorktown Simulati on Engine (YSE) (Pfister 1982) exploi ts the high
paralleli sm of 256 proce ssors. T he YSE differs from the machine of Abramovici et al, in that it is designed to execute unit -delay a nd level-ord er
simulation rather th an event-directed simulation. Th e unit-delay model
assumes that every gate has the same delay an d that external input changes
occu r only on integral unit-delay time boundaries. Level-order simulatio n
is a technique used in parallel fault simulation where in all gates are first
so rted in ascending order of levels and simula ted in the order of ascendi ng
value of logic level. The YSE uses these two simula tion techn iques at the
gate level, but not at the functional level. It was built to simulate the logic
o peratio n of circuits composed of up to a million gates at a rate exceedin g 2
billion gat e comp utat ions per second .
Figure 3.12 shows the overall a rchitecture of the YSE. It is basically an
array of parallel processors. In addition, it has a n interprocessor switch and
a control processor. A la rge circuit to be simula ted is partitioned into
subcircuits, and each subcircuit is assigned to a logic processor prior to
simulation by the control processor. Each logic pro cessor contains an
instruction memory, which stores the interconnection and function information for the logic circuit;a data memory. which maintains configurations
(i.e., logic values for signal lines in the circuit); an d a function unit, which
evaulates logic function. During simulati on, the logic processors concurrentl y fetch the inform ati on from their instruction memories to access and
107
Fault Simulation
l
0
G
1
C
l
0
G
1
C
l
0
G
1
C
A
R
R
A
Y
A
R
R
A
Y
TO
I FROM
HOST
p
R
0
C
R
0
C
R
0
C
R
0
C
P
R
0
C
COMPUTER
CONTROL
PROC
upd a te values for signa l lines stored in their data memories. Each function
unit of the logic processors accepts a function code and some opera nds fro m
the instruction memory and the data memory, respectively; computes the
logic function; and finally sto res the resulta nt value back into the data
memory. Array processors are used to simula te rando m-access memories
(RAMs) an d read-only memo ries (ROMs).
T he interprocesso r switch provides communication among up to
256 logic and array processor s du ring simulatio n. Logic an d array processo rs ha ve to tran sfer signal value s betwee n their data memories. The
switch accom modates th e requi red communica tion introd uced by the
partitioning.
The control processor takes charge of co mmunication between the hos t
computer and the YSE, including initializing, interrupt handling, and
diagnostics of the YSE. T he par titioning of the circuit into subci rcuits and
the sequence of switc h routi ng configurations are all determined and fixed
prior to simula tion, and affect the initialization of the YSE by the co ntrol
processor.
T he thi rd type of hardware simulator is the Ha rdware Logic Simulator
" HAL" developed by Sasaki et al. (1983). T he overa ll architecture of t he
HA L, show n in figure 3.13, is simi lar to that of the YSE. It is also basica lly
an array of parallel processors that contains logic processors, memory
processors, a control processor, a nd an interprocessor network. However,
Logic Testing
108
LOGIC PROCESSOR
INTERPROCESSOR
NETWORK
LOGIC PROCESSOR
LOGIC PROCESSOR
29
30
31
32
Figure 3.13
Overall arch itecture of HAL (Sasaki et a!' 1983; IEEE 1983)
the HAL differs in some resp ects from the YSE. It contains only 32 processors, and thus its parallelism is lower than that of the YSE. It performs
table-driven event-directed simulation at the functional level as well as at
the gate level. It uses a technique called block-oriented simulation, where
"block" means a logic collection ranging from several gates to several
hundred gate s or a memory element in a range from one RAM chip to
several hundred RAM chips. The block-level simulator supports LSI-level,
functi onal macro-level, gate-l evel, and mixed-level simulation.
The hardware of each processor is made up of two parts: an interblockconnection simulator and a block-behavior simulator. The interblock
simulator has a block-status memory and a block-interconnection list
memory. It reads (in turn) block input valu es and block type information
from the block-status memory, send s th em to the block-behavior simulator,
receives the resulting o utput values of the block from the block-behavior
simulator, and updates the block-status memory. The block-behavior
simulator has a block-function memory. It receives block-input values and
block type information from the interblock simulator, evaluates the output
values of the block, and sends the result to the int erblock simulator.
The HAL ha s 29 logic proces sors and two memory processors. Each
logic processor can simulate up to 1,024 logic blocks. Each memory processor can also simulate up to 1,024 memory blocks. It was estimated th at
the HAL can simulate up to 1.5 million gates and 2M byte RAM ICs at a 5millisecond clock speed .
Testing has two main stages: the generation of tests for a given circuit and
the application of these tests to the circuit. Hence, the complexity of testing
can be classified into the complexity of test generation and the complexity
of test application.
The computational complexity of the algorithms used to generate a test is
used to estimate the complexity of test generation. The size of a test set or
the length of a test sequence is adopted as a measure of the complexity of
test application.
4.1 NP-Completeness
The time complexity of an algorithm (that is, the time needed by the
algorithm) can be expressed as a function of the size of the problem. If an
algorithm processes inputs of size n in time cn2 for some constant c, then we
say that the time complexity of that algorithm is of order n 2 More precisely,
a functionf(n) is of order g(n) whenever there exists a constant c such that
f(n) ~ c- g(n) for all values of n ~ O. An algorithm whose time complexity is
of order p(n) for some polynomial function p is called a polynomial time
algorithm. Similarly, an algorithm whose time complexity is of order k" for
some constant k is called an exponential time algorithm.
In the theory of computation, there is general agreement that a problem
should be considered intractable if it cannot be solved in less than exponential time. That is, exponential time algorithms are "too inefficient."
To illustrate this, suppose that we have three algorithms whose time
complexities are 11, 113, and Z", Assuming that time complexity expresses
execution time in microseconds, the n, n 3 , and 2n algorithms can solve a
problem of size 10 instantly in 0.00001, 0.001, and 0.001 second, respectively. However, the apparent distinction between polynomial time algorithms and exponential time algorithms exists in larger problems. For
example, to solve a problem of only size 60, the 2n algorithm requires 366
centuries whereas the nand n 3 algorithms require only 0.00006 and 0.216
second, respectively.
From this example it is obvious that exponential time algorithms are
unsuited for practical use in large problems, and that polynomial time
algorithms are much more desirable. Hence, a problem is regarded as
intractable if it is so hard that no polynomial time algorithm can possibly
solve it. Many intractable problems are known to constitute an equivalent
class called the class of NP-complete problems. Major fault-detection prob-
Logic Testing
110
lems are NP-complete, and thus it appears very unlikely that faultdetection problems can be solved by a polynomial time algorithm in
gen eral.
More detailed and preci se discussions ofNP-completeness may be found
in both Aho et a!. 1976 and Garey and Johnson 1979. A problem A is said to
belong to class P (class NP) ifany instance of A is solved in time bounded by
a polynomial of the problem size by a deterministic (nondeterministic)
computation. (In our problems, the number of gates and lines in a circuit
may be regarded as the problem size.)
Problem A is said to be polynomially transformable to B if the existence of
a deterministic polynomial time algorithm for B implies the existence of a
deterministic polynomial time algorithm for A. For decision problems, we
say that A is polynomially transformable to B if any instance of A can be
transformed in polynomial time of the deterministic computation to an
instance of B such that the former has an answer "yes" if and only if the
latter has an answer "yes." Now we can define NP-completeness as follows:
A problem B is said to be NP-complete if(l) it belongs to NP and if(2) every
pr.oblem A in NP is polynomially transformable to B. Ifsome problems are
already known to be NP-complete, condition 2 is rather easily checked: It is
sufficient to show that (2') at least one problem A, which is known to be NPcomplete, is polynomially transformable to B.
"Is P = NPT is a long-standing open problem in complexity theory. If
for at least one NP-complete problem A any instance of A is solved in
polynomial time, th en P = NP. However, it appears very unlikely that
P = N P, and hence NP-complete problems are regarded as intractable in
the sense mentioned above.
The first NP-complete problem, usually referred to as the satisfiability
(SAT) problem, was reported by Cook (1971). A brief description of this
problem follows; we need it in our discussion of the NP-completeness of
fault-detection problems.
A literal is either x or x for some variable x, and a clause is a sum of
literals. A Boolean expression is said to be in conjunctive normalform (CNF)
if it is a product of clauses. For example, (XI + X2)'(X 1 + X3 + x 4 ) is in
CNF, but Xl + X2X 3 is not. A Boolean expression is satisfi able if and only if
there exists some assignment of zeros and ones to the variables that gives
the expression the value 1. Then the SAT problem is specified as follows .
Sat isfiability (SAT)
111
It is know n that, even with a more strin gent condi tion, the satisfia bility
p roblem is NP-com plet e. An expression is said to be in k-co njun ctive
normal for m (k-CNF) if it is a prod uct o f sums of at most k litera ls. The ksat isfia bility probl em (k-SAT) is to determine whe ther a n ex press ion in kCNF is sat isfiable. For k = I or 2 th ere exist po lynom ial algo rithms to test
k-sa tisfiab ility. However, 3-SAT is known to be NP-complete .
THEO REM4.2 (Co ok 1971)
3-SAT is NP-complete.
CM -SAT is NP-complete.
C, = a + b + c,
Case 2 C, = a +
Case 3
C, = a
b + c,
+ b + c,
C; = C
C; = C
C;. Cj' = (a + b + Vj) ' (Vj + c)
j'
j'
Case 4
Cj =
a + b + c,
C; Cj' = (a + b + v
j) ,
(Vj + c).
Logic Testing
112
Proof Let E(x1 , Xl"'" X p } be a unate expression. Let (at, Qz, ... , Qp ) be an
assignmentsuch that Q j = 0 if Xi is negativeunate and a, = 1 if Xi is positive
un ate. Since the expression E is unate, if E(a 1 a z ... , ap ) = 0 then E(x 1 Xl'
... , Xp } = 0 for any assignment. This implies that E(a l, a2"'" ap ) = 1 if E is
satisfiable. Hence, E is satisfiable if and only if E(a[, G 2, .. , ap) = I. We can
.. ,
unate. Thus we
expression.
113
"
,,
,,
Figure 4.1
A 3-level mo notone circuit Q I
by Fujiwara and Toida (1982a,b) will be described. The following expressions will be used:
kM-FD fault-detection problem for k-Ievel monotone circuits
kU-FD fault-detection problem for k-Ievel unate circuits.
Let us begin with the following theorem.
THEOREM 4.5
3M-FD is NP-complete.
Logic Testing
114
Since monotone circuits are also unate, we can see from theorem 4.5 that
3U-FD is also NP-complete.
COROLLARY 4.2
3U-FD is NP-complete.
FD is NP-complete.
in an
115
test for f in C can be used to develop a polynomial time algori thm for
solving 3M-FD.
Assume that we ha ve a polynomial time algo rithm A that finds a test for a
given fault f in a n a rbitra ry mon ot one a nd irred unda nt circuit C. Using
this algorith m, we can construct a polyno mial time algorithm that solves
3M-FD as follows:
Algorithm A :
Input: an irred undant mo no tone circuit C and a single stu ck-at fault f.
Output: a test to detect f in C.
Let p(. ) be the polynom ial time bou nd of A.
Algorit hm B:
Input: a 3-le vel mo not on e ci rcuit C' and a single stuck-at fault [' ,
116
Logic Testing
THEOREM
Pr oof T he test generati on for a fau lt on line L can be perfor med in the
foll owing steps:
(I) Fix a value of L to D (15) ifa fau lt is a st uck-a t-O fs-a- t]. Assign a value O. I,
D. or 15 to each head poi n t in C to do t he following steps for each
combination of values on the head points. If there is no untried combination remaining and no test has been found, the n there exists no test, so
sto p.
(2) For ea ch assignment. determine the imp lications, th at is. determine all
the line va lue s tha t are implied uniquely by the values assi gned on t he head
117
points. If any inconsistency occurs, then go back to step 1. If no inconsistency occurs, the values of all (head a nd nonhead) reconvergen t fanou t
points a re determined uniquely.
(3) Perform extended implications. wor king breadth-first from prima ry
inpu ts to primary outputs; that is, compute VIs,) for all lines s,: If any
inconsistency occurs, then go back to step 1.
(4)Check whether or not every D-path sta rts at the line L under test, where
a D-path is a path such that VIs,) contai ns either D or 15 for all lines s, on the
path. If not, the n go back to step 1.
(5) Check whether or not there is at least one D-path endin g at a primary
output. If not, then go back to step 1. Otherwise, you have foun d a test, so
stop.
The abov e alg orithm requires the enumera tion of at most 4.1: combi -
nations of values on head points. We can see that steps 2, 3, and 5 can be
performed in time O(m), where m is the number of lines. Hence, the above
algorithm can be carried out in 0 (4.1: m) time. _
The algo rithm shown in the proof of theorem 4.7 generates all the
combination s of values 0, 1, D, or 15 on all head points, i.e., 4' assignments
from the beginning. Th is can be impr oved by an implicit enumeration
technique. In generating a test, the algorithm creates a decision tree in
which at each decision node the value of a line is chosen from among a
number of possible values. The initial choice is arbitrary, but it may be
necessar y dur ing the execution of the algorith m to return to the same node
and consider ano ther possible cho ice. Th is is called a backtrack. In o rder to
guarantee the time com plexity 0 (4" m), we have to make sure that back tracks occur only at k head points.
Next, consider a combinational circuit C, which is partitioned into
subcircuits called blocks : B 1 , B 2 , ... , B,. A fanout point p in a block B , is
called a reconvergentfanout point with respect to Bj if there exist two paths,
both of which start from p and either recon verge within B, or arri ve at an
adjacent block BJ (j # i). A non primar y input of Bi is a signal line coming
into Bi from another block.
A head-point set 5, ofa blo ck B, is a set of points such that all nonp rimary
inputs of Bi are cont ained in Sj and such that. for any reconvergent fanout
point p with respect to B" either p belongs to 5, or any path from each
primary input to p cont ains at least one point in 5i
For a combinat ional circuit C parti tioned into blocks, we defi ne a
11 8
Logic Testing
Pri ma ry Input s
(a)
(b) Gra ph Gc
Fi gure 4.2
A k-hea d- bou nded circuit
directed graph Gc with respect to the circuit C and its blocks such th at each
vertex represents a block a nd each a rc represents a connection between
blocks (figure 4.2).
A combinational circuit C is said to be k-head-bounded if C can be
partitioned into block s B, (i = 1,2, . . . , t) such that the graph G, with respect
to C and B, is acyclic and has no reconvergent path and such th at, for each
bloc k B, (1 ~ i ~ t), there is a head-point set Sj with at most k head points.
Exa mple 4.1 Con sider a par allel binary adder of p bits con structed by
cascading p stages of one-bit full adders called rippl e-carry adders. Figure
4.3 sho ws p-sta ge ripple-ca rry adder. If we partition thi s adder so that each
119
Co
Figure 4.3
Ripp le-carry add er
Co
block corresponds to a full adder, we see that the ripple-carry adder is a 3head-bounded circuit.
Example 4.2 The gate-minimum p-bit parallel adder (Lai and Muroga
1979) diagrammed in figure 4.4 is e-head-bounded.
Example 4.3 The exclusive-OR tree realization of a linear function is a 2head-bounded circuit.
Example 4.4 A p-bit decoder ca n be realized by a circu it with p nonreconverge nt fanout poin ts and 2P AN D ga tes. Hen ce, it is a O-hea d-bo unded
circuit.
In theorem 4.7 it was shown that for a circuit wit h k head poin ts th ere
exists an algorithm oftime complexity
m) to find a test for a given fault
of the circuit. We can easily exten d th e result to a class of k-head-bo unded
circu its as in the follow ing theorem.
oW'
Logic Testing
120
THEOREM 4.8 Let C be a k-head-bounded circuit. Then there is an algorithm of time complexity O(16k m) to find a test for a single st uck-a t fault
in C, where m is the number of lines in C.
In the proof of theorem 4.8, we consider 4k po ssible values for each block
and 4k x 4k possible tests for each pair of adjacent blocks. Hence, the time
complexity becomes O(16k m) instead of the
m) of theorem 4.7. The
proof is omitted. For details, see the proof of theorem 11 in Fujiwara and
Toida 1981c. Notice that k-head bounded circuit will have more than k
head points.
From Theorem 4.8 we have the following corollary.
OW '
COROLLARY 4.4
Let C be a k-head-bounded circuit such that k = log2P(m)
for some polynomial p(m), where m is the number of lines in C. Then the
fault-detection problem for C is solvable in time complexity O(p(m)4. m).
For a k-head-bounded circuit, in order to solve the fault-detection problem in polynomial time it is sufficient that k = logp(m). As mentioned
earlier, parallel adders, linear circuits, and decoder circuits are all kheadbounded for some constant k. Hence, the fault-detection problem for these
circuits is solvable in time complexity O(m).
L= the class of linear functions. An n-input lin ear function can be represented in the form Co $ ctx[ ttl ... $ CnX. where c i = 0 or 1 for i = 0,1 , .. . , n.
121
Figure 4.5
Closed sets containing constants 0 and 1
Mo !
LO!.~
ITO!
Logic Testing
122
x3 -----1 E2
x, -----i
Figure 4.6
Circuit realizing function
THEOREM 4.9 (Fujiwara 1981) For any subset F ofn such that F
covers S(F) if and only if F contains constants 0 and I.
[F],F
From this theorem and figure 4.5 we have the following corollary:
COROLLARY 4.5 If F = [F] and F covers S(F), then F is n, Mal' L,
ITo" [n,], or [{O, 1, I}].
~Ol'
Corollary 4.5 shows that all the sets of logic functions that are closed
under both composition and stuck-at faults are n, Mal' L, ~o,' ITo" [n l ] ,
and [(O,
So far, we have considered only the sets that are closed under composition. However, there still exist many sets of logic functions that are not
closed under composition but are closed under stuck-at faults. Indeed, it
can be shown that there exist infinitely many sets oflogic functions F such
that F # [F] and F covers S(F). The classes of fanout-free functions and
unate functions are the examples of such sets oflogic functions.
l,In
Th e Co mplexity of Testin g
123
91(XI,X l,X3)
92(X I,X2)
+ X2 X3 + X3 XI,
= XI + Xl + X 3,
= X1 Xl '
The function
124
Xl
Logic Testing
+
9,
x2
9,
+
92
x3
Figure 4.7
Unate com posit ion
denotes a positive unate va ria ble and a minus sign denotes a negative unate
variable. The functio n J realized in figure 4.7 can be expressed as
J(X I,X2, X3) = 91(91(XI,X2),92(X2,X3))
125
func tio n is th e inp ut vector that is not covered by any other false vertex
exce pt itself.
Betan co urt (1973) has shown th at the set of a ll maximal false vertices a nd
minim al tru e vertices of a unate function fa re sulTicient to detect a ny stuckat-O or stuck-at-I fault in any AND/OR realizat ion off . Betanco urt's resu lt
has been extend ed to mult iple fault s a nd unate gate net works by Reddy
(1973). The number of maximal false vert ices plus minimal true vertices of
an n-input unate functio n is at most
where
(;)
denotes the number of com bination s choosing y th ings o ut of x th ings a nd
LzJ deno tes the integer pa rt of z (Akers 1973). Th ese results ca n be extended
to the unate comp osition as follows.
THEOREM4.11 If C is any realization of an It-input unate functi on under
unate composition, then
126
Logic Testing
Figure4.8
EOR tree realization
Figure4.9
EOR cascade realization
Next we shall consider the test complexity for the class oflinear functions.
A linear functionf(xhx2l ... , xn) can be expressed in the form
Co
127
L3n/2J + 1.
, 0),
t,
= (1,0,
,0),
t2
= (0,1,0,
, 0),
t; = (0,
, 1).
wh ere a, = or I and A = (ao ,a" ... , an)' Since the class of linear functi ons
L is closed under co mpositio n, any faulty function of linear circuits under
closed compositio n is al so a line ar funct ion of k (k :;:;; n) variables, and
thus it can be expre ssed in the above form. When A = (0, 1, ... , 1), the
128
Logic Testing
we obtain
ao EB an = bo EB b.;
which implies
i = 0, 1, ... , n.
Therefore we can uniquely determine the values of aj> and thus distinguish
all 2n +1 line ar functions PA' applying n + I tests to, t I ' .. . , t..
Since the test set T = {to, t I ' . . . , tn} is independent of the structural
description of a given circuit, it is a universal test set under closed
composition.
THEOR EM 4.17 (Fujiwara 1981) If C is any realization of an n-input linear
function under closed composition with respect to L, then Dm(C) = }'m(C)
= n + I.
= (0,
,0,0)
(0,
,0, I)
(0,
, 1,0)
129
(0,
,1,1)
(1,
, 1, 1)
except A = (0, 1, .... , 1)and (1, 1, . ... , 1). Therefore PAis a faulty function if
any only if aj = 0 for some i (1 ~ i ~ n).
Applying all the Z" input combinations of(x j , X2 " ' " x n ) to the equation
n
P A(X l, X 2, , x n) = X l EEl X 2 EEl . EEl Xn , we have 2 equations as follows:
Qo
= 0,
Qo
if n is even,
if . dd
I n IS 0
.
II
With th e development of increasingly complex circuits, boa rds, a nd systems, test ing has become mor e difficult a nd more expensive. As compared
with the increasing cost of testin g, the cost of manufacturing is steadily
decreasing. This suggests th at circu its sho uld be designed to be tested
easily- that testab ility should be adopted as a design parameter. It is no w
generally agreed th at designers shou ld consider design for testability to a
certain extent.
134
CY(zJ
= CTF
L CY(Xi)
IJ
x -
i=1
(5.1)
135
x,
z,
x2
z2
Component
Figure 5.1
=.!. f
m j_'
(5.2)
where m is the number of outputs of the component and NiO) and "1(1) are
the nu mbers of input values for which output Zj has output valu e 0 a nd I,
respectively. The CTF of a compo nent ran ges bet ween 0 and I. It takes the
maximum value I when the component has a unifor m input-output relation, and decreases to as the degree of uniformity decreases. For example,
the CT Fs for a NOT gate and an EOR ga te a re I , since N(O) a nd N(l ) a re
equ al. On the other hand, the CTF of an n-input NAND gate is 1/2"-'.
Consider again the component diagrammed in figure 5.1. The expression
used to calculate 0 Ys for each input X, is
OY(x,) = OTF x -
L OY(z)
(5.3)
mj=l
where OTF is the observability transf erfac tor of the compon ent. Note that
each inpu t obse rvability is assigned the same value.
Th e OTF of a component mus t represent the ease of pro pagating a fault
value throu gh the component. It is expressed as
136
(5.4)
where NSj is the number of input values for which outputs resulting from
changing the input value of x, are different. NS j also means the number of
input values that can sensitize a path from x, to the outputs of the component. The OTF measures the probability that a faulty value at any input of
the component will propagate to its outputs. The values of OTFs also vary
between 0 and l.
For example, the OTF of a NOT gate is 1, since n = 1 and NS 1 = 2. For
an EOR gate, n = 2 and NS 1 = NS 2 = 4, and thus the OTF is l. For an ninput NAND gate, NS = 2 and so the OTF is 1/2n - 1 .
The set of equations 5.1 for all signal lines consists of the controllability
system. The coefficients for the system are derived from equation 5.2 for
each component. The constants (CY = 1)for the system are assigned for all
primary inputs, since primary inputs have perfect controllability. Similarly,
the observability system consists of the set of equations 5.3 for all signal
lines. The coefficients are derived from equation 5.4. The constants (OY
= 1) are assigned for all primary outputs, since primary outputs have
perfect observability. By solving these two system, we can obtain all the
controllability and observability values for signal lines.
For sequential components with storage elements, clock lines, and fanout
points, special rules are considered. Sequential components are modeled
by adding feedback links around the components that represent internal
state. Clock lines that originate as primary inputs to the entire circuit and
that only define transition periods for a component are not considered. For
the fanout points, the controllability and observability values are calculated
as follows: Let S be a fanout line and lef j denote the number of fanout
branches from s. Then the CYs of the fanout branches are deduced by
dividing CY(s) by (1 + logj). This is based on the assumption that the CYs
offanout branches are less than the CY of the fanout line. The observability
value represents the probability that a fault value there can be detected at
the primary outputs, and thus the 0 Y of a fanout line s is defined as
f
(5.5)
i= 1
137
(5.6)
To assign y to 1 we have to set all three inputs to 1. Hence,
(5.7)
138
SCO{ y) = min{SCO{xl),SCO(X2),SCO(X3)},
(5.8)
SCI(y) = SCI(xd + SC
(5.9)
(X
1(X
2) + SC 3)
+ CC 1(C) + CCO(R),
(5.10)
(5.11 )
Similarly, we have
CCO(Q)
(5.12)
+ SCO(C) + SCO(R)} +
(5.13)
I.
CO(x])
= CO(y) + CC 1( X 2 ) + CC I(X3) +
SO( x l )
= SO(y) + SC1(x z) + SC 1( X 3 ).
I,
(5.14)
(S.15)
The observa bility of a fanout line is defined as the minimum valu e of the
observabil ities of fano ut branches. These calcul ation proce sses are iterated
until the observability values sta bilize.
Two typical testability measures with different features have been describ ed a bove. Though existing testability measures (including the measures ment ioned abo ve) seem to pro vide some information ab out circuit
testability, it is not necessarily good information to use in the interpretation
139
testing.
Since design for testab ility requires extra circuitry, there occur some
prob lems such as increased hardware cost and performance degradati on. It
might be undesirable fo r man y manufacturers to allo cate any significa nt
140
141
Next, we consider the optimal design for ease of test applicaton. Here, we
adopt the number of test patterns as a measure of the cost of applying test
patterns to the circuit under test. The minimum cost never becomes zero,
since at least one test pattern must be applied to the circuit to test it.
Therefore, the minimum cost of test application might be some positive
constant independent of the size of the circuit. If the cost of test application
never increases as the circuit becomes larger, we can say that the circuit
design achieves optimal testability in the test application. Such designs have
been reported by Hayes (1974), Saluja and Reddy (1974), Inose and
Sakauchi (1972), and DasGupta et a1. (1980). Hayes has shown that any
combinational and sequential circuit can be modified by embedding EOR
gates so that five test patterns are sufficient to detect all single and multiple
stuck-at faults in the circuit. Saluja and Reddy (1974) extended the result of
Hayes to obtain minimally testable designs. They presented a design technique to modify a circuit so that it is fully tested by only three test patterns.
Consider a two-input AND gate. It is obvious that three test patterns 01,10,
and 11 are necessary to detect all single and multiple stuck-at faults on the
input/output lines of the AND gate. Hence, we can consider that the three
tests of Saluja and Reddy constitute a minimum test set.
All the design methods mentioned above involve a lot of extra hardware
and very large circuit delays, and thus they are impractical. However, the
results show that ifsufficient extra circuitry can be added to a circuit, we can
design a circuit with optimal testability such that it requires only three test
patterns to detect all single and multiple stuck-at faults in the circuit. We
can further reduce the number of tests from three to two if we restrict our
fault assumption to the more stringent condition that we test only for faults
at input/output terminals of components or modules in the circuit. Kuhl
and Reddy (1978) have shown that by adding extra circuitry and extra
inputs and outputs it is possible to detect all stuck-at faults occurring at
module inputs/outputs with three function-independent tests . Inose and
Sakauchi (1972) developed a method of designing easily testable circuits
that require only two test patterns to detect all terminal stuck-at faults. The
same result was obtained by DasGupta et a!. (1980), who used almost the
same idea as Inose and Sakauchi. These methods are based on the idea of
dual-mode logic, in which a circuit is tested in one mode while the normal
function of the circuit is performed in another mode, with neither mode
interfering with the other.
A different approach, called compact testing, can reduce greatly the cost
142
143
Clo ck
Log ic:
Circui t
SW: Switch
Figure 5.2
Shirt-register modification (from Williams and Angell 1973; <0 1973 IEE E)
144
Return to the normal-function mode and apply the test input pattern.
Switch to the shift-register mode and shift out the final state while setting
the starting state for the next test.
As this procedure shows, one can design any sequential circuit so that it will
be treated as purely combinational by making use of the scan design
techniques.
145
become larger. Actually, it has been observed Ihat the computer run time to
generate tests is approxima tely proporti onal to the number of gates to the
power of 3 (GoeI19 80). T herefore, dividing a circuit in half would reduce the
test-generati on task to one-eighth for each of the two divided subci rcui ts.
T he second guideline is to enhance con tro llabi lity a nd observability. As
described in section 5.1, the testability of a circui t is closely related to its
controllability and observability, and hen ce enhancing controllability and
observability is very effective in reducing the cost of test generation.
Dividing the Circuit
A circuit can be divided mecha nically or logically. M echanical partitioning
(e.g., dividing a boa rd in half ) redu ces the number of gates load ed on a
board: This goes agains t the cur rent stream ofVLSI technol ogy and defeats
the cost adva ntages of integration.
L ogical partitioning can be accomplished by adding extra logic. Degating
is a simple techn ique for separating modules in a circuit by inserting extra
gates bet ween modu les. Figure 5.3 shows two exam ples of degating logic.
Fo r bot h cases, a degat e line and a n AN D ga te are used to block signal
propaga tion from the oscilla tor and module I by forcing their ou tpu t 10
noncon trollin g values. In figure 5.3(a), when the dega te line is at the value 0
the oscillator is blocked and the extern al clock can propagate thr ough the
OR gate. As a result, all the logic in the circuit can easily be controlled by the
external clock. Similarl y, in figure 5.3(b), the control line can be used to
dr ive directly into module 2 by setting the degate line to O. In this way,
degating ca n disconnect one portion of a circuit from a nother po rtion in
order to make test ing easier.
146
Ext ernal
Clock
(a )
Modul e
Module
2
Degate _ _-oJ
Contro l
(b)
F igure 5.3
Dcga ting logic
Dat a
1
External f-Tester
f-f-o
Bus
1 1
foli cr oProcessor
Fi gure 5.4
RAMs
ROtls
1
Address
Bus
Control
Bus
I /O
f---- To/Fr om
Inter face
I/ O
Ci rcuits ~ Device s
1 1
I
I
147
putting its output into a high-impedance state. These buses can be used to
drive any module, as if they were primary inputs/outputs to that particular
module. Since each module can be isolated from the buses, the partitioning
is accomplished. The buses make it possible to test the computer boards by
applying test patterns to each module separately.
Another technique that partitions the circuit under test is in-circuit
testing, in which each chip on the board is tested independent of the other
chips on the board. Chips not under test are disabled, or their outputs are
forced to a desired state by overdriving them with large currents. Such incircuit testing is usually performed in card testing by a bed-of-nails tester
(Stewart 1977). The "nails" are spring-loaded pins arranged to contact chip
pins on the noncomponent side of the card. That is, the bed-of-nails tester
probes the underside of a board to give a larger number of points for
controllability and observability. For each chip, the appropriate nails
and/or edge pins are driven so as to prevent one chip from being driven by
the other chips on the card, and then test patterns are applied to this
logically isolated chip. The tests are much simpler and the test generation
much easier than in edge-connector testing, since only one chip is tested at a
time. On the other hand, this approach has some drawbacks. Since testing
of interconnections is incomplete and the interactions among chips are
neglected, it is not guaranteed that the board as a whole will work correctly.
Also, care must be taken not to damage the circuit when overdriving it.
Despite such disadvantages, in-circuit testing is very widely used and will
become more necessary because of the increasing complexity of products.
Enhancing Controllability and Observability
A direct approach to enhancing the controllability and observability of a
circuit is to use test points for the purpose of allowing the internal signals to
be controlled and observed. Several techniques to identify how and where
to add such test points have been studied theoretically by Hayes (1974),
Hayes and Friedman (1974),and Saluja and Reddy (1974). Although these
techniques can achieve a high level of testability, they require too many
extra gates and pins to be used in practice.
Another technique based on testability analysis is used in practice to
identify where to add test points. As mentioned in section 5.1, several
testability measures are devised to find the areas of poor testability. A good
testability measure indicates the difficulty of test generation in the circuit.
This testability analysis can identify the areas of poor controllability and
148
Poor
O-controllability
f'-----------'
N
II"W
poor observability, and hence one can know where to add control inputs
and observable outputs so as to enhance testability.
Using a test point as a primary input can enhance the controllability of a
circuit, and using a test point as a primary output can enhance the observability of a circuit. In some cases, a single pin can be used as both an input
and an output. For example, suppose that an internal node, say N in figure
5.5{a),is predicted to be too hard to set to value 0 by the testability analysis.
Then the O-controllability of N can be enhanced by a straightforward
technique of embedding an AND gate, as shown in figure 5.5(b). Similarly,
the I-controllability can be enhanced by using an OR gate. These extra
AND and OR gates may be replaced by wired-AND and wired-OR,
respectively, though they depend on the circuit technology. Figure 5.6
shows a technique by which the J K flip-flop can be made directly resettable.
This extra facility of resetting (or setting) a bistable flip-flop can significantly
enhance the testability of the circuit. Since resetting the flip-flop ensures
149
c
---I K R
c
KR
Extra
Input
(a) Original circu it
Figure 5.6
Test po int for direct resetting
that the initial state is known, this lightens the task of test generation for
sequential circuits. The drawback of this general technique for adding test
points is that its applicability has a limit of extra pins.
In addition to these techniques, in-circuit testing approaches such as the
bed-of-nails tester mentioned above also fall into the category oftest points.
Each of nails on the bed-of-nails tester can function as a test point. This
technique is effective in simplifying test generation, but its applicability is
limited since it depends on the phys ical design of electrical products. Boards
that have devices on both sides or that have large numbers of device leads
that are inaccessible to external probes cannot be tested by a bed-of-nails
strategy. Also, systems might be completely sealed in plastic or be contained
in their own cooling units. In such advanced products, in which in-circuit
testing is powerless, structured design techniques may be needed to obtain
good testability.
The cost of testing consists mainly of the cost of test generation and the cost
of test application. This chapter focuses on design methods that decrease
the cost of test application. As a measure of the cost of applying test
patterns, we adopt the number of test patterns applied and/or the num ber
of reference comparisons made to test the circuit with the given test patterns. In general, the number of test patterns applied is the same as the
number of references. However, in certain compression techniques the two
values are independent.
Any circu it can be modified by embedding EOR gates so that the
resulting circuit requires only five test patterns. This number of test patterns
can be reduced to three by another approach, called a minimally testable
design. This number, three, is believed to be minimal under the general fault
assumption. However, to test only for faults at input/output terminals of
modules or basic elements composing a circuit, two test patterns are
sufficient for specially designed circuits using dual-mode logic. In addition
to these design techniques, there is a technique in which the response
patterns are compressed and compared with the expected value of only two
bits .
. In this chapter we consider only combinational circuits. since any sequential circuit can be designed so as to be treated as purely combinational
by the scan design techniques propo sed in chapter 8.
151
Figure 6.1
Realizat ion of f
Xl - - X2 - X3
= x,X 2 "' ,
+ 31,;(2)(,
----1
-+-----1~.../
-.-+-+-------------l_-"
f
Figure 6.2
Realizat ion of f after step [
152
Figure 6.3
Fu lly mod ified circuit with additional EOR gates
*00110
*01101
Figure 6.4
Basic component and test patterns
153
three test patterns 01, 10, and 11 are needed for the 2-input NAND gate.
This is accomplished by the four test patterns not flagged by an asterisk in
figure 6.4. In these test patterns, only one 0 appears at the output y of the
NAND gate. Hence, if the NAND gate is followed by another EOR gate, an
additional 0 must appear at y. This extra test pattern is flagged by an
asterisk in figure 6.4.
These five test patterns have the property that each five-bit sequence on
the input and output lines except the control lines of EOR gates is a
permutation of the sequence 00111. There are ten such permutations,
denoted by the set P = {Po, PI"'" pg} where
Po = 00111,
PI = 01011,
P2 = 01101,
P3=0111O,
P4
= 10011,
P5 = 10101,
P6 = 10110,
P? = 11001,
Ps = 11010,
pg
= 11100.
and their OR is
154
Table 6.t
for all compatible pairs in P
PiPj
Pj
Pi
0
1
5
6
7
8
9
6
5
9
4
4
8
2
3
2
I
7
3
7
6
5
5
3
3
2
1
0
0
4
4
2
I
2
0
I
3
1
0
0
155
Hayes called this the compatibility constraint. The existence of such assignments satisfying the compatibility constraint is guaranteed by the following
lemma.
6.3 Given any (not necessary distinct) sequence Piand Pj in P, there
exists P in P such that both pairs {Pi' Pk} and {Pj' pd are compatible.
LEMMA
On the basis of the above observation, Hayes (1974) presented a procedure for assigning five-bit sequences to all lines such that the compatibility
constraint is satisfied .
Assignment Procedure
Step 1 Apply any Pi in P to each primary input line.
Step 2 Suppose that Pi is applied to the noncontrolled input of an EaR
gate E whose output is connected to input A of a NAND gate G. If no
sequence has yet been assigned to the other input B of G, select any Pj that is
compatible with Pi and apply Pi EJj Pi to the control input of E. Thus, Pj is
assigned to line A. On the other hand, if Pk has already assigned to line B,
then select a sequence Pm such that {Pi> Pm} and {Pk> Pm} are compatible
pairs. Assign Pi EJj Pm to the control input of E.
Step 3 Repeat step 2 until sequences have been assigned to all lines of the
circuit.
To understand this procedure, consider the circuit of figure 6.3. First, we
assign Po to all primary inputs, i.e., XI = X2 = X3 = Po = 00111. We select
PI' which is compatible with Po, and assign it to line a. Hence, Po EJj PI
= 00111 EB 01011 = 01100 is assigned to the control input C I . Line b must
be assigned a sequence that is compatible with both Po and PI ' From table
6.1 we find that both {PO,P2} and {PI,P2} are compatible pairs . Thus, we
assign P2 to line b. This implies that the output h of the gate has P6' In this
way we can assign five-bit sequences satisfying the compatibility constraint
to all lines, as shown in table 6.2.
From lemmas 6.1 and 6.2 we can easily see that all four possible input
patterns are applied to each EaR gate and the response is observed directly
at the output of the EaR gate, and similarly that all four input patterns are
applied to each NAND gate and the response is observed at the output of
the following EaR gate. Hence, all stuck-at faults in the circuit are completely detected by these five test patterns, and we have the following
theorem.
156
Table 6.2
Assignment satisfying compatibility constraint
Input
Sequence
x.
Po
.'1: 2
Po
x3
C.
C2
C3
C4
Po
00111
00111
00111
+ PI
Po + P2
Po + PI
Po + PI
Po + P2
Po + P.
P6 + Po
P6 + Po
P9 + P2
P9 + P3
01100
01010
01100
01 100
01010
01100
10001
10001
10001
10010
Cs
C6
C7
C8
C9
c.,
Po
O utput
Sequence
0.
PI
O2
P2
03
04
P.
Os
P2
P.
PI
07
08
09
Po
Po
0 10
P3
P4
P2
010 11
0110 1
01011
01011
0 1101
01011
00 111
00 111
0 1101
011 10
10011
THEOREM 6.1 (Hayes 1974) Every combinational circuit N can be modified by adding control logic to yield a circuit N ' tha t requires five test
patterns to detect alI single and multiple stuck -at faults.
The procedures and results mentioned above can be extended to seq uential circuits. For furthe r discussion see Hayes (1974).
157
A
B
---Df----
(a)
3-input AND
011
101
001
6.5{b)gives a realization in which three input patterns can fully test all single
and multiple stuck-at faults on their inputs or outputs in the circuit. In this
figure the 3-input AND gate has been replaced by two 2-input AND gates,
and a 2-input OR gate ha s been inserted between them with a controllable
input C I and observable outputs 1 , 02 ' and 03' By expanding a 3-input
gate into 2-input gates, we can apply the three input patterns shown in the
figure to each 2-input gate and observe the response at the output of each
gate. It is easy to see th at those three input patterns can test all single and
multiple stuck-at faults in the circuit.
Similarly, we can obtain the minimally testable circuit that realizes an ninput AND gate, as shown in figure 6.6. Three test patterns ar e given in the
figure . For other types of gates, such as OR, NAND, and NOR ga tes, we
can consid er similar circuits. Figure 6.7 illustrates the minimally testable
realization for a 3-input OR gate and its test patterns.
The test patterns for a 2-input AND gate, 01,10, and 11, can be obtained
by applying any two distinct sequences from the set SI = {Oil, 101, llO}.
Similarly, the test patterns for a 2-input OR gate are 01, 10, and 00, which
can be applied by taking any two distinct sequences from the set S2
= {lOO,OIO,OOl} . Hence, the ap plication of any two distinct sequences
from SI (52) is necessary and sufficient to detect any stuck-at fault in the 2-
158
Xl
X
011
01
101
O2
001
x3
001
010
".,l
xn
Dtfu
101
Figure 6.6
T esta ble realiz at io n of n-input gate
A
B
001
010
1
2
all
3
010
Figure 6.7
Min imally test able 3-inpu t O R
001
p _l
0p
159
input ANDjNAND (OR /NOR) gate. In figure 6.5, 6.6, and 6.7, we can see
th at all test sequences assigned to the gates are taken from set SI or set S2,
depending on whether the gate is of the AND type (AND or NAND) or the
OR type (OR or NOR). Furthermore, these sets SI and S2 satisfy the
following properties:
If 5 is in SI (S2)' then sis in S2 (SI)'
If both 51 and 52 are in SI' then 51' 52 is in S2' where 51 =I 52 '
If both 51 and 52 are in S2' then 51 + 52 is in SI' where 51 =I 52'
Saluja and Reddy also introduced the term compatible in the same sense
as in section 6.1, though it is defined differently as follow s: Two 3-bit
sequences appearing at the two inputs of a gate are said to be compatible if
they can detect all stuck-at fault on its inputs or its output. Hence, for an
AND gate, if 51 and 52 are in SI and 51 =I 52' then 51 and 52 are compatible.
However, all other pairs are incompatible. For example, {1l0,01l} is a
compatible pair, but {110, 1I0}, {11O,00l},and {lOO, OOl} are incompatible
pairs for a 2-input AND gate.
The procedure for modifying a given circuit so that it can be tested only
by three test patterns is as follows. (Here, for the sake of simplicity of
argument, the circuit is a ssumed to be composed only of AND, OR, and
NOT gate s, though the procedure can be applied to more general circuits
including NAND and NOR gates.)
Modification Procedure
Step 1 Change all AND/OR gates in the realization to a tree of 2-input
AND/OR gates.
Step 2 Assign arbitrary sequences from SI U S2 to all the primary inputs.
Step 3 If th e two sequences applied to the inputs of a gate are incompatible, then modify the gate by introducing control logic such th at only the
compatible sequences appear at the inputs of the gate.
There are many cases for this modification. Figure 6.8 illustrates modification for an AND gate with incompatible sequences. Figure 6.8(a) shows
an instance where both sequences are from set SI and are the same. Figure
6.8(b) gives the modification for an instance where one seq uence is from Sj
and the other from S2 ' In figure 6.8(c), both sequences are from S2'
Step 4 Repeat step 3 until all gates in the circuit ha ve been assigned only
by compatible sequences.
160
A
B
110
110
101
B
0
1
O2
3
001
C2
1
(al
A
B
110
==0---001
- ::~o
A
100
~O~
C1
(bl
C
A ===c>B
001
A ----L-'>.--..:..~----- 1
(el
Figure 6.8
Modi ficatio n for incompa tible pairs
O2
r--~:-/>-.!------- 3
161
Xl
x2 --4H-----L--.../
XJ
--...--H-------L....-'
f
Figure 6.9
Realization
or f
X 1X 2 X 3
162
110
101
010
Figure 6.10
Com pat ible and incompat ible pairs
100
001
Figure 6.11
M inimally testable realization of f
= x ,x 2 x, + X, X2X,
C C
2
1
x
f
y
163
II
+Y
x'Y
ll'y
(b)
(a)
Figure 6.12
Mod ule M ,
164
C1 C2
xl
x2
{h-- . .=5-
C1 C2
C1 C2
...
=lY=---
X
n
-u-
'0'
Figure 6.13
Logic circuit built with mod ules
Figure 6.14
Realization of f
165
thus the above fault causes value 1 on the output of module 2, which
propagates to the output of the circuit. From the principle of duality, we can
see that the other test pattern, (1 , 1, 1, 1),detects a stuck-at-O fault at input A
of module 2. However, it is not guarant eed th at the above tw o test patterns
can det ect any single stuck-at fault at control lines C 1 and Cz . For example,
consider a stuck-at-l fault at line C 1 Obviously, the test pattern (1, 1, 1, 1)
cannot detect the fault. Further, the other test pattern, (0,0,0,0) , cannot
detect it either, as figure 6.15 shows. It has been proved by DasGupta et a1.
(1980) that at least four control inputs are necessary to detect all single
stuck-at faults, including control input faults, with two functionindependent test patterns.
A dual-mode logic circuit proposed by DasGupta et a!. (1980) also has
the structure shown in figure 6.13. A dual-mode logic circuit is composed of
modules, and extra control inputs are common to all these modules.
DasGupta et a!. showed that four con trol inputs are necessary and sufficient
to derive a dual-mode logic circu it that allows function-independent testing
of faults at the terminals with two predefined test patterns. Table 6.3 is the
general truth table of du al-mode logic modules with four control inputs: C 1 ,
Cz , C3 , and C4 If a circuit with input XI' XZ, ... , x, is built with modules
who se truth table is that shown in table 6.3, then we can show that two test
patterns, (Cl,CZ,C3,C4,XI"",Xn) =(0, ... ,0) and (1, .. . ,1), detect all
single stuck-at faults at input/output terminals of modules. From table 6.3
166
Table 6.3
Truth table of dual-mode logic modules
C1 C2 C3 C4
dtd m- t dm
0
0
0
0
0
0
0
0
0
0
0
0
o ...... 0
o ...... 0
o test
0
0
0
0
1
0
0
1
0
1
1
0
1
I
I
0
0
0
1
0
0
0
0
...... 1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
o ...... 1
0
1
0
x ...... x
j}
At least one
segment for an
arbitary function
n
1
x ...... x
o ...... 0
...... 1
...... 1
0
1
1 test
it is easily seen that if the test pattern (C" C" C 3 , C4 , d , ... , d m ) = (0, ... ,0)
(or (1,... , 1))is applied, any pattern of In or fewer stuck-at-I (or s-a-O) faults
at d , d" ... , dm changes the output to the complement of the expected
output, where d , d z , ... , dmare inputs of the module. Hence, any stuck-at-I
(or s-a-O) fault at noncontrol input/output terminals of modules is detected
by the test pattern (0,... , O)(or (I, ... , I)). Similarly, in table 6.3 all the input
patterns Hamming distance I from (0,... ,0) and (1, ... , I) have the different
output values from that of (0, ... ,0) and (I, ... , I), respectively. Hence, any
single stuck-at fault at control inputs can be detected by test patterns
(0, ... ,0) and (1, ... , I). Consequently, the following theorem holds.
THEOREM 6.3 (DasGupta et at. 1980) In any n-input dual-mode logic
circuit built with modules whose truth tables are as shown in table 6.3, two
167
C1 C2 C C4
3
Modul e
(a l
x .. y
0 0 0
0 0
0 0
0 1
1 0
0 1
1 0
0
0 0
1
0
0
1
0 1
1 0
I
1
1
0
0 1 1
1 0 1
1 1 0
I 1 I
1
1
1
0
0
0
1
0
I
I
0
1
0
1
1 I
} ,.y
0
0
1 1
xy
{bl
Figure 6.16
Mod ule M,
test patterns, (C t , C2 , C3 ,C4 , X t , , x n) = (0, . .. ,0) and (1, . .. ,1), can detect
any pattern of stuck-at faults at the input/output terminals of the cir cuit or
the modules, provided that faults in the control inputs affect, at most, one
control input of each module.
As an example, cons ider the module M 2 illustrated in figure 6.16, which
has two inputs (x and y) an d four control inputs, realizes a NAND function
in the normal mod e, and satisfies the truth table 6.3. For any dual-mode
logic circuit constructed by this module, two test patterns, (0, .. . , 0) and
(1, ... , I), detect all single stuck-at faults at inpu t/output terminals of
modules in the circuit.
168
Circuit
Comparator
Under
Test
Tes t Sequence
Figure 6.17
hardware. including gates and I/O pins . that they can hardly be put to
practical use. This section presents another approach (described in Fujiwara
and Kino shita 1978) to minimizing the cost of test application without
changing or modifying the circuit under test. The approach is a test -datacompr ession technique in wh ich the response patterns are compressed a nd
compared with the expected value of only two bits .
The scheme considered here is illustrated in figure 6.17. A sequence of test
patterns are appl ied to the circuit under test. The response of the circuit is
transformed by some data-compression function and then compared
again st a previously obtained reference value. The circuit under test is
certifi ed to be fault-free if and only if the two values are identical.
We first consider single-output combinational circu its. In the datacompression box of figure 6.17. data-compression functions called count
functions are used. Let R = r l t z .. .rm be any binary sequence. Here we
con sid er the count functions
m
c[{R) =
Lr
i- I
EB r j
j= 2
m
c2 {R) =
L ~ -l . rj
(rising ed ge count),
i= 2
c3(R) =
Lr
j_
1 .
r;
j= 2
169
In the schemes proposed in thi s section, one or more count functions will
be used to implement the data compressor shown in figure 6.17. In general,
Ci , ... , c j ) , where m ~ I, of count
we assume that an m-tuple C = (c,',2
~
functions is being used for testing.
For a given class offaults, a circuit under test is called testable by a count
function C and a test sequence S if, for every fault in the class, the value of C
is different from the reference valu e. .
Before we consider testing schemes that provide considerable compre ssion of test response data such that the respon se d ata can be compressed into two bit s independent of the number of test patterns, note the
following fundamental lemma, which gives an equivalence class of count
functions.
LEMMA 6.4
170
Conversely, assume that another sequence S also has ci(S) = e, and cAS)
> 0 and q > 0 and
p + q = 11 + 2. If both sequences Sand R are distinct, then either no + 1
> p or 11 0 + 1 < p. In the case of 110 + 1 > p, the output value of test t? in S
must be 1. Thus, the leftmost value of S is also 1, and this contradicts that S
has the form OPI Q for p > 0 and q > O. In the case of no + 1 < p, the output
value of test t ~ in S must be 0, and similarly we have the contradiction.
Hence, Rand S must be identical. This implies that any response S
satisfying Ci(S) = ei and cAS) = ej is only 0"0+ II'" + 1
= ej' Then, from lemma 6.4, S has the form OPI Q where p
The optimal des ign to minim ize the cost of test generation is achieved by
elimina ting the expensive stage of test generation. This can be accomplished
by a technique called universal testing or function-independent testing, in
which test patterns can be predetermined independent of the function being
realized. Some of the techniques mentioned in chapter 6 belong to this
approach. However, though these techniques are of great theoretical interest, the enormous hardware requirement is practically prohibitive.
If it is required only to reduce the cost of test generation within the
limitations of permitted extra hardware complexity and tolerated performance degradation, an attempt should be made heuristically through ad
hoc methods such as inserting test points. Hayes and Friedman (1974)
proposed a method for selecting test points to reduce the number of test
patterns for fault detection in combinational circuits, but the number oftest
points required is still large. Coy and Vogel (1981) developed a method of
inserting test points to simplify test generation. The approach of Coy and
Vogel-breaking up pairs of reconvergent paths by test points-is based
on the fact th at the existence of reconvergent paths may force faults to
become difficult or impossible to detect.
In this chapter, we consider design for universal testability in which no
test generation is required. A trivial example of universal testing is exhaustive testing, which requires that all 2" patterns be applied to the inputs
of the circuit under test. One approach based on exhaustive testing is the
partitioning of the circuit into small parts by multiplexing; another is
syndrome-testable design. Other approaches to universal testing involve
designing circuits with regular structures, such as Reed-Muller canonic
circuits and programmable logic arrays.
172
where 11", nj , and no are the number of primary inputs, the number of
internal linking inputs, and the number of outputs of the subcircuit, respectively. Figure 7.1(b) shows the implementation in the case of nj > 110 ,
In order to test one of these subcircuits, multiplexers are controlled so
that all subcircuits except the one under test are bypassed. This makes it
possible to access directly all the inputs and outputs of the subcircuit under
test from outside the circuit, and thus the subcircuit can be tested exhaustively. In this way, exhaustive test ing for all subcircuits is performed by
controlling multiplexers in the whole circuit. To speed up the testing of the
whole circuit, some subcircuits are tested simultaneously if the propagation
paths associated with those subcircu its are disjoint or separated from one
another.
The approach of Bozorgui-Nesbat and McCluskey (1980) is similar. Let
us decompose a circuit G with input X and output Y into two subcircuits,
G1 and G2 , with disjoint sets of inputs and outputs and internal linking
buses (figure 7.2). For direct access to linking lines, some multiplexers are
added, as shown in figure 7.3(a). In normal circuit operation, the internal
Pr imary
I nternal
Linki ng
Input s
Inputs
Subct rcut t
(aJ
173
In t erna l
Pri ma ry Linking
I nput s
Inputs
Subc1rcu1t
(b)
fi gure 7.1
Bypassing subcircuits {Sakauchi et at 1975; AFI PS 1975)
Fi gure 7.2
Part itioning (Bozorgui-Nesbat and M cClu skey 1980; IEE E 1980)
174
Subcircuit G]
(a)
Subci rcui t
G]
I==~x~
l==========~
M
~======:::j ~ ~==::::::j
Subci rcuit G
Z
Subc1 rcu1 t Gl
Subcl rcul t GZ
175
176
:'J
.;:;
'u
.D
;:I
'"
"~
-5
...
.5
;:I
...u
U
..c
;:I
en
ea
"Of .5
. '"
.... 0
~ :~
;:I
"'" Q.~
t;:
:~
II
177
N S
AG>B
Figure 7.5
Reconfigurable 3-bit LFSR module (McCluskey and Bozorgui-Nesbat 1981; IEEE 1981)
patterns for the subcircuit being tested . This mode operates as a test-pattern
generator. In general, there is a method of designing an LFSR that generates all 2" - 1 possible input patterns. The interested reader is referred to
Barzilai et al. 1983.
Figure 7.6(c) shows the third mode with N = 0 and S = I. In this mode
the module functions as a parallel signature analyzer. Generally, an LFSR
performs the basic operation of divi sion by a polynomial in G F(2) (Galois
fields of two elements) (Peterson and Weldon 1972). Hence, data cornpression of a sequence of output responses is equivalent to superpositio n of
po lynomial division processes. T he fina l signa ture is composed of the
modulo 2 summation of remainders from all the division processes. There
are severa l LFSRs associated with polynomials in GF(2). The LFSR shown
in figure 7.6(c) is an example of the LFSRs for parallel data compression.
The techniques mentioned above append multiplexers to the circuit so as
to partition it into manageable subcircuits. These subcircu its can be tested
exhaustively, so that test-pattern generation and fault modeling can be
elimin ated. However, these methods have drawbacks; the added multiplex-
178
.------~
0 Q 1 - _ - - - 10 Q 1-....----lO
1
2
11
1
2
1
3
IEEE 1981)
179
I.
Q."b
{a_
ife ~ 0
if e = 1,
Q."b
12 = { X
ife = 0
if e = I and a' b = 0,
Q."b
13 = { X
ife
ife
1.
the gates with controllable gates capable of blocking or creating propagation paths. In order to test a partitioned subcircuit, the logical values on
the control lines of controllable gales are determined in such a way that the
Design forTestability
180
,
a
---I
--1
f-c
f-c
b-----l
(a)
f--
--j
(b)
'1
'2
oo
Figure 7.7
The nMOS implementation of various controllable NAND gates (Oklobdzija and
181
Figure 7.8
Syndrome of va rious a-i nput gates
subcircuit can be accessed from the outside th roug h the paths created by the
controllab le gates . The text pa tterns for this subcircuit are ap plied from the
prim ary input s, a nd the responses are observed on the primar y outputs.
That is, the subcirc uit is tested ind ependent of the other parts of the circuit.
Th is 'process is repeated for all subcircuits until the whole circuit is tested.
As figure 7.7 sho ws, each controllable gate has two extr a devices. These
extra devices cau se some speed degrad ati on; however, the delay here is
much smaller than that resulting from the addition of an extra gate. The
overhead of exira I/O pins for the control lines can be reduced by using a
shift register from which the cont rol lines are cont rolled. Th e con tent of the
shift register is load ed serially from the outside through a n additional pin.
Each cell of the shift register has control ove r one or several controllable
gates.
7.2 Syndrome-Testable Design
The synd rome S(J ) of a logic function f is defined as
S(J)
K~!)
where K(J) is the number of min terms realized by the functi on f and n is
the number of inputs of [. Figure 7.8 shows the syndro me of vari ous n-input
gates. Obviously 0 " S(J) " 1, and hence the storage requ irement for test
dat a is drastically redu ced in syndrom e testing,
182
Reference
Syndrome
Circuit
Syndrome
Under
Test
Register
!
Comparator
f- Good/Faulty
Figure 7.9
The product terms XIX"~ x,x4 , and x,x4 are all prime implicants.
Any stuck-at-O fault at the input to an AND gate causes the prime
implicant realized by the AND gate to disappear. For example, the s-a-O
fault at line c causes the function f to be the faulty function
Since S(J) = :g '" ,76 = S(J'), the fault c/Ois syndrome-testable. Any stuckat-I fault at the input of an AND gate is a growth fault. The fault c/1
changes the term x,x4 into x4 , and thus it induces the faulty function
183
Xl - - - - - - l
x ------1..--.-/
2
b
X
_------r____
}-----l
Figure 7.10
T wo -le vel " ir,," it
+ B Xi + C
S(AC) = S(BC).
Fo r example, conside r th e stuck-at-O fault at the fanout point x 3 sho wn in
figure 7.10. The fault -free fun ction is
a nd hence
f = A X3 + B X3 + C
where A =
x4 B =
x 4 , a nd C =
X 1X 2'
184
Xl
Designfor Testability
--------i"
x2 - - - - - - L . . /
c
f
Figure 7.11
Syndrome-testable circuit
have
S(AC)
16'
66'
1
X3
or
X4
is syndrome-testable,
and
S(CX4 . XI X2) - S(X4 . X I x 2).
185
to create the desired syndro me. In our example, the second product term
has shrunk as a result of the addition of input c. In thi s way the circuit ca n be
made syndrome-testable.
Sa vir (1980) presented a method of mod ifying the irredunda nt function
given in a sum of produ cts form by addi ng a nearly minimal num ber of
con trol inputs so that the resulting function is syndro me-testa ble. Roughly
speaking, the procedu re is to repeat the following process until the function
becomes syndro me-testabl e. That is, the process is to creat e a new function
F ' fro m the present function F by adding a new con trol input o r an already
added contro l input to a n ap prop riate prime implicant of F so that
T (F)
Let f Ul denote the j th mo dified function, a nd let pOl = f. The first step is to
find all the vari ables Xi in which pOl is syndrome-untestable. Th en we have
T(f(OJ)
T(fl")
{x, }.
C2'
Appending C2 to
186
xl
x
2
C
x3
f(3)
x
4
Xs
Figure 7.12
Syndr ome-test able design
T(j(3)) = ~ (empty).
Hence, we have the syndrome-testable design shown in figure 7.12.
Savir (1980) also presented a me thod for modifying the desig n of a general
combinational circuit so that it will be syndrome-testable. H owever, there
was no proof th at every multilevel combinational circuit can be m odified to
be syndrome-test able by extra input insertions. Markowsky (1981) showed
that a combinational circuit can always be modified to be syndrometestable for sing le st uck-a t fau lts. Savir (1981) presented a method for
partitioning a given logic circuit into a minimal number of subcircuits
consisting of maxi mal unate componen ts that are syndrome-testable
by themselves. Barzilai et al. (1981) considered syndrome testing for
multi-o utpu t circuits and proposed the "weighted syndrome sums approach," which is based on multiplying syndromes of different outputs by
suitable factors and then summing those to form a composite syndrome.
Bhattacharya and Gupta (1983) proposed a method of designing
syndrome-testable circuits so that all single stuck-at faults and all shortcircuit faults involving any two lines can be detected by checking only the
187
CI
2~ [f(X) EB IX
2' -
I]
LXI
Lx
where I = {iI' i 2 , . , ik } ,
= XiI ~ X i 2 EB EB X ik'
is the arithmetic
summation for all input combinations, and Co = C 1 = 0'
It is obvious that each coefficient has a value that lies in the range from
- 211 to + 2 11 Further, 211 coefficients characterize the function completely.
For a two-variable function we have the following four Rademacher-Walsh
coefficients:
Co = 22
2I f(X),
CI = 2
C2 = 2
C l 2 = 22
188
initial fanouts can be detected by verifying CALL and single stuck-at faults
on any lines following fanout can be detected by calculating Co' This result
gives us sufficient conditions for designing circuits that can be fully tested
CALL'
,x") =
Co
EB C 1 Xl
EE> C 2 XZ EB
ED c"x"
C2"-lX 1
X2 "'X"
first express the function with a sum of disjoint products, and replace all OR
operators in the sum of mutually exclusive products by EOR operators.
Then we convert the expression to a complement-free Reed-Muller form
using the identity
As candidates for easily testable circuits with function-independent testing, Reddy (1972) considered Reed-Muller canonical circuits, which are
direct realizations of Reed-Muller canonical expansions using AND and
189
Xl
x2 - -
---if---.-
+--
- f - --
-,
x3 - --+-+--- H - -H - - - h
x4
Figure 7.13
Reed-Muller canonical circuit real izing fl( X,.X 2, X3'X .)
T,
~ l!
Xl
X2
0
1
0
1
0
1
X.
~J
It is easy to see that the application of these four test patterns supplies all
fou r input pa tterns to each EaR gate. Furthermore, as Reddy (1972)
mentions, we can see that a s-a-Ofaul t at any AND gate input or output is
detected by applying either of the test patterns OIl. .. 1 and 11. .. 1. A s-a- l
fault at the output of any AN D gate is detected by applying either of the test
patterns 00 . .. 0 and 100 . .. O. Hence , the faults rem aining unte sted are s-a-l
faults at the inputs of the AND gates and s-a-Oor s-a-l faults at the primary
inputs.
To detect a s-a-l fault at anyone of the inputs to the AND gates , one of
the n test patterns in the set Tz is sufficient:
190
Xo
Xl
X2
X3
Xn
0
1
1
1
0
1
1
1
0
1
1
1
x
x
T2 =
where x is "don't care." The ith test pattern in T2 places a zero on all ANDgate inputs to which Xi is connected, and all the other inputs are 1. Hence, if
the input connected to Xi on thejth AND gate is s-a-1, then the output of
this gate changes from 0 to 1 and this fault effect is further propagated
through the EOR gates to the primary output. For example, to detect a
s-a-l fault at line a in figure 7.13 we need only to set Xl = 1 and X 3 = O.
Hence, the fault is detected by either of the test patterns 01101 and 11101
in T2
Finally we consider the detection of single stuck-at faults at primary
inputs. Suppose that a primary input Xi is connected to an odd number of
AND gates; that is, Xi appears an odd number of times in the Reed-Muller
canonical expansion. A s-a-O fault at Xl induces an odd number of changes
at the outputs of AND gates if one ofthe test patterns 011 . .. 1 and 11... 1is
applied. This implies an odd number of changes at the input to the EOR
cascade, and hence the fault effect is propagated to the primary output.
Similarly, a s-a-l fault at Xj can be detected by one of the test patterns in T2
In this way, any single stuck-at faults at a primary input that is connected to
an odd number of AND gates can be detected by one of the (n + 4) test
patterns in T = TI U T2 In figure 7.13, XI and X 3 are connected to an odd
number of AND gates. Hence, a s-a-Ofault at Xl or x 3 is detected by either of
the tests 01111 and 11111. Further, a s-a-l fault at Xl (X3) is detected by
either of the tests 00111 and 10111 (01101 and 11101).
However, the(n + 4) test patterns detect no single stuck-at faults at those
primary inputs that are connected to an even number of AND gates, since
such faults induce an even number of changes at the input to the EOR
cascade and thus no change in the output of the cascade. For example, in
figure 7.13, X 2 and X 4 are connected to an even number of AND gates. Even
if the test patterns 01111 and 11111 are applied to detect a s-a-Ofault at X 2
or X 4, the fault effect propagates to an even number of AND gates; that is,
191
Xl - - - - - . - - , , - - - ,
x,
x3
----t~--cl---t_--~---___,
--++--+..--+,--f-,
x4---H--++---+~--++r---t---,
Extra Gate
9
vl
-H
Figure 7.14
Modifiedcircuit for 11
an even number of changes at the input to the EOR cascade occur and no
change at the output of the cascade is induced.
Reddy (1972) proposed an approach to adding an extra AND gate so that
any fault at those primary inputs connected to an even number of AND
gates can be detected. The inputs to this AND gate are those appearing an
even number of times in the Reed-Muller canonical product terms. For the
functions
II
given above,
Xl
terms. Hence, the modified circuit for f, is given in figure 7.14 by adding an
AND gate whose inputs are X 2 and x, and whose output g is allowed to be
observed directly. For the modified Reed-Muller canonical circuit, we see
that the test patterns in T ~ T, U T2 are sufficient to detect single stuck-at
faults in the primary inputs and also in this extra AND gate. In the circuit
illustrated in figure 7.14, in order to detect single stuck-at faults on primary
inputs X2 and x; and inputs/outputs of the extra AND gate, it is sufficient to
apply three test patterns supplying (X2'X.) = (I, I), (0, I), and (I,D). Obviously these input patterns are included in T.
Summing up Reddy's results, we can state that for an arbitrary function f,
by adding one extra AND gate to the Reed-Muller canonical realization of
f, with inputs from all those primary input that are connected to an even
number of AND gates, we can detect all single stuck-at faults by applying
only (n + 4) test patterns, independent of the function
f.
192
hence, depend on the function being realized. Saluja and Reddy (1975)
extended Reddy's results to the multiple-fault assumption. It has been
shown that to detect t stuck-at faults in Reed-Muller canonical circuits, one
need only apply a predetermined test set, independent of the function being
realized, whose cardinality is
where LxJ denotes the integer part ofx. The Reed-Muller canonical circuits
proposed by Saluja and Reddy (1975) also have an extra AND gate whose
output is observable.
suitable to LSI and VLSI and has become a popular and effective tool for
implementing logic functions.
Much work has been done in recent years on the design of easily testable
PLAs (Fujiwara et aJ. 1980; Fujiwara and Kinoshita 1981; Hong and
Ostapko 1980;Pradhan and Son 1980;Son and Pradhan 1980;Saluja et aJ.
1981, 1983;Yajima and Aramaki 1981;Ramanatha and Biswas 1982, 1983;
Khakbaz and McCluskey 1982; Khakbaz 1983; Fujiwara 1984). Most of
this work has been concerned with the design ofPLAs that can be tested by
function-independent test patterns. The first designs of such PLAs with
universal testability were proposed independently by Fujiwara et at. (1980),
Fujiwara and Kinoshita (1981), and Hong and Ostapko (1980). Although
the two designs differ in implementation, the essential idea is almost the
same.This section describesthe design of Fujiwara and co-workers,since it
is much simpler than that of Hong and Ostapko.
A PLA consists of three main sections as shown in figure 7.15. These are
the decoder, the AND array, and the OR array. The decoder section usually
consists of a collection of one-input or two-input decoders. Both the AND
array and the OR array are used to implement multi-output combinational
logic with sum-of-product forms. An example of a PLA is shown in figure
7.16. A PLA can be implemented in either bipolar or MOS technology. In
f----
193
DECODER
AND ARRAY
--
--I
OR ARRAY
I
I
Figure 7.15
General struct ure of PLA
194
"'Il
L;
L,;
--,-------
"'Il
AIlD ARRAY
"'Il
--
----
--
____t_
OR ARRAY
Figu re 7.16
Example of PLA
where Pi is a pro duct term genera ted by the it h col umn ofthe original AND
a rray . An extra produc t line Pm + 1 is arra nged so tha t each row of the AND
array has a n odd number of connections (devices). Similarly, an extra row of
th e OR array is arra nged so that each column with in the OR array has a n
od d num ber of connections. T wo extra contro l lines C1 and C2 are added to
disab le all Xi S and X iS , respectively, as follows:
-_--I
">o----r-I---f---1-----j--I---t--
X2 - _ - - - l
>O------l--+--+---+---i--t--
Xl
195
X3 -_---1 >O----rl--+_--+---+--1"""i--+_-
X -----...----1
4
~,o----+_--+---1"""i--+_~+_-_!_-
Figure 7.17
Exam ple of PLA in n-MOS techn ology
= 1, 2, .. . , 11
where Xi is the ith input line and Qj is thejth row of the AND array. The
section, composed of 2 x 2n crosspoints on two control lines, is called the
control array of the augmented PLA.
Th e augmented PLA has the fol1 owing properties:
The shift register can be used to select an arbitrary column of the AND
array by setting 0 to the selected column and 1 to all other columns. Since
NOR logic is assumed, to select a column or product line Pi we want S, to be
oand al1 other SjS to be 1.
196
Extra colll1'lll
Extra
row
F igure 7.18
Augm ent ed PLA
----1......--+-----1'----......._
F1
- -.....---+---Dl()--.....--~~
Fk
197
(a)
(b)
Figure 7.19
Extra device in nMOS technology
The control array can be used to select any row of the AND array, i.e., to
sensitize any output line ofthe decoder. To select Q2i-I' set Xi to 0, all other
XjS to 1, C 1 to 0, and C2 to 1.To select Q2i, set Xi to 1, all other XjS to 0, C 1 to
1, and C 2 to O. Note that in NOR logic selecting a row is equivalent to
setting the row to 1 and all other rows to O.
The cascade of EOR gates below the OR array can be used as a parity
checker to detect odd errors that propagate to it.
The cascade of EaR gates on the left of the OR array can be used as a
parity checker to detect odd errors that propagate to it.
Utilizing the above properties of the augmented PLA , we can present a
universal test set to detect all stuck-at faults in the shift register; single stuckat faults on the lines of the control array, the AND array, and the OR array;
single crosspoint faults in the AND and OR arrays, where a crosspoint fault
is an extra-device fault or a missing-device fault at the corresponding
crosspoint; and multiple stuck-at faults on the external input/output lines of
EaR gates.
Table 7.1 shows the test set A n m+ 1 used to detect the above types offaults,
where n is the number of inputs, In is the number of columns in the original
PLA, t:m = 0 if m is even, t:m = 1 if In is odd, and x represents "don't care."
For this test set A n m+ 1 we have the following theorem.
THEOREM 7.1 Let M n m + 1 be an augmented PLA as shown in figure 7.18.
For any M n m + l, the test set A n m + I can detect all stuck-at faults in the shift
register and all single stuck-at and crosspoint faults in the control array, the
AND array, and the OR array.
198
Table 7.1
Universal test set A
II
.", + I
Jr
1... . "'+ 1)
J/(j = 1, ... ,m+ 1)
J,' (i = 1,... , n)
J/(j ~
1/
X1 Xj.. . X..
0 . . . .. .. .. 0
0 .. . .. . .. .0
1 . . .. .. . . . 1
I . .. 0 ... 1
0 ... I . . . 0
C, C,
I
1
0
0
I
0
0
1
1
0
I
1
I
0
0
. . . . .. . . 1
... 0 . . . 1
. .. 0 .. . 1
. .. ... . . 0
.. . . . .. . 0
2, 2 ,
0
1
1 1
'm
'm
X
X
I,'
Next, we will see that the test set A.m + I can also detect any multiple
stuck-at fault in the EOR cascade s under the fault assumption that permits
only stuck -at fault s on the external input and ou tput lines of EOR gat es.
(Tha t is, no fault within EO R gates is con sidered.)
LEMMA
199
vectors plus zero vector are sufficient to detect any multiple stuck-at fault
on the external lines of EaR gates in an N-input EOR cascade.
Let 1 and 2 be the EaR cascades having the outputs ZI and Z2'
respectively, in the augmented PLA M",m+1 shown in figure 7.18. Let MOR
= [a jj ] be a matrix of k rows and In + 1 columns where au = 1 if there exists
a device at the (i,j)th position of the OR array, and aij = 0 otherwise.
By lemma 7.1 we have the following theorem for the multiple faults in two
cascades of EaR gates, 1 and 2'
THEOREM7.2 The test pattems Jv and F'{j 1,2, ... ,m+ l)inA".m+lare
sufficient to detect all multiple stuck-at faults in 1' If the column rank of
matrix M ORis equal to the number of inputs of the EaR cascade 2' then all
the multiple stuck-at faults in 2 can be detected by test patterns II, and 1/
(j = 1,2, ... , m + 1) in A".m+l'
If the column rank of matrix MORis not equal to the number of inputs of
the cascade 2' although it hardly occurs, then it is not guaranteed that all
multiple stuck-at faults in the cascade 2 can be detected by the test patterns
mentioned above. To overcome this problem, it might be necessary to add
an extra OR array so that the rank of M OR is equal to the number of inputs
of the EaR cascade 2' We permit only stuck-at faults on the external input
and output lines of EaR gates. However, by adding an extra array it is
possible to generate all test patterns for the cascades 1 and 2' This
technique was reported by Hong and Ostapko (1980).
In the argument mentioned above, fault coverage is not complete since
only single faults for stuck-at and crosspoint faults are considered and the
bridging faults, which are important in PLAs, are not considered. Fujiwara
(1984) proposed a new design of universally testable PLAs having the
following properties:
It can be tested with function-independent test patterns. For the design
of PLAs under the single-fault assumption, both the input test patterns
and the output responses are function-independent. However, under
the multiple-fault assumption the output responses are not functionindependent.
The amount of extra hardware is significantly less than with the previous
designs of universally testable PLAs. The ratio of additional hardware to
original hardware can be reasonably small for LSI and VLSI chips.
Very high fault coverage is achieved; that is, any combination of stuck-at
200
Xl
Figure 7.20
Augme nted PLA for m ultiple fau lts
201
where Qj is the ith row of the AND array. An extra output line Z is added.
This line has devices on all product lines, i.e,
The extra column Pm + 1 in the AND array can be used to test stuck-at,
crosspoint, and bridging faults in the decoder and the control array, and
also to test stuck-at and bridging faults on the rows of the AND array. The
extra row and output line Z of the OR array can be used to test stuck-at and
bridging faults on the columns (product lines) and crosspoint faults in the
AND array in cooperation with other extra hardware.
The types of faults considered here are multiple faults such that any
combination of the following types of faults occurs simultaneously:
Stuck faults in the augmented PLA, i.e., stuck-at-O and stuck-at-l faults on
lines, XjS, CiS, Qjs, PiS, Fis, Z, and Sjs.
Crosspoint faults in the control array, the AND array, and the OR array.
Adjacent line bridging faults in the control array, the AND array, and the
OR array, i.e., bridging faults between C I and C2 , Qj and Qi+I ' Pj and Pi + I '
F, and Fi+ I ' and Fk and Z.
The technology used will determine what effect the bridging will have. In
n-MOS circuits, low voltage will dominate, and hence a bridging fault between two lines will produce an AND function between the lines. However,
the results given here can easily be modified to OR-type bridging faults.
Table 7.2 shows the test set B n m + I , which detects all multiple faults
mentioned above (where n and In are the numbers of inputs and product
terms, respectively) in the original PLA before augmentation. It will be
proved that B n m + 1 is the multiple-fault test set for the PLAs of figure 7.20 in
the following lemmas and theorem.
LEMMA 7.2 II and 1/ U = 1,2, ... , m + 1) can detect all stuck-at faults in
the shift register, all stuck-at faults on the product lines and rows of the OR
array, all bridging faults between adjacent product lines and between
adjacent rows of the OR array, and all devices missing from between the
202
Table 7.2
U niversal test set B"....
1~+1
0 ... .. . . . 0
0
0
1
1
o
o
II
I/ (j~
1. ... m + 1)
1
1
0
0
1
1
0
1
1
1
0
cells of the shift register and from the bottom row (output line Z ) of the OR
array, indepe ndent of the presence of a ny other faults.
Proof By applying the test sequence [ '[,' If .. . [~+ , and observing the
respo nse from S" " it is checked whether all the cells can shift in an d out
bo th 0 a nd 1, inde pendent olthe rest of the PLA. Th erefore, all thefaults in
the shift register can be detected by the test sequence.
Next, consider each output line (row of the OR array) F'(i = 1, 2, .. . , k)
and Z. Th e lest sequence ['[,2[ f " [~+1 cha nges each output line from 0 to
1 at least once if it has a t least one device on it. An output line F, is called
redundant if there exists no device on the line in the OR array [i.e., Ff = 0) or
if there exists an other output line Fj realizing the same function (i.e. Fj
= F,). We assume here that there are no such redundant output lines in the
OR array. If such outpu t lines exist, th ey should be removed from it since
they tak e unnecessary spac e. Hence, all the st uck-at faults on the rows of the
OR a rray can be detected by the test sequence. A bridging fault between the
adjace nt ro ws of the O R a rray imp lies that the corresponding two output
functions become the same. This is detected by [ , a nd [/ (j = I, 2, .. . ,
In + I)' since no out put line is redundant. Hence, all bridging faults between
the adjacent rows of the O R array are detected.
Hencefort h, we can assume that both the shift register and Z a re faultfree. Consider the device Dl at the crosspoint of the cell S, with the product
line P" a nd the device Dl a t the cross point of the product line f\ with output
line Z. Applicati on of the test patt ern s [, and Ii should cha nge Z from 0 to
I. In these test patt erns the only chan ge occurs in S" which affects only D,',
Pi' Dj2 , and Z. If Dl is missing, or Pi is stuck-at-Oj'l, or Dl is missing, or
bridging between P, and its adjacent column exists. or if any combination of
these fault s exists. then Z will not change its value. Hen ce. all devices
missing from between the cells of the shift register, all stuck-at faults on
203
product lines, all bridging faults between adjacent product lines, and all
devices missing from output line Z are detected by II and
(j = 1,2, ... ,
1/
+ 1).
By lemma 7.2, we can henceforth assume that the shift register, the
product lines, the rows of the OR array, the crosspoints between the cells of
the shift register, and the crosspoints on line Z are all fault-free, and that no
bridging faults between the adjacent columns or between the adjacent rows
of the OR array exist.
LEMMA 7.3 I/U = 1,2, ... ,m + 1)detects any crosspoint faults in theOR
array, independent of the presence of any other faults.
LEMMA
Proof By hypothesis, the shift register including the cross points between
the cells, the product lines, and output line Z (including the cross points on
Z) are fault-free, and no bridging faults between the adjacent product lines
or between the adjacent rows of the OR array exist. Consider the device at
the crosspoint of the row Q,,_! with the column Pm +! . Application of the
test patterns I~+! and Itm+! should change Z from I to O. The only change
in the two patterns occurs in Xi' which changes Q2i-! from 0 to 1 normally
and may change Q2i from 1 to 0 if any faults exist. Suppose that there is a
missing-device fault at the crosspoint of Q2i-l with Pm + ! . If Z does not
change from 1to 0, a fault is indicated. Otherwise, Z changes from I to 0 (i.e.,
Pm +! changes from I to 0) in spite of the missing-device fault. This is possible
only when Q2i changes from 0 to I. However, Q" never changes from 0 to I
in the test patterns I~+ 1 and Ii~m+ t - Hence, the missing-device fault at the
crosspoint ofQ2i-l with Pm+! can be detected by I~+l and I~+l'
204
Similarly, one can prove that the missing-device fault at the crosspoint of
the row Q 2i with the column Pm + 1 can be detected by the two test patterns
/;;+1 and I?m+l'
By lemmas 7.2 and 7.4, we can henceforth assume that the shift register,
the product lines, the rows of the OR array, the crosspoints between the
cells of the shift register, and the crosspoints on lines Z and Pm + 1 are all
fault-free, and that no bridging faults between the adjacent columns or
between the adjacent rows of the OR array exist.
LEMMA 7.5 /;;+1' /~+l' Ii~m+l' and /?m+l = I, 2, . . . , n) can detect all
stuck-at faults on the rows of the AND array and all bridging faults between
adjacent rows of the AND array, independent of the existence of any other
faults .
Proof Application of the test patterns /~+1 and /i~m+l changes Xi from 1
to 0 and Q2i-l from 0 to 1.However, if there exists a stuck-at fault on Q2i-l
and /or a bridging fault between Q2i -l and its adjacent row, then Pm + 1 never
changes from I to O. Hence, such a stuck-at fault and a bridging fault can be
detected by observing Z. Similarly, we can show that /~+1 and /;:m+l can
detect a stuck-at fault on Q2i and a bridging fault between Q2i and its
adjacent row, independent of the existence of any other faults . _
By lemmas 7.2-7.5, it has been proved that all faults in the PLA except
faults in the control array and crosspoint faults in the AND array are
detected by the test set B n,m+l ' Hence, lemmas 7.6 and 7.7 below assume
that the only faults present are the fault s in the control array and/or
crosspoint faults in the AND array except Pm + l'
LEMMA 7.6 /;;+1' /~+1> /i~m +I' and /?m+l (i = I, 2, ... , n) can detect all
stu ck-at faults on C 1 and C z , bridging faults between C 1 and C z , and
crosspoint faults on C 1 and C 2 , independent of the existence of any other
faults .
Proof The extra-dev ice fault at the crosspoint of C 1 with Q2i is detected
by /;;+1 and I?m+l' independent of any other faults. Similarly, the extradevicefault at the cro sspoint of C2 with Q2i-l is detected by 1;'+1 and li~m+ l'
Further, we can see that the missing-device fault at the crosspoint of C 1 and
Q2i-1 is detected by /;; +1' independent of any other faults . Similarly, the
missing-device fault at the crosspoint of C2 with Q2i is detected by 1;+ l'
Henceforth, we can assume that all crosspoints in the control array are
205
fault-free. The stuck-at-O faults on C 1 and C:z are easily shown to be detected
by I~ +I and I~+l' respectively, under the assumption. Similarly, the stuckat-I faults on C 1 and C2 are detected by Ii?m+1 and Ii;m+l, respectively, for
any i.
LEMMA 7.7 IS and Ii] (i = 1, 2, .. . , 11; j = 1,2, ... ,111 + 1) can detect all
crosspoint faults in the AND array except the column Pm + l , independent of
the existence of any other faults.
Proof
Now we can assume that the only faults present are the crosspoint
faults in the AND array except Pm + I ' because all other faults are detected by
B n m + 1 as shown in lemmas 7.2-7.6. By applying IS, we can detect the
presence or absence of a device at the crosspoint of Q2i -l with ~. If the
value of Z is 0 (1), then there exists a device (no device) at the crosspoint.
Similarly, by the application of I;], it can be checked whether there exists a
device at the crosspoint of Q:Zi with P, Hence, all the crosspoint faults in the
AND array are detected by IS and I;J(i = 1,2, ... , n;j = 1,2, ... , m + 1).
Now we can complete the following theorem by collecting lemmas 7.27.7.
THEOREM 7.3 The augmented PLA of figure 7.20 can be tested for all
multiple faults (that is, any combination of stuck-at faults, crosspoint faults,
and bridging faults in the PLA) by the test set Bnm + 1 given in table 7.2.
By theorem 7.3, the test set B n m + 1 is shown to be the multiple-fault test
set for the augmented PLAs of figure 7.20. Further the test patterns are
function-independent, but their responses are not. However, the responses
of test patterns can easily be derived from the personality matrix of the
PLA. Another design for PLAs, in which both the input test patterns and
their responses are independent of the function under the single-fault
assumption, is presented in Fujiwara 1984.
circuits that are easy to test. This chapter treats the subject of sequential
circuits. When we generate a test sequence for a sequential circuit, we are
confronted with two added difficulties that do not arise in the case of a
combinational circuit:
In general, the initial state of the circuit is unknown. Hence, we must set its
state to the initial state required for the test. That is, the controllability is
required to set the initial state of the circuit under test.
The faulty signal must be propagated to at least one of the primary
outputs. If the effect of the fault causes an incorrect final state, we must
supply a sequence of input patterns that will observe the final state of the
circuit. That is, the observability of the final state of the circuit is required to
check the faulty state.
Such controllability and observability requirements are not easily met in
general sequential circuits. To overcome this problem, several approaches
have been proposed in which a sequential circuit is designed in such a way
that the circuit can easily be set to any desired internal state and the internal
states of the circuit can easily be observed.
x~--~
207
Ivl-r-r : z
Figure 8.1
The p-stagc binary shift register
Example 8.1 Consider the p-stage binary shift register shown in figure 8.1,
a serial connection of p flip-flops interconnected so that at the occurrence of
a shift signal the contents of the ilh flip-flop are shifted into the (i + I)st flipflops, Let Y" Y" ... , 1;, be the state variables, let X be the input variable, and
let 2 be the output variable. For the p-stage shift register, a p-tuple state
assignment Y, Y,'" 1;, can be found for each state such that Y,(t + I)
= Y,-, (t) for i = 2, 3, ... , p, 1'; (t + I) = X(t), and 2(t) = 1;,(t), where Y, (t),
y,(t), ... , 1;,(t), and 2(t) are the values of Y" Y" ... , 1;" X, and 2 at time t,
respectively. Then it is easily seen that any input sequence oflength p will be
both a distinguishing and a synchronizing sequence, and that 1;, l;,-1 ... Y1 is
a transfer sequence of length p that carries the p-stage shift register to state
S, with state assignment Y, Y,'" 1;,. Therefore, the p-stage shift register
shown in figure 8.1 is a state-shiftable machine.
Fujiwara et aJ. (1975) presented the following procedure to augment a
given machine by adding two extra input symbols so that the augmented
machine is a state-shiftable machine. Let M ~ (S, I, 0, N, 2) be a given
208
machine, where S
= {SI' S2' . .. , So}, I = {II' 12, ... , 1m} , and 0 = {0 1' 02'
... , O~}.
Augmentation Procedure
Add new sta tes SO+I' Sn+2, ... , Sn- to M if is not a n integral po wer of 2,
where * = 2P and p = rtOg2 n1Assign a p-b it binary code to all st ate s such that each state has only one
ass ignment.
Add new input symbols 60 ' 6 1 to M . The next function N and th e output
function Z for the new input sym bols 6 0, 6. are defined as follows: For each
state Sj, with state assignment Yl Y2"'~' N(Si> 60) = Su, and N(Si,6 1 )
= Sv'
if~ =
if~ = 1
~-1'
The effect of this state transition is to shift the state assignment one d igit
to the right and introduce a 0 or a 1 as new leftmost digit according to input
60 or 6" respectively. Thus, this two-column submachine restricted to
inputs 60 and 6 1 is isomorphic to the p-stage binary shift register. Since the P:
stage shift register is a sta te-shifta ble machine, this two-column submachine
is a lso state-shiftable, and hence the augmented machine M* is too. Indeed,
in the aug mented machine M * obtained above, an y input sequence of
length p = rtOg21consisting of 6 0 and e 1 is both a distinguishing sequence
an d a synchronizing sequ en ce, and 6r.6 y, ., . 6 Y,ey, is a transfer sequence of
leng th p that transfers M * from an arbitrary state to state S, with state
assignment Y. Y2 ' " ~ . The augmented machine M * ha s * stat es and
(m + 2) input symbols, where log2 n* = rtOg2 n] ,
Ex ample 8.2 Consider machine A, defined in table 8.1. Machine A is not
strongly connected and does not have a distinguishing sequence. By applying th e above procedure, we obtain the augment ed machine A* (table 8.2).
Machine A* has a d ist ingui shin g sequence 6060, which is also a synchronizing sequence whose final state is SI' The transfer sequences for machine A*
are as given in tab le 8.3. He nce, the a ugmented machine A* is a statesh iftable machine.
209
Tab le 8.1
Machine A
Input
State
S,
S,
S,
52' 1
51,1
53,0
-, I
52, 0
Input
State
00
01
10
11
S,
S,
S,
S.
S, . I
S,. O
5h l
S,. O
S,. O
S,. O
S,. I
- .I
S,. O
5 3. 1
54,0
51, 1
54,1
Ta ble 8.3
Tra nsfer sequences T(i ) for
machine A*
T(l}
T(2)
T(3)
T(4)
210
Input:
Stale:
Output:
(8.1)
Xd
S,
(8.2)
S,
Z,
x,
S,
x,
S,
Z,
S,
(8.3)
2,
Input:
State:
Output :
T(i)
Xd
s,
SI
z;
211
x,
(8.4)
SI
Zi
x,
Input:
State:
O utput:
T(i)
Ij
s,
SI
z.,
Xd
Sij = N (Si, Ij )
Oij = Z (Si. IA
SI
(8.5)
x,
Input:
St at e:
Output:
T(i)
s,
SI
Zli
Xd
Xd
51
Zi
(8.6)
SI
ZI
X.
Input :
Slate:
x.x,
T(1)
SI
T(n )
X.
Xd
T{i)
S,
51
i,x,
S,
51
fjX. .
S;
X.X.. ..
S2
T(1)
X.X.
S.
SI
T(2)
S.
SI
T(n)
Xd
SI
12 Xd '"
T{I)
S,
SI
f" X d
S.
Let us d erive the bound on the len gth of the checking seq ue nce. Since
the m a chine M is a sta te-s hifta ble m a ch ine , IXdl = [l og j ] a nd IT(i)1
< [l og ; n1 for i = 1, 2, .. . , It, where IX I is the len gth of X . From the
organization of the checking seq uence, it can be seen that the total length of
the sequence is at most
212
IXdl +
=
(2n + 1)IXd l +
~ (2n + l ) rIog2111
= (3n + 1)f1og2nl
+ nl1l(2rIog2nl + 1).
(3n + l) flog2nl
+ mn(2f1og2111 + 1),
Xd
O utput:
T(l) Xd Xd
A
00 00
T(I ) 0
1
A
Xd T( l)
T(2) 1
00 0
Xd T(2)
T(4)
00
10 A
0
1
01 00
Xd T(3 )
T(3)
0
T(2) Xd Xd
10 00
00
T(3) Xd
01
0
Xd T(I) GO
00 A
0
00
Xd T(2)
Xd
00 00
Xd
Xd
Xd T(3)
Xd
10 0
1l
Gl
Xd
01
T(3) 0
0
0
Xd
T(4)
00
Xd
T(l)
A
01
T(4) Xd Xd
00 1l 00
00
10
10
Xd
11
Eo
-
T(l)
i:o
eo i:o i:o
0 0 0
T(l) 0 EO Eo T(I)
A
213
Clock - - - t - + - - - I
Combinational
Log ic
So
eo T(2) 1
60
eo T(4) e1
00
So SO
0 0
00
T(2)
1 00
61
eo
SO
T(3) 0
So So
0 1
So So
1 1
214
Mode control
,---1 sw
f--<r--~ sw
CJ oCk
---lr---+-'----+--+---'
Contlf nati onal
Logic
Figure 8.3
Modified sequential circuit (Williams and Ange ll 1973; IEEE 1973)
p
p
- -t--L.J
pa+pb
b -----I-J
Figure8.4
Do uble-throw switch
illustrated in figure 8.3. T he modifica tion is d one by inser ting a dou blethrow switch at each input lead of every flip-flop an d in the lead that dri ves
one of the pr imary outputs of the circuit. Each of th e double-thro w switches
may be implemented as shown in figure 8.4. The modified sequential circuit
shown in figure 8.3 ca n opera te either in its normal mode or in the shiftregister mode. When the mode cont rol is supplied with a 0, the circuit
operat es in the normal mode; that is, it behaves exactly as it did before the
modifications were carr ied out. O n the other hand , when the mode-control
signal is a 1, a ll nip-flops in the circuit are connected in a cha in and the
circuit behaves as a shift register. In this shift-register mode, the first flipflop can be set directly from a prima ry inpu t an d the outpu t oft he last flipflop can be directly mon ito red at a primary out put. Hence, we ca n easily set
the mo dified circuit to any desired internal state by supplying the co rresponding values to the shift register, a nd we can easily observe the internal
215
state of the circuit by shifting out the contents of the shift register. Thus the
test-generation problem for sequential circuits can be reduced to that of
combinational circuits, since all flip-flops can behave as primary
inputs/outputs. The procedure for testing the modified circuit is as follows:
(1) Switch to the shift-register mode and check the shift-register operation
by shifting in and out an alternating sequence of ones and zeros.
(2) Set the initial state into the shift register.
(3) Return to the normal mode and apply the test input pattern.
(4) Switch to the shift-register mode and shift out the final state while setting
the starting state for the next test. Return to step 3.
Here, for the sake of simplicity, we have considered a sequential circuit
with D flip-flops. However, shift-register modification can be performed in
the same fashion for J K and other l1ip-l1ops. Since a switch is inserted in
each input lead of every flip-flop, the number of switches used is doubled for
two-input flip-flops.
Scan Path
Before Williams and Angell presented the shift-register-modification approach mentioned above, an approach to scan design called the Scan Path
had already been developed (Kobayashi et al. 1968; Funatsu et al. 1975).
Kobayashi et al. reported that the Scan Path approach had been to practical use for a system with 100,000 gates or more (the NEC system 2200/700).
The Scan Path approach was the first practical implementation of shift
registers for testing to be incorporated in a complete system.
The Scan Path approach uses as a memory element the raceless D-type
flip-flop, illustrated in figure 8.5. These raceless D-type flip-flops are connected in a serial scan path as shown in figure 8.6. The flip-flop is composed
of two latches operating in master-slave fashion, and has two clocks to
select either scan input (called test input) or data input. These clocks
operate exclusively so that the value of the data input can be inhibited while
the value of the test input is being loaded into the flip-flop and vice versa.
In the normal mode, clock 2 retains logic value 1 to block the test input
(scan input) from affecting the values in latch 1, and also not to disturb the
values in latch 2. Clock 1 is used to load the value of the data input into the
flip-flop. When clock 1 is at value 0, the value of the data input can be
loaded into latch 1. After sufficient time has passed to load the data, clock 1
216
Clock 2-
......- - - - - 1
Test
I nput
(Scan in)
Outp ut
Data
Input
...-1._...,.<:......- - -
Sea n ou t
Cl oCk 1
Lat ch 1
Lat ch 2
Figure 8.5
Raceless D-type flip -flop with Scan Path (Kobayashi et al. 1968; Funatsu ct al. 1975;
I EEE 1975)
Logic Card
r
xy
-- ----- _..- _
---
_..,
Test Input
Cloc k 2
~---L-'"
,l __
Figure 8.6
Co nfiguration of Scan Path
Test
~ t~ t
_ _ ... ... . . . . .
_.
..
. __ . _ . __
Pri ma ry
Input s
Input
Comhll'lat1ona l
Ci rcuit
Shift
Register
217
Pri mary
Outpu ts
Output
Shift
Regi ster
(e )
c
(b )
Figure 8.7
Transformed combinational model and partitioning
218
small subcircuits. Figure 8.7(b) shows the subcircuits A, B, and C that make
up the original circuit. A partition can be generated automatically by
backtracing from the flip-flops through the combinational logic until a flipflop or a primary input is encountered in the back trace. In figure 8.7(b),
outputs of subcircuit A are determined solely by the inputs 1, and do not
depend on any other inputs. Subcircuit C and a section of subcircuit B do
not have any effect on the test generation of subcircuit A. Hence, test
generation for each subcircuit can be performed independent of other parts.
When the partition is too large, it can be further partitioned by the insertion
of extra flip-flops.
Level-Sensitive Scan Design (LSSD)
Using an approach similar to the Scan Path approach, Eichelberger and
Williams (1977,1978) introduced a concept oflevel-sensitive design coupled
with the scan operation mentioned above. This method, called LevelSensitice Scan Design (LSSD), ensures race-free system operation as well as
race-free testing. LSSD is IBM's discipline for structural design for testability and has been used in many IBM systems.
To provide reliable operation in timing, the designer must consider the
testing of several AC design parameters, such as rise time, fall time, and
delay. However, with LSI and VLSI it will become impossible or impractical to test each circuit for all the AC design parameters. The LSSD
approach aims at obtaining logic circuits that are insensitive to those ac
characteristics. The term level-sensitive is defined by Eichelberger and
Williams (1977, 1978)as follows: A logic circuit is level-sensitive if and only
if the steady-state response to any allowed input state change is independent of the delays within the circuit. Also, ifan input signal, then the response
must be independent of the order in which they change. Steady-state
response is the final value of all logic gate outputs after all change activity
has terminated.
To obtain such level-sensitive logic circuits, we need a level-sensitive
memory element that does not contain a hazard or a race condition. Figure
219
Figure 8.8
H azard-free po larity-hold la tch
D
C
I
A
B
(a l
c -----'
B
( b)
Figure 8.9
Pola rity- ho ld SRL (Eichelber ger and Williams 1977, 1978; IEE E 1977)
220
D, the system clock C, and two shift-control inputs, A and B. In the normal
operation mode, the shift signals A and B are both set to 0 and the L 1 latch
operates exactly like a polarity-hold latch. The clock signal C is 0 during the
time when the data input 0 may be changed. After the data input has
become stable at eith er 1 or 0, the clock C will chang e to 1, which cause s the
L 1 lat ch to be set to the value of the data input D . In th e shift-register mode,
th e clock C is set to 0 and both shift signals A and B are alterna tely changed
to shift data through latches L 1 and L 2 . First, by chan ging A to 1, data from
the preceding stage can be loaded into latch L 1 through the scan input I .
Then, after A has changed back to 0, th e B shift sign al changes to 1 to load
the data from latch L 1 into latch L 2 The +L 2 output of latch L 2 is
connected to the scan input I of the next-state SRL. All SRLs ar e interconnected into a shift register, as sho wn in figure 8.10.
Eichelberger and Williams (1977, 1978) presented the follo wing set of
design rules or co nstraints, which will result in level-sensitive and scannable
des ign to aid testing.
(1) All internal st orage is implemented in haz ard-free polar ity-hold latches.
(2) The lat ches ar e controlled by two o r more non-overlapping clocks such
th at
(i) A latch, X, may feed the data port of another latch, Y, if and only if the
clock that sets the data into latch Y does not clock latch X.
(ii) A latch, X, may gate a clock Cj to produce a gated clock Cj g which drives
another latch, Y, if and o nly if clock Cj g does not clock latch X, where Cj g is
an y clock deri ved from Cj
(3) It must be poss ible to identify a set of clock primary inputs from which
the clock inputs to SRLs a re controlled either through simp le po wering
tree s or throu gh logic that is gated by SRLs and/or non-clock primary
inputs. Gi ven this st ructure, the following rules must hold:
(i) All clock inputs to all SRLs must be at their "off" states when all clock
primary inputs are held to their "off" state.
(ii) Th e clock signal that appears at any clock input of an SRL must be
contollable from o ne or more clock PIs such that it is possible to set the
clock input of th e SRL to an "on" state by turning any o ne of the corresponding clock PI s to its "on" state and also setting th e required ga ting
conditions from SRLs and/or non-clock PIs.
(iii) No clock can be ANDed with either the true or complement value of
an other clock .
221
Sea n ; n
0--+----=---1
Sean out
Modules
(Chip)
Scan in
A
B
Scan out
0--+--,
Board
Figure 8.10
In ter con necti on o f S R Ls
(4) Clock primary inputs may not feed the data inputs to latches either
directly or through combinational logic, but may only feed the clock input
to the latches or primary outputs.
(5) All SRLs must be interconnected into one or more shift registers, each of
which has an input, an output, and shift clocks available at the terminals of
the package.
(6) There must exist some primary-input sensitizing condition (referred to
as the scan state) such that
(i) Each SRL or scan-out PO is a function of only the single preceding SRL
or scan-in PI in its shift register during the shifting operation.
222
Out put s
I n pu t ~, _~ ./
Scan out
COlTb l nat ional
Cir cuit
t---r==~~~:J
T
C1
A s hi ft
Scan 1n
C or
B shift
Figure 8.11
General structure for d ouble- latch LSSD (Eichelberger and Williams 1977, 1978; IEEE
1977)
(ii) All clocks except the shift clocks a re held "off" a t the SRL inpu ts.
(iii) Any shi ft clock to a n SRL may be turn ed "on" a nd "off " by changing the
corres ponding clock prima ry input for each clock.
Whether a logic circuit is designed in compliance with these rules can be
checked by a met hod developed by G od oy et aJ.(1977). Figure 8.11 shows a
general structure for a logic circuit tha t follows the above LSSD rules. T he
circuit in figure 8.11 is called a double-latch design, since all the feedback
inputs into the combinational circuit N are taken from the L 2 latch.
All sto rage elemen ts a re implemented as a set of master-slave latches L ,
and L 2 Each of the master-slave latches is connected in series and clocked
by two nonoverlapping clocks C, an d C 2 , where C 2 is equiv alent to B.
Wh en C, is active, C 2 is 0 an d the inputs an d outputs of N are stable. Some
of the L 1 latches change their states while C, is 1. As soo n as C, is cha nged
223
back to 0, the next clock C, occurs; that is, C, chan ges to I. Th e value s of the
L, la tches are loaded into the L, latch es while C, is I.
In the shift-register mode , the SRLs are chained to form a shift register
under the con tro l of clocks A and B. Test pattern s are applied to the
combinational circuit by scanning them into the shift register and apply ing
them at the primary inpu ts. Then the clock C, is set to I and th e respons e of
the combination al circuit is captured in the L, latches and at the primary
outputs. Th e result of the test captu red in the register is then scanned out.
Since the LSSD has the scan capability, it also has the same advantages
as the shift-register modifica tion of Williams an d Angell and the Scan Path.
The scan capability reduces the sequential test-genera tion problem to a
combinational one and makes logical partitior.ing of the circuit possible,
thus significantly simplifying the testing problem. Another adva ntage of the
LSSD is th at ac testing, test generation, an d fault simulati on ar e greatly
simplified, becau se the correct operat ion of the logic circuit is near ly
independent of the ac characteristics and also becau se hazards and races a re
eliminated.
However, the LSSD has also some negative aspects. T he SRLs are
logically 2-3 times as complex as simple latches, requ iring up to four
ad diti onal prim ary inpu ts/o utputs for control of the shift registers. Eichelberger and William s (1977, 1978) comment that the actua l logic gate
overhead for implemen ting the LSSD has been in the ran ge of 4-20 percent.
The difference is due to the exten t to which the designer made use of the L,
latches for the system function. As mentio ned ear lier, LSSD circuits can be
designed in double-latch o r single-la tch mod e. In the former case, as in
figure 8.11, system-design considerations require both L, and L, latches to
be in the system path, an d both are therefore considered as system latches.
In the latter case, however, only the L, latch is in the system dat a path and
the L, latch is used only for shifting in test mode. Hence, the L, latch is an
overhead for testability.
DasG upta et al. (1982) ha ve reported a variati on of the SR L that can
reduce the ga te overhead for LSSD (figure 8.12). The difference between the
L, of figure 8.9 and the q of figu re 8.12 is tha t the q latch has two
indepen dent data ports. T he first port is fed by the related L, latch an d
clocked by shift clock B.This allows the L! latch to behav e as the slave latch
in the shift-register path. The second dat a port serves as an independent
system da ta port clocked by system clock C' to permit different system dat a
to be stored in the q latch during system operation. In this way, the two
lat ches in the new SRL pro posed by DasGupta et al. a re fully used even in
224
D
C
1---...------ II
I
A
--1 L2
0*
C* - - - - - - - - 1
(a)
o
C
C
X
c**
,""
(b)
Figure 8.12
SRL with q lat ch (DasGupta et al. 1982; IEEE 1982)
the normal operation. Therefore, the gate overhead for the LSSD is significantly reduced as compared with the sin gle-latch LSSD using the SRLs of
figure 8.9.
Another variation of the SRL has been reported by Saluja (1982). Figure
8.13 illustrates this latch, which is called a polarity-hold parallel and shiftregister latch (PSRL). The PSRL has two modes of op eration, as shown in
figure 8.14. The difference between the PSRL and the SRL of Eichelberger
and Williams (1977) is that, in the normal mode, Q and Q outputs of the
PSRL are obtained from two different latches. This allows an increase in the
number of controllable inputs to combinational logic, and hence it can be
expected that the test-generation process will be easier and will provide
better test coverage.
225
Q
I
A
C
L,
L
2
Q
(al
---...--~
B
(b)
Figure 8.13
Pola rity-hold PSR L (Saluja 1982; IEEE 1982)
226
L]
0
C
L
2
(a}
Norma l mode.
8----1
L2
227
Whereas most of the scan design techniques have been developed for
designing completely synchronous circuits, the approac h of Mercer et al.
(1 981) allows some asynchro nous designs. T he meth od is to modify flipflop s in a given sequential circuit to form sca n (shift) registers. Figure 8.15
shows a flip-flop modified to allow scan a nd norm al opera ting modes as
specified by the control value of SW. Th ese modified flip-flops a re interconnected into on e o r more scan registers.
As shown in figure 8.15, multiplexers are placed on the clock inputs as
well as the data inpu t. Also, preset and clear inputs are gated by co ntrol
input SW to disabl e them in scan mode. A realization ofa multiplexer using
transmission ga tes is illustrated in figure 8.1 6. If the nor mal circuit is
already synchro nous, the multiplexing of clocks will no t be req uired.
Hence, the multiplexers and the disabl ing gates are used as and where
needed. Flip-flops can have asynchronous preset and clear inputs. and
clocking by an asynchro nou s signal is also allowed. In th is way, the design
rules of Mercer et aJ. (1 981) permit some asynchro nou s designs a nd hence
are more flexible than those ofthe Scan Pa th and the LSSD. However, the
price one pays for this design flexibility is that races and hazards may occur
in scan-testab le circuits, thus complicati ng test generation.
Scan/Set Logic
A sca n design technique called Scan/Set Logic has been used to enh an ce the
con trollability an d the obse rvability of sequential circui ts (Stewa rt 1977).
Scan/Set Logic is separa te from the functional logic an d provides a da ta
path to obser ve a nd/or control some nodes in the circuit. Because of this
sepa ration, the performa nce of the functional logic suffers little degradation. T his differs from the Scan Path and LSSD approaches, in which all
flip-naps are used to operat e in bo th shift-register and normal moues.
Figure 8.17 shows an example of bit-serial Scan/Set Logic, in which the
values of up to 64 nodes in the circuit ca n be loaded int o the 64-bit shift
register with a single clock and then serially sca nned out th rough the scanou t pin. Th is shifting occurs after each test input patt ern has been a pplied,
and the sca nned dat a are monitored by the tester as th e respon se dat a
together with the usual primary ou tput response of the circuit under test.
Th e shift register is also used to provide a set capa bility from the tester. Test
patt erns are serially shifted into the shift register and then gated into the
flip-flops of the functiona l logic. In this way, any internal node can be
scan ned and / or set by con necting it to one of the flip-flop s in the Scan/Set
228
CC
SW
cc
Output
1-........- _ CC
Preset
From Prev10us--lr""lFlip-Flop
.--~
To Scan
CC
Flip-Flop
Master Clock
CC
Input of
Next Flip-Flop
I_r----,
Slave Cl ock
CC
Figure 8.15
M od ificat ion of flip-flop to form sca n regis ter (Mercer et at. 1981; IEEE 1981)
Normal
I~ode
Input
Multi plexer
Output
Scan
Mode
I nput
sw
Figure 8.16
Implementation of mult iplexer
229
Load/Shift Control
Scan Clock
Scan Enable
Sequential Circuit
Scan
;------- Input/Output
Figure8.17
Bit-serial Scan/Set logic (Stewart 1977; IEEE 1977)
shift register. However, not all internal nodes need to be scanned and/or set.
To reduce the test-generation problem of sequential logic to a combinational one, it suffices to give scan/set capability to all flip-flops in the functionallogic. Of course, not all flip-flops need to be scanned and/or set by
the shift register, since some of them are already readily controllable and
observable. This design flexibility is one of the advantages of the Scan/Set
Logic technique. Another advantage is that the separation of the scan/set
logic and the functional logic allow the scan/set operation to be performed
during the normal function operation. This enables us to get a "snapshot"
of the sequential circuit without degradating its performance.
Random-Access Scan
230
Data
SOL
-CK
SCK
-SOo
X- Adr
-t------------J
Y-Adr
~----
__J
Figure 8.18
Polarity-hold type addressable latch (Ando 1980; IEEE 1980)
Data - - - - - - r......
-CK
Q
-CL
PR
-SOD
X-Adr _ _...---tY-Adr
4.-
--'
---J
Fiaure 8.19
Sct/re set-type addressable latch (Ando 1980; IEEE 1980)
two data inputs [one for normal data (DATA) and the other for scan data
(SOl)] and two clocks (- CK and SCK). The normal data on DATA are
clocked into the lat ch by the - CK clock independent of the two addressing
lines. The scan-in data on the SDI are clocked into the latch by the clock
SCK only when both the X and Y addresses are one. The state of the latch
can be ob served in the complemented form at the Scan Data Output (SDO)
when both the X and Y addresses are 1. Latch-state - SDO signals from all
latches are ANDed together to produce a scan-out signal of the circuit.
Ando (1980) also presented another type of addressable latch, called a
set/reset-type addressable latch (figure 8.19).
The configuration of sequential circuits designed by the Random-Access
Scan aproach is illustrated in figu re 8.20. A pair of address decoders, an
AND gate tree to combine all latch-state signals, and several clear inputs
are required, as well as the add ressable storage elements. An addressable
231
Combinational
Inputs
Outputs
Clear
and
Clocks
SOl
Addressable
PR
SCK
Storage
Elements
Scan
Address
1 - - - - SOD
Figure 8.20
Configuration of Random-Access Scan (Ando 1980; IEEE 1980)
232
Design forTestability
(2) Whether o r not a nip-na p sho uld be linked into a n SP must be det ermined by the following rules:
(i) All nip-n aps th at are eas ily controllable from prima ry inpu ts (dire ctly or
through combinat ional logic) need not be linked into the SP.
(il) All flip-n aps that are easily controllable and observa ble from primary
inputs and ou t pu ts (short logical de pth) need not be link ed in to the SP.
(iii) Flip-flops tha t are not easily accessible m ust be linked into the SP.
233
SCM Pa th
(a)
(bl
Combinationa l Pa rt of l ogi c
Figure 8.21
C onnection of scan path to combinationa l logic
(iv) When easily controllable async hro nous flip-flops ca nno t be lin ked into
the SP, th ey must be at least isola ted fro m influence of the SP .
!fthe remai ning sequential part outside the SP is ea sily controllab le from
primary inp ut s an d eas ily observable eith er at primary out puts o r through
the SP, as shown in figure 8.22, then th e seque ntial part outsid e the SP can
be easily test ed. Th erefore, for such circu its it may be possible to make
approxima tely the same amo unt of cost reduct ion in test genera tio n as in
th e case of the com plete sca n path. T his lSI' will be referre d to as an optima l
lSI' (O IS P).
In contrast, if the sequential pa rt outside the SP is controlled by the scan
pat h, as shown in figure 8.23, the total circuit with the SP must be simu late d.
For example, as shown in figure 8.24, the state of the asynchron ous flipflops ca n be influenced d uring the shift ing operation of the scan path.
Hence, the gene rated test pa tterns have to be ver ified fo r the total seq uential
circ uit. T his type of lSI' will be referred to as a no no ptima l lSP (N ISP). Fo r
a circui t with NI SI', lest pattern s are genera ted for the remai ning circ uit
excep t the scan pa th and then the generated test pattern s are simulat ed for
th e total circuit including th e scan path.
A problem for no nop timal l SI' such as th at illustrated in figure 8.24 can
be solved by enhancing the capability of flip-flops. DasGupta et al. (1981)
present ed an en hanced LSSD approach that allows int erfacing of LSSD
logic circuits with non-LSSD circuits. F igure 8.25 shows a modified SRL,
234
PI
Scan Pa th
PO
(b)
Figure 8.22
O ptimal configura tions or ISP
PI
PI
Scan Path
PO
(a)
Figure 8.23
Nono ptimal configurat ions or ISP
PO
( b)
o1
1 0 1
Scan Path
DQ
0 Q
tf
tf
l
1
0
0
Figure 8.24
Effect of scan-in pattern on flip-flops in scan path
o
c
- +--------- L1
l>-......
I
A
Figure 8.25
Stable shift-register latc h [DasGupta et al. [981; IEEE 1981)
235
236
to scan-out
v,
SRL
#,
LSSD
Non-lSSD
Log; c
Logic
SRL
#2
C
1 _ _...J
A _ _...J
B _ _---J
Figure 8.26
Boundary betwee n LSSD and nonLS SD logic
called a stable SRL (SSRL), that is used as the basic storage element
together with the SRL proposed by Eichelberger and Williams (1977). The
SSRL is composed of an SRLand a third latch, L" which is clocked by shift
clock P.
Consider the boundary between LSSD and non-LSSD logic shown in
figure 8.26. In this circuit, it is impossible to apply a sequence Y, Y, = I I
followed by Y, Y, = 01 only by shifting, since the intermediate pattern
Y,Y, ~ 10 appears between II and 01.
The L, latch in an SSRL can be used to break a path from an LSSD to
non-LSSD circuits so that they do not interfere with each other. For this
example, SSRLs are replaced by SRLs as shown in figure 8.27. First, Y, Y,
= II can be applied from the L, latches, and then the pattern 01 is shifted
into the SRLs without affecting the states of the L, latches. The pattern 01
loaded into the SRLs is then transferred to the L, latches by applying the
clock P. In this way, with the aid of the L, latches in SSRLs, the intermediate pattern 10 is not fed to the non-LSSD circuit.
237
t o sca n-o ut
Y,
LSSO
Logi c
I
A
B
Figure 8.27
LSSD to non- LSSD bou nda ry with SSRL (Das G upta et al. 1981; IEE E 1981)
So far, we have been concerned with external testin g-that is, testing
appro aches in which explicit tests ar e applied by test equipment external to
the un it und er test. A primary weakness of a conventional testing philosophy based on externally applied test patterns is that a technique is
extremely constra ined by limited access to internal points in the unit under
test. As digital systems grow more complex and more difficult to test , it
becomes increas ingly a tt ractive to build self-testi ng a ids into the unit under
test. Self-t estin g as used here do es not refer to the total self-checking
capability defined in section 1.4. In this chapter the term is used in a broad
sense to refer to var ious testing approaches in which test patterns are
applied internally to the unit under test without the use of external test
equipment. The term built-in testing is also used in distinction from external
testing approaches. This chapter is concerned mainly with ofT-line built-in
self-testing approaches .
In th e preced ing chapter we considered various scan design approaches,
such as Scan Path and LSSD , to off-line external testing. Although those
scan design techn iques ha ve ind eed succeeded in red ucing the difficulty of
testing sequ ential log ic, th is type of testing still has some drawbacks:
Storage of a hu ge a mo unt of test patterns and responses is required, testpattern generation is still bothersome since special test-generation software
for scan design is required, and testing is slow because of the shifting of
patterns through the scan path.
Moreover, two special characteristics of VLSI and VHSI (very-highspeed intergrated) circuits-their very high speed of operation and their
very poor accessibility to external probing -will further aggravate the
burden of test generation and application. As circuit technologies advance
to higher speeds and la rger scales of int egration , new approaches will be
required for the testin g, at high log ic sp eeds, of large complex circuits that
may contain both multiple stuck-type and non-stuck-type fault s. Hence, it
might be necessary to consider testing approaches in a new light. Built-in
self-test approaches, which will be described in this chapter, seem to be
preferred over external testing and hold a good prospect for testing in the
future.
239
--"F
Input
FF
'1
Ou tput
'2
Figure 9.1
approach called compac t resting can avoid thi s difficulty of ana lysis and
sto rage of hu ge amounts of test response data. In compact testing, instead
of the en tire responses, compressed resp onse data are used for comparison .
Signarure analysis fa lls under the cat egory of compact testing.
Linea r feed back shift registers (LFS Rs) ca n be used to com press test
response da ta . Figure 9.1 shows an LFS R th at perfor ms polynomial division. As shown in th e figure, an LF SR consis ts of th ree types of devices;
memory elements (D flip-flops), m odulo-2 ad ders (EOR gates), and binary
co nstant multipliers. The constant multipli er for the con stant I is simply a
con nection in the LFSR, an d that for the constant 0 is simpl y no connection
in the LFSR. Such a data-compression techniq ue using LFSR s is based on
the cyclic redundancy check (eRe) codes, which a re widely used in systems
where da ta are tran smitted o r received. The fundament al results of CRC
codes can be found in algebraic codin g th eory (Pete rson and Weldo n 1972).
A serial input stream int o an LFSR co rre sponds to a po lynom ial; the
coefficients of th e polyno mial appear o n the input line high-order coefficien t first. T hat is, the polynomial
pIX)
wo uld be en tered o n an input line, with P corni ng first, then P" _I one unit of
time lat er,
afte r ano the r unit of time, and so on. T he LFSR shown in
figure 9.1 ha s its characterist ic polynomial defined by th e constants co' c"
P._,
Cr
as foll ows:
240
Input
Design forTestability
I-..-..j FF
FF
FF
I--<~_Output
'r
Figure 9.2
Alternative LFSR for dividing polynomials
The LFS R shown in figure 9.1 is called the internal EO R type, since EO R
gates are located only between shift-register stages. There is an alternative
LFSR form that also performs the same division. Figure 9.2 shows the
LFSR dividing the input polynomial p(X) by the characteristic polynomial
c(X), where selected flip-flop output signals are fed back to the least
significant bit position via EOR gates. This type of LFSR is called the
external EOR type. Note that the order of constant multipliers in figure 9.2
is the reverse of that in figure 9.1. The external EOR type LFSR is more
suitable for LSI and VLSI than the internal EOR type, since the former does
not require irregularly placed EOR gates between shift-register stages. In
the LFSR of figure 9.2, the quotient can be obtained from the output
serially, but the final content of the shift register is not the remainder. This
differs from the internal EOR type LFSR.
LFSRs of both the internal and the external EOR type compress the
serial input stream to the length of the LFSR and form a signature. That is,
the final contents or the remainder of the LFSR is the signature. By
analyzing the signature, one can determine whether the circuit under test is
faulty or not. However. some faults are not detected when the erroneous
241
sequences caused by the faults are compressed to the same signature as the
correct one.
Let c(X) be the degree r polynomial forming the divisor, that is, the
characteristic polynomial of the LFSR. Let i(X) be a polynomial representing an input stream of length k, let q(X) be the quotient, and let s(X) be the
signature. Obviously, the degree of i(X) is k - 1 and the degree of s(X) is less
then r. For an internal EaR type LFSR, the signature is the remainder after
division, and thus we have
t(X)
i(X) + e(X)
1980).
242
Proof Let c(X) be the characteristic polynomial with two or more nonzero
coefficients. Then all nonzero multiples of c(X) must have at least two
nonzero coefficients. Hence, any error with only one nonzero coefficient
cannot be a multiple of c(X) and must be detectable. _
THEOREM 9.2 For a k-bit response sequence, if a ll possible error patterns
are equally likely, then the probability of failing to detect an error by either
LFSR of len gth r (figures 9.1 or figure 9.2) is
243
be detected. However, Smith (1980) pointed out that these measures are of
questionable validity because of unrealistic fault or error assumptions. For
example, theorem 9.2 holds regardless of the polynomial chosen. This
indicates that LFSRs based on very simple polynomials such as X' without
feedback are as effective as those based on more complex polynomials such
as X l 6 + X 9 + X 7 + X 4 + 1 (Frohwerk 1977). That is, the choice of a
characteristic polynomial has no effect on error coverage. Therefore, the
error coverage proposed in theorem 9.2 cannot be taken as a direct measure
of the effectiveness of the LFSR, since errors due to faults are not equally
likely and not independent. To provide a more accurate measure, Smith
(1980) considered two classes of dependent errors that are likely to occur:
burst errors and errors with incorrect bits spaced at intervals equal to some
power of 2. However, the best available measure might be the fault coverage
as determined by fault simulation.
So far we have considered serial input LFSRs monitoring only one
output line of the circuit under test. To monitor multiple outputs of the
circuit under test, data compression would require a parallel-to-serial
converter to use the serial LFSR described above. However, this is not an
effective approach. To implement effective compression of parallel data,
parallel input LFSRs are used. Figures 9.3(a) and 9.3(b) show internal and
external EOR type parallel LFSRs, respectively. Such a multiple-input
LFSR monitoring several lines in parallel is called a parallel signature
analyzer. On the other hand, the serial-input LFSR mentioned earier is
called a serial signature analyzer. Analytical results on the effectiveness of
parallel signature analyzers in detecting errors in response data from multiple outputs have been reported by Bhavsar and Heckelman (1981), Sridhar
et al. (1982), and J. L. Carter (1982).
9.3 (Bhavsar and Heckelman 1981) Let the response sequence
consist of L vectors of m bits each. If all possible error sequences are equally
likely, then the probability of failing to detect an error in the response
sequence by an r-bit parallel signature analyzer is
THEOREM
244
(e)
FF
(bl
Figure 9.3
Parallel LFSRs
245
Si gnatu re Analyzer
Data Probe
Figure 9.4
Hewlett-Packa rd sign atu re ana lyzer
ber of error sequences that results in the same signature as the correct
signature is 2m L/2r - 1. The probability of failing to detect an error is thus
In theorem 9.3, it is assumed that all possible error sequences are equally
likely, i.e., that the erroneous bits produced by a faulty circuit are distributed randomly. However, this assumption is not realistic . J. L. Carter
(1982) showed a bound of the probability of masking errors by requiring
almost no assumptions about the behavior of faulty circuits. It has been
proved that if the order of the L test patterns is chosen randomly, then the
probability offailing to detect an error in the response sequence by an r-bit
parallel signature analyzer is less than 4/L, where r > log, (L - I). This
result holds for a set of randomly generated or carefully chosen test
patterns.
Serial signature analyzers are used commercially for field testing of
microprocessor-based systems. Figure 9.4 shows the configuration of the
Hewlett-Packard signature analyzer (Frohwerk 1977). The signa ture analy-
246
zer uses a 16-bit LFSR. Data streams at designated circuit nodes can be
obtained by probing. A serial data stream at a circuit node is compressed to
a unique four-digit hexadecimal signature by the signature analyzer. Each
signature of suspect circuit nodes is compared with the precomputed correct signature. Three gating signals are supplied to the signature analyzer
through an active pad by the unit under test. A clock signal generated by the
unit under test ensures synchronous acceptance of data and gating signals
by the signature analyzer. A start signal initiates the measurement window
during which data are clocked into a 16-bit LFSR in the signature analyzer.
A stop signal closes the measurement window.
247
Subsy s t em
Ie s t Patte rn
Source
Subsys tern
{'lput s
Modul e 1
Pass/Fa il
SA
Pass/ Fail
Su bsys t en
Faul t
Detection
P~ s s / Fail
L-t:~r--3
Fig ure 9.5
Zz
Z1
Qz
Z,
Z3
Q31
Z6
'S
Q,I
Q5
Q6
z,
Z1
1
4
1
3
Q,
Q3
1
6
IS
Q,
Qs
Z7
Q6
Sin~
(c)
1
1
12
13
14
(d)
IS
Bl~O. B2~0
16
).
1
7
Figure 9.6
Design forTestability
250
S,,,
generator .
B,
= 0, B, =
register.
Th e BILB O approac h is aimed at applying to hig hly integra ted mo d ular
and bus -orien ted systems in which funct io nal modu les, suc h as RO Ms.
RAMs. ALDs (arithm etic logic units). an d I/ O s. are connected by bus
routin g. Since clocke d latches a re usually used to inter face the m odules and
th e bu ses. BILBO s ca n take the place o f the latches. as shown in figu re 9.7.
Each mod ule has two BILBOs; o ne is used as a built -in tes t-pa tte rn
generat or to stim ulate the mod ule. an d the othe r as a parallel signa tu re
analyzer to compress the correspondi ng test resp onses into a signature.
First. the system is set to a shift-registe r mode in order to init ialize the
BIL BO s. Eac h BILBO is initia lized to gene rate pseud or a nd om pattern s o r
to compress the test responses. T he system is then swi tche d to a self-test
m ode; that is. BILBO s are con ver ted into LFS Rs. In this self-test mode.
each circuit und er test will have pseud orand om patterns applied to its
inputs and will have its o u tputs stored in the parallel signatur e ana lyzer.
Afte r a fixed number of patterns have been a pplie d. the system is switched
251
BU S
'I
I
Sin
B I LBO
I
I
B I LB O
CIRCUIT
UNDER
TEST
Sout
I
CIRCUIT
UNDER
TEST
I
BILBO
MO DULE i
I
BILBO
l-
MODUL E 1+1
Figure 9.7
Modular bus-o riented design with BlLBOs
back to the shift-register mode, and the resulting signatures in BILBOs are
scanned out and compared with the expected signatures. In th is way, each
module can be tested automatically apart from the rest of the system.
Since the LFSR creates pseudorandom patterns, the testing approach
mentioned above is suited to those circuits that are susceptible to pseudorandom patterns. However, circuits with large fan-in, such as programmable logic arrays (PLAs), are not tested efficiently by pseudorandom
patterns. For example, consider an n-input AN D gate. The stuck-at-O fault
on the first input line can be detected only by a test pattern 111 ... 1. Hence,
each pseudorandom pattern would have probability 1/2" of detecting the
fault. The random logic circuits with low fan-in of the gates may be tested
quite well with pseudorandom patterns. However, most PLAs have large
fan-in, and thus the probability of generating an appropriate test pattern
becomes quite low if pseudorandom patterns are utilized. To test PLAs
efficiently, a set of determin istic test patterns might be required. Daehn a nd
Mucha (1981a) presented a method for designing nonrandom test pattern
generators by means of nonlinear feedback shift registers, and applied it
with BILBO to the PLA problem .
252
Design fo r Testability
Figure 9.8
Test-pattern generato r fo r NO R arrays
0 0
I 0 0
o 1 0
0 0
0 0
0 0
0 0 0 01.
T hese test pa tte rns a re read ily genera ted by means of a no nlinea r feedback
shift register as shown in figure 9.8. Th is type of nonlin ear feedback shift
register can be used for testing NOR arrays. By modifying the BILBO so
that it has a mode of a nonlinear feedback shift register, one ca n use the
resulti ng BILBO for both nonran dom patt ern generation a nd parallel
signa ture a nalysis of PLAs. Figure 9.9 shows a general structure of built-in
self-testa ble PLAs proposed by Daehn and Mucha (198Ib) .
Each of the NO R arrays is tested separately. Th e test patterns for the first
NOR a rray are generat ed by BILBO I, and the test responses a re mon itored by BILBO 2. After n + I clock cycles, the signature in BILBO 2 is
shifted ou t for inspecti on. The second NOR ar ray is similarly tested by
253
!8IL80 1
.
I
--
V)
cc
w
0
0
I.
NO R
,
ARRAY 1
'"
'---
r-
-. .
.,
a::l
...J
cc
'---
.--V)
NOR
cc
w
I-
cc
W
>
:z
ARRAY 2
,
I
'---
8 IL80
31
Figure 9.9
Self-testable PLA with BILBOs (D aehn a nd M ucha 1981; IE EE 1981)
...
0
0
0
0
0
0
0
0
1.
254
00
1
1
0
1
0
0
o
o
0
0
Figure 9.10
Test-pattern generato r for two-bi t decoders
255
NOR ARRAY
' I~
"~
~
(al
( bl
Figur e 9.11
Placeme nt of BILB Os
(el
256
Clock
Rest
BUS
Parallel I/O
Int erface
257
for testing RAM and the multi bus ada ptor. In the MICROB ITsystem, the
function al or o perationa l testin g is basically performed. T he 808 5 microprocessor is lested by runnin g a test program . First, the most funda mental
test, called the kern el test, checks the 8085 with respect to only a few
instructions, as well as the address, data, and control buses. The n the
remaini ng instructions of th e 8085 are executed and compared with the
expected result s. In the testing of the 8085, BILBOs (PRPG and PSA) are
not used. BILB Os are used for testing RAM, RO M, the mul tibus ad aptor,
an d themse lves. In the ROM test, the contents of the ROM are read out ,
one byte a t a time, a nd compressed by the PSA. The final content s of the
PSA are compared with the expect ed signature by the 8085. In the RAM
test, the first 256 bytes of RAM a re filled with the 256 patt erns from PRPG,
the next 256 bytes with the 256 patt erns from PRPG + I, and so on. After
all bytes of RAM are filled, the contents are tra nsferred to the PSA, one byte
at a time, and compre ssed into a signa ture. Then the signa ture is transferr ed
to the 8085 an d compared with the expected signa ture stored in PRO M. In
this way, the MI CROBIT system implements a microprocessor-based
system with built-in self-test function,
Thatte et a!. (1982) proposed a n a rchitecture for on-chip built-in testa ble
VLSI process ors. The proposed meth od ology is bas ed on bit-sliced, busoriented arc hitecture, which is am enable to on-chip built-in impleme ntation using BILBOs. Figu re 9.13 shows the general con figuration of the
processor. In general, a typica l single-chip VLSI processor is comp osed of
three main sec tio ns; a data-path sectio n, a control section, and an o n-chip
storing machine-level program s and da ta RAM for stor ing data, is contained in the on-chip memory sectio n.
As shown in figure 9.13, the proposed testable processor has two monitors:a control monito r and a da ta monit or. Both are the same a nd have four
modes of operat ion: the norma l mode, the signatu re-ana lysis mode, the
scan (shift) mode, and the rotate mode. Except for the rotate mode, the
monitor work s in the same way as th e BIL BO. The control monitor can be
configured as a parallel signature analyzer to monito r the control signals of
the data-path section. The control ROM is tested by readin g out the ent ire
258
CONTROL
SECTION
.....---_ _
Scan-Out
Vl
ON-CHIP
DATA PATH
ii?
SECTION
MEMORY
SECTION
Scan-In
Scan-Out
Scan-In
Figure 9.13
A configura tion o r built-in testable VLSI proce ssors [Tha tte et al. 1982; IEEE 1982)
259
X BUS
PROGRAM
ROM
CONTROL
Figure 9.14
Block diag ram of MC6 804P2 (Kuban and Bruce 1983; IEEE 1983)
260
Memory 1 ements
Shift
Register
Combinational
I
I
Logic
'--------------
Figure 9.15
External self-test using shift register (Segers 1981;
IEEE (981)
mainly used in large computers. Even with the scan design approach, test
generation is still a heavy burden. Moreover, test application is time
consuming, because the test patterns have to be serially shifted in and the
responses have to be shifted out through a string of latches. To overcome
these shortcomings, a number of self-test approaches combining the scan
design concept and linear feedback shift registers (LFSRs) have been
proposed. Those techniques that make use of LFSRs as both pseudorandom-pattern generators (PRPGs) and signature analyzers (SAs) have
been classified by El-ziq and Butt (1983).
First, the self-test techniques can be classified as either external or internal, depending on the position of the LFSRs. In the external technique, all
the self-test aids or LFSRs are external to the circuit under test. Hence, the
external technique has the advantages that the self-test aids will be just an
overlay on an existing scan design, so no changes are needed inside the
circuit. ("External" self-testing does not mean the conventional testing
using external equipment, nor does it preclude on-chip implementation of
external self-test schemes.) The internal technique puts the self-test aids into
the circuit under test; that is, LFSRs are included in the circuit under test as
a part of the scan path. The internal technique seems to be a more attractive
solution because it is flexible in realizing various self-test schemes, from low
levels to higher levels.
There are four major techniques of the external type. The first is a self-test
method proposed by Segers (1981). Figure 9.15 shows the general configuration of the proposed method. The pseudorandom-pattern generator and
the signature analyzer are combined into one m-bit feedback (via an EOR
261
Circuit
Under
Test
Figure 9.16
External self-test using LFSRs (Bardell and McA nney 1982; IEEE 1982)
gate) shift register, which is placed outside the module under test. The
memory elements or latches of the circuit under test are designed to form a
shift register for the scan path technique. Briefly, the self-testing is performed as follows: By shifting a fixed first pattern into the feedback shift
register and, as a consequence, into the latches of the scan path, the circuit
under test is initialized. After shiftng a test pattern into the latches, the
circuit is switched to normal mode and the system clocks are cycled to
capture the test responses into the latches. Then the contents of the latches
are shifted out and compressed into the feedback shift register. At the same
time, the next pseudorandom pattern is shifted into the scan path. After the
above operations have been executed a fixed number of times, the final
signature of the feedback shift register is compared with the expected
signature. This results in a go/no-go signal.
The second external self-test scheme, proposed by Bardell and McAnney
(1982), is illustrated in figure 9.16. The primary inputs (PIs) of the circuit
under test are driven by an LFSR, which generates pseudorandom patterns.
The scan input to the scan path shift register is driven serially by another
pseudorandom-pattern generator, an LFSR. The responses at the primary
outputs are compressed in parallel into a signature by a parallel signature
analyzer, and the response at the scan output is compressed serially by a
serial signature analyzer. Both parallel and serial signature analyzers can be
implemented using LFSRs, as mentioned in section 9.1.
262
Figure 9.17
Self-lest with multiple scan pa ths (Segers 1981; IEEE 1981)
The third technique for external self-test is a variation of the abovementioned scheme of Segers (1981). In order to make the random patterns
more effective and to reduce the test time, the scan path is split up into
several parallel paths. The configuration of the multiple scan paths is
illustrated in figure 9.17.
The fourth technique is also based on multiple scan paths. Figure 9.18
shows the configuration of the self-test scheme, which was present ed by
Bardell and McAnney (1982). A parallel pseudorandom-pattern generator
and a parallel signa ture analyzer are connected to multiple scan paths, each
of which forms a string of latches for each partitioned circuit.
Internal self-test techniques ba sed on LFSRs can be further classified into
two types: centralized and distributed. Figure 9.19 illustrates the centralized
technique proposed by Komonytsky (1982). This technique is based on the
LSSD and has the following features.
All pr imary inputs and prim ary outputs are buffered by additional shiftregister latches (SRLs), which are call ed input latches and output latches,
263
Chip 1
Chip
Chip n
respecti vely. Those SRLs that ar e not input or output latches are called
int erior latches.
All the SRLs form a shift-register string for parallel and serial pattern
load ing a nd unloading.
The first group of SRLs form a pseudorandom-pattern generator.
The last group of SRLs form a signature analyzer.
F or the circuit of figure 9.19, the self-testing proceeds as follows .
(1) Initial ize all SRLs to 0 but initialize the PRPG latches to 1 in order to
provide a deterministic point for the self-test. The PRPG latches must not
be cleared to zeros or they wiII stay locked in a zero state forev er. After all
latches have been initialized, apply the first test pattern to the combinational logic.
(2) Clo ck all system clocks, capturing responses from the combinational
logic in the interior latches and output lat ches.
(3) Shift out all interior and output latches to compress the responses into a
signature by means of the sign ature analyzer (the last group of the SRLs) .
While the contents oflatches are shifted, pseudorandom patterns are shifted
from the PRPG (th e first group of the SRLs) into the interior latches.
(4) Rep eat steps 2 and 3 until th e test is complete.
264
Pr ima ry Inputs
,,r--- ~
,,
,
,,I
Scan
In
Input Regis te r
- - -
- - , Extra Reets t er
C. C.
--t}(
- --,,
Internal Regi s t er
~1
Con:b ina t ional Cfreu; t
\1
\,
I ext ra
')
(C. C.)
Regist er
"-----S
,,,
,
,
,
,
I
MU X
I
Scan Ou t
Primary Ou t puts
Figure 9.19
Centralized internal self-test app roach (Komonytsky 1982; IEE E 1982)
(5) Compare the final signature compressed in the signatu re analyzer with
the expected signature.
In the self-test technique pr oposed by Komonytsky (1982), either the test
responses are gathered by an external signat ure analyzer or the signa ture is
computed internally. In bot h cases, serial signa ture ana lysis is used. and
hence the testing is relat ively slow. If a signature an alyzer can compress
da ta fro m parallel an d serial di rections, less test time will be required than
when onl y a serial signature ana lyzer is used . EI-ziq a nd BUll (1983)
presente d a techn ique called a mixed-m ode built-in self-test (figure 9.20),
which is similar to the technique of K om onytsky but differs in signature
analysis. Much as in the scheme of figure 9.19, the first group ofla tches form
a pseudor andom-patt ern generator, which can feed the output data in both
parallel and serial d irections. (This is denoted in figure 9.20 as the mixed
265
Primary Inputs
Primary Inputs
Scan
In
c..:.:=rT'==.J
Comb1national
-,
,,
,,
Circuit
I
I
I
r - - - - -L-
Internal Register
==:;-;::=="-----------'
,
-~
,,,
,,
I
--
Scan
--
Out
Primary Outputs
Primary Outputs
Figure9.20
Mixed-mode self-test approach (EI-ziq and Butt 1983; IEEE 1983)
PRPG.) The last group of latches form a signature analyzer (called the
mixed SA), which collects the output data from the combinational logic
feeding into it (in the parallel direction) and mixes it with the output data
stored in the output registers (in the serial direction). Note that in the selftest procedure of Komonytsky (1982) all the response data captured in the
interior latches are also serially shifted into the signature analyzer.
Another type of internal self-test techniques is the distributed technique,
in which every register element has some extra logic that enables it to perform as part of a test-pattern generator or a signature analyzer. The BILBO
approach of Koenemann et al. (1979) belongs to this class. Bardell and
McAnney (1982) proposed a self-test approach called simultaneous self test,
which is also of the distributed type. In this approach, every SRL is required
to be replaced by a self-test SRL, as shown in figure 9.21. With +Test
Mode at a logical 0, the self-test SRL behaves as an SRL, i.e., a normal
266
System Data
System Clock - - t - - - - - - - - - - i
Cl
+Test Mode
Scan Data
Shift /l C l o c k - - - - - - - - - J
System Clock C
or Shi f t B Clock
Figure 9.21
Self-test SRL (Barden a nd McAnney 1982; IEEE 1982)
the system clock at a logical 0, the self-test SRL can be used as an element of
LFSRs. The configuration of this self-test mode is illustrated in figure 9.22.
The distributed technique is well suited to system-level testing, since the
testing can be performed much more rapidly than with all other techniques
that need to sh ift the data through th e scan path. However, it requires extra
hard ware, which may also affect the system performance. Furthermore, it
doe s not test for the I/O logic lying between the PIs and the self-test SRLs
and between the self-test SRLs and the POs. Hence, for manufacturing
testing of individual modules, the test procedure must be augmented to
allow testing of the I/O logic. One approach is to connect the POs and PIs
by making use of socket wiring. Another approach is to use external
PRPGs and SAs for testing the I/O logic.
9.4 Self-Verification
In general, testing appro aches are classified as on-line or off-line. On-line
testing is performed during system run time, concurrent with normal system operation. Data patterns from normal computation serve as test
patterns, and a failure occurrence caused by some intermittent or solid fault
can be detected by means of built-in fault-detection circuits (FOCs). During
normal system o pera tion, the FOCs continuously monitor the intermediate
as well as the final o utputs of the circuit under test and immedi ately detect
an y intermittent or solid failures . These FOCs for on-line testing can also be
useful for off-line self-testing. Although the o bject of off-line testing seems
different from that of on-line test ing, they have a common goal: th e detection and isolati on of faults and the verificati on of fault-free operation of
267
Scan-In
Scan-In
Scan-Out
Scan-Out
Figure 9.22
Distributed internal self-test approach (Bardell and McAnncy 1982; IEEE 1982)
circuits. This goal may become more achievable if both on -line and off-line
techniques are used together harmoniously.
A self-test approach called self-verification, proposed by Sedmak (1979),
reflects an attempt to merge off-line and on-line testing techniques. Selfverification is defined by Sedmak as the ability of logic to verify a failurefree status automatically, without the need for externally applied test
stimuli (other than power and the clock) and without the need for the logic
to be part of a running system.
The general configuration of the self-verification approach is illustrated
in figure 9.23. As shown in the figure, the self-verification scheme requires
automatic fault-detection circuits and test-pattern generators (TPGs).
FOCs are used to detect any intermittent or solid failures by monitoring the
outputs of the circuit under test. The error-status generator assembles and
encodes information about the presence and location of detected faults.
Examples of FOCs are checking circuits for error-detecting codes (parity
codes, m-out-of-n codes, residue codes, and the like) and comparators for
checking duplicated logic. To guarantee the correctness of test results, these
FOCs are usually designed so as to be "self-checking."
Test-pattern generators provide the test patterns necessary to stimulate
the circuit under test and expose any faults to the FOCs. The TPGs can be
implemented in various ways (random-pattern generator, rn-out-of-n code
268
TPG
Super vi sor
Primary
Inputs
Primary
Under
Outputs
Test
Error
Status
Generator
Error Signa 1s
Figure 9.23
General configurat ion of self-verification approach (Sedmak 1979; IEEE 1979)
generator, and so on), depending on the nature of the circuit under test. In
the proposed self-verification approach, the TPG illustrated in figure 9.24 is
utilized. This TPG consists of a binary counter and a parallel-in/serial-out
shift register. It generates all Z"possible input combinations to test exhaustively a combinational circuit having n inputs. Although such exhaustive
testing has the advantage that all stuck-at faults as well as non-stuck-at
faults can be detected, the test application appears to consume far too much
time. However, the test time can be reduced by partitioning the logic to be
tested so that partitioned subcircuits have few enough inputs to allow
exhaustive testing and so that many of the subcircuits can be tested in
parallel.
The TPGs are coordinated by the TPG supervisor shown in figure 9.23.
The TPG supervisor is normally used for controlling the starting and the
stopping ofTPGs only during self-verification and not during normal operation of the system. Hence, in normal system operation, FOes can also be
used for on-line automatic fault detection.
Figure 9.25 shows an example of the application of self-verification using
269
To Ci r cuit
Under Test
Figu re 9.24
Exhaustive test- pa tte rn generator
Pari ty Checker
Combinat ional
Logic
Register 2
270
Functional Logic
Combi nationa 1
Logic
Combinational
Logic
Figure 9.26
Self-verification using d uplicat ion
parity codes. Two registers have the added parity bits, and a parity checker
is placed at the o utput of each register. In this example it is su pposed that
the combinational logic may not pre serve parit y, and hence the parity bits
are regenerat ed at the outputs by a parity generator. On the other hand,
faults in the parity generato r can be detected by means of the parity check at
register 2 and the parity prediction/c omparison check spanning the combinational logic and register 2.
Figure 9.26 shows another example of the self-verification approach. The
technique is based on duplication of logic in complementary form . The left
side of the figure shows the function al circuit; the right side is the duplicate
complem entary logic. Comparators compare the funct ional-logic signals
with the duplicate complementary-logic signals at the outputs of registers.
Both comparators a re designed so as to be self-checking.
As described above, the self-ver ification approach falls under the
category of self-testing. Hence, simil ar to a number of other self-test approaches, the self-verification approach ha s the follo wing advantages:
The time-consuming process of test generation is elimin at ed.
Sto ra ge of a hu ge am ount of test data is elimin ated.
271
In addi tion to these adva ntages, the self-verifica tion a pproach has a uniq ue
a ttr ibute: A major porti on of the logic req uired for self-verification is also
used for automatic fault detection a nd recovery d uring normal operation of
th e assembled system.
Bibliography
Abramovici, M., Y. H. Levendcl, and P. R. Menon. 1982. A logic simulation machine. Proc.
19th Design Automation Con!, pp. 65-73.
Agarwal, V. K. 1978. Fanout-free Boolean functions and Lexpressions. Proc. Con! Information Sciences and Systems, Johns Hopkins University, pp. 227-233.
Agarwal, V. K., and A. S. F. Fung. 1981. Multiplefault testing of large circuits by single fault
test sets. IEEE Trans. Comput. C-30 (11): 855-865.
Aho, A., J. Hopcroft, and J. Ullman. 1976. The Design and Analysis of Computer Algorirhms.
Reading, Mass: Addison-Wesley.
Ak ers, S. B. 1973. Universal test sets for logic networks. IEEE Trans. Comput, C-22 (9): 835839.
Akers, S. B. 1976. A logic system for fault test generation. IEEE Trans. Compui. C-25 (6): 620629.
Ando, H. 1980. Testing VLSI with random access scan. Proc. COMPCON 1980, pp. 50-52.
Armstrong, D. B. 1966. On finding a nearly minimal set of fault detection tests for combinatorial nets. IEEE Trans. Electron. Comput. EC15 (2): 63-73.
Armstrong, D. B. 1972. A deductive method for simulating faults in logic circuits. I EEE Trans.
Comput. C-21 (5): 464-471.
Bardell, P. H., and W. H. McAnney. 1982. Self-testing of multichip logic modules. Proc. 1982
IEEE Test COIlf., pp. 200-204.
Barzilai, Z., J. Sa vir, G. Markowsky, and M. G. Smith. 1981. The weighted syndrome sums
approach to VLSI testing. IEEE Trans. Comput. C-30 (12): 996-1000.
Barzilai, Z., D. Coppersmith, and A. L. Rosenberg, 1983, Exhaustive generation orbit patterns
with applications to VLSI self-testing. IEEE Trans. Comput. C-32 (2): 190-194.
Bennetts, R. G., C. M. Maunder, and G. D. Robinson. 1981. CAMELOT: A computer-aided
measure for logic testability. lEE Proc, 128 (5): 177-189.
Benowitz, N., D. F. Calhoun, G. E. Alderson.J. E. Bauer, and C. T. Joeckel. 1975.An advanced
fault isolation system for digital logic. IEEE Trans. Comput. C-24 (5): 489-497.
Berg, W. C, and R. D. Hess. 1982. COMET: A testability analysis and design modification
package. Proc.1982 IEEE Test Conf.; pp. 364-378.
Betancourt, R. 1973. Derivation of minimum test sets for unate logical circuits. IEEE Trans.
Comput. C-20 (1l)' 1264-1269.
Bhattacharya, B. B., and B. Gupta. 1983. Syndrome testable design of combinational networks
for detecting stuck-at and bridging faults. Proc. 1983 Int. Test Conf., pp. 446-452.
Bhavsar, D. K., and R. W. Heckelman. 1981. Self-testing by polynomial division. Proc. 1981
IEEE Test Conf.; pp. 208-216.
Bossen, D. C, and S. J. Hong. 1971. Cause and effect analysis for multiple fault detection in
combinational networks. IEEE Trans. Comput. C-20 (11): 1252-1257.
Bozorgui-Nesbat, S., and E. J. McCluskey. 1980. Structured design for testability to eliminate
test pattern generation. Proc.Ltnn Int. Symp. Fault-Tolerant Computing, pp. 158-163.
Breuer, M. A. 1972. Generation of fault tests for linear logic networks. IEEE Trans. Comput.
C-21 (1)' 79-83.
Breuer. M. A., and A. D. Friedman. 1979. TEST/80-A proposal for an advanced automatic
test generation system. Proc.IEEE Autotestcon, pp. 305-312.
Brglcz. F. 1984. On testability analysis of combinational networks. Proc. Int. Symp. Circuits
and Systems, pp. 221-225.
Bibliography
273
Carter, J. L. 1982. The theory of signature testing for VLSI. Proc. 14th Ann. ACM Symp.
Theory of Computing, pp. 66-76.
Carter, W. C. 1982. Signature testing with guaranteed bound for fault coverage. Proc. 1982
I EEE Test Con!, pp. 75-82.
Cha, C. W" W. Donath. and F. Ozguner. 1978. 9-V algorithm for test pattern generation of
combinational digital circuits. IEEE Trans. Comput, C-27 (3): 193-200.
Chang, H. Y., S. G. Chappell, C. H. Elmensdorf, and L. D. Schmidt. 1974. Comparison of
parallel and deductive fault simulation methods. IEEE Trans. Comput. C-23 (II): 1132-1138.
Chappell, S. G., C. H. Elrnensdorf and L. D. Schmidt. 1974. LAMP: Logic circuit simulation.
Bell System Tech. J. 53: 1451-1476.
Clegg, F. W. 1973. Use of SPOOFs in the analysis of faulty logic networks. IEEE Trans.
Comput. C-22 (3): 229-234.
Cook, S. A. 1971. The complexity of theorem proving procedures. Proc. Brd ACM Symp.
TlJeol'y of Computing, pp. 151-158.
Coy, W., and A. Vogel. 1981. Inserting test points for simple test generation. Proc. 4ch InC.
Conf. Fault- Tolerant Systems and Diagnostics, pp. 180-186.
Daehn, W., and J. Mucha. 1981a. Hardware test pattern generation for built-in testing.
19811 Test cs, pp. 110-113.
Proc.
Daehn, W., and J. Mucha. 1981b. A hardware approach to self-testing of large programmable
logic arrays. IEEE Trans. Comput. C-30 (I I): 829-833.
DasGupra, S., C. R. P. Hartmann, and L. D. Rudolph. 1980. Dual-mode logic for functionindependent fault testing. IEEE Trans. Comput, C-29 (11): 1025-1029.
DasGupta, S., R. G. Walther, T. W. Williams, and E. B. Eichelberger. 1981. An enhancement to
LSSD and some applications of LSSD in reliability, availability, and serviceability. Pvoc.
11th Symp. Fault- Tolerant Computing, pp. 32-34.
DasGupta, S., P. Goel, R. G. Walther, and T. W. Williams. 1982. A variation of LSSD and its
implications on design and test pattern generation in VLSI. Proc. 1982 IEEE Test Conf.;
pp.63-66.
Dejka, W. J. 1977. Measure of testability in device and system design. 20th Midwest Symp.
Circuits and Systems, pp. 39-52.
Dermeau, M. M. 1982. The Yorktown simulation engine. Proc. 19th Design Automation Conf.;
pp.55-59.
Dussault,J. A. 1978. A testability measure. Proc.IEEE Semiconductor Test Conf., pp. 113-116.
Eichelberger. E. 8. 1965. Hazard detection in combinational and sequential switching circuits.
IBM J. Res. Dev. 9: 90-99.
Eichelberger, E. 8., and T. W. Williams. 1977. A logic design structure for LSI testability. Proc.
14th Design Automation Conf., pp. 462-468.
Eichelberger. E. B. and T. W. Williams. 1978. A logic design structure for LSI testability.
Bibliography
274
Fujiwara, E. 1983. A self-testing group-parity prediction checker and its use for built-in testing.
Proc.13th Int. Symp. Fault-Tolerant Computing, pp.146-153.
Fujiwara, H. 1981. On closedness and test complexity of logic circuits. J EEE Trans. Comput.
C-30 (8)' 556-562.
Fujiwara, H. 1984. A new PLA design for universal testability. IEEE Trans. Camput. C-33 (8):
745-750.
Fujiwara, H.; and K. Kinoshita. 1978. Testing logic circuits with compressed data. Proc.Bth
Int. Conf. Fault-Tolerant Computing, pp. 108-113.
Fujiwara, H., and K. Kinoshita. 1981. A design of programmable logic arrays with universal
tests. IEEE Trans. Comput. C-30 (II): 823-838.
Fujiwara, H., and T. Shimono. 1983a. On the acceleration of test generation algorithms. Proc.
13th Int. Symp. Fault- Tolerant Computing, pp. 98-105.
Fujiwara, H., and T. Shimono. 1983b. On the acceleration of test generation algorithms. IEEE
Trans. Comput, C-32 (12): 1137-1144.
Fujiwara, H., and S. Toida. 1981. The complexity of fault detection problems for combinational circuits. Techincal report 78-P-HW-15068I, Dept. of System Design, University of
Waterloo, Canada.
Fujiwara, H., and S. Toida. 1982a.The complexity offault detection: An approach to design for
testability. Proc. 12th Inc. Symp. Fault- Tolerant Computing, pp. 101-108.
Fujiwara, H., and S. Toida. 1982b. The complexity
0:"
Fujiwara, H., Y. Nagao, T. Sasao, and K. Kinoshita. 1975. Easily testable sequential machines
with extra inputs. 11:;1:. "j;'aI1S. Compia. C-24 (8): 821-826.
Fujiwara, H., K. Kinoshita, and H. Ozaki. 1980. Universal test sets for programmable logic
arrays. Proc. 10th lilt. Conf. Fault-Tolerant Computing, pp. 137-142.
Funatsu, S., N. Wakatsuki, and T. Arima. 1975. Test generation systems in Japan. Proc.12th
Design Automation Symp., vol. 6, pp. 114-122.
Garey, M. R. and D. S. Johnson. 1979. Computers and Intractability: A Guide to the Theory of
NP-Completeness. W. H. Freeman and Company.
Godoy, H. C; G. B. Franklin, and P. S. Bottoroff. 1977. Automatic checking of logic design
structure for compliance with testability groundru'es. Proc. 14th Design Automation Conf.,
pp.460-478.
Gocl, P. 1980. Test generation costs analysis and projections. Proc, 17th Design Automation
Conf.; pp. 77-84.
Gael, P. 1981a. An implicit enumeration algorithm to generate tests for combinational logic
circuits. 1 EEE Trans. Comput. C-30 (3): 215-222.
Goel, P. 1981b. PODEM-X: An automatic test generation system for VLSI logic structures.
PI'OC. l Stli Design Automation Conf.; pp. 260-268.
Gold, E. M.1974. Complexity of automaton identification from given data, Unpublished.
Goldstein, L H. 1979. Controllabilityjohservability analysis of digital circuits. IEEE Trans.
Circuits and Systems CAS-26 (9): 685-693.
Hardie, F. H., and R. J. Suhocki. 1967. Design and use offault simulation for Saturn computer
design. IEEE Trans. Elec. Comput. EC-I6 (8): 412-429.
Bibliography
275
Hayes, J. P. 1971a. A NAND model for fault diagnosis in combinational logic networks. IEEE
TI"QIlS. Comout. C-20 (12): 1496-1506.
Hayes, J. P. 1971b. On realizations of Boolean functions requiring a minimal or near-minimal
number ol tests. IEEE Trans. Comput. C-20 (12): 1506-1513.
Hayes, J. P. 1974. On modifying logic networks to improve their diegnosebiliry. IEEE Trans.
Comput. C-23 (1): 56-62.
Hayes, J. P. 1975. The fanout structure of switching functions. J. ACM 22 (4): 551-571.
Hayes,J. P.,and A. D. Friedman, 1974. Test point placement to simplifyfault detection, IEEE
Trans. Comput. C-23 (7): 727-735.
Hong, S. J., and D. L. Ostapko. 1980. FITPLA: A programmable logic array for function
independent testing. Proc. 10th Int. Symp. Fault-Tolerant Computing, pp. 131-136.
Hsiao, T. C; and S. C. Seth. 1982. The use of Rademacher- Walsh spectrum in testing and
design of digital circuits. Proc. ICCC, pp. 202-205.
Ibarra, 0, H" and S. K. Sahni. 1975. Polynomially complete fault detection problems. IEEE
Trans. Comput. C-24 (3): 242-249.
loose, H. and M. Sakauchi. 1972. Synthesis of automatic fault diagnosable logical circuits by
function conversion method. Pvoc. First USA-Japan Computer Conf., pp. 426-430.
Kautz, W. H. 1971. Testing faults in combinational cellular logic arrays. Proc. 8th Ann. Symp.
Switching and Automata Theory, pp. 161-174.
Keiner, W., and R. WesL1977. Testability measures. Proc.IEEE Autotestcon. pp. 49-55.
Kbakbaz.J. 1983. A testable PLA design with low overhead and high fault coverage. Proc. 13th
Int. Symp. Fault- Tolerant Compuring, pp. 426-429.
Khakbaz, J., and E. J. McCluskey. 1982. Concurrent error detection and testing for large
PLAs. IEEE J. Solid-State Circuits SC-17 (2): 386-394.
Kinoshita, K., Y. Takamatsu, and M. Shibata. 1980. Test generation for combinational circuits
by structure description functions. Proc. 10th Int. Symp. Fault-Tolerant Computing, pp. 152154.
Kobayashi, T., T. Matsue, and H. Shiba. 1968. Flip-flop circuit with FLT capability. Proc.
ICO Conf., p. 692. In Japanese.
Kodandapani, K. L. 1974. A note on easily testable realizations for logic functions. IEEE
Trans. Comous. C-23 (3): 332-333.
Koenemann, B., J. Mucha, and G. Zwiehoff. 1979. Built-in logic block observation techniques.
Proc. 19791E Test Con!, pp. 37-41.
Komonytsky, D. 1982. LSI self-test using level sensitive scan design and signature analysis.
Proc. 1982 IEEE Test Conf., pp. 414-424.
Kovijanic, P. G. 1979. Testability analysis. Proc.1979 IEEE Test Conf., pp. 310-316.
Kronstadt, E. K., and G. Pfister. 1982. Software support for the Yorktown simulation engine.
Proc. 19th Design Automation Conf., pp. 60-64.
Ku, C. T., and G. M. Masson. 1975. The Boolean difference and multiple fault analysis. 1EEE
TrQIlS. Comput. C-24 (1): 62-71.
Kuban, 1., and B. Bruce. 1983. The MC6804P2 built-in self-test. Proc. 1983 Int. Test Conf.;
pp.295-300.
Kubo, H. 1968. A procedure for generating test sequences to detect sequential circuit failures.
NEC Res. Dev. 12: 69-78.
Bibliography
276
K uhl, J. G .. and S. M. Redd y. 1978. O n t he detection of term inal stu ck faults. JEEE Trans.
C O/JI pul. C-2? (5): 467-4 69.
Lineback, J . R. 1982. Log:c simulatio n speeded with new special hardware . Electronics (June
16), 45-46.
McCluskey, E. J., and S. Bozorgui- Nesbat. 1980. Design fo r a uto nomous test. Proc.1980 IEEE
Test COIlf., pp. 15- 21.
McClus key, E. J., and S. Bozorgui-Nesbat. 1981. Design for auto nomous test./ EEE Trans.
Camput. CJO (li r. 866- 875.
Ma rkowsky, G . 1981. Synd rome-testa bility can be achieved by circuit modificati o n. I EEE
Trans. Com put , C-30 (8): 604-606.
Meno n, P. R., a nd S. Ch a ppell. 1978. Ded ucti ve fault simulatio n with funct ional blocks. I EEE
P radhan. D. K . 1978. U niversal test sets fo r multiple fa ult detection in AND -EXOR a rra ys.
IEEE Trans. Compui . C-27 (2): 181-1 87.
Pradh an, D. K ., and K. So n. 1980. The effect of unte sta ble fau lts in P LAs and a design for
testabilit y. Proc. /980 IEEE Tesl
pp . 359-3 67.
cs .
Putzolu, G . R.. and J. P. Rot h. 1971. A heuri stic algorithm (or testing ol asmchronous circu its.
I EEE Trans. Compvt. C::!O(6): 639 ~ 64 7 .
Rama natha. K . S., and N. N. Biswas. 1982 A design fo r complete testa bility of p rogram ma ble
logic a rra y_Proc. / 981 IEE Test Corif-, pp. 67- 74.
Raman atha. K. S. and N. N. Biswas. 1983. A design fo r testa bility of und etect a ble cr osspoi nt
faults in p rogram mable lo gic arrays. / EEE Tr ans. Co mpul. C-32 (6): 55 1-55 7.
Reddy, S. M. 1972. Easily testa ble rea lizati ons for logic functions. IEEE Tr ailS. Comp ut. C-21
(Ii)' 1183-1188.
Reddy, S. M. 1973. Complete test sets for logic fun ctions. IEEE Trans. Comput. C-22 (11):
1016-1020.
Roth. J. P. 1966. Diagn osis of automata failur es: A calc ulus and a met hod. ! 8M J . R es. Dev. 10:
278-2 81.
Bibliography
277
Roth, J. P. 1980. Computer Logic, Testing and Verification. Rockville, Md.: Computer Science
Press.
Roth, J. P., W. G. Bouricius, and P. R. Schneider. 1967. Programmed algorithms to compute
tests to detect and distinguish between failures in logic circuits. IEEE Trans. Electron. Compl/t.
EC-16(10)'567-580.
Sakaucbi, M., K. Hawiuke, and H. Inose. 1975. Synthesis and realization of diagnosable
processor with necessary hardware redundancy for locating faulty packages. Proc. 2nd USAJapan Compui. Conf.; pp. 122-125.
Scluja, K. K. 1982. An enhancement of SSD to reduce lest pattern generation effort and
increase fault coverage. Proc. 19th Design Automation Conf, pp. 489-494.
Saluja, K. K., and M. Karpovsky. 1983. Testing computer hardare through data compression
in space and time. Proe. 1983 Int. Test Conf.; pp. 83-88.
Saluja, K. K., and S. M. Reddy. 1974. On minimally testable logic networks. IEEE Trans.
Comput. C-2J (I), 552-554.
Saluja, K. K., and S. M. Reddy. 1975. Fault detecting test sets for Reed-Muller canonic
networks. IEEE Trans. Comput. C-24 (10): 995-998.
Saluja, K. K., K. Kinoshita, and H. Fujiwara. 1981. A multiple fault testable design of
programmable logic arrays. Proc. 11til Symp. Fault- Tolerant Comp!lIil1{J, pp. 137-142.
Saluja, K. K., K. Kinoshita, and H. Fujiwara. 1983. An easily testable design of programmable
logic arrays for multiple faults. IEEE Trans. Comput. C-32 (11): 1038-1046.
Sasaki, T., N. Koike, K. Ohmori, and K. Tomita. 1983. HAL: A block level hardware logic
simulator. Proc. zoit, Design Auromation Conf., pp. 150-156.
Savir, J. 1980. Syndrome-testable design of combinational circuits. IEEE Trans. Comput. C-29
(6): 442-451. Corrections: November 1980.
Sa vir, J. 1981. Syndrome testing of syndrome-untestable combinational circuits. IEEE Trans.
Comput. C-30 (8) 606-608.
Sedmak, R. M. 1979. Design for self-verification; An approach for dealing with testability
problems in VLSI-based designs. Proe. f980 IEEE Test Conf, pp. 112-120.
Segers, M. T. M. 1981. A self-test method for digital circuits. Proc. 1981 IEEE Test Conf,
pp.79-85.
Sellers, E. F., M. Y. Hsiao, and L. W. Bearnson. 1968a. Analyzing errors with the Boolean
difference. IEEE Trans. Com put. C-17 (7): 676-683.
Sellers, E. F., M. Y. Hsiao, and L. W. Bearnson. 1968b. Error Detecting Logic for Digital
Computers. New York: MctIraw-Hill.
Scshu, S. 1965. On an improved diagnosis program. IEEE Trans. Electron. Comput. EC12 (2):
76-79.
Seth, S. C, and K. L. Kodandapani. 1977. Diagnosis of faults in linear tree networks. IEEE
Trans. Comput. C-26 (I): 29-33.
Smith, J. E. 1980. Measures of the effectiveness of fault signature analysis. IEEE Trans.
Comput. C-29 (6)' 510-514.
Son, K., and D. K. Pradhan. 1980. Design of programmable logic arrays for testability. Proc.
1980 IEEE Tesl Conf, pp. 163-166.
Sridhar, T., D. S. Ho, T. J. Powell. and S. M. Thatte. 1982. Analysis and simulation of parallel
signature analysis. Proc. 1982 IEEE Test Conf, pp. 656-661.
Stephenson, J. E. and J. Grason. 1976. A testability measure for register transfer level digital
circuits. Proc. 6th Int. Symp. Fault-Tolerant Computing, pp. 101-107.
278
Bibliography
Stewart, J. H. 1977. Future testing of large LSI circuit cards. Proc.1977 Semiconductor Test
Symp., pp. 6-17.
Susskind, A. K. 1981. Testing by verifying Walsh coefficients. Proe. 11th lnt. Symp. FaultTolerant Computing, pp. 206-208.
Susskind, A. K. 1983. Testing by verifying Walsh coefficients. IEEE Trans. Comput. C-32 (2):
198-201.
Szygcnda, S. A., D. M. Rouse, and E. W. Thompson. 1970. A model for implementation of a
universal time delay simulation for large digital networks. Proe. AFIPS Conf., pp. 207-216.
Takamatsu, Y., M. Hiraishi, and K. Kinoshita. 1983. Test generation for combinational
circuits by a ten-valued calculus. Trans. ojInformation Processing Society ofJapan, 24 (4): 542548. In Japanese.
Thatte, S. M., D. S. Ho, H.-T. Yuan, T. Sridhar, and T. J. Powell. 1982. An architecture for
testable VLSI processors. Proe. 19821 EEE Test COIJj., pp. 484-492.
Toth, A., and C. Holt. 1974. Automated database-driven digital testing. Computer 1: 13-19.
Trischlcr, E. 1980. Incomplete scan path with an automatic test-generation methodology.
Proe. 1980 JEEE Test Conf, pp. 153-162.
Ulrich, E. G., and T. Baker. 1973. The concurrent simulation of nearly identical digital
networks. Proe. 10th Design Automation Workship, vel. 6, pp. 145-150.
Williams, M. J. Y., and J. B. Angell. 1973. Enhancing testability of large scale integrated circuits
via test points ar.d additional logic. I EEE Trans. Com put. C-22 (1): 46-60.
Williams, T. W., and K. P. Parker. 1982. Design for testability-A survey. IEEE Trails.
Comout. C-31 (1): 2-15.
Wood, C. T. 1979. The quantitative measure of testability. Proe.IEEE AI/totesteon, pp. 286291.
Yajima, S., and T. Aramaki. 1981. Autonomously testable programmable logic arrays. Proe.
11th Symp. Fault- Tolerant Computing, pp. 41-43.
Yamada, T. 1983. Syndrome-testable design of programmable logic arrays. Proe. lnt. Test
Conj., pp. 53-458.
Index
247-259
Built-in self-test, 238, 247, 256-259, 264
Built-in test, 19,238,246,254
Bus-structured architecture, 145
(AAFIS),246
Agarwal, V. K., 123
Aha, A., 110
Akers, S. 8., 45, 125
ALU. See Arithmetic-logic unit
81-82
ATE. See Automatic test equipment
ATG. See Automatic test generation
Automatic test equipment (ATE), 21
Automatic test generation (ATG), 17
58,61,64-67,117
Backward-trace phase. 31
BakerT. 96
Bardell, P. H., 261-262, 265
Barailai, Z., 177, 186
Bed-of-nails, 147, 149
Bennetts, R. G., 133
Benowitz, N . 246
Berg, W.
133
Betancourt, R., 125
Bhattacharya, B. B., 186
c..
Ccfrontier, 45
Cha, C. W., 45
Chang, H. Y., 89
Chappell, S. G., 89, 96
Characteristic polynomial, 239, 241-242
Checking sequence, 206, 210-212
Clause, 110
Clause-monotone expression, 111-113
Clegg, F. W., 30
Clock, 7,145,215,217,220-223,230-231
Clocked flip-flop, 7, 67, 69
Clock pulse, 7
Closed composition, 121, 125, 128
Closedness
under composition, 120-123, 127
under faults, 120-129
Closed tree composition, 123
Closure, 120
CMOS. See MOSFET, complementary
CNF. See Conjunctive normal form
Code word, 19
Combinational circuit, 3-8
iterative, 67, 69, 74, 76-77, 81-82
Compact testing, 23,141-142,239
Compatibility constraint, 155
Compatible sequence, 153-155, 159
Compiler-driven simulator, 84
Complementary MOSFET (CMOS), 8
Computer-aided design (CAD), 102
Concurrent fault simulation, 84, 96-102
Concurrent testing, 19
Conjunctive normal form (CNF), 110III
Consistency operation. 40, 42, 66, 79. See
a/so Line justification
Controllability, 52,134-139,142-143,145,
147-149,151,206
Controllability transfer factor (CTF), 135
Controlling state, 50
280
Index
281
Index
K arnaugh ma p, [- 2
Kautz, W. H ., [89
Keiner, W., 133
Kernel,246
Khakbaz, J. , 192
Kinoshita, K ., 30, 168. [70, 192
Ko bayashi, T., 2 13, 215
Kodanda pani, K . L, 127, 191
Ko enemann, B., 247, 265
Komonytsky, D ., 262, 264- 265
K ovijanic, P. G ., 133
Kronstadt, E. K ., 102
Ku, C. T ., 30
Kuban , J., 259
Kubo, H., 67
Kuhl, J. G ., 141
Kuntzm ann, J., 120
LAMP system, 89, 96
Large-scale int egration (LSI), 8, 17-1 8,
140,192,199,218
Levelizing, 84
Level-sensit ive logic circuit, 218
Level-Sensitive Scan Desig n (LSSD), 213,
218-227,232-233,236-237,250,259 ,
262
LFSR. See Linear-feedback shift register
Linea r-feedback shift regist er (LFS R),
175- 178,239-251,256,260-262,266
Linear function, 120, 126-129
Lineback , J. R ., 102
Line -justific ation phase, 31, 40, 42-45, 58,
66, 74, 79-80
Literal, 110
Logic circuit, 1-8
Logie func tion, [- 3. See also Boolean
fun ction
Logic op erati on, 1- 3. S ee also Boolean
opera tion
Logic testing, 1
Logical fau lt, 8
Logical partition ing, [45
LSI. See Lar ge-scale int egration
LSSD . See Level-Sensitive Scan Des ign
McA nney, W . H ., 261-262, 265
McCluskey, E. J ., 140, 172, 175, 192
Markowsky, G ., 186
M asson, G . M ., 30
Maximal false vertex , 124
Menon, P. R., 96
Mercer, M . R ., 226-227
Met al oxide semiconductor field effect
transistor. S ee MOSFET
282
Index
Index
283
263-266
parallel, 243, 245-246, 250, 253, 256-258,
261,263
serial. 243. 246, 259, 261
Simultaneous self-test. 265
Single fault. 14.73.124.161,182,189-191
Single-path sensitization, 31-33, 67, See
also One-dimensional path sensitization
Smith, J. E., 241-243
Solid fault, 9
Son, K., 192
SPOOF,30
Sridhar, T.. 243
SRL. See Shift-register latch
SSA. See Serial signature analyzer
SSRL. See Stable shift-register latch
State
next, 3
present, 3
State diagram, 4
State-shiftable machine, 206-213
State table, 4. See also Flow table
Stephenson, J. E., 133-134, 136~137
Stewart, J. H., 147,226-227
Structured design technique, 144
Stuck-at fault, 9,14-15,17-28,30,112,
121-\22,125, \27-129,151,155-\57,
16\,167,182,197,201
Suhocki, R. J., 86
Susskind, A. K., 187
Synchronizing sequence, 76, 207-210
Synchronous sequential circuit, 4-8, 67, 81
Syndrome testing, 181-188
Szygenda, S. A., 86
Table-driven simulator, 84, 108
Takamatsu, Y., 45
TEGAS simulator, 86
Testability, 133-134, 139-141, 144-145,
\48-149,206
analysis of, 133-139. 147-148
design for, 133, 139-140, 144, 171
measuring of, 52,133-139,147
Test application, 16. 141, 150, 167
Test coverage, 17,67,70,224
Test data, 14,21,168,170
Test generation, 16.24-83,133,142,149,
17\
Testing
built-in, 19,238,246,254 (see also Built-in
self-test; Self-test)
compact, 23,141-142,239
complexity of, 109-129
concurrent, 19
284
Testing (COlli.)
deterministic, 21
exhaustive, 140, 171-180, 187
external, 19
function- inde pendent, 139, 188, 192, 199
in-circui t. 147, 149
o ff-line, 19,266-267
on- line, 19,266-267
random , 21
universal, 139, 171, 192, 197, 199
Test pattern , 14. 16-17,21,23,26,30,69,
80,140-141,153-158,161-167,1 89199,1 98-200,203
Test-p a ttern generator (TPG), 267-268
Test po int, 147, 149
Test sequence, 14,74,76-77,80,159,168170, 198, 202
Test set, 14, 16, 27-30, 169, 197-198,201,
205
Thane, S. M., 257-258
Time complexity, 109
Toid a, S., 113, 120
Toth, A., 226
TPG . See Test pattern genera to r
Transistor-transistor logic (TTL), 8-9
Tree compo sition, 123
Tris chler, E., 232
TTL. See Tra nsistor-tran sistor logic
Ulrich, E. G ., 96
Unate circuit, 112-1 [4
Unate comp osition , 123-125
U nate expres sion, [11-112
Unate funct ion, 123-125
Unate gate network, 123
Unique sensitizatio n, 54-56, 58, 64, 66
Universal testi ng, [39, 17J. 192, 197, 199
Unj ustified line, 42, 44-45, 57, 64, 66
Very-high-speed integrat ed (VHSI) circ uit,
238
Very-lar ge-scale integration (VLSI), 1, 8,
17-1 8,l40, 144-145, 192,199,218,238
VHSI circuit. See Very-hi gh-speed integrated cireuit
VLSI. See Very-large-sc ale integration
VLSI processor, 257-258. See also Microcomputer; Micr op rocessor
Vogel, A., 171
Weldon , E. J ., 177,239
West, R., 133
Williams, M. J. Y., 143,213,226
William s, T. W., 144,213, 218,220,223-
Index
224,236
Wood , C. T ., 133
X-path check, 50, 56
Yajima, S., 192
Y am a d a , T. , IS?
Yorktown sim ulation engine (YSE), 102,
106-108