Testing: Digital and Mixed Analogue/digital Techniques
Testing: Digital and Mixed Analogue/digital Techniques
VLSI
TESTING
digital and mixed
analogue/digital
techniques
STANLEY L. HURST
VLSI
TESTING
digital and mixed
analogue/digital
techniques
Other volumes in this series:
Volume 1 GaAs technology and its impact on circuits and systems
D. G. Haigh and J. Everard (Editors)
Volume 2 Analogue IC design: the current-mode approach
C. Toumazou, F. J. Lidgey and D. G. Haigh (Editors)
Volume 3 Analogue-digital ASICs R. S. Soin, F. Maloberti and
J. Franca (Editors)
Volume 4 Algorithmic and knowledge-based CAD for VLSI
G. E. Taylor and G. Russell (Editors)
Volume 5 Switched-currents: an analogue technique for digital technology
C. Toumazou, J. B. Hughes and N. C. Battersby (Editors)
Volume 6 High frequency circuits F. Nibler and co-authors
Volume 7 MMIC design I. D. Robertson (Editor)
Volume 8 Low-power HF microelectronics G. A. S. Machado (Editor)
VLSI
TESTING
digital and mixed
analogue/digital
techniques
STANLEY L. HURST
While the author and the publishers believe that the information and
guidance given in this work is correct, all parties must rely upon their own
skill and judgment when making use of it. Neither the author nor the
publishers assume any liability to anyone for any loss or damage caused
by any error or omission in the work, whether such error or omission is
the result of negligence or any other cause. Any and all such liability is
disclaimed.
The moral right of the author to be identified as author of this work has
been asserted by him/her in accordance with the Copyright, Designs and
Patents Act 1988.
Preface xi
Acknowledgments xiii
List of symbols and abbreviations xv
1 Introduction 1
1.1 The need for testing 1
1.2 The problems of digital testing 7
1.3 The problems of analogue testing 9
1.4 The problems of mixed analogue/digital testing 11
1.5 Design for test 11
1.6 Printed-circuit board (PCB) testing 13
1.7 Software testing 15
1.8 Chapter summary 16
1.9 Further reading 16
2 Faults in digital circuits 19
2.1 General introduction 19
2.2 Controllability and observability 20
2.3 Fault models 25
2.3.1 Stuck-at faults 26
2.3.2 Bridging faults 30
2.3.3 CMOS technology considerations 31
2.4 Intermittent faults 35
2.5 Chapter summary 38
2.6 References 40
Appendix B Minimum cost maximum length cellular automata for n < 100 519
Index 527
Preface
Historically, the subject of testing has not been one which has fired the
imagination of many electronic design engineers. It was a subject rarely
considered in academic courses except, perhaps as the final part of some
laboratory experiment or project, and then only to confirm the correct (or
incorrect!) working of some already-designed circuit. Hov/ever, the vast
increase in on-chip circuit complexity arising from the evolution of LSI and
VLSI technologies has brought this subject into rightful prominence, making
it an essential part of the overall design procedure for any complex circuit or
system.
The theory and practice of microelectronic testing has now become a
necessary part of both IC design and system design using ICs. It is a subject
area which must be considered in academic courses in microelectronic
design, and which should be understood by all practising design engineers
who are involved with increasingly complex and compact system
requirements.
Written as a self-contained text to introduce all aspects of the subject, this
book is designed as a text for students studying the subject in a formal taught
course, but contains sufficient material on more advanced concepts in order
to be suitable as a reference text for postgraduates involved in design and test
research. Current industrial practice and the economics of testing are also
covered, so that designers in industry who may not have previously
encountered this area may also find information of relevance to their work.
The book is divided into nine principal chapters, plus three appendices.
Chapter 1 is an introductory chapter, which explains the problems of
microelectronic testing and the increasing need for design for test (DFT)
techniques. Chapter 2 then continues with a consideration of the faults which
may arise in digital circuits, and introduces the fundamentals of
controllability, observability, fault models and exhaustive versus non-
exhaustive test. This consideration of digital circuit testing continues in
xii Preface
Stanley L. Hurst
Acknowledgments
I would like to acknowledge the work of the many pioneers who have
contributed to our present state of knowledge about and application of
testing methodologies for microelectronic circuits and systems, oftimes with
belated encouragement from the manufacturing side of industry.
Conversations with many of these people over the years have added greatly to
my awareness of this subject area, and the many References given in this text
are therefore dedicated to them.
On a more personal note, may I thank former research colleagues at the
University of Bath, England, and academic colleagues in electronic systems
engineering at the Open University who have been instrumental in helping
my appreciation of the subject. Also very many years of extremely pleasant co-
operation with the VLSI design and test group of the Department of
Computer Science of the University of Victoria, Canada, must be
acknowledged. To them and very many others, not excluding the students
who have rightfully queried many of my loose statements, specious arguments
or convoluted mathematical justifications, my grateful thanks.
Finally, I must acknowlege the cheerful help provided by the administrative
and secretarial staff of the Faculty of Technology of the Open University, who
succeeded in translating my original scribbles into recognisable text. In
particular, may I thank Carol Birkett, Angie Swain and Lesley Green for their
invaluable assistance. Any errors remaining in the text are entirely mine!
S.L.H.
List of symbols and abbreviations
The following are the symbols and abbreviations that may be encountered in
VLSI testing literature. Most but not necessarily all will be found in this text.
C capacitor
CA cellular automata
CAD computer-aided design
xvi List of symbols and abbreviations
DA design automation
DAC digital to analogue converter
DBSC digital boundary scan cell
DDD defect density distribution
DEC double error correction
DED double error detection
DFM design for manufacturing
DFR decreasing failure rate
DFT design for test, or design for testability
DIL or DIP dual-inline package, or dual-inline plastic package
DL default level
DMOS dynamic MOS
DR data register
DRC design rule checking
DSP digital signal processing
D-toA digital to analogue
DUT device under test
IC integrated circuit
Q
quiescent current in CMOS
IEE Institution of Electrical Engineers
IEEE Institute of Electrical and Electronics Engineers
IFA inductive fault analysis
IFR increasing failure rate
IGFET insulated gate FET
I/O input/output
IR instruction register
ISL integrated Schottky logic
quiescent current in CMOS
k 1000
K 1024
kHz kilohertz
R resistor
RAM random-access memory
RAPS random path sensitising
RAS random access scan
ROM read-only memory
RTL register transfer language
RTOK retest OK
TC test coverage
TAP test access port
TCK, TMS, TDI, TDO boundary-scan terminals of IEEE standard 1149.1
TDD test directed diagnosis
TDL test description language
TMR triple modular redundancy
TPG test pattern generation (see also ATPG)
TPL test programming language
TQM total quality management
TTL transistor-transistor logic
The first of these five activities is the sole province of the vendor, and does not
involve the OEM in any way. The vendor normally incorporates 'drop-ins'
located at random positions on the wafer, these being small circuits or
geometric structures from which the correct resitivity and other parameters
of the wafer fabrication can be verified before any functional checks are
undertaken on the surrounding circuits. This is illustrated in Figure 1.1. We
will have no occasion to consider wafer fabrication tests any further in this
text.
Figure 1.1 The vendor's check on correct wafer fabrication, using drop-in test circuits
at selected points on the wafer. These drop-ins may be alternatively known
as process evaluation devices (PEDs), process device monitors (PDMs),
process monitoring circuits (PMCs), or similar terms by different IC
manufacturers (Photo courtesy Micro Circuit Engineering, UK)
In the case of standard off the shelf ICs, available for use by any OEM, the
next two test activities are also the sole responsibility of the vendor. However,
in the case of customer-specific ICs, usually termed ASICs (application-
specific ICs) or more precisely USICs (user-specific ICs), the OEM is also
involved in phase (ii) in order to define the functionality and acceptance
details of the custom circuit. The overall vendor/OEM interface details
therefore will generally be as shown in Figure 1.2.
The final two phases of activity are clearly the province of the OEM, not
involving the vendor unless problems arise with incoming production ICs.
Such testing will be unique to a specific product and its components,
although in its design the requirements of testing, and possibly the
incorporation of design for test (DFT) features such as will be covered later
in this text, must be considered.
Introduction 3
vendor
package prototype
quantity chips
ok
^prototype\ not ok
chip tests
incoming
not ok \ c h i p tests
wafer fabrication
production wafers
Figure 1.2 The IC vendor/OEM test procedures for a custom IC before assembly and
test in final production systems. Ideally, the OEM should do a 100 %
functional test of incoming ICs in a working equipment or equivalent test
rig, although this may be impractical for VLSI circuits
4 VLSI testing: digital and mixed analogue/digital techniques
V = O.C 1
90
~
80
70 • — ^
V fl 1n \
e
60
50
\ l\ \
^ y = 0.25 X
\
I
40 \
^ ^
A
30 Y - n so
-3
\ \
20
— — - ^
\ \
--—^>
\
Y = 0.90 y = o 75^—• — — ^
10 =—=
r—
- . —
• — • , .
• — - — —
—
0 Y = 0.99
10 20 30 40 50 60 70 80 90 100
seven ICs faulty, which is far too high for most customers. Hence to ensure a
high percentage of fault-free circuits after test, either the manufacturing yield
For the fault coverage FQ or both, must be high.
This, therefore, is the dilemma of testing complex integrated circuits, or
indeed any complex system. If testing efficiency is low then faulty circuits may
escape through the test procedure. On the other hand, the achievement of
near 100 % fault detection (FC= 1.0) may require such extensive testing as to
be prohibitively costly unless measures are taken at the design stage to
facilitate such a level of test.
Before we continue with the main principles and practice of integrated
circuit testing, let us consider a little further Figure 1.2 and problems which
can specifically arise with OEM use of custom ICs. During the design phase,
simulation of the IC will have been undertaken and approved before
fabrication was commenced. This invariably involves the vendor's CAD
resources for the final post-layout simulation check, and from this simulation
a set of test vectors for the chip may be automatically generated which can be
downloaded into the vendor's sophisticated general-purpose test equipment.
The vendor's tests on prototype custom ICs may therefore be based upon this
simulation data, and if the circuits pass this means that they conform to the
simulation results which will have been approved by the OEM.
6 VLSI testing: digital and mixed analogue/digital techniques
Unfortunately, history shows that very many custom IC designs which pass
such tests are subsequently found to be unsatisfactory under working product
conditions. This is not because the ICs are faulty, but rather that they were
not designed to provide the exact functionality required in the final product.
The given IC specification was somehow incomplete or faulty, perhaps in a
very minor way such as the active logic level of a digital input signal being
incorrectly specified as logic 1 instead of logic 0, or some product
specification change not being transferred to the IC design specification.
Other problems may also arise between parties, such as:
• a vendor's general-purpose computer-controlled VLSI test system, see
Figure 1.4, which although it may have cost several million dollars, may
not have the capability to apply some of the input conditions met in the
final product, for example nonstandard digital or analogue signals or
Schmitt trigger hysteresis requirements;
• similarly, some of the output signals which the custom circuit provides
may not be precisely monitored by the vendor's standard test system;
• the vendor may also only be prepared to apply a limited number of tests
to each production IC, and not anywhere near an exhaustive test;
• the vendor's test system may not test the IC at the operating speed or
range of speeds of the final product.
The main point we need to make is that in the world of custom
microelectronics the OEM and the vendor must co-operate closely and
intelligently to determine acceptable test procedures. When the OEM is using
standard off the shelf ICs then the responsibility for incoming component
and product testing is entirely his. However, in both cases the concepts and
Figure 1.4 A typical general-purpose VLSI tester as used by IC vendors and test
houses (Photo courtesy Avantest Corporation, Japan)
Introduction 7
Table 1.1 An example of a test set for a combinational netxuork with eight inputs and
four outputs
Test vectors Output response
x
i x2 x3 x4 X
5 X
6 X
7 X
8 Y\ Y2 Y3 Yi
First test pattern 0 ) 1 1 0 0 I 1 0 0 0 1
Next test pattern 0 1 ! I 0 1 0 0 0 I 0 0
Next test pattern 1 I 1 i 0 1 0 0 0 1 i 0
than any fundamental difficulty in the testing requirements. For circuits with
a small number of logic gates and internal storage circuits, the problem is not
acute; fully-exhaustive functional testing may be possible. As circuits grow to
LSI and VLSI complexity, then techniques to ease this problem such as will
be considered later become increasingly necessary.
In contrast to the very large number of logic gates and storage circuits
encountered in digital networks, purely analogue networks are usually
characterised by having relatively few circuit primitives such as operational
amplifiers, etc. The numbers complexity is replaced by the increased
complexity of each building block, and the need to test a range of parameters
such as gain, bandwidth, signal to noise ratio, common-mode rejection
(CMR), offset voltage and other factors. Although faults in digital ICs are
usually catastrophic in that incorrect 0 or 1 bits are involved, in analogue
circuits degraded circuit performance as well as nonfunctional operation has
to be checked.
Prototype analogue ICs are subject to comprehensive testing by the vendor
before production circuits are released. Such tests will involve wafer
fabrication parameters as well as circuit parameters, and the vendor must
ensure that these fabrication parameters remain constant for subsequent
production circuits. The vendor and the OEM, however, still need to test
production ICs, since surface defects or mask misalignments or other
production factors may still cause unacceptable performance, and therefore
some subset of the full prototype test procedures may need to be determined.
Completed analogue systems obviously have to be tested by the OEM after
manufacture, but this is unique to the product and will not be considered
here.
The actual testing of analogue ICs involves standard test instrumentation
such as waveform generators, signal analysers, programmable supply units,
voltmeters, etc., which may be used in the test of any type of analogue system.
Comprehensive general-purpose test systems are frequently made as an
assembly of rack-mounted instruments, under the control of a dedicated
microcontroller or processor. Such an assembly is known as a rack-and-stack
test resource, as illustrated in Figure 1.5. The inputs and outputs of the
individual instruments are connected to a backplane general purpose
instrumentation bus (GPIB), which is a standard for microprocessor or
computer-controlled commercial instruments. (The HP instrumentation bus
HPIB is electrically identical.)
In the case of custom ICs it is essential for the OEM to discuss the test
requirements very closely with the vendor. With very complex analogue
circuits a high degree of specialist ability may be involved, which can only be
acquired through considerable experience in circuit design.
10 VLSI testing: digital and mixed analogue/digital techniques
power supplies -• •
precision
.• • ' digitiser
voltmeter —
digital
' oscilloscope
1.3 GHz signal
analyser
connector • minicomputer
to device
under test
sweep oscillator - o
D D
hard disk
pulse generators-
relay actuators — • •« power supplies
• •
Figure 1.5 A rack-and-stack facility for the testing of analogue circuits, involving a
range of instrumentation with compute?' control of their operation (Photo
courtesy IEEE, ©1987 IEEE)
Introduction 11
Testing of the analogue part and testing of the digital part of a combined
analogue/digital circuit or system each require their own distinct forms of
test, as introduced in the two preceding sections.* Hence, it is usually
necessary to have the interface between the two brought out to accessible test
points so that the analogue tests and the digital tests may be performed
separately.
In the case of relatively unsophisticated mixed circuits containing, say, a
simple input A-to-D converter, some internal digital processing, and an
output D-to-A converter, it may be possible to define an acceptable test
procedure without requiring access to the internal interfaces. All such cases
must be individually considered, and so no hard and fast rules can be laid
down.
There are on-going developments which seek to combine both analogue
and digital testing by using multiple discrete voltage levels or serial bit
streams to drive the analogue circuits, or voltage-limited analogue signals for
the digital circuits. However, this work is still largely theoretical; more
successful so far in the commercial market has been the incorporation of
both analogue test instrumentation and digital test instrumentation within
one test assembly, as illustrated in Figure 1.6. Here the separate resources are
linked by an instrumentation bus, with the dedicated host processor or
computer being programmed to undertake the necessary test procedures.
When such resources are used it is essential to consider their capabilities, and
perhaps constraints, during the design phase of a mixed analogue/digital IC,
particularly as appropriate interface points between the two types of circuit
may still be required.
From the previous sections it will be clear that the problems of test escalate as
the complexity of the IC or system increases. If no thought is given to 'how-
* We exclude here in our considerations the testing of individual A-to-D and D-to-A
converters, particularly high speed flash converters. The vendor testing of these and
similar mass-production circuits usually involves extremely expensive test resources
especially designed for this purpose, similar in appearance to the VLSI test equipment
shown in Figure 1.4.
12 VLSI testing: digital and mixed analogue/digital techniques
GPIB ^
anal<Dgue diejital
instrum 3ntation ^ synchronisation w 7 instrumentation
i i
integrated signal
distribution and
device f xturing
Figure 1.6 A mixed analogue/digital test resource, with the analogue and the digital
tests synchronised under host computer control. This can be a rack-and-
stack assembly, as in Figure 1.5 for the analogue-only case
shall-we-test-it' at the design stage then a product may result which cannot be
adequately tested within an acceptable time scale or cost of test.
Design for test (DFT) is therefore an essential part of the design phase of
a complex circuit. As we will see later, DFT involves building into the circuit
or system some additional feature or features which would not otherwise be
required. These may be simple features, such as:
• the provision of additional input/output (I/O) pins on an IC or system,
which will give direct access to some internal points in the circuit for
signal injection or signal monitoring;
• provision to break certain internal interconnections during the test
procedure, for example feedback loops;
• provision to partition the complete circuit into smaller parts which may be
individually tested;
or more complicated features such as reconfigurable circuit elements which
have a normal mode of operation and a test mode of operation.
As will be seen later, one of the most powerful test techniques for digital
VLSI circuits is to feed a serial bit stream into a circuit under test to load test
signals into the circuit. The resulting signals from the circuit are then fed out
in an output serial bit stream, and checked for correct response. Such
techniques are scan test techniques; they become essential when, for
example, the IC under test is severely pin-limited, precluding parallel feeding
in of all the desired test signals in a set of wide test vectors. One penalty for
having to adopt scan test methods is an increase in circuit complexity, and
hence chip size and cost. We will be considering all these factors in detail in
later chapters of this text.
Introduction 13
All OEM systems employ some form of printed-circuit board (PCB) for the
assembly of ICs and other components. PCB complexity ranges from very
simple one- or two-sided boards to extremely complex multilayer boards
containing ten or more layers of interconnect which may be necessary for
avionics or similar areas.
PCB testing falls into three categories, namely:
(i) bare-board testing, which seeks to check the continuity of all tracks on
the board before any component assembly is begun;
(ii) in-circuit testing, which seeks to check the individual components,
including ICs, which are assembled on the PCB;
(iii) functional testing, which is a check on the correct functionality of the
completed PCB.
Bare-board testing
Simple one- or two-sided bare boards may be checked by visual inspection.
However, as layout size and complexity increases, then expensive PCB
continuity testers become necessary. Connections to the board under test are
made by a comprehensive 'bed-of-nails' fixture, which is unique for every
PCB layout, test signals being applied and monitored by a programmed
sequence from the tester's dedicated processor or computer. One hundred
per cent correct continuity is required from such tests.
In-circuit testing
In-circuit testing, the aim of which is to find gross circuit faults before
commencing any fully-detailed functional testing, may or may not be done. If
it is, then electrical connections to the individual components are again
made via a bed-of-nails fixture, the processor of the in-circuit tester being
programmed to supply and monitor all the required test signals.
The fundamental problem with in-circuit passive component measurement
is that the component being measured is not isolated from preceding and/or
following components on the board. For discrete components a
measurement technique as shown in Figure 1.7 is necessary. Here Zx and Z2
are the impedance paths either side of the component Zx being measured. By
connecting both of these paths to ground, virtually all the current flowing
into the in-circuit measuring operational amplifier comes from the test
source vs via the component Z r Current flowing through Z2 is negligible
because of the virtual earth condition on the inverting input of the
operational amplifier. Hence:
V
OUT = ~jT~ X
Rfi
14 VLSI testing: digital and mixed analogue/digital techniques
whence
v R
_ s jb
Functional testing
In contrast to the bed of nails fixtures noted above, PCB functional testing
must access the circuit through its normal edge connector(s) or other I/O
V
SOURCE
(low impedance)
OUT
Figure 1.7 The technique used for the in-circuit testing of passive component values.
In practice additional complexity may be present to overcome errors due to
source impedance, lead impedance, offset voltages, etc.
Introduction 15
terminals. Probing of internal tracks on the PCB may be done for specific
fault-finding purposes, but not during any automated test procedure.
With fully-assembled PCBs we are effectively doing a systems test. This will
be unique for every OEM product, and may involve an even greater
complexity of test than individual VLSI circuits. We will not pursue functional
PCB testing any further in this text, except to note that all the theory and
techniques which will be discussed in the following chapters apply equally to
complex PCB assemblies; design for test (DFT) techniques must be con-
sidered at the design stage, and PCB layouts must incorporate the necessary
provisions for the final functional tests. Scan testing (see Chapter 5) in
particular may need to be incorporated to give test access from PCB I/Os to
internal IC packages.
This first chapter has been a broad overview of the problems of testing
circuits of VLSI complexity and systems into which they may be assembled.
As will be appreciated, the testing problem is not usually one of fundamental
technical difficulty, but much more one of the time and/or the cost neces-
sary to undertake a procedure which would guarantee 100 % correct
functionality.
The subsequent chapters of this text will therefore consider the types of
failures which may be encountered in microelectronic circuits, fault models
for digital circuits, the problems of observability and controllability and the
various techniques that are available to ease the testing of both digital and
mixed analogue/digital circuits. Finally, the financial aspects of testing which
reflect back upon the initial design of the circuit or system will be considered,
as well as the production quantities that may be involved.
We will conclude this chapter with a list of publications which may be
relevant for further general or specific reading. The more specialised ones
may be referenced again in the following chapters.
* The extreme case of this is possibly the Star Wars research and development
programme, which would have been impossible to test under operational conditions.
Introduction 17
10 BARDELL, P.H., McCANNEY, W.H., and SAVIR, J.: 'Built-in test for VLSI:
pseudorandom techniques' (Wiley, 1987)
11 BENNETTS, R.G.: 'Design of testable logic circuits' (Addison-Wesley, 1984)
12 BATESON, J.: 'In-circuit testing' (Van Nostrand Reinholt, 1985)
13 GULATI, R.K., and HAWKINS, C.F.: lIDDQ testing of VLSI circuits' (Kluwer, 1993)
14 BLEEKER, H., Van den EIJNDEN, P., and De JONG, R: 'Boundary scan test: a
practical approach' (Kluwer, 1993)
15 RAJSUMAN, R.: 'Digital hardware testing: transistor-level fault-modeling and
testing' (Artech House, 1992)
16 MILLER, D.M. (Ed.): 'Developments in integrated circuit testing' (Academic
Press, 1987)
17 WILLIAMS, T.W. (Ed.): 'VLSI testing' (North-Holland, 1986)
18 RUSSELL, G., and SAYERS, I.L.: 'Advanced simulation and test methodologies for
VLSI design' (Van Nostrand Reinhold, 1989)
19 RUSSELL, G. (Ed.): 'Computer aided tools for VLSI system design' (Peter
Peregrinus, 1987)
20 MASSARA, R.E. (Ed.): 'Design and test techniques for VLSI and WSI circuits'
(Peter Peregrinus, 1989)
21 SOIN, R., MALOBERT, R, and FRANCA, J. (Eds.): 'Analogue digital ASICs: circuit
techniques, design tools and applications' (IEE Peter Peregrinus, 1991)
22 TRONTELJ, J., TRONTELJ, L., and SHENTON, G.: 'Analogue digital ASIC
design' (McGraw-Hill, 1989)
23 ROBERTS, G.W., and LU, A.K.: 'Analogue signal generation for the built-in-self-
test of mixed signal ICs' (Kluwer, 1995)
24 NAISH, P., and BISHOP, P.: 'Designing ASICs' (Wiley, 1988)
25 'Design for testability'. Open University microelectronics for industry publication
PT505DFT, 1988
26 HURST, S.L.: 'Custom VLSI microelectronics' (Prentice Hall, 1992)
27 NEEDHAM, W.M.: 'Designer's guide to testable ASIC devices' (Van Nostrand
Reinhold, 1991)
28 DI GIACOMOJ.: 'Designing with high performance ASICs' (Prentice Hall, 1992)
29 WHITE, D.E.: 'Logic design for array-based circuits: a structure design
methodology' (Academic Press, 1992)
30 BENNETTS, R.G.: 'Introduction to digital board testing' (Edward Arnold, 1982)
31 MAUNDER, C: 'The board designer's guide to testable logic circuits' (Addison-
Wesley, 1992)
32 O'CONNOR, P.D.T.: 'Practical reliability engineering' (Wiley, 1991)
33 CHRISTOU, A.: 'Integrating reliability into microelectronics manufacture'
(Wiley, 1994)
34 MYERS, G.J.: 'Software reliability: principles and practice' (Wiley, 1976)
35 MYERS, G.J.: 'The art of software testing' (Wiley, 1979)
36 SMITH, D.J., and W7OOD, K.B.: 'Engineering quality software' (Elsevier, 1989)
37 MITCHELL, R.J. (Ed.), 'Managing complexity in software engineering'
(Institution of Electrical Engineers, 1990)
38 SOMMERVILLE, I.: 'Software engineering' (Addison-Wresley, 1992)
39 SIMPSON, W.R., and SHEPPARD, J.W.: 'System test and diagnosis' (Kluwer, 1994)
40 ARSENAULT, J.E., and ROBERTS, J.A. (Eds.): 'Reliability and maintainability of
electronic systems' (Computer Science Press, 1980)
41 KLINGER, D.J., NAKADA, Y, and MENENDIZ, M.A. (Eds.): 'AT+T reliability
manual' (Van Nostrand Reinhold, 1990)
Chapter 2
Faults in digital circuits
In considering the techniques that may be used for digital circuit testing, two
distinct philosophies may be found, namely:
(a) to undertake a series of functional tests and check for the correct (fault-
free) 0 or 1 output response(s);
(b) to consider the possible faults that may occur within the circuit, and
then to apply a series of tests which are specifically formulated to check
whether each of these faults is present or not.
The first of the above techniques is conventionally known as functional
testing. It does not consider how the circuit is designed, but only that it gives
the correct outputs during test. This is the only type of test which an OEM can
do on a packaged IC when no details of the circuit design and silicon layout
are known.
The second of the above techniques relies upon fault modelling. The
procedure now is to consider faults which are likely to occur on the wafer
during the manufacture of the ICs, and compute the result on the circuit
output(s) with and without each fault present. Each of the final series of tests
is then designed to show that a particular fault is or is not present. If none of
the chosen set of faults is detected then the IC is considered to be fault free.
Fault modelling relies upon a choice of the types of fault(s) to consider in
the digital circuit. It is clearly impossible to consider every conceivable
imperfection which may be present, and therefore only one or two types of
fault are normally considered. These are commonly stuck-at faults, where a
particular node in the circuit is always at logic 0 or at logic 1, and bridging
faults, where adjacent nodes or tracks are considered to be shorted together.
We will consider these faults in detail in the following sections.
The potential advantage of using fault modelling for test purposes over
functional testing is that a smaller set of tests is necessary to test the circuit.
20 VLSI testing: digital and mixed analogue/digital techniques
This is aided by the fact that a test for one potential fault will often also test
for other faults, and hence the determination of a minimum test set to cover
all the faults being modelled is a powerful objective. However, in theory a
digital circuit which passes all its fault modelling tests may still not be fully
functional if some other, possibly obscure, fault is present, but the probability
of this is usually considered to be acceptably small.
Clearly, the further a node is from the primary inputs the more indirect it is
to control the logic value of that node.
Some nodes in a working circuit may not be controllable from the primary
inputs. Consider the monitoring circuit shown in Figure 2.2a. With a healthy
circuit the outputs from the two subcircuits will always be identical, and no
means exists of influencing the output of the monitoring circuit. An addition
such as shown in Figure 2.2b is necessary in order to provide controllability of
the monitoring circuit response.
Faults in digital circuits 21
E o
F o
primary
inputs
equality
- • check
output
I node not
I controllable
i from inputs
i
i
equality
•• check
output
node now
controllable
from input
Figure 2.2 An example of a circuit node that is not controllable from a primary input
a basic system with duplicated circuits A and B
b an addition necessary to give controllability
22 VLSI testing: digital and mixed analogue/digital techniques
Monitoring circuits and also circuits containing redundancy both present
inherent difficulties in controllability; additional primary inputs just for test
purposes become necessary. Another possible difficulty may arise in the case
where the IC contains a ROM structure, the outputs of which drive further
logic circuits. Here the ROM programming may preclude the application of
certain desirable test signals to the further logic, limiting the possible
controllability of the latter.
The controllability of circuits containing latches and flip-flops (sequential
circuits) is also often difficult or impossible, since a very large number of test
vectors may have to be applied to change the value of a node in or controlled
by the sequential circuits. Additionally there will often be certain states of the
circuit which are never used, for example in a four-bit BCD counter which
only cycles through ten of the possible 16 states. It is, therefore, frequently
necessary to partition or reconfigure counter assemblies into a series of
smaller blocks, each of which can be individually addressed under test
conditions. (This is one of the design for test philosophies that we will
consider in greater detail in a later chapter.)
Turning to observability, consider the simple circuit shown in Figure 2.3.
Suppose it is necessary to observe (monitor) the logic value on node 2. In
order that this logic value propagates to the primary output Z, to give a
different logic value at Z depending upon whether the node is at logic 0 or
logic 1, it is clear that nodes 1 and 4 must be set to logic 1 and node 6 to logic
0. Hence, the primary signals must be chosen so that these conditions are
present on nodes 1, 4 and 6, in which case output Zwill be solely dependent
upon node 2. Node 2 will then be observable. This procedure is sometimes
termed sensitising, forward driving or forward propagating the path from a
node to an observable output.
The general characteristics of controllability and observability for any
given network are therefore as shown in Figure 2.4. Provided that there is no
redundancy in the network, that is all paths must at sometime switch in order
to produce a fault-free output, then it is always possible to determine two (or
•— ' H
2
—^~\jL,
w. -7
^/
fi L observable
output
more) input test vectors which will check that each internal node of the
circuit correctly switches from 0 to 1 or from 1 to 0, or fails to do so if there
is a fault at the node. However, the complexity of determining the smallest set
of such vectors to test all internal nodes is high, way beyond the bounds of
computation by hand except in the case of extremely simple circuits. If
sequential circuits are also present, then there is the additional complexity of
ensuring that the sequential circuits are in their required states as well.
Many attempts have been made to quantify the controllability and
observability of a given circuit, to allow difficult to test circuits to be identified
and hopefully modified during the design phase1"10. The software packages
which were developed include TMEAS, 19791 TEST/80, 19793, SCOAP,
19804, CAMELOT, 19816, VICTOR, 19827, and COMET, 19828. These are
discussed in Bennetts11, Bardell et al12 and Abramovici et #Z.1S. The basic
concepts used in the majority of these developments involve (i) the com-
putation of a number intended to represent the degree of difficulty in setting
each internal node of the circuit under test to 0 and 1 (O-controllability and
1-controllability) and (ii) the computation of another number intended to
represent the difficulty of forward propagating the logic value on each node
to an observable output. The difficulty of testing the circuit is then related to
some overall consideration of these individual numerical values. Further
developments in the use of this data so as to ease the testing difficulty were
also pursued14.
In the majority of these developments, controllability was normalised to the
range 0 to 1, with 0 representing a node which was completely uncontrollable
from a primary input, to 1 representing a node with direct controllability.
Typically, a controllability transfer factor, CTF, for every type of combinational
logic gate or macro is derived from the expression:
CTF = 1 - (2.1)
CO n
CO
<5
where N(0) and N(l) are the number of input patterns for which the
component output is logic 0 and logic 1, respectively, in other words N(0) is
the number of Os in the truth table or Karnaugh map for the component, and
iV(l) is the number of Is. Components such as an inverter gate or an
exclusive-OR gate have a value of CTF= 1, since they have an equal number
of Os and Is in their truthtable; n-input AND, NAND, OR and NOR gates,
however, have a controllability transfer factor value of l/2 n ~ 1 , as may readily
be shown by evaluating the above equation.
The controllability factor, CY, of a component output with inputs which are
not directly accessible from primary inputs is then computed by the equation:
Wouiput= (CTFx CYmpuls) (2.2)
where CTF is the controllability transfer factor for the component and
CYinputs is the average of the CTFs on the component input lines. (For
components with inputs which are directly accessible CYinputs= 1, and hence
CY0Utput = CTF for this special case.) Hence, working through the circuit the
controllability value of every node from primary input to primary output can
be given a numerical value.
In a similar manner to determining the controllability transfer factor value
for each type of gate or macro, in considering observability an observability
transfer factor, OTF, is determined for each component. This factor is the
relative difficulty of determining from a component output value whether
there is a faulty input value (error) on an input to the component. An
inverter gate clearly has an observability transfer factor value of 1; for rc-input
AND, NAND, OR and NOR gates the value is l/2 n " 1 , the same as the CTF
value. The exact equation for OFT may be found in the literature11"13, and
does not necessarily have the same value as CTFTor all logic macros.
The observability factor, OF, for each node in a circuit is next determined
by working backwards from primary outputs through components towards
the primary inputs, generating the observability value OFfor every node. The
value of OYis given by an equation similar to eqn. 2.2, namely:
OYmputs= (OTF x OYoutputs) (2.3)
where OTF is the observability transfer factor for each component, and
OY outputsx% t n e average of the observability values for the individual output
nodes of the component or macro.
This computation of controllability and observability values, however, is
greatly complicated by circuit factors such as reconvergent fan-out, feedback
paths and the presence of sequential circuits. Combining the two values so as
to give a single measure of testability, 7T, is also problematic. The simple
relationship:
TV"
1 (M nodes \ node >
*overall " " ~ (2.5)
number of nodes
but this in turn is not completely satisfactory since it does not, for example,
show any node(s) which are not controllable or observable, i.e. nodes which
have a value TYnode = 0. Although these and other numerical values for
controllability and observability generally follow the relationships shown in
Figure 2.4, experience has shown that quantification has relatively little use.
In particular:
• the analysis does not always give an accurate measure of the ease or
otherwise of testing;
• it is applied after the circuit has been designed, and does not give any
help at the initial design stage or direct guidance on how to improve
testability;
• it does not give any help in formulating a minimum set of test vectors for
the circuit.
Hence, although controllability and observability are central to digital
testing, programs which merely compute testability values have little present-
day interest, particularly with VLSI circuits where their computational
complexity may become greater than that necessary to determine a set of
acceptable test vectors for the circuit, see later. SCOAP4, CAMELOT6 and
VICTOR7 possibly represent the most successful programs which were
developed. For further comments see Savir15, Russell16, and Agrawal and
Mercer17.
We will have no need to refer again to testability quantification in this text,
but the concept of forward propagating test signals from primary inputs
towards the primary outputs and backward tracing towards the inputs will
arise in our further discussions.
* For a function with TVnodes a total of 2iV*single stuck-at faults have to be considered,
but the theoretical number of possible multiple stuck-at faults is 3^-2^1. This is
clearly a very large number to consider.
Faults in digital circuits 27
Table 2.1 All possible stuck-at faults on a three-input NAND gate; the wrong outputs
have been circled
Inputs Output Z
ABC Fault-free A A 8 8 C C Z Z
s-a-0 s-a-l s-a-0 s-a-l s-a-0 s-a-l s-a-0 s-a-l
0 0 0 I I I I I I I © I
0 0 1 I I I I I I I © I
0 1 0 I I I I I I I © I
0 1 1 I I © I I I I © I
1 0 0 I I I I I I I © I
1 0 1 I I I I ® I I © I
110 I I I I I I © © I
I I I 0 © O Q O C D O O ®
Table 2.2 The minimum test set for detecting all possible stuck-at faults in a three-input
NAND gate
Input Healthy Wrong Faults detected
test vector output output by test vector
ABC
0 1 1 1 0 A s-a-1 or Z s-a-0
1 0 1 1 0 8 s-a-1 or Z s-a-0
1 1 0 1 0 C s-a-1 or Z s-a-0
1 1 1 0 1 A or 8 or C s-a-0 or Z s-a-1
observable output
(0 in the presence of
the stuck-at 0 fault)
don't
care
Figure 2.5 A simple example showing the test vector required to test for and propagate
the output of gate Gl stuck-at 0 to the primary output, the three lower
inputs being all don yt cares
Figure 2.6 A further example giving a minimum test set of 15 test vectors which test
all the circuit nodes for possible s-a-0 and s-a-l faults. The Xs in the input
vectors are don't cares; 1/0, 2/1, etc. in the faults-covered listing means
node 1 s-a-0 tested, node 2 s-a-l tested, and so on {Acknowledgement,
Oxford University, UK)
A o
B o-
C o
D
E
F
This assumes that a short may occur between any two lines, but in practice
shorts between physically adjacent lines are clearly more realistic. However,
if bridging between more than two lines is considered, then the number
of theoretically possible bridging faults escalates rapidly13. In general, the
number of feasible bridging faults between two or more lines is usually
greater than the theoretical number of possible stuck-at faults in a
circuit, and although it is straightforward to derive a single test vector that
will cover several stuck-at faults in the circuit, this is not so for bridging
faults.
A further difficulty with bridging faults is that a fault may result in a
feedback path being established, which will then cause some sequential
circuit action. Hence, bridging faults have been classified as sequential
bridging faults or combinational bridging faults, depending upon the nature
of the fault. A sequential bridging fault may also result in circuit oscillation if
the feedback loop involves an odd number of inversions in an otherwise
purely combinational network.
Extensive consideration has been given to bridging faults, including the
consideration that bridged lines are logically equivalent to either wired-OR or
wired-AND functions25"33, but no general fault model is possible which caters
for the physical complexity of present-day VLSI circuits. It has been suggested
that most (but not all) shorts in combinational logic networks are detected by
a test set based upon the stuck-at model, provided that the latter is designed
to cover 99 % or more of the possible stuck-at circuit faults12. This statement,
however, is increasingly debatable as chip size increases and where CMOS
technology is involved, see the following discussions.
Faults in digital circuits 31
* Because the resistance of p-type FETs is higher than that of similar dimension n-type
FETs, it is preferable to series the n-channel FETs and parallel the p-channel FETs.
Hence, NAND gates rather than NOR gates become the preferred basic logic element.
32 VLSI testing: digital and mixed analogue/digital techniques
AB
/777
/Z?7
Table 2.3 An exhaustive test set for single open-circuit (O/C) and short-circuits (S/C)
faults in a two-input CMOS NAND gate
Input test Healthy gate Check
vector AB output Z
00 1
0 1 1 T3 S/C check*
1 1 0 T l orT2 S/C check*;T3 orT4 O/C check
1 0 1 T2 O/C check
00 1
1 0 1 T4 S/C check*
1 1 0 (as test vector 1 1 above)
01 1 Tl O/C check
00 1
* excessive current if transistor short circuit
Bridging faults within CMOS gates also cause failures which may not be
modelled by the stuck-at fault model, particularly where more complex
CMOS structures are present. Consider the circuit shown in Figure 2.9. The
bridging fault shown will connect the gate output to ground under the input
conditions of AB + CD + AD + BC = 1 instead of the normal conditions of
AB + CD = 1. However when input conditions AD or BC = 1 are present, there
34 VLSI testing: digital and mixed analogue/digital techniques
DD
Figure 2.9 A possible bridging fault within a complex CMOS gate, the fault-free
output being Z = (AB + CD)
a the circuit topology
b the equivalent Boolean circuit
master slave
alternative
symbol for
transmission
gates
clock
it has been reported that a major portion of digital system faults when
in service are intermittent (temporary) faults, and that the investigation of
such faults accounts for more than 90 % of total maintenance
expenditure42'43.
Nonpermanent faults may be divided into two categories, namely:
(i) transient faults, which are nonrecurring faults generally caused by some
extraneous influence such as cosmic radiation, power supply surges or
electromagnetic interference;
(ii) intermittent faults, which are caused by some imperfection within the
circuit or system and which appear at random intervals.
In practice it may not always be clear from the circuit malfunctioning which
of these categories is present, particularly if the occurrence is infrequent.
By definition it is not possible to test for transient faults. In VLSI memory
circuits a-particle radiation can cause wrong bit patterns in the memory
arrays, and in other latch and flip-flop circuits it is possible to encounter
latch-up due to some strong interference. However, once the memory or
storage circuits have been returned to normal, no formal analysis of the exact
cause of the malfunctioning is possible. Experience and intuition are the
principal tools in this area.
Intermittent faults, however, may possibly be detected if tests are repeated
enough times. This may involve repeating again what the system was doing
and the state of its memory at the time of the transitory fault, if known.
Alternatively, some abnormal condition may be imposed upon the circuit or
system, such as slightly increasing or decreasing the supply voltage, raising the
ambient temperature or applying some vibration, with a view to trying to
make the intermittent fault a permanent one which can then be investigated
by normal test means.
Since intermittent faults are random, they can only be modelled math-
ematically using probabilistic methods. Several authorities have considered
this, and developed probabilistic models intended to represent the behaviour
of a circuit or system with intermittent faults12'34'42"49. All assume that only
one intermittent fault is present (the single fault assumption), and develop
equations which attempt to relate the probability of a fault being present
when a test is being applied, and/or estimate the test time necessary in order
to detect an intermittent fault in the circuit under test.
An example of this work is that of Savir12'44'45. Two probabilities are first
introduced, namely:
(i) the probability of the presence of a fault, fi9 in the circuit, expressed as
PFi= probability (faulty is present);
(ii) the probability of the activity of the fault, fi9 expressed as
PA{- probability (faulty is active, faulty being present).
The circuit is assumed to have a fault set/1? f2, ..., fm, with only one fault, fi9
being present at a time. It should be appreciated that faulty- can be present
Faults in digital circuits 37
but not affect the circuit output because that part of the circuit containing
the fault is not actively controlling the present output; probability PAi
therefore has a (usually very considerable) lower value than PF{. Also PFiy
i = 1 to m, forms the fault probability distribution
m
£«$ = l (2-6)
where k is the time between test vectors, from which the lowest upper bound
on the number of tests, T, necessary to detect faulty with a given confidence
limit, cf[, is expressed by:
T= (2.9)
loge(l-PDt)
(ii) build into the circuit or system some self-checking monitoring such as
parity checks (see Chapter 4), which will detect some if not all of the
possibly intermittent faults and ideally provide a clue to their location
in the circuit;
(iii) in the case of computer systems, continuously run a series of check tests
when the computer is idle, and from these hopefully build up
information pointing to the intermittent fault source when particular
check tests fail;
(iv) as previously mentioned, subject the circuit or system under test to
some abnormal working condition in an attempt to make the
intermittent fault permanent.
In the case of circuits used in safety critical applications, redundancy
techniques which will mask the effect of intermittent faults must be used. If it
is then found that, say, one of three systems operating in parallel is
occasionally out of step with the other two, this is an indication that there is
an intermittent fault in the first circuit, with possibly some clue to its source.
Finally, although this chapter has been particularly concerned with faults
in and fault models for digital circuits, no mention has yet been made of the
possible physical causes of such failures. A major problem here is that IC
manufacturers are reluctant to reveal exact details of their fabrication
defects; those statistics which are available are usually obsolete due to the
rapid and continual developments in fabrication technology and expertise.
There is a considerable volume of information available on the potential
causes of IC failure58"64. We must, however, distinguish between:
(a) some major failure during manufacture, such as incorrect mask
alignment or a process step incorrectly carried out, which it is the
province of the professional production engineer to detect and correct
before chips are bonded and packaged;
(b) the situation where wafer processing is within specification, but circuits
still need to be tested for individual failings.
The latter category of random scattered failures is our concern.
Considering the possible failure mechanisms which can occur in VLSI
circuits, these may be chip related, that is some fault within the circuit itself,
or assembly related, that is some fault in scribing, bonding and encapsulating
the chip, or operationally related, for example caused by interference or oc-
particle radiation. Further details of these categories may be found discussed
in Rajsuman^8 and in Prince64 for memory circuits, but no up to date global
information on the frequency of occurrence of these failures is available. An
early failure mode statistic quoted by Glazer and Subak-Sharpe59 gives the
following breakdown:
metalisation failures, 26 % of all failures;
bonding failures, 33 %;
photolithography defects, 18 %;
surface defects, 7 %;
others, 16 %.
Metalisation defects still seem to be a prominent category of defect, caused
particularly by microcracks in metal tracks where they have to descend into
steep narrow vias to make contact with an underlying layer of the planar
process, together with the difficulties of cleaning out etched vias before
metalisation. Dielectric breakdown also remains a problem should a SiO2
insulation layer be of imperfect thickness*, and chip bonding is still at times
a known cause of failure.
These failings may readily be related to the stuck-at fault model and open-
circuit faults, but from the test engineer's point of view (as distinct from the
IC manufacturer's point of view) the precise cause of a functional fault is of
academic interest only. We shall, therefore, have no occasion to look deeper
* The dielectric breakdown strength of SiO2 is about 8x 166V/cm, and the usual
thickness of a SiO2 layer is about 200 A0 = 2 x 10"6 cm. There is, therefore, not a very
great safety factor if the SiO2 is too thin.
40 VLSI testing: digital and mixed analogue/digital techniques
into failure mechanisms in this text, but the reader is referred to the
references cited above for more in-depth information if required.
2.6 References
1 GRASON, J.: 'TMEAS—a testability measurement program'. Proceedings of 16th
IEEE conference on Design automation, 1979, pp. 156-161
2 STEVENSON, J.E., and GRASON, J.: 'A testability measure for register transfer
level digital circuits'. Proceedings of IEEE international symposium on Fault
tolerant computing, 1976, pp. 101-107
3 BREUER, M.A., and FRIEDMAN, A.D.: TEST/80—a proposal for an advanced
automatic test generation system'. Proceedings of IEEE Autatestcon, 1979, pp.
205-312
4 GOLDSTEIN, L.M., and THIGAN, EX.: 'SCOAP: Sandia controllability and
observability analysis program'. Proceedings of 17th IEEE conference on Design
automation, 1980, pp. 190-196
5 KOVIJANIC, P.G.: 'Single testability figure of merit'. Proceedings of IEEE
international conference on Test, 1981, pp. 521-529
6 BENNETTS, R.G., MAUNDER, CM., and ROBINSON, G.D.: 'CAMELOT: a
computer-aided measure for logic testability', lEEProc. K, 1981, 128, pp. 177-189
7 RATIU, I.M., SANGIOVANNI-VINCENTELLI, A. and PETERSON, D.O.:
'VICTOR: a fast VLSI testability analysis programme'. Proceedings of IEEE
international conference on Test, 1982, pp. 397-401
8 BERG, W.C., and HESS, R.D.: 'COMET: a testability analysis and design
modification package'. Proceedings of IEEE international conference on Test,
1982, pp. 364-378
9 DEJKA, W.J.: 'Measure of testability in device and system design'.
Proceedings of IEEE Midwest symposium on Circuits and systems, 1977, pp. 39-52
10 FONG, J.Y.O.: 'A generalised testability analysis algorithm for digital logic circuits'.
Proceedings of IEEE symposium on Circuits and systems, 1982, pp. 1160-1163
11 BENNETTS, R.G.: 'Design of testable logic circuits' (Addison-Wesley, 1984)
12 BARDELL, P.H., McANNEY, W.H., and SAVIR, J., 'Built-in test for VLSI:
pseudorandom techniques' (Wiley, 1987)
13 ABRAMOVICI, M., BREUER, M.A. and FRIEDMAN, A.D.: 'Digital system testing
and testable design' (Computer Science Press, 1990)
14 CHEN, T-H., and BREUER, M.A.: 'Automatic design for testability via testability
measures', IEEE Trans., 1985, CAD-4, pp. 3-11
15 SAVIR, J.: 'Good controllability and observability do not guarantee good
testability', IEEE Trans., 1983, C-32, pp. 1198-1200
16 RUSSELL, G. (Ed.): 'Computer aided tools for VLSI system design' (Peter
Peregrinus, 1987)
17 AGRAWAL, V.D., and MERCER, M.R.: 'Testability measures—what do they tell
us?'. Proceedings of IEEE international conference on Test, 1982, pp. 391-396
18 KOHAVI, I., and KOHAVI, Z.: 'Detection of multiple faults in combinational
networks', IEEE Trans., 1972, C-21, pp. 556-568
19 HLAVICKA, J., and KOLTECK, E.: 'Fault model for TTL circuits', Digit. Process.,
1976, 2, pp. 160-180
20 HUGHES, J.L., and McCLUSKEY, E.J.: 'An analysis of the multiple fault detection
capabilities of single stuck-at fault test sets'. Proceedings of IEEE international
conference on Test, 1984, pp. 52-58
21 NICKEL, V.V.: 'VLSI—the inadequacy of the stuck-at fault model'. Proceedings of
IEEE international conference on Test, 1980, pp.378-381
Faults in digital circuits 41
22 KARPOVSKI, M, and SU, S.Y.H.: 'Detecting bridging and stuck-at faults at the
input and output pins of standard digital computers'. Proceedings of IEEE
international conference on Design automation, 1980, pp. 494-505
23 SCHERTZ, D.R., and METZE, G.: 'A new representation of faults in
combinational logic circuits', IEEE Trans., 1972, C-21, pp. 858-866
24 BATTACHARYA, B.B., and GUPTA, B.: 'Anomalous effect of a stuck-at fault in a
combinational circuit', Proc. IEEE, 1983, 71, pp. 779-780
25 TIMOC, C, BUEHLER, M., GRISWOLD, X, PINA, C, SCOTT, E, and HESS, L.:
'Logical models of physical failures'. Proceedings of IEEE international
conference on Test, 1983, pp. 546-553
26 KARPOVSKI, M., and SU, S.Y.H.: 'Detection and location of input and feedback
bridging faults among input and output lines', IEEE Trans., 1980, C-29, pp.
523-527
27 ABRAHAM, J.A., and FUCHS, W.K.: 'Fault and error models for VLSI', Proc. IEEE,
1986, 75, pp. 639-654
28 MEI, K.C.Y.: 'Bridging and stuck-at faults', IEEE Trans., 1974, C-23, pp. 720-727
29 FRIEDMAN, A.D.: 'Diagnosis of short-circuit faults in combinational circuits',
IEEE Trans., 1974, C-23, pp. 746-752
30 ABRAMOVICI, M., and MENON, P.R.: 'A practical approach to fault simulation
and test generation for bridging faults', IEEE Trans., 1985, C-34, pp. 658-663
31 XU, S., and SU, S.Y.H.: 'Detecting I/O and internal feedback bridging faults',
IEEE Trans., 1985, C-34, p. 553-557
32 KODANDAPANI, KX., and PRADHAM, D.K: 'Undetectability of bridging faults
and validity of stuck-at fault tests', IEEE Trans., 1980, C-29, pp. 55-59
33 MALAIYA, Y.K.: 'A detailed examination of bridging faults'. Proceedings of IEEE
international conference on Computer design, 1986, pp. 78-81
34 LALA, P.K.: 'Fault tolerant and fault testable hardware design' (Prentice Hall,
1985)
35 WADSACK, R.L.: 'Fault modelling and logic simulation of CMOS and MOS
integrated circuits', BellSys. Tech.]., 1978, 57, pp. 1449-1474
36 GALIAY, J., CROUZET, Y, and VERGNIAULT, M.: 'Physical versus logic fault
models in MOS LSI circuits', IEEE Trans., 1980, C-29, pp. 527-531
37 EL-ZIQ, Y.M., and CLOUTIER, R.J.: 'Functional level test generation for stuck-
open faults in CMOS VLSI'. Proceedings of IEEE international conference on
Test, 1981, pp. 536-546
38 CHIANG, K.W., and VRANESIC, Z.G.: 'Test generation for complex MOS gate
networks'. Proceedings of IEEE international symposium on Fault tolerant
computing, 1982, pp. 149-157
39 RENOVELL, M., and CAMBON, G.: 'Topology dependence of floating gate faults
in MOS integrated circuits', Electron. Lett, 1986, 22, pp. 152-157
40 JAIN, S.K., and AGRAWAL, V.D.: 'Modelling and test generation algorithms for
MOS circuits', IEEE Trans., 1985, C-34, pp. 426-433
41 REDDY, M.K., and REDDY, S.M.: 'On FET stuck-open fault detectable CMOS
memory elements'. Proceedings of IEEE international conference on Test, 1985,
pp. 424-429
42 LALA, P. K., and MISSEN, J.I.: 'Method for the diagnosis of a single intermittent
fault in combinational logic circuits', Proc. IEE, 1979, 2, pp. 187-190
43 CLARY, J.B., and SACANE, R.A.: 'Self-testing computers', IEEE Trans., 1979, C-28,
pp.49-59
44 SAVIR, J.: 'Detection of single intermittent faults in sequential circuits', IEEE
Trans., 1980, C-29, pp. 673-678
45 SAVIR, J.: 'Testing for single intermittent failures in combinational circuits by
maximizing the probability of fault detection', IEEE Trans., 1980, C-29, pp.
410-416
42 VLSI testing: digital and mixed analogue/digital techniques
46 TASAR. O., and TASAR, V.: 'A study of intermittent faults in digital computers'.
Proceedings of MIPS conference, 1977, pp. 807-811
47 McCLUSKEY, E.J., and WAKERLY, J.F.: 'A circuit for detecting and analysing
temporary failures'. Proceedings of IEEE COMCON, 1981, pp. 317-321
48 MALAIYA, Y.K., and SU, S.Y.H.: 'A survey of methods for intermittent fault
analysis'. Proceedings of national Computer conference, 1979, pp.577-584
49 STIFLER, J.I.: 'Robust detection of intermittent faults'. Proceedings of IEEE
international symposium on Fault tolerant computing, 1980, pp. 216-218
50 SHOOMAN, M.L., 'Probabilistic reliability: an engineering approach' (McGraw-
Hill, 1968)
51 KOREN, L, and KOHAVT, Z.: 'Diagnosis of intermittent faults in combinational
networks', IEEE Trans., 1977, C-26, pp. 1154-1158
52 SU, S.Y.H., KOREN, I., and MALAIYA, Y.K.: 'A continuous parameter Marcov
model and detection procedure for intermittent faults', IEEE Trans., 1978, C-27,
pp. 567-569
53 KRISHNAMURTHY, B., and TALLIS, I.G.: 'Improved techniques for estimating
signal probabilities', IEEE Trans., C-38, pp. 1041-1045
54 BREUER, M.A., and PARKER, A.C.: 'Digital circuit simulation: current states and
future trends'. Proceedings of IEEE conference on Design automation, 1981, pp.
269-275
55 RENESEGERS, M.T.M.: The impact of testing on VLSI design methods', IEEEJ.,
1982, SC-17, pp. 481-486
56 'Test synthesis seminar digest of papers'. IEEE international conference on Test,
Washington, DC, USA, October 1994
57 BERTRAM, W. J.: 'Yield and reliability', in SZE, S.M. (Ed.): 'VLSI technology'
(McGraw-Hill, 1983)
58 RAJSUMAN, R.: 'Digital hardware testing: transistor level fault modelling and
testing' (Artech House, 1992)
59 GLASER, A.B., and SUBAK-SHARPE, G.E.: 'Integrated circuit engineering: design
fabrication and applications' (Addison-Wesley, 1979)
60 GALLACE, L.J.: 'Reliability', in Di GIACOMO, J. (Ed.): 'VLSI handbook'
(McGraw-Hill, 1989)
61 GULATI, R. K., and HAWKINS, C.F. (Eds.): 'I D D Q testing of VLSI circuits' (Kluwer,
1993)
62 CHRISTOU, A.: 'Integrating reliability into microelectronics and packaging'
(Wiley, 1994)
63 SABNIS, A.G.: 'VLSI reliability' (Academic Press, 1990)
64 PRINCE, B.: 'Semiconductor memories' (Wiley, 1995, 2nd edn.)
Chapter 3
Digital test pattern generation
test strategies
and procedures
••• • w
fault location,
fault location,
objective replacement
objective to improve
and repair of system
IC yield
Figure 3.1 The heirarchy of digital testing objectives. Many test procedures are equally
applicable to IC and system test, but some may be IC or system specific.
Analogue testing, see later, has an identical heirarchy
accessible accessible
primary inputs pr mary outputs
\
input r x1 • output
network
: ""' f 1
test -7 under ^ test
set test response
n binary m binary
inputs outputs
outputs
input test set / circuit or network
/ under test
total agreement = pass
" ^ any disagreement = fail
gold circuit
circuit or network
computer-controlled under test
test facility, for agreement = pass
digital inputs
example, see disagreement = fail
expected digital outputs
Figure 1.4
healthy response
from store
generate set
of test vectors, T
evaluate fault
coverage of T using
fault simulation data
no / sufficient yes
\ ^ fault coverage?
1
\ /
modify or done
enhance test
setT
Figure 3.3 The general concept of determining the fault coverage of a given test set
from fault simulation. An eventual modification to increase FC may be by
interactive intervention by the test designer
All of these differ from the serial fault simulation method by simultaneously
simulating a set of faults rather than just one fault at a time. In parallel fault
simulation, one n-bit word in the simulation program (where n = 8, 16 or 32
bits) is used to define the logic signal on a node when the node is fault free
and when n - 1 chosen faults are present within the circuit. Since the
computer operates on words rather than bits, logical operations between
words corresponding to the logic of the circuit between the nodes (i.e. AND,
NAND, OR, NOR, etc.), allows the simultaneous simulation of the n copies of
the circuit to be implemented on each input test vector, thus speeding up the
simulation by a factor of about n compared with the one at a time serial fault
simulation. The main problem is that the circuit being simulated must be
expressed in Boolean terms, which means that memory and large sequential
circuit blocks are impractical or impossible to handle.
Deductive fault simulation, however, relies upon fault list data, that is the
input/output relationship of logic gates and macros under healthy and
chosen fault conditions. A fault list is associated with every signal line within
the circuit, including fault data flow through storage and memory elements.
For each input test vector fault lists are serially propagated through the
circuit to the primary output(s), all the faults covered by the test vector being
Digital test pattern generation 47
noted after each pass. The time taken for one pass through the simulator is
much greater than the time for one pass through a parallel simulator, but a
large number of circuit faults will be covered on each pass. Dynamic memory
capacity, however, has to be very large in order to handle all the continuously
changing data in the propagation of the fault lists.
Concurrent fault simulation is the preferred present method of fault
simulation. It avoids the complexity of implementing deductive fault simu-
lation, yet retains a speed advantage over series and parallel fault simulation.
Here a comprehensive concurrent fault list for each line is compiled for each
test vector, which includes a chosen fault on the line plus all preceding faults
which propagate to this line; if a preceding fault produces a response which
is the same as the healthy response on this line to the test vector, the former
is deleted from this concurrent fault list. By completing this procedure from
primary inputs to primary outputs, a record is built up of the number of the
chosen faults detected by the given set of test vectors, and hence the fault
coverage; only those paths in the circuit which differ between the faulty and
the fault-free state need be considered in each simulation.
Further details of fault simulation procedures may be found in the
literature3'7"13. It must, however, be appreciated that when using any fault
model simulation to determine a fault model coverage value, FMQ for a given
set of test vectors, the resultant value only relates to the set of faults which
have been chosen in the simulation. Thus, FMC = 100 % only indicates that
all the faults introduced in the fault simulation will be detected, which is not
the same as saying that the circuit is completely fault free. The implication of
this is that the value of FMC is not necessarily the same as the value of fault
coverage, FC, introduced in Chapter 1, see Figure 1.3, and in theory should
not be used in the defect level equation DL = (1 - Yl~FC). However, if FMC is
nearly 100 %, then it is often assumed that FMC- FC, and this value of FMC
may be used in the equation for DL A more direct use for FMC is as a useful
parameter in the development and grading of automatic test pattern
generation (ATPG) algorithms, see later. We will use the designation FC
rather than FMC subsequently, but the distinction when used in the equation
for DL should not be forgotten.
prepare the
required fault list
FC= 100%
coverage can be rapid. However, for complex circuits the processing time to
find the tests for the final remaining faults may become unacceptably long,
particularly if feedback loops or other circuit complications are present. If
any redundancy is present then the ATPG program will, of course, never
succeed in finding a test for certain nodes. Hence, economics may dictate the
termination of an ATPG program when FC has reached an acceptable level,
say 99.5 %, or has run for a given time, leaving the outstanding faults to be
considered by the circuit designer if necessary. For very complex VLSI circuits
even ATPG programs are now proving to be inadequate, being replaced by
self test and other test strategies such as will be considered in later chapters.
All ATPG programs based upon fault models assume that a single fault is
present when determining the test vectors. The usual fault model is the stuck-
at model, which as we have seen does in practice cover a considerable
50 VLSI testing: digital and mixed analogue/digital techniques
number of other types of faults, but not all. The results of an ATPG program
cannot, therefore, guarantee a defect-free circuit.
A basic requirement in test pattern generation is to propagate a fault at a
given node in the circuit to an observable output, such that the output is the
opposite value in the presence of the fault compared with the fault-free
output under the same input test vector. This procedure may be termed path
sensitising or forward driving. A second requirement is that the test input
vector shall establish a logic value on the node in question which is opposite
to the stuck-at condition under consideration, i.e. to test for a s-a-0 fault at
node .x the test vector will give a logic 1 at the node under fault-free
conditions, and vice versa.
The principle of propagating a stuck-at fault condition on a node to an
observable output has been illustrated in Chapter 2, Figure 2.5. In this earlier
example a single path was sensitised to the primary output, but in more
complex circuits it may be necessary to consider more than single-path
sensitisation. Consider, for example, a simple part of a larger circuit as shown
in Figure 3.5, and let us consider the signals required to drive a stuck-at 0
fault on line Q through Gl to the observable output node. Clearly we require
P= 1, Q = 1 and R = 0 to establish this single path. However, if due to the
preceding logic it is not possible to have R = 0 when Q= 1, then this single
path sensitisation is not possible. But making P= 1, Q= 1, /?= 1 will allow the
fault to be detected at the output, the parallel paths through Gl and G2 both
being sensitised. This is known as parallel reconvergence with dual-path
sensitisation.
In Figure 3.5 the two paths which reconverge always took the same logic
value when testing for stuck-at 0. However, it is possible to encounter recon-
vergence where the two converging signals are always opposite to each other
under test conditions. (This is sometimes termed negative reconvergence, as
distinct from positive reconvergence where the signals are the same.) This
form of reconvergence is not testable, and indicates some local redundancy
left in the circuit design. The more complex the combinational logic network,
the more likely it will be that reconvergence is present in the circuit. Hence,
the need to sensitise more than one path from a stuck-at node is often
encountered, which necessitates effective algorithms that can handle this
situation.
Most test pattern generation algorithms but not all have as their underlying
basis the procedure which we have now indicated, namely:
(i) choose a faulty node in the circuit;
(ii) propagate the signal on this node to an observable output;
(iii) backward trace to the primary inputs in order to determine the logic
signals on the primary inputs which correctly propagate this fault signal
to the observable output.
Additionally the procedure should:
(iv) ensure that the derived test vectors cater for all possible fan-out and
reconvergence effects in the circuit, with the possibility of multiple-path
sensitisation;
(v) keep a record of what additional faulty nodes are covered by each test
vector when generating a test for a chosen node (i.e. the fault cover of
each test vector), so that duplication of effort is minimised.
Here we will consider two methods which have been used for test pattern
generation, the first of which does not in fact use the above signal
propagation procedure, and the second which does use such a procedure.
not a true differential operator in the full mathematical sense, since it does
not distinguish between a change of f(X) from 0 to 1 or vice versa, and hence
it is defined as a difference operator rather than a differential operator. Also
notice that the functions being exclusive-ORed together in eqn. (3.2)
represent the complete truthtable of J{X), and are not concerned with just
one input combination.
Further properties of the Boolean difference operator are as follows15:
• function complementation:
literal complementation:
d ,.,,„,, d
J-{f(X).g(X)\
1
= I f(X).-±g(X) ]0L(X).-±/(X)l©(j-fiX).J-g(X)) (3.6)
«fc,- ' { dx, ) { dx, ) [dx, dx, )
y{f()g()} g ( ) ^ f ( ) (3.8)
dXj dXj
and
f(X) = (
dxxxx d
<*,-_«.
= (#2*4) (#1x2*3 +*2x3;c4) since {x2x4) is zero
^/xj " dxx
= (x2x4).(x2x3x4) .(x2xs)
- (#2 + *4 ) (*2 + *3 +
= x2x33c4 (3.12)
Thus, the test vector x^x^x4 will test for Xj s-a-0, and x^x^x4 will test for xx
s-a-1.
This result is very easily confirmed by looking at the Karnaugh map ofJ[X)
given in Figure 3.66, and considering the xx = 0 and xx = 1 halves of the map.
These two decompositions of J{X) differ only in the minterms x^x^x4 and
x 1X2X5X4, being/(X) = 0 in the former a n d / ( X ) = 1 in the latter. Hence the
Boolean difference (d/dxx)f(X) is x2x?>x4, giving the stuck-at test vectors for xx
shown above.
If the Boolean difference method is used to generate test vectors for
internal nodes of the circuit, the output function must be expressed in terms
54 VLSI testing: digital and mixed analogue/digital techniques
*3*4\ 00 01 11 10 XOXA
• 00 01 11 10
\ 4 \ 00 01 11 10
00 1 1 00 1 1 00 1 1 1
01 01 01 1 1 1 1
11 1 1 11 11 1 1 1 1
10 1 J] 1 10 1 1 10 1 1 1
^ f{x2x3x4) Xj f(x2x3x4)
Figure 3.6 A simple circuit to illustrate the use of the Boolean difference
a circuit, f(X) = x^x^x^ + #2*3 x4 + xgc^
b Karnaugh map off(X)t showing the decomposition about xx
c output function when internal node / is stuck at 0, the difference
between this function and the fault-free output being as indicated
d as c but /stuck at 1
of the internal node being considered. For example, should internal node /
in Figure 3.6 be considered, the output function becomes
whence
dl dl
(3.13)
I X-^X<2 "i" X4 I
Digital test pattern generation 55
=
X2X^ • X^X2
Table 3.1 The primitive D-cubes offailure for three-input Boolean logic gates, giving
the input signals necessary to distinguish the presence of the output line
stuck-at
Required inputs to detect faulty output Corresponding D-cubes of failure
inputs output
A 8 c Z A 8 C Z
A N D gate 1 1 1 s-a-0 1 1 1 D
0 X X s-a-l 0 X X D
X 0 X s-a-l X 0 X 0
X X 0 s-a-l X X 0 D
N A N D gate 1 1 1 s-a-l 1 1 1 D
0 X X s-a-0 0 X X D
X 0 X s-a-0 X 0 X D
X X 0 s-a-0 X X 0 D
OR gate 0 0 0 s-a-l 0 0 0 D
1 X X s-a-0 1 X X D
X 1 X s-a-0 X 1 X D
X X 1 s-a-0 X X 1 D
NOR gate 0 0 0 s-a-0 0 0 0 D
1 X X s-a-l 1 X X D
X 1 X s-a-l X 1 X D
X X 1 s-a-l X X 1 D
* In this context, a cube is an ordered set of symbols such that each symbol position
defines a particular input or output node, and the value of the symbol identifies its
logic state.
Digital test pattern generation 57
gate we have the D-cube 1 D 1 D, see the top line of Table 3.2. Notice also
that:
(i) the propagating Z>cubes also define the propagation when more than
one input is D or D, which can arise in a circuit with reconvergent fan-
out from the original D (or D) source. However, should D and D both
converge on a Boolean gate there will be no further propagation of the
D or D value; D and D on an AND gate will always give an output 0 and
on an OR gate an output 1, and hence the D and 5 values will be lost.
(ii) for the propagation of a D (or D) value through a Boolean gate there is
only one possible input condition; there is therefore no choice of logic
0 or 1 signals on the gate inputs to propagate the D signal (s).
Table 3.2 The propagation D-cubes for (a) three-input AND and NAND gates, and (b)
three-input OR and NOR gates, the gates being fault free
a
Gate inputs, x ( x 2 x 3 Gate output f[X)
AND gate NAND gate
I I D or I D I or D I I D D
I I D or I D I or O i l D D
I D D o r D I D o r D D I D 0
I D D or D I D or D D I D D
ODD D D
D D D D D
b
Gate inputs, X| x 2 x 3 Gate output f(X)
OR gate NOR gate
0 0 D or 0 D 0 or D 0 0 D D
0 0 D or 0 D 0 or D 0 0 D D
0 D D or D 0 D or D D 0 D D
0 D D or D 0 D or D D 0 D D
D D D D D
D D D D D
than the two-input gates shown here, then the propagation Z>cubes for these
gates would define the required logic signals for forward driving the D or D
conditions. All possible paths from the D or D source towards the primary
outputs are normally considered 16 ' 18 , although only one primary output
needs to be finally monitored for the stuck-at test.
AND OR inverter
^ o 1 X D D ^ 0 1 X D D A Z
0 0 0 0 0 0 1 X D D 0 1
0 1 X D D 1 1 1 1 1 1 0
X X X X X X 1 X X X X X
0 D X D 0 D D 1 X D 1 D D
0 D X 0 D 5 D 1 X 1 D D D
NAND NOR
equivalent three-input
1 X D D 0 1 X D D AND gate
1 1 1 1 1 1 0 X D 0 , j
1 0 X D D 0 0 0 0 0
1 X X X X X 0 X X X
1 D X D 1 D D 0 X D 0
1 D X 1 D D 0 X 0 D
Figure 3.7 Roth s five-valued D-notation applied to two-input Boolean logic gates. The
relationships for three (or more) input gates may be derived by considering
a cascade of two-input gates, since commutative and associative
relationships still hold
Roth's full algorithm for test pattern generation thus consists of three
principal operations as shown in Figure 3.9, namely:
(i) choose a stuck-at fault source, and from the primitive D-cubes of failure
data identify the signals necessary to detect this fault;
(ii) forward drive this fault D or D through all paths to at least one primary
output, using the information contained in the propagation D-cubes;
(iii) perform a consistency operation, that is backward trace from a primary
output to which D or D has been driven, to the primary inputs,
allocating further logic 0 and 1 values as necessary to give the final test
input vector.
Digital test pattern generation 59
MX)
Figure 3.8 An example using Roths notation, shoxving a stuck-at 1 fault being
driven to both primary outputs. D represents the same logic value on all
lines so marked, with the line marked D having the opposite logic value.
The numbers in parentheses are used later in the text
This procedure is repeated until all the chosen stuck-at paths have been
covered.
In undertaking the Zklrive, the operation known as D-intersection is
performed for each gate encountered from the source fault to the primary
output(s). This is an algebraic procedure which formally matches the
logic signals on the gates with the appropriate propagation Z>cube data.
Recall that the propagation data for any D or D gate input is unique. The
i>drive procedure for the simple circuit shown in Figure 3.8 would therefore
proceed as shown in Table 3.3, having first identified all the paths in the
circuit.
start
D-drive to
primary outputs
any
inconsistencies
in backward allocate
trace? other 0, 1
list input test vector conditions
and all stuck-at
fault lines covered
all
no stuck-at
faults covered?
end
Figure 3.9 The outline schematic of Roth s D-algorithm ATPG procedure
Digital test pattern generation 61
Table 3.4 The backward tracing consistency operation for Table 3.3
Circuit path 1 2 3 4 5 6 7 8 9 10 1 1 12
End of D-drive 0 # # # 1 1 D 1 D 0 D D
Check (8) is at 1 from G2; OK if (4) = 1 0 • • 1 1 1 D 1 D 0 D D
Check (10) is at 0 from G1
O K i f ( l ) (2) &(3) = 0 0 0 0 1 1 I D 1 D 0 D D
In this example no inconstancies are encountered in completing the
backward tracing operation. However, if we had started with the equally valid
primitive i>cube of failure for gate G3 of xx xb = 1 0 or 1 1 instead of 0 1, then
we would have encountered an inconstancy in gate Gl when backward
tracing from node 10 to the inputs. Hence, in practice, we may have to
recompute the 2>drive conditions trying alternative primitive />cubes as the
starting point.
Further difficulties with the Z>algorithm arise when exclusive-OR/NOR
gates or local feedback conditions are encountered. The problem with
exclusive gates is that there is not a unique input condition for propagating
a D or D signal, see Table 3.5, and reconvergence of D or D or D and D will
be nonpropagating.
ex-OR ex-NOR
0 D or D 0 D D
0 D or D0 D D
1D or D 1 D D
1D or D 1 D D
conditions on lines (9) and (12) and s-a-0 on line (11) as well as the
fault source on line (7).
(iii) it is the difficulty of assigning input signals for a given gate output in
the backward tracing operation which largely causes problems; unlike
the forward D-drive operation there can be a choice of gate input
signals for a given output, since 2n - 1 input combinations of any n-
input Boolean gate give rise to the same gate output condition, and
hence several retries of the algorithm to find a consistent backward
tracing operation may be necessary.
A more detailed analysis and discussion of the D-algorithm may be found in
the appendix of Bennetts2(k*; other texts have worked examples1'2'11'20'21
and software code fragments11. However, it remains a difficult topic to learn,
partly because of the terminology which was introduced in the original
disclosures, and because of the supporting mathematics based upon the so-
called calculus of D-cubes. Nevertheless, it remains a foundation stone in
ATPG theory.
Finally, for interest, the Boolean difference technique applied to the
circuit of Figure 3.8 would give the Boolean difference functions:
at^(X). Notice that our Roth's algorithm example merely identified one of
the possible test vectors which detect the s-a-1 fault on line (7).
* The terminology 'dual' used in Reference 20c should be read with care. It is not the
Boolean dual/Z)(X) of/(X) where fD(X) is the complement o f / ( ^ with jill gate inputs
individually complemented, but is the changing of all DstoD and all Ds to D in any
given propagation Z>cube, leaving the 0s and Is unchanged.
Digital test pattern generation 63
I start
JS1(=0)
yes; now D (or D) or 0 (= D) now establishe no; still X
at the selected
yes; output ault source?
D(orD)
D (or D) already
driven to a primary
utput?
randomly assign further primary
inputs from X to 0 or 1 until
simulation
D (or D) is driven to a primary
output on resimulation
all
faults in fault
list now
covered?
Figure 3.10 Outline schematic of the PODEM ATPG program, starting with all
nodes and primary inputs at X. Exit paths (not shown) are present if no
test for a given stuck-at fault is possible
66 VLSI testing: digital and mixed analogue/digital techniques
stuck-at 0 node
Attempting a single-path 2>drive from this fault source to the primary output
via gate G5 or gate G6 would reveal an inconsistency; for example, driving
through G5 only would result in 0 D 0 1 on gate G8 with the input test vector
0 0 0 1, or driving through gate G6 only would result in 1 0 D 0 with the input
test vector 10 0 0, neither of which would give a D output. The only test
possible is the test vector 0 0 0 0, which drives D through both G5 and G6 to
G8. The PODEM algorithm, however, would have found this test almost
immediately by trying this test vector from the given starting point of X 0 0 X.
Notice that with this fairly trivial example there are only four possible test
vectors to try, namely 0 0 0 0, 0 0 0 1 , 1 0 0 0 and 1 0 0 1 . Also the actual
circuit is highly artificial, being merely Z= x1x2%*4 + *i*2*3*4 which changes
to x^x^x^x4 under the given stuck-at fault condition.
A further development by IBM of PODEM-X has been used for the test
pattern generation of circuits containing tens of thousands of gates26.
PODEM-X incorporates an initial determination of a small set of test vectors
which will cover a high percentage of faults in the fault list, leaving the
PODEM procedure to cover the remainder. This will be considered further in
section 3.2.3. However, a more distinct variation of the PODEM algorithm is
the FAN (fan-out oriented) ATPG program of Fujiwara and Shimono29,
which specifically considered the fan-out nodes of a circuit, and uses multiple-
path forward and backward tracing.
The major introduction in FAN is when considering a backward trace from
a given D or D node. The procedure is broadly as follows:
Digital test pattern generation 67
start
any
logic value
inconsistencies?
has
D (or D) reached
a primary output?
backward trace from all fan-out nodes backward trace from furthestmost
and other lines to establish primary inputs D (or D) nodes, assigning Jogic 0, 1
so as to propagate D or D further
end
Figure 3.12 Outline schematic of the FAN ATPG program, starting ivith all nodes
and primary inputs at X. Exit paths (not shown) are present if no test
for a given stuck-at fault is possible
generating this minimum test set.* On the other hand a fully exhaustive test
set will incur no ATPG costs, but will usually be too long to employ for large
circuits. There is, however, an intermediate possibility which has been used.
* It has been reported28 that millions of retries have been found necessary in some
circuits of VLSI complexity before the test vectors to cover the complete set of faults
were determined.
Digital test pattern generation 69
(3.14)
where X is a constant for the particular circuit under test. The general
characteristic of this relationship is shown in Figure 3.13, which confirms the
intuitive concept that it is relatively easy to begin the fault coverage but
becomes increasingly difficult to cover the more difficult remaining faults in
the fault list.
Table 3.6 The fault coverage obtained on two circuits by the application of random test
vectors. Note, a fully-exhaustive functional test set would contain 263 and
2 test vectors, respectively
Circuit No. of primary inputs No. of gates % fault coverage obtained
with N random test patterns
N = 100 1000 10000
100-i
Figure 3.13 The general characteristics of fault coverage versus the number of
random test vectors applied to the circuit
( X)
X
'
secondary storage
inputs (memory) secondary
elements outputs
Figure 3.14 The model for sequential logic netzvorks, where all combinational logic
gates are lumped into one half of the model and all memory elements are
lumped into the other half
linearly in time instead of going around the one circuit model on each clock
pulse, but unfortunately this introduces the equally difficult problem of
having to model multiple stuck-at combinational faults. From the dates of the
references which we have cited it will be seen that there is very little new
reported work in this area; the only realistic way of continuing from the
initialisation stage is a functional approach, verifying the sequential circuit
operation by consideration of its state table or state diagram or ASM
(algorithmic state machine) chart, rather than by any computer modelling
and simulation technique 2>43.
This functional approach in turn becomes impractical as circuit size
increases to, say, 20 or more storage elements and possibly tens of thousands
of used and unused circuit states. For VLSI it is now imperative to consider
testing requirements at the circuit design stage, and build in appropriate
means of testing large sequential circuits more easily than would otherwise be
the case. This will be a major topic in Chapter 5; as will be seen partitioning,
re-configuration and other techniques may be introduced, giving both a
normal operating mode and a test mode for the complete circuit design.
An ATPG program that produces a set of test vectors which detects all the
faults in a given fault list for a circuit has obvious advantages, since it provides
a minimum length test vector sequence to test the circuit to a known standard
of test. The difficulty and cost of generating this test set, which is a one-off
operation at the design stage, must be set against the resulting minimum
amount of data to be stored in the test system, see Figure 3.2c, and the
minimum time to test each production circuit.
In general, the order of generating and applying the test vectors in a system
such as in Figure 3.2c is fully flexible, the test vectors and expected (healthy)
output responses being stored in ROM. However, deterministic test pattern
generation based upon (usually) the stuck-at model does not generally
require any specific ordering of the test vectors, each test being independent
of the other tests. Unfortunately the difficulties of determining this test set for
complex VLSI circuits has become too great to undertake, and therefore
present test philosophies are moving away from the cost of ATP generation to
design for test strategies with the use of exhaustive, nonexhaustive or pseudo-
random test patterns. The cost of test pattern generation in the latter cases is
now usually some relatively simple hardware circuitry, such as we shall
consider below.
* We are ignoring in our present discussions the peculiar problems of CMOS testing,
which will be considered further in Section 3.5.
Digital test pattern generation 75
Table 3.7 The number of test vectors available from binary and BCD counters
No. of input bits No. of input test vectors
fully exhaustive binary binary-coded decimal
16 10 (I decade)
256 100 (2 decades)
n = 16 65536 10000 (4 decades)
4.3 x I0 9 I x I0 8 (8 decades)
However, there is not a very substantial saving in this alternative, and fault
coverage is now unknown. If some other subset of a full binary sequence is
considered then the greater the reduction in the number of test vectors the
lower the potential fault coverage. A more satisfactory nonexhaustive test set
strategy is that discussed in Section 3.2.1, where the circuit designer specifies
from his or her knowledge of the circuit a set of vectors which will exercise
the circuit with certain key or critical input/output functional requirements,
or alternatively will cause all or most of the internal gates to change state.
This procedure will produce a nonexhaustive set of test vectors. As covered
in Section 3.2.1, the effectiveness of this suggested test set may be
investigated by a computer check to determine how many of the internal
nodes of the circuit are toggled by this set of vectors; if this coverage is near
100 % then the probability of passing faulty circuits when under test will be
acceptably small.
The source of the test vectors for nonexhaustive tests such as above cannot
be made using simple hardware in the form of binary or BCD counters.
Instead we have to revert to supplying these vectors from a programmable
source such as ROM. This is back to the test set arrangement illustrated in
Figure 3.2^ rather than the simple hardware generation of Figure 3.15.
circuit or
network
under test
hardware
test pattern <\ | compantor
generator
/ healthy
/ response
Figure 3.15 Hardware test pattern generation, similar to the general cases shown in
Figure 3.2a and b. The input test sequence is usually exhaustive
pseudorandom circuit or
test pattern network output
generator under test check
/
/
input test vectors
Figure 3.16 Test generation using a pseudorandom test pattern generator. The
output check is often by signature analysis (see later) rather than by
comparison against a healthy response
* The terminology linear is because the exclusive logic relationship realises the mod2
addition of binary values, which is a linear relationship that preserves the principle of
superposition. For example, (0 0 1 1 0 1 0 0 1 ) 0 0 0 1 0 = 1 0 0 0; 1 0 0 0 0 (0 0 1 1
0 1001) = 0 0 1 0 , and so on. No information is lost going throilgh an exclusive-OR
(or exclusive-NOR) gate.
Digital test pattern generation 77
t ttM M ttM t l t t t
16-bit linear feedback shift register
12 16
Figure 3.17 The linear feedback shift register consisting of n D-type flip-flops in
cascade, with feedback arranged to generate a maximum length pseudo-
random sequence when clocked. Sixteen stages are indicated here, which
would give a maximum length sequence of216 - 1 = 65,535 states before
the sequence repeats. Alternative feedback connections to those shown
here are also possible, see Appendix A
i
D Q D Q D Q D 0
clock -
P
>ck
-rr—'
0 o-
r -rQ
wk
Q
|
5
Considering any one of the n bits and visualising its value written in a
continuous circle of 2n- 1 points, we may consider the runs of consecutive Os
and 1 in the sequence, the length of a run being the number of Os or Is in a
like-valued group. Then:
(iii) In the complete M-sequence there will be a total of 2n~l runs in each bit;
one half of the runs will have length 1, one quarter will have length 2,
one eighth will have length 3, and so on as long as the fractions 1/2,
1/4, 1/8, ... are integer numbers, plus one additional run of nls. In the
example of Figure 3.18 there are 23 = 8 runs, four of length 1, two of
length 2, one of length 3 plus one run of four Is in each bit.
(iv) From (iii), it follows that the number of transitions between 0 and 1 and
vice versa of each bit in a complete M-sequence is 2n~l.
(v) Every M-sequence has a cyclic shift and add property such that if the
given sequence is term-by-term added mod2 to a shifted copy of itself,
then a maximum length sequence results which is another shift of the
given sequence. For example, if the M-sequence shown in Figure 3.186
is added mod2 to the same sequence shifted up six places, it can easily
be shown that this results in the sequence which is a cyclic shift of eight
states from the given sequence.
(vi) Finally, if the autocorrelation of the M-sequence of Os and Is in each bit
is considered, that is knowing a particular entry has the value 0 (or 1)
how likely is any other entry in the same sequence to be 0 (or 1), we
have the autocorrelation function:
where I is the shift between the entries in the same sequence being
compared, l < T < 2 n - 2 , i.e. when T = l adjacent entries in the
sequence are being compared:
p=2n-l
and ax = 1 if the two entries being compared have the same value 0
or 1, = -1 if the two entries being compared have differing values.*
The value of C(T) for any M-sequence and any value of I is:
C(r)
v}
p
This may be illustrated by taking the Qi sequence in Figure 3.186 and
considering a shift of, say, three positions. This gives the results tabulated in
* We may express C{x) more explicitly than above using logic values of +1 and -1
instead of 0 and 1. This will be introduced in Chapter 4, but we have no need to do
so at the present.
80 VLSI testing: digital and mixed analogue/digital techniques
Table 3.8, with the total agreements and disagreements being 7 and 8
respectively, giving the autocorrelation value of-1/15.
It will also be appreciated that the shift register action between stages of a
LFSR means that all the n bits in the sequence have exactly the same
properties.
m
mx (3.18)
ro=0
where oP, x , x2 ... represent the positions in the bit sequence with increasing
l
The algebraic manipulations of G(x) are all in the Galois field of GF(2), that
is mod2 addition, subtraction, multiplication and division of binary data.
Recall also that mod2 addition and subtraction are identical, being:
82 VLSI testing: digital and mixed analogue/digital techniques
i J L
= exclusive-OR = addition mod2
±
Figure 3.19 The general schematic of a LFSR with n stages, the taps cj, c2, c> ..., cn
being open (c{ = 0) if no connection is present, y^ is the input signal at
particular time fy
0 +0=0
0 + 1=1
1+0 = 1
1 + 1=0
0-1 =1
1-0 = 1
1-1=0
and hence polynomial multiplication and division follow as illustrated
below;*
(a? + x2 + x + 1) x (A? + x + 1) is given by:
x3 + x 2 + x + 1
x2 + x + 1
x3 + x 2 + x + 1
4 3 2
X + ^ + X +X
x5 + x4 + x3 + x2
* Note, as we are doing all the algebra here in GF(2), we use the conventional algebra
addition sign + rather than the logical exclusive-OR symbol ©. The latter symbol may
be found in some publications in this area, but not usually. Also, we will discontinue
the circle in the symbol I used in eqn. 3.17 from here on.
Digital test pattern generation 83
x 3 + x2 + x + 1
* 4 + 0 + x2
4 3 2
* 3 +0 +0
x3 + x2 + x
x2 + x + 1
0
{0,1} aQx = y0 =
sequence = yx = cly0+c2y_l+c3y_2+.
G(x) with = y2 =
increasing
time
= clym_1+c2ym_2+c3ym_?i+...cnym_n
Hence the input signal, yit of eqn. 3.17 may now be replaced by ym, where m
denotes the increasing time of the sequence defined by eqn. 3.18.*
We may therefore rewrite eqn. 3.17 as:
-I'
n
(3.17a)
* Notice that the relationships shown above are in a matrix-like form. It is possible to
use matrix operations for this subject area, see Yarmolik21 for example, but we will not
do so in this text.
84 VLSI testing: digital and mixed analogue/digital techniques
This has rearranged the terms in the brackets { } into negative powers of x
(= past time), and positive powers of x (= present and future time), and has
eliminated the summation to infinity. Collecting together terms:
(3.20)
7=1
Because addition and subtraction are the same in GF(2), we may replace
the minus sign in the denominator of eqn. 3.20 with plus, giving the
denominator:
C
>*'' (3.21)
closed (present). For the four-stage LFSR shown in Figure 3.18 the
denominator of G{x) would therefore be:
1 + xl + 0 + 0 + x4
= 1 + X1 + X4
This denominator which controls the sequence which the circuit generates
from a given initial condition is known as the characteristic polynomial P(x)
for the sequence; the powers of x in the characteristic polynomial are the
same as the stages in the shift register to which the feedback taps are
connected. Two further points may be noted, namely:
(i) if the initial conditions 31.1, y~2> • • •>y~n were all zero, then the numerator
of G(x) would be zero, and the sequence would be 0 0 0 ... irrespective
of the characteristic polynomial;
(ii) if the initial conditions were all zero except y__n which was 1, then the
numerator would become cn, which if cn = 1 gives:
G 3 2 2
() \ < )
1 + tf + 0 + 0 + x4
[
+ 0 +• 0 + x 4
X
1 2
+ 0 + 0 + x5
x2 + 0 + x 4 + x 5
x2 (-0 + 0 + x6
, 4 ,
+ x6
3 7
x •0-t- 0 + x
x5 + x 6 + x 7
x 5 + x 6 + 0 + 0 + x9
x1 + 0 + x 9
86 VLSI testing: digital and mixed analogue/digital techniques
1110 1
1 1 0 ljl 0 0 0 0 0 0 1
110 1
10 10
110 1
1110
110 1
110 1
110 1
0
This may be further illustrated by evaluating the previous LFSR example of
Figure 3.18, dividing the primitive polynomial 1 + xl + x4 (1 1 0 0 1 ) into the
polynomial 1 + x15. The result of this division is the same as in the previous
worked example on page 85, except that we now have a 1 rather than a 0 in
the 16th position of the numerator, which causes the division to terminate
rather than continue onwards.
Digital test pattern generation 87
All the primitive polynomials for any n are therefore prime factors of the
polynomial 1 + A2""1. Fortunately we do not have to calculate the primitive
polynomials for our own use, since they have been extensively calculated and
published. Appendix A at the end of this text gives the minimum primitive
polynomials for n< 100, together with further comments and references to
other published tabulations. The theory and developments of these poly-
nomial relationships may be found in MacWilliams and Sloane45, Brillhart
et a/.46, Bardell et a£47 and elsewhere, but some further comments may be
appropriate to include here.
First, as n increases the number of possible primitive polynomials increases
rapidly. The formula for this number may be found in the developments by
Golomb48 and listed in Bardell et al.Al, being for example 16 possibilities for
n = 8, 2048 possibilities for n = 16 and 276 480 possibilities for n = 24. Not all
are minimum, that is containing the fewest number of nonzero terms, but
even so there are alternative possibilities with the fewest number of terms for
n > 3. The listings given in Appendix A therefore are not the only
possibilities. A complete listing of all the possible primitive polynomials for
up to n =16 is given in Peterson and Weldon44.
Secondly, given any minimum primitive polynomial P(x) such as listed in
Appendix A, there is always the possibility of determining its reciprocal
polynomial P*(x), which is also a minimum primitive polynomial yielding a
maximum length sequence11'47'49. The reciprocal of the polynomial is
defined by:
| (3.23)
')-
Table 3.9 The possible primitive polynomials for n = 15 with the least number of
nonzero terms (trinomials)
P(x) = 1 + x'+x 1 5 P|*(x) = 1 + X 1 4 H-x1
1
P2(x) = 1 4 - 4 4- 15 P2*(x) = 1 +X"H-x
8
P,(x) = 1 + X7 + X 15 P3*(x) = 1 +X +X 1 5
Finally, the LFSR circuit configuration that we have considered so far has the
feedback taps from the chosen LFSR stages all exclusive-ORed back to the
first stage. However, for any given circuit and characteristic polynomial, an
alternative circuit configuration with the same characteristic polynomial P(x)
and the same output sequence G(x), see eqn. 3.22, is possible by including the
exclusive-OR logic gates between appropriate LFSR stages. This is illustrated
in Figure 3.20. For each nonzero q in Figure 3.20a there is an effective
exclusive-OR gate between stages n - i and n-i+l in Figure 3.206; cn is
always nonzero, and therefore there is always a connection between Q^ and
the first stage as shown. For example, the equivalent of the LFSR circuit
shown in Figure 3.18 with the characteristic polynomial P(x)l + xl + x4 would
have one exclusive-OR gate between the third and final stages as shown in
Figure 3.20a
Notice that the same number of two-input exclusive-OR gates is necessary
in both possible circuit configurations, which we have termed type A and type
B in Figure 3.20. However, although the characteristic polynomial and hence
the output sequence of both type A and type B can be the same, the precise
n-bit data held in the n stages of the type A and type B LFSRs after each clock
pulse will not always be exactly the same. It is left as an exercise for the reader
to compile the state table for the type B LFSR with the characteristic poly-
nomial 1 + x1 + x4, and compare it with the state table given in Figure 3.186.
In general the type A LFSR of Figure 3.20 is preferable to the type B from
the manufacturing point of view, and most practical circuits show this
configuration. However, we will briefly come back to the type B in Section 4.5
of the following chapter, since it has a certain mathematical advantage when
the n-bit data in the LFSR rather than the 2 n - 1 pseudorandom output
sequence is of interest.
Further alternative circuit configurations have been investigated,
particularly the hybrid Wang-McCluskey circuits which seek to minimise the
number of exclusive-OR gates by a combination of the two circuit concepts
Digital test pattern generation 89
D Q D Q D Q D Q
\ \
exclusive-OR feedback
Q. On
D Q OQ D Q
to— D Q
X"
D o D Q
Figure 3.20 Txvo alternative circuit configurations for the same maximum length
pseudorandom sequence generation
a type A LFSR, which is the circuit so far considered
b alternative type B circuit configuration
c type B realisation of the maximum length LFSR of Figure 3.18 with
the characteristic polynomial P(x) = 1 + xl + x4. Note, other
publications may refer to these two configurations as type 1 and type
2 LFSRs, but regretably there is a lack of consistancy whether a is type
1 and b is type 2, or vice versa
shown in Figure 3.2051. We will not pursue these and other alternatives such
as partitioning a LFSR into smaller autonomous LFSRs, particularly as the
cellular automata (CA) pseudorandom generators which we will introduce
below have theoretical advantages over LFSR generators. Further reading
may be found in References 11, 13, 44, 47 and 50.
90 VLSI testing: digital and mixed analogue/digital techniques
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 0
* Other functions of Q^\, Qk and Q^+1 have been investigated57'58, but it has now
been formally proved that only the 90 and 150 functions are appropriate to generate
maximum length sequences. We will, therefore, only consider the 90 and 150
functions in this text.
Digital test pattern generation 91
Q,
clock clock
Figure 3.21 Two basic cells from which maximum length pseudorandom CA
generators may be built
a type 90 cell
b type 150 cell
150 cells, the more expensive cell of the two, and maximising the use of the
90 cell. It has been shown59 that for n<150 at most two 150 cells are
required, the remainder all being 90 cells. The list for n< 150 is given in
Appendix B.
The circuit and resulting M-sequence for a four-stage autonomous CA
generator with alternating 90 and 150 cells is given in Figure 3.22. As will be
seen, the resulting maximum length sequence does not have the simple shift
characteristic of the LFSR generator, but instead has a much more random-
like relationship between the successive output vectors Qj Q2 Q3 ^4- A
forbidden state of 0 0 0 0 is present as in an autonomous LFSR generator,
necessitating a seed of ...1... to be present to allow the M-sequence to
proceed. The circuit for n = 4 using the data tabulated in Appendix B would
be similar to Figure 3.22 but with the 90 and 150 cells interchanged—there is
always a choice of circuit configurations for n > 2.
The analysis of the sequence generated by a given CA may easily be found
by a matrix computation, where all multiplications and additions are in
GF(2). For example, consider the string of 90 and 150 cells shown in Figure
3.23; then the state transition matrix [T] is given by:
0 1 0 0 0 0 0 0
1 1 1 0 0 0 0 0
0 1 0 1 0 0 0 0
0 0 1 1 1 0 0 0
0 0 0 10 10 0
0 0 0 0 1 1 1 0
0 0 0 0 0 10 1
0 0 0 0 0 0 11
92 VLSI testing: digital and mixed analogue/digital techniques
Q3
*ir
D Q i! D Q D 0 D 0
i!
>ck i! >ck >ck >ck
i!
Q o ! Q o- ! 0
j
90 || 150 90 150 j
jl J Jl .J
Q2 Q^ Q3 Q4 Q3—' '—0
o2 QA
Q^ Q2 Q3 QA
initialisation
1 0 0 0 (seed) before first
clock pulse
clock pulse 1 0 1 0 0
2 1 1 1 0
3 1 1 1 1
4 1 1 0 0
5 1 0 1 0
6 0 0 0 1
7 0 0 1 1
8 0 1 1 0
9 1 0 1 1
10 0 0 1 0
11 0 1 0 1
12 1 1 0 1
13 1 0 0 1
14 0 1 1 1
15 1 0 0 0
sequence
0 1 0 0 \ repeats
This is a tridiagonal matrix, that is all zeros except on three diagonals, the
diagonal row entries being 1 1 1 for internal 150 cells and 1 0 1 for internal
90 cells. For any present-state output vector Q), the next-state output vector
(£"] of the CA is given by:
[T]Q]=Q + ] (3.24)
Digital test pattern generation 93
• i
For example, taking the eighth vector in Figure 3.226, namely 0 110, the
next-state vector for this CA is given by:
0 1 0 0 0 0+1+0+0 1
1 1 1 0 1 0+1+1+0 0
0 1 0 1 1 0+1+0+0 " l
0 0 1 1 0 0+0+1+0 1
[T] Q]
The following vector may be obtained by the transformation of 1 0 1 1, or by
transforming the previous vector 0 1 1 0 by [T]2, that is:
0 10 0 0 100 1110
1110 1 1 10 1111
0 10 1 0 10 1 110 1
00 11 00 11 0 110
[T] [T] [T] 2
In general, the kth vector Q+fi] after any given vector may be obtained by:
Q+*] (3.25)
where [T] is the given state transition matrix.
There is, therefore, relatively little difficulty in the analysis of a given
cellular automaton.* The theory for the synthesis of a maximum length CA,
however, is much more difficult; unlike the LFSR where polynomial division
over GF(2) is involved, for the CA no polynomial operations are directly
applicable and generally unfamiliar matrix operations are deeply involved.
It has been shown by Serra et a/.61"63 that autonomous LFSRs and CAs are
isomorphic to each other, so that given any maximum length LFSR a
corresponding maximum length CA may be determined; more precisely,
given any characteristic polynomial for a LFSR a corresponding CA may be
found. In this context corresponding does not imply the same output
sequence, but a reordered output sequence of the same length. The
procedure involves three principal steps namely:
(i) compile the state transition matrix of the chosen LFSR generator;
(ii) determine the companion matrix64 of this state transition matrix using
similarity transformations, the former being a matrix which is
isomorphic to the transition matrix;
(iii) tridiagonalise the companion matrix into a tridiagonal form, this being
undertaken by a development of the Lanczos tridiagonalisation
algorithm64.
The last step generates the state transition matrix for the corresponding
cellular automaton, which as we have seen must be in tridiagonal form
because all interconnections involve only Q^lt Q^ and Q^+1 signals. Further
details may be found in Serra et al, particularly in References 61-63. Note,
the type 1 and type 2 LFSRs in Serra is what we have termed type B and type
A LFSRs, respectively.
However, this method of developing a maximum length autonomous
pseudorandom CA generator is found to produce far from minimum GA
assemblies, that is with the fewest number of the more expensive 150 cells,
even when developed from minimum length primitive polynomials. No
relationship exists between minimal LFSRs and minimal CAs, and hence the
search for minimal cost CA realisations has been undertaken by a search
procedure based upon the tridiagonal characteristics of the CA state
transition matrix.
Looking back at the example state transition matrix of Figure 3.23 it will be
seen that the main diagonal has the value 0 for a type 90 cell, and 1 for a type
150 cell; the two adjacent side diagonals are always all Is. Also, if the
transition matrix for any n produces the maximum length sequence of 2n - 1
states, then [T] k will yield the identity matrix [I] for k = 2", but will not yield
[I] for any k < 2n. This is so because the maximum length sequence repeats
after 2n - 1 different states to its starting state. The search procedure to
identify the smallest number of type 150 cells for a maximum length
sequence is therefore to set all the main diagonal entries initially to zero, and
then progressive insert one 1, two Is, ... in the main diagonal. The search is
stopped for any given n when [T]2"= [I]. Further details may be found in
Reference 59. This procedure has, as previously noted, shown that only two
type 150 cells are necessary for n < 150, see details in Appendix B.
Looking at the autonomous LFSR circuits and the CA circuits which we
have now examined, it will be appreciated that either could be used as a
standalone hardware generator for supplying pseudorandom test vectors50'57.
The total circuit requirements of a CA generator are more complex than that
of a LFSR generator, since more exclusive-OR gates are required, but no
interconnections running the full length of the shift register are ever
required in the CA case as is always necessary in a LFSR generator. This may
Digital test pattern generation 95
The problem of CMOS testing with its dual p-channel and n-channel FET
configurations was introduced in the preceding chapter. Functional testing
and IDDQ current tests were seen to be the most appropriate rather than test
pattern generation based upon, say, the stuck-at fault model.
To cover open-circuit and short-circuit faults in a CMOS circuit we have
seen that:
(i) for any open-circuit fault it is necessary to apply a specific pair of test
vectors, the first being an initialisation vector to establish a logic 0(1) at
the gate output, the second being the test vector which checks that the
output will then switch to 1 (0);
(ii) for any short-circuit fault then on some test vectors there will be a
conducting path from VDD to ground through the gate, which may be
detected by monitoring the supply current IDD under quiescent (non-
transitory) conductions, this being the //w> measurement.
The latter feature is illustrated by Figure 3.24.
Let us consider first the functional tests for open-circuit faults. Table 2.3
in Chapter 2 illustrated the exhaustive test set for a simple two-input
CMOS NAND gate; the pair of input test vectors 0 1,11 checked for
transistor T3 or T4 open circuit, the pair 11,10 checked for T2 open circuit
and the pair 1 1 , 0 1 checked for Tl open circuit. The mathematics for
determining an appropriate test vector sequence was not, however,
considered.
96 VLSI testing: digital and mixed analogue/digital techniques
'VDD
-0V
Vour
-ov
faulty
• IDD=0
no fault
IDDQ= zero
Figure 3.24 The voltage and current waveforms for a simple CMOS inverter gate with
a short-circuit in the p-channel FET
a the circuit
b typical waveforms
, j
! circuit under test
>—
r~
Figure 5.25 CMOS testing and inadequate LFSR test vector generation
published65 67. This gives a structured sequence rather than any pseudo-
random sequence. If we plot, say, a four-variable function on a Karnaugh
map, it may readily be found that it is impossible to find any simple path
(input sequence) through the sixteen squares of the map which gives the
required initialisation vector followed by the test vector for all possible
functions and open-circuit faults. To construct such a universal sequence it is
necessary to enter every map square once from each adjacent square. As
shown in Reference 65, this is best illustrated by using a hypercube
construction rather than a Karnaugh map; the construction for n = 3 is shown
in Figure 3.26, from which it will be seen that all transitions involving one
change of state of a variable are present. This is an Eulerian cycle, that is a
cycle which begins at any vertex, passes along each edge in each direction
exactly once, and returns to the initial vertex66.
The algorithm that has been published for generating the required
sequence takes as its starting point the sequence for n and from it builds the
required sequence for n + 1. Since the cycle for n = 2 is easy to compile, n = 3,
n = 4, etc., may be built up from this starting point. The required steps are:
(i) take the Eulerian cycle for n with all zeros as the starting vector (note,
more than one cycle is possible for n > 2);
(ii) add a leading zero to each vector in (i);
(iii) extend the sequence in (ii) by locating the first but not any subsequent
occurrence of each nonzero vector OX (where X denotes the following
n- 1 bits), and inserting two additional vectors IX and OX immediately
after each located vector;
(iv) add a further copy of the Eulerian cycle for n but with a leading 1 added
to each vector;
(v) finally, add the concluding all-zeros vector 0 0 ... 0.
98 VLSI testing: digital and mixed analogue/digital techniques
110 w 111
1 00
01 1
000
001
•x3
f(x,x2x3)
Figure 3.26 The directed hypercube for n = 3, where every node is entered once from
all adjacent nodes
Table 3.10 The generation of the Eulerian cycle for n = 3 from a given n = 2 sequence.
Note, other sequences for n> 2 are possible
Step (i) Step(ii) Step(iii) Step (iv) Step (v)
being the normal mode condition of these inputs, changing to 0 1 0 1 for the
p-channel tests and to 1 0 1 0 for the n-channel tests. In Figure 3.27 b only one
test mode signal, Tl, and its complement are required to switch from normal
mode to test mode, but in both cases it will be appreciated that additional
circuit complexity and possibly degradation of circuit performance has been
built in.
Further details of these and other proposals may be found published72"75,
but none have yet found acceptance in the commercial field due to the
circuit performance and area penalties involved. However, the final
technique which we must consider, IJ)DQ testing, has now considerable
industrial significance.
The first proposal for CMOS current testing was in 1981 by Levi76. Since
then a considerable amount of development has taken place to bring the
methodology to its current status1'77"81; extensive references to these
developments may be found in Reference 80.
Considering in more detail the fundamental concept, from Figure 3.24 the
distinction between a fault-free circuit and one containing a short circuit is
only apparent when switching transients have died away. Three problems,
however, arise, namely:
(i) because the measurement of IDDQinust be delayed until this transient
current has decayed, slow rise and fall times £r and u of the input vectors
will delay the time at which the current measurements may be made;
(ii) the //^fault current is only present on the specific input test vector(s)
which appropriately energise the faulty CMOS circuit;
(iii) in a very complex circuit there may be a great deal of continuous
switching activity in the circuit, which means that a global quiescent
condition is infrequent.
These factors were not too onerous when production testing of early SSI and
MSI CMOS logic circuits was undertaken, and IDOQ current checks could then
be undertaken by vendors81. However, as complexity has increased to LSI and
VLSI levels and with higher operating speeds, the time slots for appropriate
measurements of IDDQ n a v e become less frequent and/or of shorter duration,
unless specific means are incorporated to facilitate this test procedure.
The order of magnitude of the parameters involved is also significant.
Typical values are as follows, although these may vary significantly with
fabrication processing, gate dimensions (particularly transistor width, W, and
transistor length, L), temperature, operating voltage and circuit loadings:
• average gate switching time Tav< 5 ns;
• average fault-free gate quiescent current < 5 pA;
• ohmic resistance of typical short circuits 100 £1 to 20 kH;
• required IBDQ measurement sensitivity 1-50 (oA, but one or two orders of
magnitude lower for certain static RAM production tests;
• typical sample rate for IDDQ measurements 10-100 kHz, say 50 (is per
measurement.
Digital test pattern generation 101
'VDD
p-channel ,J ,, .
nets J L P-channel load
T
tJL n-channel
n-channel h ,oad
nets r4 o
-Vss
nets i nets
test
signature
Figure 3.27 Possible CMOS test strategies based upon the duality of the p-channel
and n-channel nets
a separate p-channel and n-channel tests
b comparison of the p-channel and n-channel responses, the test
signature always being 0 for a fault-free circuit
seconds to complete the test of one circuit. Selective IDDQ testing, however,
uses a subset, possibly randomly selected, on which the IDDQ measurements
are made. It has been found that often less than one per cent of the full ATPG
test can provide the same short-circuit cover as using the every-vector test
sequence80.
Finally, supplemental IDDQ test patterns. These are test patterns specifically
chosen and applied to the circuit separately from any other tests, IBDQ
measurements being made on every input test vector. If one randomly chosen
test vector is applied to a circuit under test, then it is statistically possible for
up to 25 % of the potential short-circuit faults in the circuit to be detected by
this one test vector, since all gates must be in one or other of their two output
states. A further randomly-chosen test vector may detect up to 25 % of the
remaining faults, and hence a very short sequence of test vectors may provide
a very high fault coverage for the circuit. However, this is not generally satis-
factory as no exact quantification of the resultant fault coverage is available.*
Therefore, it is more satisfactory to determine a test set based upon short-
circuit fault modelling which examines all possible paths from VDD to ground.
Short-circuit fault modelling is undertaken at switch level, considering
each p-channel and n-channel FET as a switch. For example, the circuit
shown in Figure 3.28a is modelled by the arcs representing switches shown in
Figure 3.28&. Using appropriate rules1 the test set to detect any switch stuck-
on is given by:
xxx2x$x4x5=ni--9 1 1 - 0 0, 11 0 1 - , 0 - 1 - - , - 0 1 - - , 0 - - 0 0
and - 0 - 0 0
which gives a final minimum test set of:
1 1 1 1 1, 1 1 100, 1 10 11, 0 0 1 1 1,00100.
Further details of this switch-level modelling will be found in References 1,
82-84.
An interesting feature of Igoo testing is that the test vectors for IDDQ tests
also detect certain open-circuit faults, since it has been found that a stuck-
open fault in one transistor can increase IDDQ due to certain physical
secondary effects80'85. The tests will also detect device faults such as gate-
oxide shorts and leaky jbn junctions between source, drain and bulk substrate.
It has further been found that IDDQ measurements will detect circuits which
are fully functional under normal logic criteria, but which have some
imperfection in parametric performance. Although this imperfection may
not give rise immediately to any system malfunction, from the long-term
reliability point of view there is a problem present which may give rise to
-w
* The initial rate of decay of V will be C§VJ§t = IDDQ, but the initial slope of an
exponential is difficult to measure directly.
Digital test pattern generation 105
circuit circuit
'DD
1
circuit
partition partition partition
• / virtual
VVG VVG VVG around
current current current
sensor sensor sensor
01/
series
component
I pass / fail flag
'VDD
circuit
partition
| additional circuit
: breaker and
• latch facility
Q^
! I
floating gate or
junction leakage
= VVG
no defect vREF
We are not concerned here with delay through individual gates of the
circuit under test, but instead with the cumulative delay of all gates in a path
from primary inputs to primary outputs. Transitions from 0 to 1 and 1 to 0
are propagated, and a fault is recorded if the primary output(s) do not
respond within a given time.
Although the propagation delay in only the shortest and longest path may
be considered, a more satisfactory procedure is as shown in Figure 3.31 where
every input/output path is involved. The input register is clocked with Cl,
and produces (possibly pseudorandom) test vectors to exercise the
combinational network. The output responses are captured by the output
register when triggered by clock C2, and checked by some further means
such as a signature analysis technique (see following chapter). If the
expected responses are not received by the time clock pulse C2 is applied,
then some delay fault in the circuit is indicated.
The clock speeds Cl and G2 clearly provide a measure of the propagation
delay; in general if this delay is unambiguously less than the period between
the clock pulses of the circuit when in normal working mode the circuit is
considered fault free. An important consideration, however, is the need to be
able to generate the test vectors and record the output response at high
speed, which may require special on-chip latch and flip-flop circuit
configurations.
Further details of delay fault testing may be found published11'47'90"93.
* The 90terminology AC which has been used in the literature in connection with delay
testing '91 is unfortunate. It does not refer to the use of any alternating current (a.c.)
test signals, but comes from the use by certain IC manufacturers in data sheets where
DC data tables are the logic relationships and AC data tables are the timing and other
parametric performance details in a comprehensive IC specification.
108 VLSI testing: digital and mixed analogue/digital techniques
clock C1
input register
test vectors
combinational circuit
under test
output response
clock C2
Figure 3.31 The test configuration for delay fault testing, Cl and C2 being
interleaved clocks
However, it does not currently hold such an extensive place in digital testing
as functional testing, although it may be crucial for VLSI circuits working at
the leading edge of the performance of available technologies. It will,
however, become more significant with deep submicron geometry VLSI
circuits.
In the foregoing sections, the principal objective was to detect faulty circuits
but not to identify the precise location or cause of the failure. With ATPG
programs based upon the stuck-at model, for example, no information as to
the exact location of a stuck-at fault is generally available, since many s-a-0 or
s-a-1 nodes can be covered by a single test vector. Most other functional tests
have the same feature—that complete primary input to primary output paths
are checked, with little information being available to indicate whereabouts
along a path a failure has occurred. In a sense the generation of a minimum
test set which detects all faults in a given fault list is at odds with the
requirements of fault location.
The IDDQ test method, however, can be considerably more diagnostic than
conventional functional testing, since a high IDDQ measurement following
given input test vectors may point to a particular gate or macro in the circuit
being faulty80'85. Figure 3.32 is a good example of a fault located in a CMOS
circuit following an IDDQ test procedure. However, in general, should fault
location and thence defect diagnosis be required, it is necessary to undertake
further specific tests once the circuit has been identified as faulty by some
more general test procedure.
Digital test pattern generation 109
could give rise to this incorrect output. Using several further test vectors and
their faulty or fault-free output response, it may then be possible to resolve
the fault into one location or near neighbours. Considerable computational
work may be necessary to achieve this resolution, although this effort is
considerably eased if some form of partitioning is present in the original
design which allows one faulty partition or circuit macro to be easily
identified among the other fault-free partitions.
A variation on simulation-based diagnostics is to have already compiled a
comprehensive fault dictionary for the circuit, which lists the circuit response
under each possible fault condition. By matching the test set response to the
fault dictionary data, identification of the source of the fault will be given.
The problem in this case is the extremely large amount of computational
effort that may be necessary in order to compile the fault dictionary data in
the first place.
Finally, diagnostic reasoning using artificial intelligence (AI) has been
proposed, based upon if-then rules such as:
if (ALU test passed) then (suspect register B)
This method is not easily applicable to fault location down to the gate level,
even though this is precisely what a designer or test engineer may do to locate
a gate fault, but is more relevant for macro diagnosis or system diagnosis
where identifiable functional blocks are involved.
Further details of fault diagnosis may be found in References 12, 47, 94-96.
Other techniques that we have not covered here, such as thermal mapping of
ICs and laser techniques, have been researched97"100 but as far as fault
diagnosis on integrated circuits is concerned this must remain very much the
province of the IC manufacturer rather than the OEM.
This Chapter has considered several strategies for generating tests for digital
circuits which, with the noticeable exception of IDDQ testing, involve the
monitoring of the 0 and 1 primary output response to appropriate input test
vectors.
By far the greatest development effort has been concerned with
combinational logic. Roth's D-algorithm forms the basis of many automatic
test pattern generation programs, but the computational effort in producing
ATPG programs for the increasing size and complexity of present-day VLSI
circuits is becoming prohibitive. This has forced an increasing interest in
other means of test pattern generation, which usually involves some
partitioning of the circuit at the design stage so as to allow exhaustive, non-
exhaustive or pseudorandom test patterns to be used. We will be concerned
in much greater depth with these design for test or DFT concepts, in the
following chapters.
112 VLSI testing: digital and mixed analogue/digital techniques
3.9 References
1 RAJSUMAN, R.: 'Digital hardware testing: transistor-level fault modelling and
testing' (Artech House, 1992)
2 LALA, P.K: 'Fault tolerant and fault testable hardware design' (Prentice Hall,
1985)
3 RUSSELL, G. (Ed.): 'Computer aided tools for VLSI system design' (IEE Peter
Peregrinus, 1987)
4 BREUER, M.A., and FRIEDMAN, A.D.: 'Diagnosis and reliable design of digital
systems' (Computer Science Press, 1976)
Digital test pattern generation 113
73 CHEEMA, M.S., and LALA, P.K: 'Totally self-checking CMOS circuit design for
breaks and stuck-on faults', IEEE]. Solid-State Circuits, 1992, 27, pp. 1203-1206
74 RAJSUMAN, R.: 'Design of CMOS circuits for stuck-open fault testability', IEEEJ.
Solid-State Circuits, 1991, 26, pp. 10-21
75 JHA, N.K, and ABRAHAM, J.A.: Totally self-checking MOS circuits under realistic
physical failures'. Proceedings of IEEE international conference on Computer
design, 1984, pp. 665-670
76 LEVI, M.W.: 'CMOS is most testable'. Proceedings of IEEE international
conference on Test, 1981, pp. 217-220
77 MALY, W., and NIGH, P.: 'Built-in current testing—a feasibility study'.
Proceedings of IEEE ICCAD, 1988, pp. 340-343
78 FRITZEMEIER, R.R., SODEN, J.M., TREECE, R.K., and HAWKINS, C.F.:
'Increased CMOS IC stuck-at fault coverage with reduced IDDQ test sets'.
Proceedings of IEEE international conference on Test, 1990, pp. 427-435
79 FERGUSON, EX, TAYLOR, M., and LARRABEE, T: 'Testing for parametric faults
in static CMOS'. Proceedings of IEEE international conference on Test, 1990, pp.
436-443
80 GULATI, R.K., and HAWKINS, C.F. (Eds.): 1IDDQ testing of VLSI circuits' (Kluwer,
1993)
81 SODEN, J.M., HAWKINS, C.F., GULATI, R.K., and MAO, W: lIDDQ testing: a
review',/. Electron. Test., Theory Appl, 1992, 3, pp. 291-303 (reprinted in [80])
82 BRZOZOWSKI, J.A.: 'Testability of combinational networks of CMOS cells', in
MILLER, D.M. (Ed.): 'Developments in integrated circuit testing' (Academic
Press, 1987)
83 RAJSUMAN, R., JAYASUMANA, A.P., and MALAIYA, Y.K: 'Testing of complex
gates', IEEElectron. Lett., 1987, 23, pp. 813-814
84 LEE, K.J., and BREUER, M.A.: 'On detecting single and multiple bridging faults
in CMOS circuits using the current supply monitoring method'. Proceedings of
IEEE international symposium on Circuits and systems, 1990, pp. 5-8
85 SODEN, J.M., and HAWKINS, C.F.: 'Electrical properties and detection methods
for CMOS IC defects'. Proceedings of 1st European conference on Test, 1989, pp.
159-167
86 KEATING, M., and MEYER, D.: 'A new approach to dynamic IDD testing'.
Proceedings of IEEE international conference on Test, 1987, pp. 316-321
87 WALLQUIST, K.M., RIGHTER, A.W., and HAWKINS, C.F.: 'Implementation of a
voltage decay method for T^™ measurements on the HP82000'. Report of Hewlett
Packard User Group meeting, CA, June 1992
88 MALY, W., and PATYRA, M.: 'Design of ICs applying built-in current testing',/
Electron. Test, Theory and Applications, 1992, 3, pp. 397-406 (reprinted in [80])
89 SU, S-T, MAKKI, R.Z., and NAGLE, X: 'Transient power supply current
monitoring: a new test method for C M O S ' , / Electron. Test, Theory Appl, 1995, 6,
pp. 23-43
90 SAVIR, J., and BERRY, R.: 'AC strength of a pattern generator',/ Electron. Test.,
Theory Appl, 1992, 3, pp. 119-125
91 BARZILAI, Z., and ROSEN, B.K.: 'Comparison of AC self-testing procedures'.
Proceedings of IEEE international conference on Test, 1990, pp. 387-391
92 BRAND, D., and IYENGAR, V.S.: 'Timing analysis using functional analysis', IEEE
Trans., 1988, C-37, pp. 1309-1314
93 IYENGAR, V.S., ROSEN, B.K., and WAICUKAWSKI, J.A.: 'On computing the sizes
of detected delay faults', IEEE Trans., 1980, CAD-9, pp. 299-312
94 ABRAMOVICI, M., and BREUER, M.A.: 'Multiple faulty diagnosis in
combinational circuits based upon effect-cause analysis', IEEE Trans., 1980, C-29,
pp. 451-460
Digital test pattern generation 117
95 PURCELL, E.T.: 'Fault diagnosis assistant', IEEE Circuits Devices Mag., 1988, 4,
January, pp. 47-59
96 WILKINSON, A.J.: 'A method for test system diagnosis based upon the principles
of artificial intelligence'. Proceedings of IEEE international conference on Test,
1984, pp. 188-195
97 TAMAMA, T., and KUJI, N.: 'Integrating an electron-beam system into VLSI fault
diagnosis', IEEEDes. Test of Comput., 1986, 3, pp. 23-29
98 SODEN, J.M., and ANDERSON, R.E.: 'IC failure analysis: techniques and tools
for quality and reliability improvement', Proc. IEEE, 1993, 81, pp. 793-715
99 GIRARD, P.: 'Voltage contrast',/. Phys. TV, Colloq., 1991, 1, December, pp. C6-
259-C6-271
100 LEE, D.A.: 'Thermal analysis of integrated circuit chips using thermographic
imaging techniques', IEEE Trans. lustrum. andMeas., 1994, 43, pp. 824-829
101 CHOWDHURY, D.R., SENGUPTA, I., and CHOUDHURI, P.P.: 'A class of two-
dimensional cellular automata and their application in random pattern
generation',/. Electron. Test., Theory andAppl, 1994, 5, pp. 67-82
Chapter 4
Signatures and self test
output compression
circuit (some form of
test signature)
test mode control
normal mode = 0 test result, 1 = pass
test mode = 1 0 = fail
Table 4.1 The testing of combinational logic networks, with test signatures as one
possible means of test
combinational
network test
4
output test response
not in any
functionally defined
order. 1f }
sys
normal system
m x
generator test vectors normal system ^ f 2Zj,
V / = 1 to j, j<n inputs x,-, ' " y ° Jrn test output
/ = 1 to n response r;,
/ = 1 to k, k< m
/
combinational
network
under test
vr
input output
compression compression
circuit circuit
(linear output filter)
Figure 4.2 The concept of a linear output filter to combine primary outputs
primary primary
inputs outputs
input compression
€> • x2
•
network •
• under
test •
•
z
m /
*>
• x
n
/ "
considerations of Tang and Cheng 5 , McCluskey6 and others. The system total
of n binary inputs is generated from j independent binary input test signals,
j < n, by linear exclusive-OR relationships, as shown in Figure 4.36. The value
of j is determined by the maximum number of xi input variables involved in
any output function zif i-\ to m, and the input independency between the m
output functions. In the case of a simple three-bit test vector generator, a total
of seven linearly related bit streams may be generated, see Table 4.2. The total
number of bit streams possible from a / b i t test vector generator is 2 ^ - 1 .
124 VLSI testing: digital and mixed analogue/digital techniques
Table 4.2 The seven possible test vector sequences available from three primary inputs
vp v2, vB
Primary test Linearly related
inputs inputs
v v{ © v3 v2
\ V
2 V
3
0 0 0 0 0 0 0
0 0 1 0 1 1 1
0 1 0 1 0 1 1
0 1 1 1 1 0 0
1 0 0 1 1 0 1
1 0 1 1 0 1 0
1 1 0 0 1 1 0
1 1 1 0 0 0 1
The choice of any three of the seven vector sequences shown in Table 4.2
will give an exhaustive three-bit test sequence provided that all the subscripts
1, 2 and 3 appear in the three chosen vectors. If any subscript does not
appear, then the sequence will be a function of the j-1 variables only. Hence,
there is a considerable choice of test vector sequences for the exhaustive test
of the individual outputs zx to zm, the test of all outputs being completed
within 2^ test vectors.
Published details cover the derivation of appropriate input test sets for
given multiple-output networks, with emphasis upon minimising the width of
the test vector generator vx to v • and hence the test time4"8. However, this test
strategy does not feature greatly in present-day VLSI test methodologies,
except where it is obviously relevant from a partitioning of the circuit design
and separate partition tests.
\
•/-
x2 >
network
under
test • •
•/-
Y ^
output compression
x2
Figure 4.4 The use of a linear output filter to combine primary outputs
a generation of k test outputs from m primary outputs
b generation of one test output such that r2 is, say, always 0 or 1 or some
other simple function
made. Consider a syndrome test with R input test vectors. Then the number
of possible output sequences is 2^ with 2R- 1 being faulty sequences. Also
the number of R-bit output sequences having s Is is | ^ | , of which _i
will be faulty output sequences. Hence the probability of fault masking given
W 1J
any random set of input test vectors will be:
-)-•
x l 0 0 %
Since the coefficient has a bell-shaped distribution, eqn. 4.1 states that
vs J
the probability of fault masking is low when s is near its extreme values, but
increases rapidly as s nears the midpoint value of jR However, this assumes
that all errors in the output bit stream are equally likely, which is usually very
far from real-life truth. As shown above, a syndrome count of 1 may easily be
maintained under fault conditions, and therefore all the published analyses
of fault masking (or aliasing) which are based upon equally probable faults
must be treated with great care.
Many developments of syndrome testing which aim to give an acceptable
signature test have been pursued. For example, in the compaction concept
illustrated in Figure 4.4a syndrome counts have been suggested for the final
output signatures. The choice of the functions to combine in the output
linear filter is considered on an exhaustive basis, evaluating the syndrome
values for all possible nontrivial combinations of the primary outputs z., i = 1
to m. From this exhaustive analysis a solution which embraces all z- outputs
and which gives near-maximum (or near-minimum) syndrome values is
chosen7'11'12. An interesting technique for determining the syndromes for all
exclusive-ORs of the zi outputs is possible, using a 2n x 2n Hadamard
transform operating on a single column vector formed from the truthtable of
the individual zi outputs. As an example, consider a simple three-input
function f{xlt #2, x3) with three outputs zv z^ and z3, as detailed below.
Allocating a binary weighting to each output, a single decimal number may
be given to represent each three-bit output, as follows:
Outputs Three-bit output in decimal notation
Z Z z
3 2 l
1 0 1 5
1 1 0 6
1 1 0 6
0 0 1 I
0 1 0 2
1 0 0 4
1 0 0 4
0 1 1 3
128 VLSI testing: digital and mixed analogue/digital techniques
M T
i
Fast transform procedures are relevant for this computation. Finally, a
selection involving maximum (minimum) syndrome values and all zl outputs
at least once are chosen.
Other syndrome pursuits have included:
(i) checking to verify whether a syndrome count will detect all given faults
on a fault list, such as all stuck-at faults;
(ii) modification to the network under test by the addition of test input(s)
and further logic which effectively adds minterms when under test so as
to give an acceptably secure syndrome count for all circuit failures;
(iii) constrained syndrome testing which involves more than one syndrome
test, certain primary inputs being held constant during each individual
syndrome count procedure;
(iv) weighted syndrome testing, where the individual zi outputs are given
weighting factors, the final syndrome test count being }• toiSi where wi
i=i
is the weight given to the syndrome count 5- from output z-.
0 0 1 1 0 0 1 0 1 ...
S: 0 0 1 2 2 2 3 3 4
AS: 0 0 1 3 5 7 10 13 17
It will be appreciated that although the syndrome value Sfor any given circuit
is independent of the order of application of the input test vectors, the
accumulator syndrome value AS will depend upon the input test vector
sequence. Therefore comparing the effectiveness of the signature AS with S,
it is less likely that the former will give a fault-free count when the circuit is
faulty than will the latter.
However, it is not obvious how to obtain the best (most secure)
accumulator-syndrome signature for a given circuit, given that one is free to
choose any sequence of the test input vectors. As before, it will be found that
it is possible to formulate a faulty output sequence that will give the same
count as the fault-free circuit, but again this may involve faults which are
physically impossible in a given circuit. Further comments are given in the
following section.
Table 4.3 A simple example showing the failure of all three forms of output compression
to provide, either individually or collectively, a unique fault-free signature
Output bit stream Syndrome Accumulator- Transition
count S syndrome count AS count T
0) healthy 0 1 1 0 0 1 0 0 3 16 2
(ii) faulty 0 1 0 1 1 0 0 0 3 16 2
(iii) faulty 0 1 1 0 0 0 1 0 3 15 2
(iv) faulty 0 1 1 0 1 0 0 0 3 17 2
(v) faulty 0 0 1 1 0 1 1 0 4 16 2
(vi) faulty 1 0 0 1 0 1 0 0 3 16 3
There remains one final possibility which will yield a secure signature for a
given combinational network, provided that we are allowed to arrange the
test vector input sequence in a specific order dependent upon the output
function. If the input sequence is arranged such that there is only one
transition in the output bit stream, i.e. a block of all 0s followed by a block of
all Is (or vice versa), then this will detect any fault within either block of 0 or
1 output bits. However, this will fail if a block of logic 0s at the end of the
healthy logic 0 bit stream becomes all Is, or if a block of Is at the beginning
of the healthy logic 1 bit stream becomes all 0s, that is that the transition
point between the 0 and 1 blocks shifts but remains just one transition. This
shortcoming may very easily be overcome by repeating the initial test vector
of the block of 0s and the initial test vector of the block of Is at the end of
their respective blocks, thus giving a total input sequence of 2n + 2 test vectors
with a healthy transition count of one.
This secure and very elegant compression signature has two drawbacks,
namely:
(i) the input test sequence has to be defined and generated in the required
order;
(ii) if two or more primary outputs are present then separate test sequences
are necessary for each output.
Hence, although the transition count signature has theoretical attractions,
like syndrome counting it has not found industrial favour. Further details of
these output compression techniques, including theoretical considerations of
their fault-masking properties and combined use may be found References
9-27. We will return briefly to the syndrome count signature in Section 4.4.3,
when it will be seen that the syndrome count is a particular case of a much
wider range of numerical parameters that have been suggested for test
purposes.
employed. These alternatives have been widely researched, and offer certain
academic advantages for digital design and test in comparison with
conventional {0,1} Boolean representations. We introduce them here for
completeness, although they have not yet secured any widespread use in
design or test practice.
Let us first define the several symbols which will be used in the following
survey; some will be the same as previously used but the majority will be new
to our discussions so far.
List of symbols used below
Xp i = 1 to n independent binary variables,
x-e {0, 1}, xl least significant
f(xv *£, ..., xn) or merely f{X) binary function of the x- input
variables, f[X) e {0, 1}
X] truthtable column vector for
function, /(X), entries e {0, 1} in
minterm decimal order
Y] truthtable column vector for
/(X), entries e {+1, -1} in minterm
decimal order
0 to 2 n -- 1 coefficients in canonic minterm
expansion for f{X)
A] coefficient column vector of a in
decimal order
V= 0 to 2" --1 coefficients in arithmetic canonic
expansion for f{X)
B] coefficient column vector of b in
decimal order
0 to 2" - coefficients in positive Reed-Muller
canonic expansion for/(X)
C] coefficient column vector of c- in
decimal order
0to2n- spectral coefficients defining f[X),
transformed from X]
R] coefficient column vector of r in
decimal order
V = (0 to 2"- spectral coefficients defining/(X),
transformed from Y]
S] coefficient column vector of s- in
decimal order
general 2 n x 2 n transform matrix
[Hd] 2n x 2n Hadamard matrix
[RW] 2n x 2n Rademacher-Walsh matrix
[I] 2n x 2n identity matrix
+ fl 4*1*2*3
a;.,j=0to2B-l,€{0,l } (4.2)
The vector A] of the a in correct canonic order therefore fully defines J{X).
This is a trivial case, since the a: are merely defining the zero-valued and one-
valued minterms of/(X), with A] being identical to the normal output truth-
table of f(X) in minterm order. In matrix form we may write (see list of
symbols):
[I]X] =AJ, giving A] =X] (4.3)
However, a canonic arithmetic expansion for any function J{X) is also
available, but not widely known24'25. For any three-variable function we have:
7=0
Xf (4.5)
and where the binary subscript identifiers of the xi product terms are read as
decimal numbers j . As an example, the parity function xlx\2xs+xlX2X$ +
xxx2x3 + xxx,2x3 may be written as:
f(X) = xx + x2 - 2xxx2 + x?, - 2x}Xg - 2x2^3 + 4^X2^
Note that b- is not confined to positive values. The vector B] of the b-
coefficient is the arithmetic spectrum off[X). For any three-variable function
(n = 3) it may determined by the transform:
1 0 0 0 0 0 0 0
-1 1 0 0 0 0 0 0
-1 0 1 0 0 0 0 0
1 -1 -1 1 0 0 0 0
-1 0 1 0 0
0 0 0 =B (4.6)
1 -1 0 0 -1 1 0 0
1 0 -1 0 1 0 1 0
-1 1 1 -1 1 -1 -1 1
i~r* 71 — 1
Tn = npft — nn-1
T°=+l (4.7)
A further alternative is the Reed-Muller canonic expansion for f{X) which
involves exclusive-OR (addition modulo 2) relationships rather than the
inclusive-OR. There are 2n different possible Reed-Muller expansions for any
given function f[X), involving all possible permutations of each input
variable, *-, true or complemented; here we will confine ourselves to the
positive polarity RM expansion for f[X), which involves all xts true and none
complemented28'30. For any three-variable function we have:
£5*1*3 (4.8)
w
cj9j=0 t o 2 - l , e ( 0 , 1)
where the addition is mod2. The expression for any/(X) is given by:
(4.9)
7=0
X as previously defined.
The vector C] of the c- coefficients is the Reed-Muller positive canonic
spectrum of/(X). For any three-variable function we have:
"l 0 0 0
0 0 0 o" £o
1 1 0 0
0 0 0 0
1 0 1 0
0 0 0 0
1 1 1 1
0 0 0 0
1 0 0 0 1 0 0 0 X =c (4.10)
1 1 0 0 1 1 0 0
1 0 1 0 1 0 1 0
1 1 1 1 1 1 1 1_ £7
mod 2
where the matrix additions arc> modulo 2, lot
i arithmetic
The transform for any n is given by:
Tp?
-1 0 1
n -l
T
T ra-1
r°=+i (4.11)
The relationships between the c coefficients for the positive canonic case
(above) and any other polarity expansion may be given by a further matrix
operation30; this will not concern us here.
134 VLSI testing: digital and mixed analogue/digital techniques
The two nonzero values r0 = 4, r123 = -4, together fully define the given
function/(X).
It is equally relevant to transform the output truthtable vector Y]
representing /(X), where Y] is a recoding of X], recoded logic 0 —»+1, logic
Signatures and self test 135
1 -> - 1 . [Hd] Y] then gives the spectral coefficient vector S] for/X), which
for the above function would yield the spectrum:
1 1 1 1 1 1 1 l" +1~ m0 o~
1 - 1 1 - 1 1 - 1 1 -1 -1 ml 0
1 1 -1 -1 1 1 - 1 -1 -1 nu2 0 s2
1 -1 -1 1 1 -1 -1 1 +1 % 0 su
1 1 1 1 - 1 - 1 - 1 -1 -1 m4 0
1 -1 1 -1 -1 1 -1 1 +1 m5 0
1 1 -1 -1 -1 -1 1 1 +1 m6 0
1 -1 -1 1 -1 1 1 -1 -1 m7 +8 5
123
[Hd] Y I (4.14)
Here, the single nonzero spectral coefficient value s123 = +8 fully defines
f(X). Note that if any coefficient has the maximum value of ±2n, then all
remaining coefficients must be zero-valued due to the orthogonality of the
rows of the transform.
Both [Hd] Y] and [Hd] X] will be found extensively used in the litera-
ture38. The relationship between r and s spectral coefficients is linear, being:
(4.15)
There are a number of alternative complete orthogonal transforms to the
Hadamard which are row reorderings34'35'37, The most prominent is the
Rademacher-Walsh variant, [RW], which directly generates the spectral
coefficients in the logical order rQ, r p r2, r3, r12, r13, ... rather than in the
original Hadamard ordering. It will be appreciated that with such variants the
recursive structure of the Hadamard transform is lost, but there is no differ-
ence in the information content of the resulting r(s) spectral coefficients.
It should also be noted that the coefficients in the spectral domain may
take both positive and negative values. For the majority of functions the co-
efficients will be nonzero; for example, the spectrum for/(X)= x^x2 + xlx2x^
is R] = 3 , - 1 , 1 , - 3 , - 1 , - 1 , 1,1 or S] = 2, 2,-2, 6, 2, 2,-2,-2; the example
shown in eqns. 4.13 and 4.14 is a special case of an odd-parity function.
Since all the above different sets of coefficients which can be proposed to
define a given function f(X) are obtainable by an appropriate matrix
operation on the column vector representing f{X), there exists appropriate
matrix relationships between these alternative sets of coefficients19. For
example, given the Hadamard spectral coefficients R] the other coefficient
vectors are given by the following relationships.
(i) The r to a- coefficient relationships:
(4.16)
136 VLSI testing: digital and mixed analogue/digital techniques
(4.17)
2W 7=0
=hn
(4.19)
where [Tn] is the transform given in eqn. 4.7. Evaluation of [T n ][Hd], see
eqns. 4.6 and 4.11, will give the result conversion matrix [Trb] from R] to B],
giving:
Trbnl Trb71"1
Trbn =
0 -2Trbwl
Trbu = +1 (4.20)
Eqn. 4.19 may therefore be finally written as:
(4.21)
(4.22)
2" (=0
may be observed.
The inverse of [Trb] will provide the conversion matrix from B] to R], i.e.:
R =
] H"1B]
= [Tbr]B]
whence it readily follows from eqn. 4.20 that:
Signatures and self test 137
n l
Tbr n - l
Tbrw = 2Tbr n-1
-Tbr
Tbr°=+1 (4.23)
(iii) The r to c- coefficient relationships:
From eqns. 4.10, 4.11 and 4.16, the Reed-Muller positive canonic c-
coefficients are related to the r spectral coefficients by:
C| = |T n X
Jmod2
= T — |Hd|R (4.24)
mod 2
(4.25)
Trc 7 1 - 1 Trc""1
Trc = n-\
2Trc mod 2
Trc°=+1 (4.26)
The inverse of [Trc] will provide the conversion matrix [Tcr] from C] to R],
i.e.:
R] = [Trc]-^]
= [Tcr]C]
where it readily follows from eqn. 4.25 that:
rc-l
0 Tcr
Tcrw =
2Tcrn"1 -Tcr n - l
Tcr0 = +1 (4.27)
Further information on the relationships between these coefficient vectors,
and between the very many variants of complete orthogonal transforms
which may be proposed instead of the Hadamard transform, may be found
in References 19, 37-39.
138 VLSI testing: digital and mixed analogue/digital techniques
l" •
-1 •
1 •
-1 •
-1 •
1-1 1-1-1 1-1 1 1 6
-1 •
•
r-H
[Hd] y] s]
The same is true if the {0,1} function vector X] is used instead of Y], the
actual coefficient values being scaled as indicated by eqn. 4.15. In the above
example the given function is almost xx © x§, indicated by the value of s13
being close to maximum value, being one minterm different from exactly
xl © x§. Any change (fault) in the given function will clearly change one or
more of the spectral coefficient values.
The same considerations can be applied to all other coefficient vectors
which represent a given function vector X]. All may therefore be regarded as
some correlation value between the network output f(X) and a further
function of the primary inputs, the mathematical relationships between the
actual values being as developed above. Hence, the commonality between
many single-count signature proposals may be regarded as a search for the
simplest test signature for f(X) covering all fault conditions. At one extreme
we have the situation where f{X) is correlated with itself, see Figure 4.5a;
clearly this is not a practical proposition except in exceptional circumstances,
since the test generator is then a duplicate of, and therefore the same
complexity as, the network under test. At the other extreme we have the
situation where J[X) is correlated with logic 1 (or 0), see Figure 4.56, which is
the syndrome count. The syndrome count is therefore the most simple (and
the weakest) of all the correlation coefficients available in the spectral
domain data. The two remaining examples shown in Figure 4.5 represent the
use of higher-ordered spectral coefficients as signatures. In all cases a near-
maximum count is usually considered to be an ideal objective.
The present status of the arithmetic, Reed-Muller and spectral coefficients
as test signatures is generally as follows.
(i) The bi arithmetic coefficients
The use of the bi coefficients as test signatures has been proposed by
Heidtmann29. This work has been shown to have a certain mathematical
commonality with the so-called probabilistic treatment of combinational
networks40, but the results appear to offer little attraction in comparison with
spectral coefficients, see below.
(ii) The ci Reed-Muller coefficients
As far as is known the c% coefficients do not appear to have been widely
considered as test signatures. If the network heavily involves odd and even
parity functions (exclusive-OR and exclusive-NOR relationships), then the ci
coefficients have obvious attractions, but in general little advantage has been
found for their use as test signatures. Some further work and further
references may be found in Upadhyaya and Saluja25 and in Damarla and
Karpovsky41.
(iii) The si (or r.) spectral coefficients
Because of the richness of information content in the spectral coefficients, a
very great deal of research has been expended upon their possible use for
140 VLSI testing: digital and mixed analogue/digital techniques
output
network f(X)
primary under counter
inputs test
correlation
test vector f(T)*f(X)
generator
f(T)
output
f(X)
counter
x
n i* \
\
f(T) = logic Oor 1
corr
y output
X
1 f(X)
x2 cou
iter
x
n i
f
corr
correlation
Figure 4.5 Test signatures based upon the correlation between the output f (X) and a
test generator^f(T) over the exhaustive input sequence of 2!1 test vectors
a the ultimate situation off(X) compared against a copy of itself
b f(X) compared against logic 0 or logic 1, which is effectively the
syndrome count
c f(X) compared against a single primary input xit - the spectral
coefficient si (r?)
d j{X) compared against the exclusive-OR of two primary inputs x-® Xj,
= the spectral coefficient s- (r-)
Signatures and self test 141
test signature
signature analyser
hardware
Figure 4.6 The signature analysis circuit, where the test probe may be manually
applied to any accessible node of the network under test
are sequential elements in the network under test, provided that the
network is full initialised at the beginning of each test, and (usually)
that appropriate test nodes are available within the network10'55.
The state diagram of a simple four-bit LFSR signature analyser is shown in
Figure 4.7, with logic 0 and logic 1 as the data input at each state. Any cycle
of movement around this state diagram is possible depending upon the data
input. Only when the data input is 1, 0, 0, 0, 0, ... does the normal pseudo-
random M-sequence result. Notice the return to the all-zero state from the
0 0 0 1 state if the data input is logic 1.
The theoretical fault masking (aliasing) property of this signature analyser
is readily shown. Suppose the number of bits in the serial input stream to the
LFSR is m (which in practice may be the result of some exhaustive input test
sequence), and the number of stages in the LFSR is n, where n < m, then the
total number of possible serial input sequences is 2m, but the number of
possible different residual signatures in the LFSR is only 2n. Therefore, if all
possible faults in the input bit stream are considered to be equally possible,
we have one fault-free bit stream and the correct LFSR signature, with 2m - 1
faulty bit streams of which 2 m ~ n - 1 give the same signature as the fault-free
input. The probability of fault masking is therefore given by:
-1
xl00%
I
serial data
input, 0 or 1
D Q D Q D Q
data
input 0
^data
input 1
Figure 4.7 The state diagram for a simple four-stage signature analyser, xvith the
characteristic polynomial P(x) = l + x 3 + x ^ in the LFSR. Practical
circuits may contain, say, 16 stages rather than the four shown in this
example. Notice also that it is ahuays possible to moyefrom one state to any
other state with a maximum of n data input bits, where n is the number
of stages in the LFSR (four in this simple example)
Signatures and self test 145
cy>n — n
pfm =
= — xlOO%
T (4.28)
This result may also be developed by formal algebraic means, using
polynomial relationships as introduced in Chapter 3 when considering
maximum length autonomous LFSR generators. We are, however, now
interested in the residual number remaining in the LFSR stages after
completion of a test, rather than the output sequence produced during the
test, which requires slightly different polynomial considerations from those
in Chapter 3 as follows.
The polynomial relationship between an input bit stream, the LFSR output
sequence from the final stage and the residue remaining in the LFSR comes
from classic data encoding and error-correction theory56, and is the
polynomial division:
l(x) . , R(x)
- 4 4 = G(*) + -7-T (4 29)
l4
D(x) K }
D(X) -^yj
where I(x) is the data input bit stream expressed as a polynomial in x, D(x)
is the appropriate divisor polynomial, G(x)is the final output sequence and
R(x) is the residue remaining in the LFSR.* For example, should I(x) be x 6
+ x4 + xl +1 and D(x) be x4 + x3 + 1, then the polynomial division is as follows
(note that we will drop the power of 1 in xl from here on):
4 S \ 6 A
+ x2
x5 x4 + x2 + x
X x4 +x
2
x +1
giving the quotient G(x) = x + xand the remainder R(x) = x2 + 1. Multiplying
2
x2 + x by D(x) and adding R(x) will check that I(x) was x6 + x4 + x+ 1. The
different emphasis here compared with the polynomial developments in
Chapter 3, and in particular the developments from eqn. 3.22 on, must be
noted, namely:
(i) The polynomial division G(x) = \/P(x) of eqn. 3.22 gave directly the
resulting sequence of logic Is and Os in the first stage of a type A
* An alternative way of expressing the residue R(x), losing the information content
of G(x), is R(x) = [I(x)] mod D(x), where [/(*)] mod D(x) means the residue
(remainder) which is present when the polynomial I(x) is divided by the polynomial
D(x). This will be used later in Chapter 5, Section 5.5.1.
146 VLSI testing: digital and mixed analogue/digital techniques
* A correction may be applied to the value18 of R(x) given by eqn. 4.29 to give the
remainder in a type A circuit, see Yarmolik , but we will not pursue this here.
Signatures and self test 147
serial data
input
serial data
I input
icH
Figure 4.8 The two principal LFSR circuit configurations (cf. Figure 3.20). The taps
for maximum length pseudorandom sequence generation are shown
a type A
b type B
the input bit stream is 1 1 1 1 0 1 0 1 0 * , which may be expressed as:
/(*) = xs + x7 + x6 + x5 + xs + x
The polynomial division is therefore:
1
+ x7 + x6 + x5 + x3 + x
or alternatively using the {0,1} notation:
10 1 1 1 1
1 1 0 ill 1 1 1 0 1 0 1 0 STOPl
1 1 0 1
1 0 0 1
1 1 0 1
1 0 0 0
1 1 0 1
1 0 1 1
1 1 0 1
1 1 0 0
1 1 0 1
0 0 1
* Bit streams for polynomial division purposes are written with the first received bit
on the left, with additional bits received later added on the right.
148 VLSI testing: digital and mixed analogue/digital techniques
= 1 1 00 0 0 1 1100 1ill
1
For the signature analyser circuit of Figure 4.8b we have the divisor
polynomial:
D(x) = x8 + x7 + x 3 + x2 + 1
Signatures and self test 149
signature
from the eigth
serial input bit
signature
from the ninth
serial input bit
Figure 4.9 A simple three-stage type B LFSR to illustrate the polynomial computation
of the signature of a data input bit stream
a the signature analyser
b state diagram and final signature. It is coincidental that all 2n possible
states of the shift register are present in this example
giving the polynomial division:
x8 + x + xs + x2 + 1 ) 1 0 0 0 0 -
= 1 1 0 0 0 110 1)100 0 0-
Hence, because D(x) is the reciprocal of P(x) but is necessarily used in the
reverse order in eqns. 3.22 and 4.29, the {0,1} numbers representing the
polynomial divisors become identical. Remember, however, that the n-bit
wide remainder involved in these polynomial divisions is only exact for the
circuit configuration of Figure 4.86.*
* It is left as an exercise for the reader to appreciate that the time events leading to
the development of eqn. 3.22 were going into past time from left to right in the
numerator of eqn. 3.22, but in eqn. 4.29 the numerator goes into future time from left
to right. This is consistent with the polynomial division in each case.
150 VLSI testing: digital and mixed analogue/digital techniques
from which it will be seen that the three results are related by mod2 addition.
In particular, given the signature of the healthy input bit stream Ih(x) and the
signature of the error bit stream E(x), the signature of the faulty bit stream
IAx) is the mod2 addition of the two signatures.
The significance of the last statement is that the faulty bit stream signature
will be identical to the healthy bit stream signature if and only if the signature
of the error bit stream is all zero. In other words, the error bit stream must be
exactly divisible by the divisor polynomial D{x) for fault masking (aliasing) to
occur. This result applies equally to both the type A and type B LFSR circuit
configurations of Figure 4.8, and for any generating polynomial. When the
LFSR degenerates into a simple shift register with no exclusive-OR taps, the
above mathematics still holds, and aliasing will obviously occur when the final
n bits of the input data bit stream are identical in the healthy and faulty cases,
irrespective of the preceding (m- n) input bits.
The rigorous proof of polynomial operations in GF(2) may be found in
Peterson and Weldon56; detailed considerations of their application of
signature analysis may be found in Bardell et al.10 and elsewhere18'57"63.
These considerations include analyses of the probability of fault masking, the
security of the signature for one, two or more faults in the input bit stream
and other aspects such as the choice of the polynomial which need not neces-
sarily be that for maximum length pseudorandom sequence generation.
However, let us look at what can happen with the final n bits of a data input
bit stream. As shown in Table 4.4 for a four-stage (n = 4) LFSR, the final n bits
of an m-bit data input bit stream can always be chosen so that fault masking
occurs, irrespective of the faults in the preceding (m- n) bits. This agrees
with the previous polynomial division of the error bit stream E(x), since the
final n bits of E(x) can always be chosen such that the polynomial division
E(x)/D(x) leaves a zero remainder count.
However, if the input data bit stream is correct up to the (m - n) th bit, then
it is not possible to have a fault-free signature if there are one or more errors
in the final n bits. Also, if there is only one bit error anywhere in the m-bit
input data, there is no way that aliasing can occur and a fault signature always
results. Two faults, however, may cancel to give the fault-free signature. It is
left as an interesting exercise for the reader to evaluate the polynomial
division of E(x) and D(x) where E(x) covers only one faulty bit, i.e. has only
one 1 in its polynomial, and hence confirm that an all-zero residue R(x) is
impossible. Two bits faulty may be investigated by doing two single-bit fault
divisions and adding mod2 the two resulting R(x) values, and so on.
The examples above have, for simplicity, been done with only three or four
stages in the LFSR. The original Hewlett Packard analyser, as previously
mentioned, had 16 stages, and therefore had a theoretical aliasing probability
value of
— = 0.000015...,
i6
152 VLSI testing: digital and mixed analogue/digital techniques
Table 4.4 The data in a four-stage (n = 4) type A signature analyser with exclusive-
OR taps on x? and x4 back to the input, shoiving aliasing on the final
signature
Input bit Fault free Faulty Faulty
input residue input residue input residue
# #
•
m-4 0 1 00 M M 1 01 1
m-2 1 10 10 1 1 11 1 1 11 0 1
m-2 1 0 10 1 0 0 1 1 1 1 0 110
m- 1 1 00 1 0 0 00 1 1 1 00 1 1
m 0 1 00 1 1 1 00 1 1 1 00 1
Signature analysis, however, only deals with one output bit stream at a time.
For multiple-output networks signature analysis would need to be done on
each output in turn for a complete system check. Therefore in the next
chapter we will continue this general concept but with multiple data inputs
to the LFSR; as will be detailed, this involves a multiple-input shift register
(MISR) configuration, which will be seen to be an essential part of a built-in
self test (BIST) strategy which has superseded the single-input signature
analyser for VLSI test purposes.
self test
information redundancy hardware redundancy built-in test software built-in test hardware
(parity codes, residual (duplicated or
codes, Hamming triplicated systems,
codes, etc.) etc., with continuous
monitoring and voting test/check software hardware
check circuits, for programs run when reconfigured from
example see the computer system normal mode to test
Figure 4.20) is not running normal mode for testing
operating programs purposes
signals on the additional output line(s) being related to the healthy (fault-
free) output signals by some chosen logical or mathematical relationship.
Any disagreement in this relationship between the two sets of output signals
will be detected as a circuit fault. This basic concept is illustrated in Figure
4.11, and clearly involves some additional hardware over and above the
normal system complexity.
The simplest form of this self-checking concept is to generate one
additional output from the check bit generation box shown in Figure 4.11,
such that odd (or even) parity always exists when the system is fault free
on the m + 1 output lines (m lines from the normal operating system plus
the one check bit line). For odd parity checks the number of logic 1
bits should always be an odd number; for even parity checks the
number should always be even. If this is not present then there must be
some fault in the operating system, or in the check bit generating circuit.
(The circuit details of checker circuits themselves will be mentioned
later.)
The single-bit parity check for a trivial example is shown below for both
odd and even parity. Odd parity may be preferred in practical situations since
it always results in at least one 1 appearing in the output word. Any error in
one output bit will cause the (m + 1) bit output word to have the wrong parity,
and hence an error can be detected.
Signatures and self test 155
normal
primary operating primary
inputs system outputs
data (information)
check bits kj
fault-free/faulty
Figure 4.11 The organisation required for concurrent checking using information
redundancy, the check bits being generated from the primary inputs and
mathematically related to the fault-free system outputs
0 0 0 0 1 0 0 0
0 1 0 1 0 0 1 1
1 0 1 0 0 1 0 1
1 1 1 1 1 1 1 0
This simple single-bit parity check is error detecting for any single bit fault,
and for any odd number of faults, but is not error correcting. The addition
of further check bits, however, enables two or more bit error detection and
also error correction to be achieved.
Coding theory56'70"75 considers the bits which contain the system output
data as information bits, which together with the additional check bits make
up an output code word . With m information bits and k check bits, the output
word contains (m+k) bits which the checker circuit finally interrogates.
Notice that there is a maximum of 2m valid outputs, which occur if every
possible combination of the primary outputs is used, but 2m+k theoretically
possible output code words; hence the check bits are adding redundancy to
the total output, as they are only required for error detection/correction
purposes and not for any functional purpose in a fault-free system. The
single-parity bit check considered above is effectively detecting unused
combinations in the (m + 1) bit output word when a single fault is present.
Error detection and error correction thus depend upon having a greater
number of output code words than is necessary to convey the system
information; clearly if all the output code words are used to convey valid
system information there is no possibility of detecting errors by examining
the output patterns.
156 VLSI testing: digital and mixed analogue/digital techniques
Consider the correct and incorrect code words shown in Figure 4.12a.
Here the correct code words are 0 0 0 0 and 0 1 1 1 , but are separated by two
other code words which do not occur under fault-free conditions. The first
incorrect code word, 0 0 0 1, differs from the first correct code word, 0 0 0 0,
by one bit, and the second incorrect code word, 0 0 1 1 , differs from the
second correct code word, 0 1 1 1 , also by one bit. If either 0 0 0 1 or 0 0 1 1
is present then either a single-bit fault or a two-bit fault is detected, but if we
stipulate that only single-bit errors are possible then the output code 0 0 0 1
will also serve as an error correction, indicating that 0 0 0 0 is the proper fault-
free output. Similarly, 0 0 1 1 will indicate that the correct code word should
be 0 1 1 1. Thus the two intervening code words 0 0 0 1 and 0 0 1 1 act as an
error detection for the one or two bits in error in the two code words, or error
correction for the two code words for single-bit errors only. If the three least
significant bits were in error, then no error detection or error correction
would be possible. Figure 4.12& shows all the possible alternative pairs of
nonvalid code words between 0 0 0 0 and 0 1 1 1 which have the same
property as those in Figure 4.12 a.
We may further illustrate and generalise these considerations as follows.
Figure 4.13a shows the rniimensional hypercube construction for a four-
variable Boolean function, where each node on the hypercube represents
one of the 2n possible minterms of the function. Taking the example shown
in Figure 4.12 a, the two valid codes of 0 0 0 0 and 0 1 1 1 are shown by two
heavy dots, and to traverse from one to the other along the shortest possible
path involves traversing three edges in the hypercube construction. The two
code words 0 0 0 0 and 0 1 1 1 are said to be a Hamming distance apart of
three, which is identical, of course, to the number of bits which are of
different value in the two code words. The two code words 1 1 1 1 0 0 and
0 0 0 0 0 0 1, for example, are a Hamming distance apart of five. The other
alternative invalid code words shown in Figure 4.12b will be seen to be all the
possible routes of distance three between 0 0 0 0 and 0 1 1 1 . Further
examples using the hypercube construction may be found in Wakerly75.
Looking back at the simple single-parity bit example given above, the
correct code words (including the single-parity bit) for odd parity are
indicated on the n = 3 hypercube construction shown in Figure 4.13&. All
these valid code words will be seen to be a Hamming distance apart of two,
with the invalid codes a distance of one from adjacent valid codes. Hence,
single-bit error detection is possible, but not error correction.
We can summarise the requirements for error detection and error
correction as follows:
(i) the necessary and sufficient condition to detect E errors or fewer is that
the Hamming distance between valid code words is E+ 1;
(ii) the necessary and sufficient condition to be able to correct £ errors or
fewer is that the Hamming distance between valid code words is 2E + 1;
the latter condition is illustrated in Figure 4.14.
Signatures and self test 157
correct
output
1110 1111
valid code
word
0100
valid
code word
000 001
Kv K2 and K§ and the information bits Dv Z)2, Z>3 and D4, the seven-bit output
code would be:
bit positions: 1 3 7
check/data: A
The check bits are calculated for each fault-free output such that:
X3 = D 2 ©D 3 ©D 4 (4.31)
For example, if the information bits Dv D2, D$, D4 are 0 10 1, then the check
bits Kv K2, Ksmll be 0 1 0 and the Hamming code word will be 0 1 0 0 1 0 1.
Signatures and self test 159
6 o - - - o O---O 6
correct correct
output invalid invalid output
code code words code words code
word word
Figure 4.14 The necessary and sufficient conditions to correct E errors in an output
code word. E + 1 to 2E errors will be detected but not corrected
(Acknowledgements, Reference 72)
Notice that the three groups KXDXD2D4, K2DXD3D4 and K3D2D3D4 each form
an even-parity check under fault-free conditions, or in other words:
Tf (T\ T\ ST\ 7~\ /T\ T\ f\
K2 0 Dx 0 Z)3 0 D4 = 0
K3®D2®D3®D4 = 0 (4.32)
Suppose with the above example that the Z)3 information bit was corrupted
from 0 to 1, giving the codeword 0 1 0 0 1 1 1 . If now the above parity eqns.
4.32 are computed we will find:
0 0 0 0 1 0 1 = 0 (l.s.b.)
1000101=1
0 0 1 0 1 0 1 = 1 (m.s.b.)
Reading these resultant outputs as a three-bit binary number with the first
equation giving the least significant bit, the number 1 1 0 = decimal 6 gives
the location of the incorrect bit in the seven-bit code word. Z)3, the sixth bit,
may therefore be corrected. It is left as an exercise for the reader to confirm
that any one-bit error, including errors in Kv K,2 and K^ is located by this
procedure. The location number produced by the above is sometimes termed
the error address.
This Hamming code has a Hamming distance of three between valid code
words. It can therefore detect but will not correct two bits in error. If two bits
are in error, the decimal number which results from computing the parity
equations of eqn. 4.32 will not give sure information for the correction of one
or other faulty bit. However, the addition of one further check bit, K4, which
checks for even parity over the whole eight-bit code word can be proposed
which will detect when any odd number of bits are in error75'76. This may now
be used with the previous fault detection capability given by Kv K2 and K^ to
distinguish between a single correctable fault and a two-bit incorrectable
fault.
160 VLSI testing: digital and mixed analogue/digital techniques
Hamming codes are widely used to detect and correct errors in memory
systems, particularly where the word width is large. They are not so commonly
used for general combinational logic networks, because the necessary
overhead becomes unacceptable unless there are a very large number of
output functions Zj to zm (see Figure 4.11). Table 4.5 indicates the overheads
for an increasing number of information bits for single-error correction/
double-error detection, with and without the parity bit; the overhead penalty
obviously becomes less significant as m increases.
4 3 7 75 4 8 100
8 4 12 50 5 13 62.5
16 5 21 31.2 6 22 37.5
32 6 38 18.7 7 39 21.9
48 6 54 12.5 7 55 14.6
64 7 71 10.9 8 72 12.5
check on
possible check
the individual
columns on the checks
of bits
• one column
code word
no effect
• • 1 • \ • • • • • 1» 1 • • • • -^—
" on row parity
• • 1 »1 • • • • • 1 > 1 • • • • -*—
i i ,
For eight bits of information the total number of bits in the output checker
is therefore 12; for 16 bits of information the total is 21, etc.
The Berger code generator is designed to generate the appropriate
code from the primary inputs in the same way as we have previously
considered, see Figure 4.11, thus making the output check bits continuously
available alongside the normal primary outputs. The checker circuit also
calculates this number by counting the number of zeros present in the
m output bits, which it then compares with the generated check bits for
agreement. Any disagreement between this output count and the number
represented by the generated check bits indicates some internal circuit
fault.
However, additional security has been proposed by including a parity check
on the primary inputs, see Figure 4.16. The Berger code generator circuit
now generates a binary output code which represents the expected number
of zeros in the information output plus the input parity, which the checker
circuit continuously compares against the number of zeros it monitors in the
m + 1 output data bits. The advantage of this expanded Berger code is that it
enables detection of any single fault to be made whether internal or on a
primary input line80.
The particular strength of the Berger code as an online checker is for what
have been termed undirectional faults in the normal operating circuit, that is
additional 1-valued minterms are either added to or subtracted from blocks
of Is in the primary outputs under fault conditions. This will be recognised
as classic failure characteristics of PLAs (growth faults, shrinkage faults, etc.),
and hence Berger online checking has been advocated particularly for
PLAs88'89. The Berger code generator and the input parity check circuit are
made using additional product and sum lines in the PLA, with the checker
circuit as a separate entity at the PLA output. We will come back to this again
in Chapter 6, where we will be particularly concerned with the testing of
strongly structured circuits such as ROMs and PLAs.
Signatures and self test 163
m + 1 data bits
fault-free/faulty
Figure 4.16 Online checking using Berger coding for the check bits with the addition
of an input parity check, thus giving m + 1 data bits
i - • output bits
binary
arithmetic output number
operation
residue
generator, R0UT
residue
generator, ft,
same
arithmetic
operation
residue
generator, R2
checker
Figure 4.17 The application of residue coding for the automatic detection of errors in
arithmetic systems
xl X, x3 x4 N R
0 0 0 0 0 0
0 0 0 1 1 1
0 0 1 0 2 2
0 0 1 1 3 0
0 1 0 0 4 1
0 1 0 1 5 2
0 1 1 0 6 0
0 1 1 1 7 1
1 0 0 0 8 2
1 0 0 1 9 0
Signatures and self test 165
Expressed another way, Ris the residue (remainder) when JVis divided by m.
Ris encoded in normal binary, thus requiringl~log2 m\ bits; the above mod3
example therefore has the six-bit binary coding:
Information bits Check bits
0 0 0 0 0 0
0 0 0 1 0 1
0 0 1 0 1 0
0 0 1 1 0 0
0 1 0 0 0 1
The generation of these binary check bits directly from the binary
information bits may be done by a tree of simple circuits88, but the hardware
need not concern us at this stage.
Residue codes, like Berger codes, are separable codes in that the check bits
may be treated separately from the information bits. Unlike Berger codes,
residue codes have the property that the check bits of two input numbers N^
and N2 which are added or subtracted or multiplied may themselves be
added, subtracted or multiplied to give the check bits of the output number,
that is the check bits of the result can be determined directly from the check
bits of the input operands. This property has been called independent
checking57. For example:
The schematic for the self checking of addition and multiplication using
residue coding is therefore as shown in Figure 4.18. This may be generalised
for the self checking of a general-purpose arithmetic logic unit (ALU) by the
addition of appropriate controls to cover addition, subtraction, multi-
plication and division of the two primary input numbers86'88.
The application of residue coding to the Boolean operations of AND, OR,
exclusive-OR is not so straightforward, and additional manipulation is
necessary to convert the Boolean relationships into arithmetic ones. (This has
been briefly encountered before in Section 4.4.1 in another context.)
Considering the arithmetic operations of multiplication and addition and the
Boolean operations of AND, OR and exclusive-OR (XOR), we have the
relationships shown below for two bits nx and n^. Note that we are using the
symbol n here to represent AND and u to represent OR in order to
differentiate between Boolean operations and arithmetic ones.
n
2 Arithmetic Arithmetic Boolean AND Boolean OR Boolean XOR
multiplication addition n,un2
n
i+n2
0 0 0 0 0 0 0
0 1 0 1 0 1 1
1 0 0 1 0 1 1
1 1 1 2 1 1 0
Boolean AND:
nx n n<£ = nx x n^
Boolean OR:
nx U n^ = {nx + n^) - (nx X n^)
Boolean XOR:
nj © ny = (nx + n^) -2{nx X n^)
\B
>\
sum
output
(A + B) residue
generator
checker
equality
comparison
fault free/faulty
(A x B) residue
generator
checker
equality
comparison
fault free/faulty
Figure 4.18 Self-checking addition and multiplication using mod^ residue coding
a addition
b multiplication
168 VLSI testing: digital and mixed analogue/digital techniques
xN mod 3
2
mod 3 mod 3
mod 3
We will look into circuit details for the checker circuits involved in online
checking later in Section 4.6.3.
R
I I
H H possible
/^connection
inputs
outputs
Figure 4.20 Triple modular redundancy (TMR), where the modules M may be very
complex or less complex such as individual arithmetic logic units
output which is a majority verdict on its input data. Clearly the integrity of this
voting circuit is crucial, but if its circuit complexity is considerably less than
that of the modules it is monitoring, its reliability will be very much higher
than the individual module reliability; redundancy circuit techniques may
also be built into it without a high economic penalty.
If it is assumed that the failure rate of electronic circuits and systems in
service is constant,* then the probability equations for equipment reliability
and availability readily follow. The starting parameter is the failure rate (also
known as the hazard rate) of a component or module, X, where X is defined
as the number of failures per unit time as a fraction of the total population,
which is normally expressed as a percentage failure rate per hour or per
1000 hours or per year. For example, a value of X = 0.05 % per 1000 hours
(or 0.05 x 10"3 % per hour) means that in a population of 10 000
components we have an average failure of:
10000 x - — = 5 failures per 1000 hours
= 0.005 failures/hour
The mean time between failure, MTBF, is given by the reciprocal of the
failure rate, which for the above example would be:
1
MTBF =- • = 200 hours
0.005
The reliability, R(t), of a component or module is the probability of no failure
over a given time, U and is always calculated for X constant over this period of
time. With X as the known failure rate of a component or module, the
reliability is given by:
* This is generally true if early failures have been detected and corrected during
assembly, test and installation, and that no final wear-out period has been reached.
This gives the familiar bathtub characteristic of failure rate plotted against time1.
172 VLSI testing: digital and mixed analogue/digital techniques
_ -//MTBF
where X is the failure rate per hour and t is in hours. This gives the familiar
reliability curve shown in Figure 4.21 a, with 100 % reliability (no failures) at
time t = 0 but only a 36.8 % probability of no failures by the time t = MTBF. A
further parameter mean time to repair, MTTR, that arises in the servicing of
equipment may also be encountered, which together with the MTBF gives the
availability of a system98'99, availability being defined as:
MTBF
(4.34)
MTBF + MTTR
We will, however, have no reason to consider MTTR here, but will continue
with MTBF and R(t) considerations only.
The theoretical reliability of any system consisting of identical components
or modules in series or parallel may be readily determined. However,
distinction has to be made between:
(i) systems in which every individual module must function if the complete
system is to be functional;
(ii) systems in which one or more individual modules may fail without
causing a complete system failure, i.e. some redundancy is present.
The simplest case of (i) above is a system with two or more modules in series.
For two modules in series the system reliability will be the product of the
individual reliabilities; if ^'identical modules each with a reliability, R(t)it are
in series then the overall reliability will be the product:
R(t) 7, = f W ) . (4-35)
V /overall XX Wg
i=l
Clearly, reliability falls with a series system, and therefore is detrimental.
Parallel systems constitute case (ii) above. Triple modular redundancy has
the reliability factors following, again where R(t)i is the reliability of each
individual module:
The first term (R(t){)^ is the probability of all three modules functioning until
time t, the second term is the probability of two out of the three modules
functioning until time t and the third term is the probability of only one
system still being functional at time t. An alternative way of expressing this is
to consider the unreliability U( t) of a module, where U( t) is the probability of
the module being faulty at time t and where R(t) + U(t) = 1. Then, writing R
for R(t)i and £7for U(t)i9 we have the binomial expansion:
R(t) = e-mTBF
0.368 -•
• • increasing time
reliabillity R(t)
1.0
0.5 --
single system (simplex)
increasing time
= R3+3R2(l-R)
= 3R2-2R* (4.38)
This result assumes that the majority voting circuit, V, of Figure 4.20 has a very
high reliability in comparison with the reliability value of the more complex
modules, M.
174 VLSI testing: digital and mixed analogue/digital techniques
try
another module disagreement detector
active
modules
uit
2
a
ction
/ *• 4 /+> OUtput
©
CO
M4 / ^
standby
modules \
Figure 4.22 The concept of hybrid modular redundancy, where a faulty active unit
may be switched out of service and replaced by a standby unit so as to
maintain full active redundancy in the system
then any fault in i^will sooner or later give a detectable erroneous output
during normal operation with valid input data.
The checker circuits that we will be considering below will be totally self
checking unless otherwise stated, and the possible internal faults will
generally be single faults only and not multiple faults in the circuit.
Three principal variants of checkers are required, namely:
• parity checkers;
• equality checkers;
• m out of n checkers.
All are required to provide an output indication for fault-free valid
information data, and another indication for faulty (invalid) information
data. In a perfect world a checker could be a single-output circuit with an
output, say, logic 1 for fault-free data and logic 0 for faulty data. However, this
clearly is not secure, since a single stuck-at fault at the checker output will give
incorrect results. Also, it is not possible to test for a stuck-at fault condition
using the normal input information data, since if the checker output was
stuck at 1, where 1 represents fault-free input information, it would require
applying faulty data (a noncode word) to the checker inputs to test for this
fault.
Hence two checker outputs are normally used as indicated in Figure 4.23,
the two outputs giving a 1 out of 2 output code for all fault-free conditions.
The checker outputs therefore are:
0 1 or 1 0: valid system information (fault-free data)
0 0 or 1 1: invalid system information (faulty data) or some checker
circuit failure
Such an arrangement is often termed a two-rail checker. In fault-free
operation the checker outputs will continuously change between 0 1 or 1 0
depending upon the particular information input word, and this dynamic
action is itself a self test of the checker circuit.*
Self-checking parity check circuits are readily made using exclusive-OR (or
exclusive-NOR) circuits, since any single failure will give a wrong answer (0 0
or 1 1) at the two-rail output under some fault-free input conditions. Figure
4.24 shows the circuit realisations for odd and even parity checks, the outputs
always being 0 1 or 1 0 when the information data and the checker circuit are
both fault free. In the general circuit for m information data bits shown in
Figure 4.24c and d, the inputs to the two multiple-input exclusive-OR circuits
must be disjoint, that is each data input must be connected to one or other
but not both exclusive-ORs. Some additional circuit complexity within the
exclusive-OR networks to cover certain open-circuit failings has been
* It may be noted that in many digital logic control systems where safety or fail-safe
operation is involved, all critical circuits are dynamic, continously switching under
fault-free conditions. This ensures that any stuck-at 0 or stuck-at 1 failure will be a
safe-side failure.
Signatures and self test 177
\ two-rail checker /
\ circuit /
TT
C
1 C2
final check output
0 1 or 1 0 = fault-free
0 0 or 1 1 = faulty
Figure 4.23 The two-rail checker requirements; see also Figures. 4.11, 4.17 and 4.18
z1 z
?
Z
3 C
1
cz
0 0 0 0 0
T 0 1 0 I
1 0 0 1
0 1 1 0 0
0 0 1 ,_J
L.1
1 0 1 1 1
1 1 0 1 1
[il 1 1 1
*fault free
•valid, fault-free
i i i r
TT
*two-rail checkers
as in a
C C
1 2
0 1 or 1 0 for all
valid inputs
Figure 4.25 Self-checking circuits to combine two or more 1 out of 2 codes and provide
a single secure 1 out of 2 output
a check for axa,2 and bxb2 both valid 1 out of 2 codes
b extension to more than two pairs of 1 out of 2 inputs
It is therefore possible to select any m out of n input condition by
monitoring sm=l, sm+l = 0 from such an array,* but like the circuits shown
* Note, unlike the previous checker circuits, this particular structure is not fault secure
since it does not have independent subcircuits providing the two outputs, and
therefore in practice cannot be considered for use as an m out of n self checking
checker.
180 VLSI testing: digital and mixed analogue/digital techniques
a3 b3 a4
*self-checking
two-rail checkers,
see Figure 4.25a
Figure 4.26 Self-checking checker circuit to check the equality of two information
words A andB, luhereA = a ^ a g . . . andB = bjb 2 b 3 . . .
in Figure 4.27 there is a severe penalty in that the response time of all these
cellular arrays is poor because of the number of gates in series between
inputs and outputs. Because of this factor, alternative m out of n checker
circuits have been proposed which minimise the number of levels of series
gating.
The alternative nonarray circuits which have been disclosed for m out of n
checker circuits106"110'112 generally fall into two categories, namely:
• those which adopt appropriate AND/OR networks preceding a k out of 2k
checker, these networks converting m out of n input words into k out of 2k
code words, k < m\
• the design of specific AND/OR circuits to convert m out of n input words
directly into 1 out of 2 output coding.
Comparisons between many of these proposals have been made by Lu and
McCluskey113 and others89'114. The first approach above may itself be divided
into two possibilities, namely:
Signatures and self test 181
z3 ZA c2
0 0 0 0 0 0
0 0 0 1 0 0
0 o 1 0 0 0
* IO 0 1 1 0 11
0 1 0 0 0 0
.'0 1 0 1 1 o!
'0 1 1 0 1 o!
0 1 1 1 1
1 0 0 0 0 0
"k! 1 0 0 1 1 o!
• 1 0 1 0 1 o!
1 0 •J 1 1
* \ 1 1 0 0 0 1!
1 1 0 1 1 1
1 1 1 0 1 1
1 1 1 1 1 1
k-1 cells
H r- -] r \V\\
m 1
i 1
Figure 4.28 The AND/OR cellular array providing 1 out ofn (OR) through to n out
ofn (AND) output information
These two alternatives are illustrated in Figure 4.29. In the first case if, say, a
2 out of 5 information code is present, then (|) =10 AND gates are required
to give a 1 out of 10 decode, each AND gate detecting one valid code word
z 2 )
i 2 hh* Z\Z4> •••' Z4Z5> w * tn s*x five"inPut OR gates then translating this 1 out
of 10 code into a 3 out of 6 code2'76'106'109. In the second case, the AND/OR
decoder converts the given m out of n information code into a 1 out of p code
where p = 6, but may be reduced to p = 5 for 2 out of n codes and p = 4 for m
out of (2m+1) codes2'76'109.
Figure 4.30 gives a circuit for a 2 out of 5 checker built upon the principles
of Figure 4.29&. The AND network produces all the ten possible product
terms of two variables, which the OR gates then translate into a 2 out of 4
code to the final checker. Notice that there are three levels of gating before
the final 2 out of 4 checker circuit, but the total number of gates is less than
would be the case for the equivalent circuit configuration of Figure 4.29 a
which in total would require ten AND gates and six OR gates to precede a 3
out of 6 checker circuit.
In contrast to Figure 4.30, the design of a minimal AND/OR checker
circuit for a 2 out of 5 code is given in Figure 4.31107. With just two levels of
gating this configuration clearly gives the potentially highest speed of the
various circuit possibilities, and also uses fewer gates than the circuits of
Figure 4.29. Notice that it requires the same number of AND gates as would
Figure 4.29a, namely (|), but the outputs from these gates have now been
Signatures and self test 183
I m out of n
I information coding
1 m out of n
system : J information coding
2 out of 4
••
i ! ^ coding
1
i }
1
'€ > o \
A
! 4
\
2 out of 4
AND/OR decoding checker, see
Figure 4.27a
Figure 4.29 Circuits to preceed k out of 2k self checking checkers to provide alternative
m out ofn checks
a two-level AND/OR with k out of 2k checker
b three (or more) level AND/OR with 2 out of 4 checker
partitioned such that a 1 out of 2 output code directly results for all valid
input codes. Should there be less than two input bits at logic 1, then clearly
the checker output will be 0 0; should there be more than two bits at logic 1,
say zv 2c2 and z^, then it will be seen that there will be an input to the upper
OR gate and an input to the lower OR gate, thus giving the checker output 1
1 to indicate the fault. Similar two-level circuit realisations are possible with
AND and OR gates at the first level of logic, with one AND and one OR gate
at the checker output 108 .
In looking at these several examples of m out of n checker circuits, it will
be apparent that there are strong structural and symmetrical relationships in
184 VLSI testing: digital and mixed analogue/digital techniques
2 out of 4
coding
Figure 4.30 The circuit for a self-checking 2 out of 5 code checker using a 2 out of 4
output checker
the final circuits, particularly in the partitioning of the input information bits
in input AND or OR gates. The two-level AND/OR circuit of Figure 4.31 is an
obvious example, and also the AND/OR relationships flowing through the
cells of Figure 4.27. Among the design algorithms which may be found for
these self-checking checker designs are those of Anderson and Metze105,
Marouf and Friedman109, Reddy107, Smith108 and others. We will not consider
the details of these algorithms here, but the design results they give will be
familiar from the above examples. If required, readers may find worked
examples in Lala2, Russell and Sayers76, and Breuer and Friedman89. The
later algorithms, which produce minimal checker circuits such as in Figure
4.31, are clearly more efficient than some of the earlier developments. Details
of the minimum number of test vectors necessary to check completely m out
of n self-checking checkers may also be found in the literature.
The checkers for Berger codes use a two-rail checker tree as shown in
Figure 4.26 to check the equality of the Berger check bits against the contents
of the output information. The schematic arrangement is shown in Figure
4.32a, where the check bit generator at the output calculates the number of
logic Os in the output data, which is then compared with the number
represented by the Berger check bits109. If these two binary numbers agree
then the output information is considered fault free.
The output check bit generator can readily be constructed from full-adder
modules. However, if the number of bits in the output information is 2*"1,
Signatures and self test 185
Figure 4.31 The circuit for a minimal AND/OR 2 out of 5 code self checking checker
| m-bit
} output
operating
system, see J information
Figure 4.16
complete
check
circuit
two rail
equality checker,
see Figure 4.26
ones-count
information binary-coded
data output
bits check bits
MAJ1
MAJ0
MAJ, majority
Z
33" output
verdict
triple systems/modules
MAJn
m three-input majority
inputs output voting circuits
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
inputs
outputs
Figure 4.34 The inclusion of majority voting between TMR partitions of a complex
system (cf Figure 4.20)
clock 1
clock 2
clock 1
clock 2
a
^voting J _
time
a = information data 1 1 0 latched into Q^Q2O3
b = information data 1 1 0 latched into Q^Q2Q3
c = majority verdict 1 latched into O1
d- majority verdict 1 transferred to output O8
z
/1 f n | J> • z / ! , z/2 agree/disagree
j) J) ^ z /2> z /3 agree/disagree
~*"z/1« z /3 agree/disagree
not economical ifjust the number of flip-flops is considered, but this to some
extent may be compensated for by simplified logic in the combinational
network. Self test of the one-hot sequential network is readily done by a 1 out
of N self-checking checker.
This basically considers only one primary output and not multiple
outputs. Proposals to combine two or more outputs to give a single
syndrome count which were noted in Section 4.3.111"16 have not been
found to be advantageous.
coded
primary primary
inputs outputs
Figure 4.37 Self test for sequential networks with coded primary outputs and coded
state variables (cf Figure 3.14)
4.10 References
1 O'CONNOR, P.D.T.: 'Practical reliability engineering' (Wiley, 1991)
2 LALA, P.K.: 'Fault tolerant and fault testable hardware design' (Prentice Hall,
1985)
3 ANDERSON, A, and LEE, P.: Tault-tolerance: principles and practice' (Prentice
Hall, 1980)
4 AKERS, S.B.: 'In the use of linear sums in exhaustive testing'. Proceedings of IEEE
conference on Design automation, 1985, pp. 148-153
5 TANG, D.T., and CHENG, C.L.: 'Logic test patterns using linear codes', IEEE
Trans., 1984, C-33, pp. 845-850
6 McCLUSKEY, E.J.: 'Verification testing: a pseudo-exhaustive test technique', IEEE
Trans., 1984, C-33, pp. 541-546
7 SALUJA, ILK., and KARPOVSKY, M.: 'Testing computer hardware through data
compression in space and time'. Proceedings of IEEE international conference on
Test, 1983, pp. 83-88
8 HURST, S.L.: 'Use of linearisation and spectral techniques in input and output
compaction testing of digital networks', IEE Proc.E, 1989, 136, pp. 48-56
9 SAVIR,J.: 'Syndrome-testable design of combinational circuits', IEEE Trans., 1980,
C-29, pp. 442-451, and correction pp. 1102-1103
10 BARDELL, PH., McANNEY, W.H., and SAVIR, J.: 'Built-in test for VLSI:
pseudorandom techniques' (Wiley, 1987)
11 AGARWAL, V.K: 'Increasing effectiveness of built-in testing by output data
modification'. Proceedings of 13th IEEE international symposium on Fault tolerant
computing, 1983, pp. 227-233
12 AGARWAL, V.K., and ZORIAN, Y.: 'An introduction to an output data
modification scheme', in [19]
13 BARZILAI, Z., SAVIR, J., MARKOVSKY, G., and SMITH, M.: 'Weighted syndrome
sums approach to VLSI testing', IEEE Trans., 1981, C-30, pp. 996-1000
196 VLSI testing: digital and mixed analogue/digital techniques
65 PRADHAN, D.K, and GUPTA, S.K.: 'A new framework for designing and
analysing BIST techniques and zero aliasing compression', IEEE Trans., 1991, C-40,
pp. 743-763
66 SMITH, I.F.: 'Measures of the effectiveness of fault signature analyses', IEEE Trans.,
1980, C-29, pp. 510-514
67 YARMOLIK, V.N., and DEMIDENKO, S.N.: 'Generation and application of
pseudorandom sequences in test and check-out systems' (Wiley, 1988)
68 TENDOLAKER, N., and SWANN, R.: 'Automated diagnostic methodology for IBM
3081 processor complex'./. Res. Dev., 1982, 26, pp. 78-88
69 TASAR, O., and TASAR, V.: 'A study of intermittent faults in computers'.
Proceedings of conference AFIPS, 1977, 46, pp. 807-811
70 HAMMING, R.W.: 'Error-detecting and error-correcting codes', Bell Syst. Tech. J.,
1950, 29, pp. 147-160
71 SELLER, F.F., HSIAO, M.Y., and BEARNSON, L.W.: 'Error detecting logic for
digital computers' (McGraw-Hill, 1968)
72 WILKINSON, B.: 'Digital system design' (Prentice Hall, 1992)
73 LIU, S., and COSTELLO, D.J.: 'Error control coding: fundamentals and
applications' (Prentice Hall, 1983)
74 WAKERLY, J.E: 'Error-detecting codes, self-checking circuits, and applications'
(Elsevier/North Holland, 1978)
75 WAKERLY, J.E: 'Digital design: principles and practice' (Prentice Hall, 1994)
76 RUSSELL, G., and SAYERS, I.L.: 'Advanced simulation and test methods for VLSI'
(Van Nostrand Reinhold, 1989)
77 JOHNSON, B.W.: 'Design and analysis of fault tolerant systems,' (Addison-Wesley,
1989)
78 BERGER, J.M.: 'A note on error detection codes for asymmetric channels', Inf.
Control, 1961, 4, pp. 68-73
79 SERRA, M.: 'Some experiments on the overhead for concurrent checking'.
Record of 3rd technical workshop on New directions in IC testing, Halifax, Canada,
1988, pp. 207-212
80 WESSELS, D., and MUZIO, J.C.: 'Adding primary input error coverage to
concurrent checking for PLAs'. Record of 4th technical workshop on New directions
in IC testing, Victoria, Canada, 1989, pp. 139-153
81 ANDERSON, A., and LEE, P.: 'Fault-tolerance: principles and practice' (Prentice
Hall, 1980)
82 PRADHAN, D.K. (Ed): 'Fault tolerant computing: theory and techniques'
(Prentice Hall, 1986)
83 SAYERS, L, and RUSSELL, G.: 'A unified error detection scheme for ASIC design'
in MASSARA, R.E. (Ed.): 'Design and test techniques for VLSI and WLSI circuits'
(Peter Peregrinus, 1989)
84 GARNER, H.L.: 'The residue number system', IRE Trans. Electronic Computers, 1959,
EC-8, pp. 140-147
85 AVIZIENIS, A.: 'Arithmetic error codes: cost and effectiveness studies for
applications in digital system design', IEEE Trans., 1971, C-20, pp. 1322-1331
86 MONTERRO, P., and RAO, T.R.N.: 'A residue checker for arithmetic and logical
operations'. Proceedings of 2nd IEEE symposium on Fault tolerant computing, 1972,
pp. 8-13
87 RAO, T.R.N.: 'Error coding for arithmetic processors' (Academic Press, 1974)
88 SAYERS, I.L., RUSSELL, G., and KINNIMENT, D.J.: 'Concurrent checking
techniques: a DFT alternative', in [19]
89 BREUER, M.A., and FRIEDMAN, A.D.: 'Diagnosis and reliable design of digital
systems' (Pitman, 1977)
90 FERGUSON, T.J., and RABINOWITZ, J.H.: 'Self-synchronizing Huffman codes',
IEEE Trans., 1984, IT-30, pp. 687-693
Signatures and self test 199
internal partition
normal
outputs from partition partition
rest of inputs outputs <
circuit
internal connection
with low controllability
multiplexer ^*T
test input — r
high controllability
connection
internal connection
with low observability
^multiplexer
normal
test
test output
high observability
connection
1 2 3 4 5 • • • • 12 13 14 15 16
dock j 1 1 1 1 t ftI
JUL
test mode control
1 2 3 4 *->*- 5 e> 7 8
1 9 10 11 12
1 13 14 15 16
clock t I 1i :;: 1 1 I t I
JUl
MIL
normal system
clock
test mode
(normally 0, — * to network
test mode 1)
Jl...
test clock
or manual
one shot
control
Figure 5.3 The need to partition very long counters in order to reduce testing time, or
to incorporate a separate test clock
a example 16-stage counter, outputs not shown, requiring 65 536 clock
pulses for an exhaustive test
b partitioned into four four-stage counters,test mode control details not
shown, each partition requiring only 16 clock pulses for an exhaustive
test
c the provision of a separate clock which may be required to step
through or stop part of the sequential circuit network separately from
other parts
at all cost avoid the use of on-chip monostable circuits; these must be off-
chip if really necessary. On-chip use some form of clocked counter-timer
circuit;
if at all possible avoid the use of asynchronously operating macros; make
all sequential circuits operate under rigid clock control unless absolutely
impossible;
ensure that all storage circuit elements, not only in counters but in PLAs
and random-access memory can be initialised before test; this also applies
to any internal cross-coupled NANDs and NORs which act as local
latches;
limit the fan-out from individual gates as far as possible so as not to
degrade performance and to ease the task of manual or automatic test
pattern generation;
provide the means to break all feedback connections from one partition
of a circuit to another partition (global feedback) so that each partition
may be independently tested;
consider the advantages of using separate test clocks (see Figure 5.3c) to
ease certain sequential checks;
avoid designing clever combinational modules which perform different
duties under different circumstances; in general design a module as
simply as possible to do one job;
keep analogue and digital circuits on a chip physically as far apart as
possible, with completely separate or very decoupled d.c. supply
connections;
when designing a complex VLSI custom IC ensure that the vendor can
supply details of the appropriate vectors necessary for the test of large
macros such as PLAs, memory, etc., and that it is possible to apply these
vectors and monitor the test outputs;
consider adding some online parity or other check bits if fault detection
or fault correction would be advantageous;
remember that a vendor's 100 % toggle test on internal nodes of a custom
IC does not guarantee a fully fault-free circuit;
controllability and observability numbers produced by analysis programs
such as SCOAP, HI-TAP, etc. do not give any direct indication on how to
design an alternative more easily tested circuit configuration;
some commercial IC testers may not cater for don't care conditions and
may require to know whether the actual design should give a logic 0 or a
logic 1 under given test conditions;
homing or synchronising sequences before the commencement of a
sequential network test are not always possible with some testers, or
acceptable; a specific test signal to initialise (reset) all sequential elements
at the beginning of a test should always be used;
statistical programs which estimate the fault coverage of a particular test
set should be treated with caution; they may work well with random
206 VLSI testing: digital and mixed analogue/digital techniques
* Different vendors have slightly different circuits, including possibly only one clock
which is switched to different duties when in normal or test mode.
208 VLSI testing: digital and mixed analogue/digital techniques
primary f primary
inputs -s outputs
(accessible) ^ * I combinational (accessible)
logic (gates)
secondary secondary
inputs (not outputs (not
accessible) accessible)
storage
(memory)
JLJUl
normal system clock
to the storage circuits
primary primary
inputs combinational logic outputs
secondary inputs
and outputs
I
normal ! normal
SDI D Q SDO
de-
r >ck
test test
serial mux serial scan
scan data data out
in Q
Figure 5.5 The multiplexing requirements on each stage of the storage network
primary I ,\ x
./» I primary
inputs ] ~/\
[outputs
^J
1
scan-in
n
reconfigurable reconfigurable reconfigurable „ scan-out
(SDI) ' storage storage storage (SDO)
see f • tfj
Figure 5.4 \ ]
Figure 5.6 Partitioning of a very large circuit into smaller blocks for test, using scan
test to give controllability and observability of each partition
The penalties that accompany the use of scan-path testing, however, should
be appreciated. In summary they are:
• each of the storage elements now becomes more complex due to the need
to switch from normal mode to test mode;
• chip size will increase, not only due to these larger storage elements but
also due to the routing of the additional interconnect;
• the maximum available speed may be lower due to the extra series gates
in the storage element circuits, possibly a loss of 1 or 2 ns in the maximum
toggle speed of the flip-flops;
• its adoption imposes constraints on the chip designer, with careful
consideration of the timing of clock pulses and also placement and
routing to optimise the chip layout for both normal-mode and test-mode
interconnections;
• a considerable amount of data has to be sequenced by the external test
resource in order to perform the large number of individual load and
test operations, and hence the total time to test will be much longer
than where parallel vectors can be directly applied to the circuit under
test.
In general, scan-path design and test is not necessary for ICs of less than, say,
one or two thousand gates; on the other hand some vendors recommend its
adoption for custom ICs of from five thousand gates upwards7"11.
Many company variants on scan-path testing have been developed. Details
of the most well known one, the IBM LSSD (level-sensitive scan design)
circuit and certain others will be given below, which will show the complexity
and hence silicon area overheads which can build up with scan-path IC
testing. Further general details may be found in References 6, 12-15.
Structured design for testability (DFT) techniques 211
input I/Os
test
output
Figure 5.7 Simple scan test of input I/Os, with the input vectors being applied at the
threshold limits of VIL and V IH
various stages during the testing phase. We will, therefore, for conformity use
the term latch in the following rather than perhaps the more customary term
flip-flop.
However, there still remains the choice between edge-triggered D-type
circuits, which switch on either the positive-going or negative-going clock
edge but are unresponsive to changing data on the data input, D, when the
clock is at steady logic 0 or 1, or level-sensitive circuits which respond to
changing input data whilst the clock is at logic 1 (or logic 0). The latter,
sometimes referred to as d.c. coupled or level sensitive, are independent of
the rise and fall times, tr and tf, of the clock edges, and hence can give more
reliable operation if tr and tf and other dynamic characteristics of the circuit
when under test cannot be guaranteed.
Structured design for testability (DFT) techniques 213
L1
system information
data in D^ Q] . system
information
scan data in (SDI) D2 data out
system clock C1 ck1
scan shift clock C2 ck2 Qb-
,. scan
data out
scan transfer clock C3 - (SDO)
L1 / L2 circuit
system input
(SDO)
scan shift
scan transfer
The most widely documented and known scan design is the level-sensitive
scan design (LSSD) of IBM first developed in the late 1970s. Several variants
of the first LSSD design were developed, differing mainly in the details of the
special storage circuit elements 15 " 18 . One of the early disclosed LSSD circuits
is shown in Figure 5.8; this will be seen to use two latches L\ and L2 per stage
controlled by three separate clocks Cl, C2, and C3, with separate system data
out and scan data out output lines.* Each stage is therefore similar to a
master-slave flip-flop, but with separate clocks and separate outputs.
In normal mode both the scan shift clock, C2, and the scan transfer clock,
C3, are inoperative, with the system clock, Cl, operating the LI latches only.
* Care should be taken in considering the LSSD circuit diagrams given in some
publications which show a triangular sign on the clock input of the latches, and which
normally indicates edge-triggeredflip-flopaction. Edge-triggered action is not present
in these circuits.
214 VLSI testing: digital and mixed analogue/digital techniques
However, since there is only this one level-sensitive latch between the
information data input and the information data output, race conditions may
be set up around LI and the combinational logic, as indicated by Figure 5.9a.
Hence, uncertain final logic signals may result unless design precautions are
taken.
The usual precaution taken is to segregate the combinational logic into two
blocks as shown in Figure 5.96 and to use two interleaved system clocks Cla
and Clb. By this means it is guaranteed that no feedback loop can exist, as no
changing input signal to any LI can take place while its particular clock is
active. The full LSSD scan test circuit therefore becomes as shown in Figure
5.9c, with clocks Cla and Clb being interleaved, and clocks C2 and C3 also
being interleaved. Further details and discussion of the importance of the
clocks and their timing may be found in Williams15.
The action of the complete circuit in test mode, therefore, is as follows:
(i) with system clocks Cla and Clb off, scan in a test vector using clocks C2,
and C3, which is directly fed from LI into the combinational logic;
(ii) switch off clocks C2 and C3 when scan-in is complete, and with the
appropriate primary input test vector record the primary output
response from the combinational logic;
(iii) at the same time, apply a single clock pulse Cl a followed by Cl b to load
the secondary output test response back into the LI circuits;
(iv) scan out this latched secondary output data by means of clocks C2 and
C3;
(v) check (ii) and (iv) for fault-free/faulty response of the combinational
network.
Notice that during the scanning out of the response data in (iv) the
secondary input data to the combinational logic from LI will be changing,
but this will not influence the data in the LI, L2 latches because the system
clocks Cla and Clb are inoperative. Notice also that the two nonoverlapping
clocks, C2 and C5, are critical for correct scan path action; if only one
clock was used or if C2 and C3 clock pulses overlapped, then both latch LI
and latch L2 would be simultaneously open to data, and a completely
transparent scan path through all stages would result. This will be recog-
nised as the same situation that has to be guarded against in a normal
master-slave flip-flop, and which is conventionally guarded against by using
clock Ck to clock the input master circuit and Ck to clock the output slave
circuit.
A major disadvantage of this early LI, L2 LSSD circuit is that the L2 latch
plays no part in the normal system operation, being idle except when in test
mode. A more economical LSSD circuit termed the L1/L2* (L1/L2 star)
circuit which uses both LI and L2 in the normal system operation is shown in
Figure 5.10. This is also a single latch normal mode configuration since only
one latch, LI or L2*, is present in each system data path when operating in
normal mode.
Structured design for testability (DFT) techniques 215
r combinational
logic
I—»4D~Q
>
r-jck
JUUL
clock C1 a
The action of this L1/L2* circuit should be clear from the previous L1/L2
circuit. Notice that four clock lines are still required, but the number of
L1/L2* circuits for a given network is halved in comparison with the previous
L1/L2 circuit where only one of the two latches was used in normal mode.
Strict segregation of the signals from LI and L2* back to the combination
logic partitions must be maintained as in the previous L1/L2 circuit in order
to avoid the possibility of any race conditions around combinational
logic/storage loops. However, there is now a problem with the scan out of the
response data from the combinational logic when in test mode, namely that
it is not possible to scan out response data held in LI and L2* at the same
time. Consider the circuit shown in Figure 5.10a: if test data from the
216 VLSI testing: digital and mixed analogue/digital techniques
primary y 1
inputs — T y
SDO
Structured design for testability (DFT) techniques 217
We may ignore gate G5 since this gate would not be incorporated if only a
single normal-mode latch was being designed. The literature also does not
count the inverter gates, but only the NAND gates.
Therefore, with case (a) above we have per normal mode latch:
• Agates in the combinational logic plus three in the latch, =(K+ 3) gates
total;
• four additional gates required for LSSD purposes;
• therefore overhead = 4/(X+ 3) x 100 %.
For case (b) above, we have per normal mode latch:
• ^gates in the combinational logic plus three in the latch, =(K+ 3) gates
total;
• one additional gate required per latch for LSSD purposes;
• therefore overhead = l/(K+ 3) x 100 %.
These results are shown in Figure 5.11, but should be treated with caution
since they are based upon a single NAND gate count, and do not consider the
silicon area required for the place and route of the additional clocks and scan
paths through the circuit. A figure of 25-30 % additional silicon area may
possibly be more realistic in most circumstances. Some concluding comments
on scan path design will be given at the end of the following section.
50 r-
40
single-latch design
30
20
single-latch design
with L2*
10
5 10 15
K combinational logic gates/latch
Figure 5.11 Theoretical overheads for single-latch LSSD design based upon a simple
NAND gate count only
scan data
in (SDIf 02 T
I scan data out
j (SDO)
primary^ primary
inputs combinational logic "" ouputs
SDO
L .y._..
sequential logic
i
shift register ^SDO
f ^ multiplexers
hA 7 h
n^rmfll \
mode/test \
mode control L.
primary , t
inputs normal system network ^ ^ primary
outputs
(iii) parallel load the resulting secondary input data back into the shift
register;
(iv) scan out and check this test response.
The combinational logic may be checked in a similar manner to that done in
the LSSD circuit, using the accessible primary data from the sequential
elements, but additionally the designer may choose to access certain internal
nodes in the combinational logic as well as the accessible primary nodes.
In comparing this scan-set technique with the previous scan test methods
there are certain advantages and disadvantages.
The advantages include:
(i) it does not require complex reconfigurable storage circuits in the
normal working network or additional clock lines in the network;
(ii) being separate from the normal working network, the scan-in/scan-out
shift register will introduce no additional race hazards or partitioning in
the normal-mode circuits;
222 VLSI testing: digital and mixed analogue/digital techniques
(iii) the scan-in and scan-out speed will be higher than systems using
reconfigurable storage circuits;
(iv) the working system may be monitored under normal running
conditions by taking a snapshot of the parallel data input to the scan
shift register.
The latter feature is particularly significant, since it allows the system
performance in normal mode and at normal operating speed to be
monitored, so that some measure of the dynamic performance of the
network may be possible.
The disadvantages, however, include:
(i) the silicon area overheads to build in a completely separate scan shift
register and route all the individual connections to and from the
working network may be higher than with LSSD or scan-path testing;
(ii) it may be difficult to formulate a good test strategy and decide which
nodes of the working system should be controlled and observed when
in test mode, bearing in mind that the normal system latches are not
disengaged when in test mode.
However, on balance this scan-set technique does offer acceptable test
advantages for certain applications of medium complexity, but not generally
for circuits of VLSI complexity. The serial shadow register, which we will cover
in Chapter 6, will be seen to use a separate scan-in/scan-out shift register for
test purposes, and is a good example of the use of a separate scan shift
register as introduced here.
Further details and discussion of scan-set testing may be found
published1'19'20'22.
Finally, random-access scan: unlike all three preceding methods, random-
access scan (RAS) does not employ a shift register configuration to give
internal controllability and observability. Instead it employs a separate
addressing mechanism which allows each internal storage circuit to be
selected individually so that it can be either controlled or observed. This
mechanism is very similar to random-access memory (RAM), and consists of
a matrix of addressable latches which are used as the system flip-flops when
in normal mode, or which may be individually set or reset to provide
controllability when in test mode. The state of each latch (flip-flop) may also
be individually read out when required. The general schematic arrangement
is shown in Figure 5.14a.
The individual latches in the RAS array may be polarity-hold addressable
latches, as shown in Figure 5.14b, or set-reset addressable latches as shown in
Figure 5.14c. Both perform identical duties, being individually selected by the
X,Y address lines. The action of the second of these alternative circuits is
briefly as follows.
Under normal-mode conditions, the preset and clear lines, which are
common to all RAS latches are ineffective (preset = logic 0, clear = logic 1),
Structured design for testability (DFT) techniques 223
system clock C1
random-access final test
test data in { "
storage array data out
X,Y address -
from all Q latch
test outputs; not selected
output = 1
system clock C1
test clock C2
secondary information
data in
secondary
output data
system clock C1
clear to 0
preset to 1
block LI: 50 test patterns required, eight bits from scan register Rl
(secondary inputs), four output response bits (secondary outputs)
in addition to the accessible primary outputs;
block L2: 25 test patterns required, six bits from scan register R2, nine
secondary output response bits in addition to accessible primary
outputs.
Consider blocks LI and L2 tested separately. Then, ignoring R2, L2 and R3,
we may test LI by scanning in 50 individual test vectors into Rl, each eight
bits long, thus requiring 400 scan-in clock cycles. The four outputs may be
loaded into R4 and scanned out simultaneously with the next loading of Rl
if the system and scan clocks to the separate registers or other means are
appropriately arranged. A total of 404 clock cycles are therefore required,
226 VLSI testing: digital and mixed analogue/digital techniques
with only the appropriate blocks of four response bits from the scan-out
terminal being checked.
To test L2 separately from LI we need to scan in 25 individual test vectors
into B2, each six bits long. However, there are nine secondary outputs, and
therefore if scan-out of the test response from B3 is to occur simultaneously
with the loading of the next test vector into B2 there must be nine clock
cycles per scan-in/scan-out test = (25 x 9) = 225 clock cycles. If we allow an
additional 12 clock cycles to begin the scan-in loading of FQ through Rl and
complete the scan-out of R3 through R4, this gives a total of 237 clock cycles
to test L2, = 641 clock cycles to test LI and L2. If a single scan-in/scan-out
register 14 bits long was used, then 14x50 = 700 clock cycles would be
necessary to scan in the test vectors, and 700 clock cycles to scan out the
resulting test responses.
The above separate test of LI and L2 is sometimes termed a separate-mode
scan-test. As an alternative possibility there is an overlapped-mode scan-test in
which scan testing of the combinational partitions LI and L2 takes place as
far as possible simultaneously. Clearly, the block with the largest required
number of test patterns still dominates the number of clock cycles required
for scan-in, but with some care (and complexity) it is possible to interleave
scan-in/scan-out tests for the separate blocks so as to achieve a reduction in
the total number of clock cycles required for test. More details of separate-
mode and overlapped-mode scan tests may be found in Breuer et al.24 and
elsewhere6'25"27.
However, the above example still involves all the sequential elements
being reconflgurable from normal mode to scan mode, with the attendant
increase in complexity per stage, and does not address the possibility of
leaving some storage elements as normal-mode circuits, changing only a
certain proportion into scan-in/scan-out elements as partial scan usually
implies.
A number of examples have been published for selecting a subset of
storage elements in a circuit and making them the reconflgurable scan-test
elements. If this subset is substantially smaller than the total number of
storage elements, then clearly the circuit when in test mode may still have
some cyclic sequential action, although not of the same complexity and
difficulty to test as the normal circuit. However, the problem of choosing
which storage elements shall be made reconflgurable and which left
unaltered is not readily defined, and may in practice be made on an ad hoc
basis using the expertise of the circuit designer.
One publicised example of partial scan design is the balanced structure
scan test (BALLAST) methodology of Gupta et at.27, which sets out certain
guide lines for the selection of the storage elements which shall be
reconflgurable, and attempts to leave the storage circuits which are not
reconfigured in an acyclic configuration. The ideal grouping of the storage
elements proposed in BALLAST therefore is such that:
Structured design for testability (DFT) techniques 227
scan scan
reg ster register system clock
— - R3
R4
scan clock
Figure 5.15 A simple example to illustrate separate-mode scan-path design, where the
separate blocks of combinational logic may be individually scan tested.
Possible additional multiplexers or other means (not shown) may be
present to achieve separate partition testing
(i) each group of storage elements must have the same clock and control
lines to all storage elements (this is usually the case and is nothing
extraordinary);
(ii) each group must have secondary input data from only one partition of
the combinational logic;
(iii) each group must feed secondary output data to only one partition of
the combinational logic;
(iv) there shall be no cyclic sequential actions within the groups which are
not reconfigured into scan-test configurations, that is the non-
reconfigurable groups shall be acyclic;
(v) all paths between two combinational logic partitions separated by non-
reconfigurable groups of storage elements shall have the same number
of clocked storage elements in series such that the signal delay in all
paths is the same (termed balanced).
Notice that if the above conditions are met, there is no cyclic sequential
action to be handled by the test pattern generation, the testing of the logic
being purely combinational but with a time factor for clocking test data
between the combinational partitions.
The example circuit shown in Figure 5.16a shows the combinational logic
divided into four partitions LI, L2, L3 and L4; the sequential elements have
been divided into six groups R\ to R6, of which Rl, R2, R3 and RA have been
made acyclic, with R5 and R6 reconfigurable scan-in/scan-out elements. In
228 VLSI testing: digital and mixed analogue/digital techniques
scan-test mode the secondary inputs to LI and L4 become available, and the
secondary (response) outputs from L4 may be scanned out at the end of each
test. This is shown in Figure 5.16&.
The procedure for scan test is therefore as follows:
(i) scan in appropriate test bits into R5 and R6;
(ii) load this test data from R5 and R£> into L4 and LI, and apply the
remaining test bits to all the primary inputs;
(iii) keeping all these test bits unchanged, clock the nonreconfigurable
storage elements R\ and R4 an appropriate number of times so as to
transfer the response data from LI to L2 and L3 and on to L4. Notice
that because Rl to R4 are acyclic and the primary and secondary inputs
are held constant, steady-state conditioning throughout the circuit LI
to L4 will result;
(iv) check the test response on all primary outputs;
(v) scan out and check the secondary test response from L4;
(vi) repeat using the next test vector.
The precise control signals necessary for this action will depend upon the
actual circuit details of the reconfigurable scan-in/scan-out storage elements.
It will be seen that this scan-test technique is dissimilar from the techniques
previously considered in that the scan-in test data has to be held while several
system clock pulses are applied to propagate response data through the
partitions before scan-out is done. The combinational logic partitions that are
separated by acyclic groups of storage elements are effectively being
partitioned in time. However, it may not be possible or economical to
partition the circuit exactly as above, and alternative constructs have been
suggested. Further details of this particular partial scan test procedure may be
found published6-27'29.
A number of other partial scan proposals will be found30"40. The difficulty
of choosing which storage elements to include in the scan chain and which
to leave unaltered is the key problem in all methods, and has been
approached in several general ways, namely:
• a consideration of the duty and criticality of each flip-flop in the circuit;
• selection so as to break all cycles and make the resulting partition acyclic;
• starting with all flip-flops in the scan chain, remove them one at a time;
• starting with no flip-flops in the scan chain add flip-flops one at a time.
In the latter two methods, various heuristics and graph structures may be
used to decide which flip-flops shall finally be included in the scan chain, but
so far there is no general consensus of which is the best method, or of the
relative efficiencies of the resulting test procedures. An overview of the
present status and further references may be found in Reference 41.
Finally, it will be appreciated that although the adoption of partial scan
may ease the difficulties of test pattern determination, it may involve more
complexity in organising the test data input and monitoring the accessible
Structured design for testability (DFT) techniques 229
PIs-
primary primary
inputs - •POs L2 Pis- - outputs
(Pis) (POs)
LA
R2 / fc / fc RA
L3
Pis- PQs
reconfigurable
scan
scan in
out R6
(POs)
LA
secondary
inputs
secondary
inputs secondary
outputs (to
be scanned out)
Figure 5.16 An example BALLAST partial scan test methodology, zvith balanced
acyclic partitions of the sequential storage elements (based upon
Reference 6)
a the partition, omitting all clock and control lines for clarity; B5 and
Ro constitute the partial scan elements
b the all-combinational test having loaded in the secondary test bits
from the scan chain
and scan data output. The external test equipment, therefore, requires
additional resources to manage the sequencing of events and providing the
scan-in data, resources which may not be available on all commercial VLSI
testers. Figure 5.17 shows typical scan memory requirements, with additional
timing complexity being present within the timing generator box to control
the overall testing sequence.
230 VLSI testing: digital and mixed analogue/digital techniques
drive
and
compare pin physical circuit
test electronics interface under
output pattern test
test memory
results
parametric
test measure- test data in/out
pattern ments
timing device
sequence when
generators power
controller required
supply
test controller
start/stop/reset, etc.
Figure 5.17 The basic external tester requirements for scan testing
In summary, scan testing provides a means of testing VLSI circuits without the
addition of many extra test points on the circuit. Partial scan provides a range
of possibilities ranging from full scan to nonscanning, with the advantage of
reducing time to test if some acceptable partial scan rather than full scan can
be formulated, but at the expense of somewhat greater conceptual difficulties
and test sequencing. Although partial scan has been adopted by some
vendors for specific applications it remains a minority test methodology,
having been widely superseded by built-in logic block observation (BILBO)
for VLSI circuits as will be covered in Section 5.5.
have been assembled into a complete working system, rather than the testing
of an individual unconnected IC. It is therefore a board-level testing tool for
the use of the OEM, enabling faulty items and interconnections to be
detected and hopefully replaced or repaired.
The development of boundary scan originated with OEM designers in
Europe who were involved with the design of very complex printed circuit
boards (PCBs) and their test after assembly, and where decreasing spacing
between conductors and components was making test probing more difficult
(see Chapter 1, Section 1.5). As a result the Joint European Test Action
Group (JETAG) was established in 1985, which subsequently grew into the
Joint Test Action Group (JTAG) when North American companies later
joined. Their work resulted in the IEEE Standard 1149.1-1990, entitled
'standard test access port and boundary scan architecture'42"44. The IEEE
1149 working group now maintains and updates this standard, which has
been accepted internationally by all IC manufacturers. In all that follows the
circuits, test procedures and terminology will be based upon standard 1149.
The essence of boundary scan is to include a boundary scan cell in every
I/O circuit, as shown in Figure 5.18. During normal-mode working, system
data passes freely through all the boundary cells from NDI to NDO, but in test
mode this transparency is interrupted and replaced by a number of
alternatives, providing in total the following seven possible actions:
(a) transparent mode, normal system operation;
(b) test mode: scan in appropriate test data to the input boundary cells in
cascade to act as an input test vector for the core logic;
(c) test mode: use the test data (b) to exercise the core logic, and capture
the resulting test response in the output boundary cells;
(d) test mode: scan out the test results (c) captured in the output boundary
cells;
(e) test mode: scan in appropriate test data to the output boundary cells to
act as input test data for the surrounding interconnect and/or
components*;
(f) test mode: use the test data (e) to exercise the surrounding
interconnect or components, and capture the test response in further
input boundary cells (or monitor directly if accessible);
(g) test mode: scan out the test results (f) captured in the input boundary
cells.
It will be seen that tests (b) to (d) constitute the usual serial bit stream load
and test procedure associated with the scan testing of an IC, but in tests (e)
to (g) the boundary cells on the IC outputs enable the same load and test
technique to be applied to the system interconnect and circuitry surrounding
an IC, the normal IC output data being blocked in the output boundary cells
during these tests. Notice also that modes (b), (d), (e) and (g) above are scan
modes with all boundary cells on the PCB in cascade, and that only two
control signals, TMS and TCK, are used for all control purposes as will be
detailed below. With the test data in and test data out signals, TD/and 72)0,
this makes a total of only four test terminals necessary on a PCB for the
incorporation of boundary scan.
Multiple ICs on an assembled PCB are all under the control of these four
input signals, TMS, TCK, TD/and 7D0, forming what is called the JTAG four-
wire test bus. Figure 5.19a shows that each IC requires a test access port (TAP)
controller which receives this four-wire test data, and controls the normal or
scan |
path :
through >
all I
boundary
cells I
core
logic
I
TDO I
TDI
normal 1NDI boundary NDO NDI boundary NDO . I normal
data in - scan scan J> » > data out
(NDI) cell cell ^ ! (NDO)
TDI TDO
test • test
r\ '
data in i ]>*" H J > f » data out
(TD!) I ^ primary primary ^ : (TDO)
inputs outputs
j
IC perimeter
NDI--
TDI--
- - TDO
test mode action required in the IC. For PCBs with a very large number of ICs
it may be advantageous to group the ICs into more than one serial scan path
as illustrated in Figure 5.19b and c, maintaining common control lines as far
as possible.
The TAP controller can be on-chip as indicated in Figure 5.19a if the IC is
designed to be used with boundary scan, or it can be part of a separate
commercially-available IC containing one or more bytes of boundary cells
plus the TAP controller and which is assembled adjacent to the LSI or
VLSI IC to provide the boundary scan facility. The circuit of one such com-
mercial IC carrying two nine-bit data words (two bytes plus two parity bits) is
shown in Figure 5.20. There are effectively three register paths between the
single test data input, TDI, and the single test data output TDO, namely:
(i) the boundary scan cells, each of which contain memory latches (see
Figure 5.20£), and which collectively are referred to as the data register,
DR.
(ii) the instruction register, IR, which can be loaded with data from TDI to
control the boundary cell states of a following DR register;
(iii) a single-stage bypass register, that allows data to be transferred from TDI
to TDO on a single clock pulse rather than the many clock pulses which
would be necessary via the previous two registers.
The latter facility is essential to speed up the test procedures where a number
of VLSI ICs are involved, allowing test access to individual circuits to be made
very much more quickly than would otherwise be the case. In some TAP
controllers there may be additional memory for miscellaneous purposes, but
we will not consider this here.
The precise circuit details of the TAP controller and boundary scan cells
vary between IC vendors, but all have to obey the protocols laid down in
specification 1149.1. The TAP controller with its two inputs, TDI and TCK, is
a 16-state Moore finite-state machine, each state controlling one of the
conditions necessary to provide the normal mode and test mode actions. All
transitions between states take place on the rising edge of the clock signal
TCK, and all actions in the registers take place on a falling clock edge. The
state diagram is shown in Figure 5.21, from where it will be seen that the 16
states broadly divide into:
• a normal mode, where no test scan-in or scan-out action takes place, the
boundary scan cells all being transparent;
• states which control the data register, DR;
• states which control the instruction register IR
Action can therefore be undertaken in the instruction register without
affecting the data register, and vice versa.
Considering these 16 states 50 to 515, see Figure 5.21, in more detail, the
action is as follows:
234 VLSI testing: digital and mixed analogue/digital techniques
TDO
TMS
TCK
TMS(1)
TDI
^L
TDI
TMS
TDO
_L
TDI
TMS
TDO TDI
TMS
TDO •TDO
TCK
TCK-
T4
TDI TDO
T*
TDI
TCK
TDO
r1
TDI
TCK
TDO
TMS(2)
T" "T
TDI TDOTDi TDO TDi TDOTDi TDO
TDI
TMS
TDO
TCK
- TDI
TMS
TDO
TCK
- • •
L TDI
TMS
TDO
TCK
TDI
TMS
TDO
TCK
TMS-
TCK-
customer PC board
PC with JTAG
controller board
JTAG four-wire test bus
50, test-logic-reset:
Normal-mode action, with all scan action disabled.
51, run-test/idle:
A control state which exists between scan operations, where some internal
test action (see later) may be executed.
52, select-DR-scan:
A temporary controller state, leading into S3 as soon as TMS is made 0.
53, capture-DR:
Data from the core logic, see Figure 5.18a, is loaded in parallel into the
boundary scan data registers using shift-DR and clock-DR, see Figure 5.20b.
54, shift-DR:
The data in the boundary scan cells is shifted one position on each clock
pulse, data being read out at TDO, new data coming in at TDL
56, pause-DK-
All registers still hold their state, but further action elsewhere such as
checking or waiting or assembling new test data may be necessary.
58, update-DR:
The final state of scan latch L\ in the output boundary scan cells, see Figure
5.206, is transferred into latch L2 for future reference.
The return from S8 to normal mode can be made by TMS =1,1,1, or 0,1,1,1.
It is always possible to return to normal mode from any state in the test
sequence by making TMS= 1 for a maximum of five consecutive clock
periods.
The action of the seven states in the information register control is similar
to that above for the data register control, briefly being:
59, select-IR-scan:
Temporary state leading into S10.
236 VLSI testing: digital and mixed analogue/digital techniques
TAP controller
to [41]
by pass
register
from [0]-*-
h,
AI
instruction
* register IR
it
—i L— instruction tri state
test
access
port
(TAP)
byte A
typei type 2
41 39 ri
typei
40
instruction tri state—••
L
r~". h
typei type 2
non-inverting
transparent
27-35 — lakh
NDi .
(18 inputs) byteS NDO
type 1
(18 outputs)
/ v
[0-8] [0-8]
data register
DR
Figure 5.20 An example commercial circuit taken from the SCAN 1800 family of
National Semiconductor, providing 18 input and 18 output boundary
scan cells and the TAP control
a general schematic; the scan chain is through cells 41, 40, 3 9 , . . . 2, 1,
0 to T D O
Structured design for testability (DFT) techniques 237
r , !
register LI latch L2 J \-T~NDl
NDI " 7 I 1 iri ^J ;
D 0 D 0 1
TDO
-0 >ck -0 >ck i
i i
i
i 1
TDC
i
..J
JTt"— type 1 input
clock DR boundary scan eel clock_Dfl update_Dfl\ mode
type 2 output
boundary scan eel
TMS- 1 56 - T D I
AO0- 2 55 - A l o
AOE1- 3 54 - A L E
Ad- 4 53 - A l l
A02- 5 52 - A l 2
GND— 6 51 - G N D
A03- 7 50 - A l 3
A04- 8 49 - A I 4
vCc- 9 48 V
CC
A03- 10 47 - A I 5
A05- 11 46 - A l e
GND- 12 45 - G N D
A07- 13 44 - A l 7
A08- 14 43 - A l 8
B O 0 ~ 15 42 - B i o
BOi — 16 41 - B l ,
GND— 17 40 - G N D
B 0 2 - 18 39 - B l 2
B 0 3 - 19 38 - B I 3
v 20 37
cc-
B 0 4 — 21 36 - B U
B 0 3 - 22 35 - B I 5
G N D - 23 34 - G N D
B 0 5 - 24 33
B 0 7 - 25 32 - B l 7
BOET- 26 31 - B L E
B0 3 - 27 30
T D O - 28 29 —TCK
Figure 5.21 The state diagram for a TAP controller. The value of TMS required for
each state transition is shown on the link betiueen states, all transitions
being on the rising edge of clock TCK
S10, capture-IR:
Load any fixed data into the information register; possibly scan out to check
veracity of the information scan chain.
Structured design for testability (DFT) techniques 239
511, shift-IR:
Shift in information data from TDI on each clock pulse.
513, pause-IR:
Similar to S6.
SI 4, exit2-IR:
Return to shift-IR if desired; otherwise exit to S15.
S15, update-IR:
Load final bits which are in the shift register IR latches into the parallel IR
latches, see further comments below.
These states together with the condition of the tristate output terminal TDO
are summarised in Table 5.1.
Table 5.1 The logic operations controlled by the 16-state TAP controller
State Action T D O output Instruction Scan data
register IR register DR
SO test-logic-reset high impedance initialise to set to normal mode
1 000 0001
SI run-test/idle high impedance retain last state execute test or
retain last state
S2 select-DR-scan high impedance retain last state retain last state
S3 capture-DR LSB of register DR retain last state load LI registers
from parallel system
data
S4 shift-DR LSB of register DR retain last state shift towards TDO
S5 exit I-DR LSB of register DR retain last state retain last state
S6 pause-DR LSB of register DR retain last state retain last state
S7 exit 2-DR LSB of register DR retain last state retain last state
S8 update-DR high impedance retain last state load shadow
output latch L2
S9 seiect-IR-scan high impedance retain last state retain last state
SIO capture-IR LSB of register IR load in fixed retain last state
instruction data
SI 1 shift-IR LSB of register IR shift towards TDO retain last state
SI2 exit I-IR LSB of register IR retain last state retain last state
SI3 pause-IR LSB of register IR retain last state retain last state
SI4 exit 2-IR LSB of register IR retain last state retain last state
SI5 update-IR high impedance load parallel IR retain last state
latches
240 VLSI testing: digital and mixed analogue/digital techniques
The run-test/idle state Si in the above is a state where some built-in self test
(if present) within the active logic can be run. This may be, for example, a
built-in logic block observation (BILBO) test program such as will be covered
in Section 5.5, and is separate from any test vectors that may be serially loaded
into the boundary scan cells for scan-path tests. There needs to be boundary
scan I/O cells on the active logic perimeter to activate any built-in self test,
the signals to initiate this being scanned in to the appropriate input boundary
cells on state SI. As many TCK clock pulses as necessary may be applied
during state SI as long as TMS is held at 0, as is the case during the shift-out
and pause states S4, S6, Sll and SI3.
The information register IR is also somewhat more complex than we have
so far detailed. It consists of an eight-stage shift register through which
instructions or other data may be clocked through all such instruction
registers in cascade in the system, plus a nonshifting eight-stage latch in
parallel. When the appropriate data have been clocked into the shift register
stages, the parallel eight-stage latch is loaded on state S15, releasing the shift
register stages for further use. The data in the eight-stage latch are decoded
as required to control the required scan path or other activity, and remains
unchanged until S9 onwards is next selected. With the data 1 1 1 1 1 1 1 1
stored in this register the bypass register is activated, this being one of the
specification 1149.1 protocols.
There remains further complexity in some of the TAP circuits and their
timings, but the broad concept of being able to scan in test data and scan out
response data from the perimeter of ICs in an assembled system should be
clear from the above discussions. The reader is referred to IC vendors' data
brochures for specific commercial information45"48, and to Bleecker et al44
and elsewhere for wider information and discussions49"^7.
Boundary scan has become an accepted test methodology for digital
assemblies which would otherwise be difficult to test, but a very great deal of
housekeeping is necessary to define the required sequence of test signals and
their fault-free response. However, because of the protocols imposed by IEEE
standard 1149.1, commercial hardware and software aids are available for
OEM use, usually with links to the CAD used for system design. Figure 5.22
illustrates a resource which provides automatic boundary-scan test pattern
generation, with diagnostic software to provide faulty mode location and
other facilities. In the end, however, there still remains the penalty of time to
test, which must inherently be much longer with boundary scan than if test
access to internal modes was freely available.
Finally, two further comments on standards:
(i) A working party is currently engaged in considering a further standard,
IEEE Standard PI 149.2 'Shared input/output scan test architectures'.
This is intended to be a standard for boundary scan which incorporates
certain features not present in standard 1149.1, namely shared
input/output cells, an optional parallel update stage to supplement or
Structured design for testability (DFT) techniques 241
replace serial scan-in data, and a high impedance input pin condition.
However, the considerations so far have not produced a standard which
is compatible with the existing standard 1149.1, and hence further
deliberations are necessary before PI 149.2 becomes an acceptable
boundary-scan specification. The basic concepts and practice of
standard 1149.1 will, however, remain unchanged.
(ii) Secondly, a new standard high-speed on-chip bus to provide very fast on-
chip communication has recently been announced by a consortium of
IC vendors. This is the 'peripheral interconnect bus', (Pi-Bus), and is
intended to be a standard for use on submicron VLSI circuits and
modular architectures. Possible uses include interconnecting processor
cores, on-chip memories, I/O controllers and other functional blocks.
However, to date this has not been specifically linked with the use of
boundary scan, although it would seem that there may be advantages if
the two are considered together in the design and test of complex VLSI
assemblies.
Figure 5.22 A PC-based boundary-scan test resource zvith boundary-scan test pattern
generation, test vector editing, and diagnostic capabilities
a the hardware resource
Test
Preparation
PM 37XX
1
Test Boundary-scan UUT
Execution Tester
Test Result
Analysis
Boundary-
1 scan )
V Diagnostics I
In normal mode each BILBO register forms part of the normal sequential
logic for the working circuit, with the usual secondary inputs and outputs
linking the sequential and the combinational logic. In test mode, a pair of
BILBO registers, one preceding and one following each block of
combinational logic, is used to test the block, the first reconfigured to
provide the input test vectors and the second reconfigured to provide a test
output signature from the combinational logic.
244 VLSI testing: digital and mixed analogue/digital techniques
Figure 5.23 Paritioning of a logic network by BILBO registers; the control signals
have been omitted for clarity
a basic BILBO concept
b example BILBO partitioning into three blocks in test mode, each
block tested individually
This test signature can then be read out in serial form for checking by a
further reconfiguration of the BILBO registers into a scan-path
configuration. Each BILBO register therefore has the following principal
modes of operation:
(i) normal-mode operation;
(ii) reconfiguration into a scan-in/scan-out scan path;
(iii) reconfiguration into an input test-vector generator, providing pseudo-
random test vectors;
(iv) reconfiguration into an output test signature register.
It will also be seen that the first BILBO register may act as the output
signature register for the last block of logic, as indicated in Figure 5.23&.
The BILBO registers are therefore fairly complex circuits to provide this
resource. Figure 5.24 shows the usual circuit arrangement, four stages only
being shown. Two control signals, Cl and C2 control the action of a register
as follows:
Cl = 0, C2= 1: reset mode, to set all the D-type flip-flops to the reset state of
Q= 0 on receipt of a clock pulse;
Structured design for testability (DFT) techniques 245
mode control, C\
mode control, C2 • scan out (SDO)
scan in (SDI)
clock
normal system data
outputs (secondary outputs)
mode control C1
clock
Q1 02 03
clock
01 02 03
Figure 5.24 The functional attributes of a BILBO register, showing four stages only
for clarity
a block schematic and overall circuit arrangement
b normal mode with Cl = 1, C2. = 1
Structured design for testability (DFT) techniques 247
scan out
clock
02 03 04
clock
02 03 Q4
result subsequently
scanned out
clock
gure 5.24
02 Q3 04
Continued
c scan-path mode with Cl = 0, C2 = 0
d autonomous pseudo-random test vector generation mode with Cl =
1,(2 = 0 (cf. Figure 3.17)
e output test signature capture mode with Cl = 1, C2 = 0 (cf. Figure
4.7). Note, CL = 1, C2 = 0 (not shown) resets all stages to zero.
Detailed variations on this circuit arrangement may be found
248 VLSI testing: digital and mixed analogue/digital techniques
Pfm= T
7 1 xlOQ% (5.1)
Jm c\m+n-\ __ i
where n is as above and m is the number of applied test vectors to give the
resulting output signature. If the number of stages in the signature register
and the number of applied test vectors are reasonably large, we have:
oW-l
Pfm=— -xl00%
Jm am+ra-1
\ (5.2)
= — xl00%
I 1 000
I 0 1 00
(wrong signature)
0 110 00 1 0 0 11 1 0 10 1
(wrong signature)
Olll 11 1 0 0 1 00 1 11 0
(aliasing)
1 000 Olll 10 0 0 Olll
•
1
n
. = — x!00%
2 -
This argument is not completely satisfying, but it does indicate the general
probability of aliasing in the MISR register. Notice that one n-bit input word
is always sufficient to correct the MISR signature; this may be contrasted with
the single data input signature analyser where (a maximum of) n serial input
bits will always correct the signature in this analyser, see caption of Figure 4.7.
Considering the above fault masking situation a little further, it is clear that
if the signature held in the MISR had been scanned out after the first fault
(or faults) had been trapped, but before the second fault had corrected it,
then the faulty circuit response would have been detected. Hence, aliasing
may be reduced by performing an intermediate scan-out operation before all
the input test vectors have been applied as well as at the completion of the
test. If all errors are still considered to be equally probable, then the
theoretical probability of aliasing is now given19 by:
o m—2n -|
! ! (5-3)
s
= — xl00%
2 2n 4n
Again, this result should be treated with some caution.
250 VLSI testing: digital and mixed analogue/digital techniques
0000
0100
16 possible
MISR signatures
following 1100
0000
aliasing
faulty,
0100
Figure 5.25 The state diagram for the four-stage MISR test signature register of
Figure 5.24e with its characteristic polynomial P(x) = 1 + x 3 + x 4
a state diagram showing all 16 states, but the routes from only one of
the 16 states shown for clarity (cf. Figure 4.7 for the signature
analyser)
b the fault masking (aliasing) example in the text, which corrects the
MISR signature on receipt of the faulty input 0 10 0
Structured design for testability (DFT) techniques 251
Feeding this in as a serial bit stream, with the first input bit on the right in the
above mod2 summation, we have the following response in the circuit of
Figure 5.26 b:
Reset: 0 0 0 0 0
Input bit: 1 1 0 0 0 0
0 0 1 0 0 0
1 1 0 1 0 0
0 0 1 0 1 1
1 1 0 1 0 1
1 0 0 1 1 0
0 0 0 0 1 1
1 0 1 1 0 1
which is the same signature as in Figure 5.26a.
1 /1
I /3 u
/o k
t J J 4 5
— L J//^
D Q -IW ) ) >D Q DQ )> i ii >- D Q D Q —1
• ck
:
ck ck ck ~7/^ ck
4 5
U U L) U
uu
r r - i
r ck
j
ck
It is left as an exercise for the reader to add further input vectors to the above
tabulation, and confirm that the same signature results in Figure 5.26a and b
when the above procedure is undertaken. Note, however, that strictly
speaking using normal polynomial mathematics we should write the above
vectors in reverse order to that shown here, shift the following vectors to the
right in doing the mod2 addition, and then read off from the left instead of
the right. This is then in accordance with the rules used in Section 4.5 of
Chapter 4. Published literature is not always consistent in this respect, but the
final least significant data input z0 in the MISR sequence must obviously be
the final serial bit input in the equivalent single-input signature analyser. The
above equivalence between a MISR and a single-input analyser allows further
properties of the MISR to be confirmed which are closely analogous to the
single-input signature analyser properties discussed in the previous chapter.
However, we may pursue a mathematical development as follows, which does
not (directly) involve any equivalence between the two types.
Using the same designation as employed in Chapter 4, in particular see
eqn. 4.29, consider the type B LFSR circuit shown in Figure 5.27a with test
response data inputs ZQ, ix, ..., in-1. Let the test data input polynomial after
clock pulse t be:
It(x) = h n - \ x n ~ X + h,n-2xn~2 + ••• + h l x + h,0
and the state of the register also after clock pulse t be:
(Note, this state of the register is what we have termed the residue in Chapter
4, Section 4.5.)
Now the resulting D inputs to the flip-flops Ql9 Q2> • • •» Qn> j u s t P r i° r t o t n e
next clock pulse t + 1 are given by:
[It(x) + R,(x)] mod D(x) (5.4)
where [X] mod D(x) is the residue when any polynomial [X] is divided by the
divisor polynomial D(x). The next state of the register Rt+\(x) is when these
inputs to the flip-flops have been clocked by the next clock pulse, transferring
them from the D inputs to the Q outputs of the flip-flops, thus giving:
Rt+l(x) =x{[It(x) +Rt(x)] modD(x)} (5.5)
For example, consider the five-stage MISR shown in Figure 5.276 with the
data inputs and states shown, giving the present-state polynomials:
It(x) = x2 + x+ 1
Rt(x) = xb + x5 + x2 + x
Therefore:
[/,(*) +Rt(x)] =x5 + * 3 + l
254 VLSI testing: digital and mixed analogue/digital techniques
feed back
/3=0 / 4 =0
I I
3 4 5
Rt(x)
S^\ S^\
exclusive-OR
Figure 5.27 The BILBO register model used for polynomial developments
a general model with latches (flip-flops) Qi to Qn and test data inputs
2o to Vi, cf. Figures 3.206 and 4.86
6 particular case with five latches and divisor polynomial as in Figure
5.26a
and the resulting inputs to the flip-flops is given by the remainder (residue)
in the polynomial division:
1
5
+x3 +1
% 2
X + X + X
The resulting next state of the MISR is therefore:
Rt+i(x) = x(* 3 + x2 + x)
giving us:
+ x 3 / 0 (x)jmod
(5.6)
The last expression is the signature in the MISR after m input tests have been
clocked into the circuit. The term within the square brackets may be referred
to as the cumulative input polynomial. The validity of the above development
lies in the linear (exclusive-OR) relationships which hold in every part of the
MISR circuit.
256 VLSI testing: digital and mixed analogue/digital techniques
xS [x3 + x2
x) mod
= x\\x8 +
Evaluating the remainder (residue):
+1
5 2
x +x + x+lp
x 8 + x 5 + x4-
5 4 3
V -I- V -^- V -|- V
0£ + X + X+ 1
where Rem(x) is the difference between the fault-free signature in the MISR
and the actual signature after the sequence of m data inputs has been clocked
in.
Clearly for fault masking (aliasing) to occur, the value of Bfm(x) must be
zero, that is the resulting cumulative polynomial
[£„_,(*) + xE^2(x) + ...
must be exactly divisible by the divisor polynomial D(x). This will be seen to
be closely analogous to the situation with the single-input signature analyser,
where the error bit stream E(x) has to be exactly divisible by D(x) for aliasing
to occur.
As an example, consider the previous worked example of five data inputs
IQ(X) to I4(x), and assume that under fault conditions we have the following:
H % k h %
/§(*) (fault free): 1 0 0 1 0
Ifo(x) (faulty): 1 0 0 0 0
E0(x): 0 0 0 1 0
/§(*) (faultfree): 0 0 1 0 1
If3(x) (faulty): 1 1 1 0 0
£,(*): 1 1 0 0 1
/$(*) (faultfree): 1 1 0 0 0
P4(x) (faulty): 1 0 0 1 1
E4(x): 0 1 0 1 1
Taking the five faulty polynomials and the five error polynomials, we can
demonstrate that fault masking occurs as follows:
(i) Taking the faulty data polynomials PQ(X), ..., I^(x)f the MISR signature
following the fifth clock pulse is given by:
= xllx8 + x7 + x6 + x5 + *4 + x2 + x + llmodZ)(x)J
258 VLSI testing: digital and mixed analogue/digital techniques
x5 + x2 + X+1
5 2
x +x + X+1
0
Hence, the final state of the MISR is the all-zeros state, illustrating that for
fault masking to occur the cumulative error polynomial Rem(x) must be
exactly divisible by the divisor polynomial of the LFSR.
D(x) ranges in powers of x from x° through to xn, and hence to divide exactly
into E(x) the highest possible power in the quotient is 2(w+n"2)"n = 2W~2. There
are therefore 2™"1 possible exact quotients, including the all-zeros case. If we
now consider only the nonzero multiples, the theoretical probability of fault
masking, which is the same as the probability of D(x) dividing exactly into
E(x), is given by:
9m~l - 1
Pfm=— xlOO%
m
J o w + n - l ___ i
s—ow-1 r = —xlOO%
1
-i (5.8)
2m+n-l gn
which is the result originally quoted in eqn. 5.2. As previously, the above
development has as its basis the probability that all faults are equally
probable, which may not be true in real life.
Further algebraic considerations may be found in the literature, including
the effects of choosing different divisor polynomials D(x) on the fault-
masking properties19'64"67. However, let us here conclude with some
additional considerations of the circuit action and use of BILBO registers in
their normal and test mode configurations.
First in normal mode, it will be seen from Figure 5.24 that there are
additional logic gates in the data flow from the combinational logic through
theflip-flopsthan would otherwise be present, and therefore some maximum
speed penalty is present. However, there is no additional loading on the Q
outputs, since in test mode the Qoutputs are used. The use of Qfor the scan
path also means that there is no logic inversion within the BILBO register
between stages; some other published circuits for BILBO registers may use Q
rather thanQ, in which case there will be scan path inversions unless some
additional signal inversion(s) are also present.
Looking at the BILBO register in autonomous LFSR pseudorandom
generation mode, Figure 5.24d, and in MISR signature capture mode, Figure
5.24#, the same control signals Cl = 1, C2 = 0 are used for both duties.
However, to give the required circuit actions, additional conditions must also
be imposed, namely:
(i) seed the LFSR pseudorandom generator with a known initial state at
the beginning of a self test, such as 0 0 ... 0 1;
(ii) simultaneously reset the LFSR MISR to 0 0 ... 0 0;
(iii) block off data from the combination logic from entering the
pseudorandom generator but allow it to enter freely into the MISR.
Clearly, additional control is necessary over and above the Cl, C2 inputs.
Several different detailed circuit arrangements to provide these conditions
have been published, and they are to a large extent the choice of the system
designer. Conditions (i) and (ii) above can be achieved with a scan-in after
the scan path has been initially checked and before switching to test mode,
260 VLSI testing: digital and mixed analogue/digital techniques
? Z
1 2
a
r~
BILBO
deactivate each
register
individual data
input z1 to z
Figure 5.28 Additional controls necessary to deactivate the data inputs when in
autonomous test vector generation mode, otherwise known as input
disable, see Figure 5.24'd
a interruption of input Cl when C3 is made 0
b individual deactivation of each data input when C3 = 0
the 0 0 0 ... 0 0 1 state the resulting linear feedback to the first stage is
modified from logic 1 to logic 0 by the presence of signal M= 1, which results
in the all-zeros state on the next clock pulse. This destroys the feedback from
the final nth stage, but does not destroy the M- 1 signal which therefore
provides a seed to enable the sequence to continue rather than stall in the all-
zeros state. A reversible de Bruijn counter is also possible with the addition of
a little further gating 19 .
Whether this additional 0 0 ... 0 0 vector is necessary or not depends upon
the circuit under test. A fully exhaustive test of the combinational circuit
driven by the BILBO register will equally well be given if there are more
stages in the BILBO register than secondary output lines; for example, if
there are n stages in the BILBO register but only n - 1 output lines, then the
n - 1 output lines will be automatically driven almost twice through a fully
exhaustive sequence.
262 VLSI testing: digital and mixed analogue/digital techniques
normal
LFSR
feedback
taps
additional
logic 1 signal
on Qi Q2"Gn-1 =00*0
To a large degree circuit partitioning will depend upon the actual circuit
being designed, and whether it automatically breaks down into functional
blocks. With a pipelined structure the choice of partitions may be obvious,
but for nonstructured architectures it is a design choice influenced largely by
the number of storage elements and their secondary interconnections.
Figure 5.30 illustrates some of the configurations which may have to be
considered.
Structured design for testability (DFT) techniques 263
SDI
primary inputs
SDO
primary outputs
data bus
SDO
(POs)
SDI
There is also the question of whether all BILBO registers shall be one scan
path, or whether two or more scan paths may be advantageous. Again, this
depends heavily upon the circuit being designed.
Turning to the problem of determining the fault-free signature for each
MISR there are two possible approaches, namely simulation or using a known
good circuit. Simulation has the disadvantage of requiring computer time to
execute; the alternative has the difficulty of ensuring a fault-free circuit from
which to generate the signature. In practice possibly both methods may be
used: simulation at the design stage and physical determination at the
prototype stage to see whether both agree. Knowing what the correct
response of a MISR should be, there is also the possibility of presetting the
MISR to some starting condition such that with a fault-free response the final
signature in the MISR is all-zeros or all-ones, which may possibly be easier to
check after the test.
In conclusion, the BILBO concept has proved to be an acceptable means
of building self test into a complex circuit or system. The silicon area
overhead may be high, possibly 20 % additional chip area or thereabouts, but
the tests are executed at normal system speed and are usually exhaustive or
near exhaustive. There is, however, the inability to apply test vectors in other
than the fixed pseudorandom test sequence, which may be unfortunate if
CMOS memory faults are present. Notice also that although here, as in most
published literature, we have taken the logic blocks between the BILBO
registers to be purely combinational logic, there is nothing in the BILBO test
strategy which precludes there being some simple sequential circuit action
within these blocks. The essential requirement is that if there is any
sequential action it must be unambiguously initialised (reset) at the begin-
ning of each block test, and also that the number of input test vectors are
sufficient to give a comprehensive test of this sequential machine action. This
will be recognised as being an identical situation to that discussed in Section
4.5 when dealing with the single-input signature analyser test methodology.
The theoretical calculations of the aliasing probabilities of MISR circuits
are not entirely satisfactory, since they are all built upon the equal probability
of all possible errors, which may be far from a real-life situation. Nevertheless,
like the signature analyser in Chapter 4, the BILBO test method has been
found to be fully acceptable in practice.
Further discussion on BILBO techniques may be found in References 6,
19, 64, 74 and 75. Some additional developments using multiple autonomous
LFSR test vector generators will also be mentioned later in Section 5.5.3.
Figure 531 Partitioning of a logic network by CALBO registers; the control signals
have been omitted for clarity (cf Figure 5.23 for the corresponding
BILBO configuration)
SDI-
ft
Figure 5.32 The circuit arrangement of a CALBO register, showing four stages only
for clarity (cf Figure 5.24a for the corresponding BILBO configuration)
Structured design for testability (DFT) techniques 267
16 possible
MISR signatures
following 1100
Figure 5.33 The state diagram for a four-stage 90/150/90/150 CALBO register
a circuit diagram, omitting unnecessary detail
b state diagram showing all sixteen possible states, with data inputs
0000 except to escape from and to return to the all-zeros state
c routes from one of the sixteen states to all other possible states, cf.
Figure 5.25a for the corresponding BILBO register
Hence, there is always one of the 2n possible test responses that will correct
a faulty CALBO signature in a manner similar to that illustrated in Figure
5.25&, and hence the probability of fault masking is exactly the same as for the
BILBO MISR, namely:
268 VLSI testing: digital and mixed analogue/digital techniques
100%
2n -1 2n
Therefore it seems that the increased randomness of the CALBO register
does not result in any theoretical improvement in fault masking; indeed using
the above argument we may say that any n-stage counter, pseudorandom or
otherwise, has the same aliasing probability when used as a signature register.
Reflection on this result shows that it must be so if we assume all wrong data
inputs are equally probable, and it therefore highlights the question of
whether this assumption is truly valid in real life.
The mathematical analysis of the probability of CALBO fault masking has
been considered by several authorities76"83. The statistical properties of the
CALBO test vector sequences, their randomness, have been extensively
considered by Podaima and McLeod77 and elsewhere83, but this does not
directly address the aliasing properties of the CALBO register when in MISR
test-capture mode. This is, however, specifically addressed by Serra et a/.78,
using in the mathematical developments the isomorphism (similarity) which
exists between BILBO and CALBO registers, as introduced in our discussions
in Chapter 3, Section 3.4.3.2. Unfortunately, there are no polynomial
relationships that may be directly applied to the CALBO registers, and
therefore the polynomial division over GF(2) and the error polynomials
considered in the previous section are not applicable.
The theoretical considerations of CALBO aliasing therefore take as their
basis the formal proof that LFSR and CA generators are mutually isomorphic,
that is given a maximum-length LFSR generator there is a corresponding CA
generator of the same length which cycles through a sequence which is a
fixed permutation of the LFSR sequence, and vice versa. For example, the
isomorphism between the LFSR generator of Figure 5.25 and the CA
generator of Figure 5.33 is the following one to one mapping:
LFSR generator CA generator
decimal binary decimal binary
0 0000 0 0000
8 1 000 8 1 000
4 0 1 00 4 0 1 00
2 00 1 0 14 1 11 0
9 1 00 1 15 MM
12 1 1 00 12 1 1 00
6 0 110 10 10 10
1 1 1 0 1 1 1 000 1
5 0 10 1 3 00 1 1
10 10 10 6 0 110
13 11 0 1 1 1 10 11
14 1 11 0 2 00 1 0
15 Mil 5 0 10 1
7 0 1 1 1 13 11 0 1
3 00 1 1 9 1 00 1
1 000 1 7 0 1 II
Structured design for testability (DFTJ techniques 269
For any single-input bit stream, that is test data ^ applied to the first stage of
the BILBO and CALBO registers, with zero data to the remaining stages, it
formally follows78 that if the BILBO register aliases (that is finishes up on the
same signature with a healthy bit stream and a faulty input bit stream), then
the CALBO register will also aliase, the one to one mapping between the two
circuits always holding. As a trivial example, consider the input bit streams
1,0,1,0,1,1 and 0,1,1,1,1,0 fed into ^ of the isomorphic BILBO and CALBO
registers of Figures 5.25 and 5.33 respectively, the remaining MISR inputs ^
i2 and i§ being held at zero. The BILBO and CALBO sequences with MISR
inputs 1 0 0 0, 0 0 0 0, 1 0 0 0 , 0 0 0 0 , 1 0 0 0 and 1 0 0 0 representing the
healthy test response and 0 0 0 0, 1 0 0 0, 1 0 0 0, 1 0 0 0, 1 0 0 0 and 0 0 0 0
representing the faulty test response may be traced through Figures 5.25a
and 5.336, and will be found to give the following sequences:
The one to one mapping between the two signatures is seen to hold in all
cases, both aliasing on the final faulty input. The probability of aliasing of the
CALBO register is therefore identical to that of the BILBO register under
these conditions.
Aliasing for the true MISR situation with parallel data inputs i0, il9 ^ ...,
does not follow convincingly from further mathematical considerations.
Unfortunately, it does not follow that the parallel data inputs into a CALBO
register can be replaced by a serial input bit stream to the first stage to give
the same signature, where this bit stream is a time-shifted bit by bit addition
of the parallel data inputs as was possible for the BILBO MISR (see previous
section and Figure 5.26a. This is demonstrated in Figure 5.34 using the same
CALBO register as previously; taking just a single parallel input test vector
10 11 for simplicity, this produces the signature of 1 0 1 1 when operating in
true MISR mode, but not this signature when a single data bit stream of
1,1,0,1 is fed into ZQ, data inputs ij, i2 and %,being held at logic 0.
270 VLSI testing: digital and mixed analogue/digital techniques
/b = 1,1,0,1 k= 0 =0
D Q
ck
serial input
h 1|'—Qa Q2 1 L Q 4 Q3 1Jl—c
Q2 Q4
0000
start
1011
parallel
data in
\ (MISR)
0000 \
dissimilar final
signatures
Figure 5.34 The failure of the CALBO register of Figure 5.33 to have the same
signature with a parallel data input xuord of 1 01 1 and a serial input
bit stream ofi$ = 1, 1, 0, 1, i^ to i% being held constant at logic 0 for the
latter case
Structured design for testability (DFT) techniques 271
The reason why this equivalence between parallel data inputs and single-
bit serial data inputs does not hold is that there is no shift register action
through all the CALBO stages as there is in the BILBO register, and hence to
reformat and sequence the parallel data inputs ih i%, %, ..., in into the first
data input, i$, does not give the same final signature. Therefore it remains to
be formally proven that the CALBO MISR has the same probability of aliasing
as the BILBO MISR; further academic consideration of this may be
expected78'83'84, but the outcome has to be that the probability of aliasing of
the two registers must be the same if all faulty data inputs are considered to
be equally likely.
Given, therefore, that the CALBO signature register is no better as far as its
theoretical aliasing is concerned than the BILBO (or any other) signature
register of the same length, its justification as a built-in self-test method must
primarily be based upon its pseudorandom test vector generating
performance rather than its signature capture ability. We have previously
shown that LFSR test vectors are not successful in testing for CMOS memory
faults, see Figure 3.25, and the fact that the same values appear in the LFSR
test vector bits time shifted with respect to each other also proves to be
disadvantageous in certain other structural logic networks85. Hence, it is
possible that the greater randomness of the CALBO test vector generator,
with its lower cross correlation between individual output bits, may prove to
be more satisfactory for the testing of certain combinational networks than
BILBO. No general quantification of this is possible, since it is dependent
upon the logic and structure of the particular network under test, and hence
the circuit designer must consider each case on its merits should a BILBO
versus CALBO discussion arise. Alternatively, or in addition, the network
synthesis may be undertaken such that pseudorandom pseudoexhaustive
testing is facilitated86.
We can, however, continue a little further here, and consider some circuit
details and silicon area penalties involved in CALBO.
As in the BILBO case, the CALBO can provide the near exhaustive test
sequence for a combinational network, lacking only the all-zeros test vector.
This can, if required, be provided by resetting the CALBO register by the
condition Cl = 0, C2 = 1, or alternatively we may incorporate a circuit
addition which diverts the CALBO sequence from 0 . . . 0 1 to 0 . . . 0 0 and
then back into its normal sequence of 0 ... 1 1. One possible circuit addition
for providing this is shown in Figure 5.35, which may be contrasted with the
BILBO circuit additions shown in Figure 5.29.
Considering the silicon area overheads for CALBO in comparison with
BILBO, we may revise slightly the circuit per CALBO cell shown in Figure
5.32 to economise in the number of logic gates necessary. These
modifications are shown in Figure 5.36, which also highlights the additions
required over and above a BILBO cell.
A CMOS realisation of the three cells shown in Figure 5.36 is given in
Figure 5.37, from which the number of transistors between stages of both a
272 VLSI testing: digital and mixed analogue/digital techniques
Qn-1 Qn
r— D Q J J DD Q
r— OU
ck ck
0 D- 0
90 150
o n . 2 _TL on.,_jTL_
'
same as
BILBO
C1---
C2---
D Q
'\I ^ I ck
i\ iWhen
Qo—0/
C3 = 1 [scan mode],
C3---- 1 when
C3= 0 [generation / signature
mode]
-0/
C3—•
© Qj ® 0/f 1 when
C3= 0 [generation / signature
mode]
— Q/n
Figure 5.36 Possible circuit details for the interstage logic ofCALBO registers
a type 90
b type 150 See also Figure 5.37
274 VLSI testing: digital and mixed analogue/digital techniques
Table 5.2 The number of transistor pairs required for n-stage BILBO and CALBO
registers
Circuit Number of transistor pairs
BILBO CALBO 90 CALBO 150
Typical D-type flip-flop 10 10 10
Additional common circuitry, see Figure 5.37a 8 8 8
Further CALBO circuitry, see Figures 5.376 and c - 6 10
Average further CALBO circuitry, assuming equal
number of type 90 and type 150 cells - 8
Further BILBO circuitry, see text,
multiplexer 5
exclusive-OR 5 ( m - 1) _
Total for an n-stage assembly 18n + 5m 26n
to Dj input
i
C3 - H
• t o T,
see a
above
Figure 5.37 Possible CMOS realisations for the additional circuits shoivn in Figure
5.36
a the common intercircuit details for both CALBO 90 and 150 circuits,
eight transistor pairs
b the addition for each CALBO 90 circuit, six transistor pairs
c the addition for each CALBO 150 circuit, ten transistor pairs
276 VLSI testing: digital and mixed analogue/digital techniques
200--
100--
12 14 16 18 20
Figure 5.38 The number of transistor pairs required for BILBO and CALBO ivith
increasing n compared with simple D-type flip-flop circuits
• LOCST (LSSD on-chip self test), which uses a pseudorandom test pattern
generator, LSSD scan paths and a signature analysis register92;
• SASP (signature analysis and scan path), which conceptually is similar to
LOCST93;
• STR (structured test register), which is a form of BILBO but with certain
additional operating modes including scan test94.
Other variants may also be found, including those for use in gate array
structures95"97.
Details of HILDO, LOCST and SASP may be found surveyed in Russell and
Sayers74, with additional information elsewhere6'19'97. However, let us here
consider only one of these, namely LOCST, which will illustrate the concepts
that may be present in many of these BIST derivatives.
The LOCST architecture, developed by IBM, is based upon level-sensitive
scan design (LSSD) scan-path testing, but has provision for on-chip test
vector generation and signature analysis so as to reduce the complexity which
accrues with simple scan-in/scan-out of all the required test data. Its
application is to embrace system-level testing as well as IC testing, and
therefore boundary scan is available as well as self test for each individual IC.
The block schematic is shown in Figure 5.39, and incorporates the
following facilities:
• LSSD scan-path;
• boundary scan;
• BILBO-type self test;
• on-chip monitoring.
In self-test mode twenty stages, which in one particular example constitute
the PRBS (pseudorandom bit sequence) circuit, are reconfigured into a
maximum-length pseudorandom generator with the characteristic
polynomial x20 + x17 + 1, and the 16 stages which constitute the SAR
(signature analysis register) are configured into a MISR with the character-
istic polynomial xm + x9 + x7 + x4 + 1. Test bits from PRBS are scanned in to
fill the input boundary scan register, the output test response being captured
by the output boundary scan register and then scanned into SAR to give an
initial signature. This procedure is repeated until the required number of test
patterns have been applied to the circuit under test, after which the final
signature in SAR may be scanned out for checking or confirmed by the on-
chip monitoring circuit.
It will be seen that in this LOCST strategy it is not possible to parallel load
the circuit under test with pseudorandom test vectors at normal system speed
as is possible in BILBO, but instead we are back to one test at a time as in scan
test. However, we do not have to scan test data in and test data out through
one lengthy scan chain around a complete PCB or other assembly, but
instead now we have relatively short local scan-in paths present. It has been
reported92'98, that fewrer than 5000 random test patterns have provided
278 VLSI testing: digital and mixed analogue/digital techniques
reconfigurable
scan path and
signature analyser
PRBS SAR
IC perimeter
controls error
signal
Figure 539 The LOCST architecture of IBM, which provides individual on-chip test
vector generation and signature capture with system scan-path resources
acceptable test coverage; also it is possible to seed the PRBS circuit with
alternative starting seed via the scan path, which can provide improved fault
coverage and lower aliasing for given conditions.
One feature which is not possible with LOCST is the means to check
interconnections between ICs on a completed assembly, which normal
boundary scan provides. Its principle advantage, therefore, is to provide on-
chip test vectors and hence eliminate the need for separate hardware
resources for the test vector generation and the test response capture. Its
disadvantages in speed of test may be minimised by simultaneously loading
several of the PRBS circuits in a complete system assembly, and doing several
circuit tests at once—this is specifically done in the SASP method93, which
uses several scan-path elements that are simultaneously active in test mode.
Further details of LOCST may be found in the literature92'98. Some
comparative studies of silicon area and time to test of (i) scan-path, (ii)
BILBO and (iii) S3 in situ test strategies may be found in Reference 74, which
quantify the reduced time to test of the latter two methods in comparison
Structured design for testability (DFT) techniques 279
with the first, but with scan path having the lowest overall silicon area penalty
of the three methods.
Turning from in situ self-test proposals to ex situ methods, the most widely
publicised structure is the STUMPS (self testing using MISR and parallel shift
register sequence generator) architecture, which was original developed for
board level testing and then extended to the IC testing level". The principle
of ex situ self test is shown in Figure 5.40#, and the STUMPS realisation of this
principle in Figure 5.406.
pseudorandom
serial bit streams
The STUMPS architecture has multiple LSSD paths, generally one scan
path per IC, which are all driven in parallel from the one common
pseudorandom test generator (SRSG). The individual IC test responses are
captured by their own output scan path, and scanned into the common
output MISR. The test procedure is therefore as follows:
(i) reconfigure each IC into a level-sensitive scan design (LSSD) mode
using the normal on-chip latches (flip-flops), see Section 5.3.1;
(ii) scan in a pseudorandom test vector from the SRSG simultaneously to
each IC to load the input latches;
(iii) exercise each circuit under test with the loaded test vector;
(iv) capture the test response in the output latches of each IC;
(v) scan out the resulting data simultaneously from every IC into the one
common MISR circuit;
(vi) repeat (ii) to (v) as many times as necessary to complete the required
test coverage.
Notice that in order to scan in a completely new test vector on each
procedure (ii) above, L clock pulses are required, where L is the length of the
longest LSSD scan path. This means that some excess bits will be fed into
shorter scan paths, which may overflow into the MISR circuit. A potentially
more troublesome problem, however, is that the test bits serially fed into a
LSSD scan path are determined by the shift register action of the pseudo-
random generator, and hence cannot have certain patterns; for example, the
simple four-stage LFSR of Figure 3.18 can only provide the bit sequence of:
11110 10 1100 1000
from any one of its Q outputs, and hence may not be able to test for, say,
certain stuck-at faults when loaded into a LSSD circuit. Also, the test bits
shifted into one LSSD scan path are a time-shifted copy of those in another
scan path, rather than being completely uncorrelated. These factors may
cause testing difficulties if not fully understood85; it may be necessary to
include some additional exclusive-OR gates in the SRSG outputs to break up
these relationships in the serial input but streams100. (Notice that a CALBO
generator would not have these problems.)
Further details of STUMPS may be found published15'19'85'99"100. Details of
and references to several other proposed built-in self variants, including
CEBS (centralised and embedded BIST architecture with boundary scan),
RTD (random test data), CATS (cyclic analysis testing systems) and CSTP
(circular self test path) may be found in Reference 6.
Finally, returning to variants on the basic BILBO concept without involving
additional scan-test structures, there have been several practical variations
which have considered partitioning or otherwise modifying the autonomous
pseudorandom LFSR generator in some manner. One published method is
to modify the usual pseudorandom output of the LFSR generator so as to
produce weighted random patterns, which may result in the possibility of
using fewer than 2n - 1 test vectors.
Structured design for testability (DFT) techniques 281
* Strictly speaking, with the four-stage (w = 4) LFSR shown in Figure 5.41a, since it
only has 15 states in its cyclic sequence the probability of three ones is 2 out of 15 and
not 2 out of 16, see Figure 3.186, giving a probability of 0.133 instead of 0.125. This
difference between 2n and 2" - 1 becomes negligible with higher n.
282 VLSI testing: digital and mixed analogue/digital techniques
Lbi> D Q
ck
-D Q
ck
D Q
ck
D Q
ck
primary inputs
scan data in
o
test register
o
test register
o
test register
j -\^>
" \ ^
A
diagnostic
O <> O data
A multiplexer out
control
test register - test register test register
primary outputs
O ;
Figure 5.42 The BIST architecture of Reference 107 which uses partitioned LFSR test
generation
a the overall architecture
b two pseudorandom sequence generators providing test vectors
Two LFSRs of length ten and 11 would therefore provide a total of 2 094 081.
This may be contrasted with the maximum length of a 21-stage LFSR, which
is 2 097 151, but the test vectors across the coprime pair of LFSRs have better
testing properties than the single 21-stage LFSR, and are easier to route in an
IC layout than one very long LFSR. We are also not restricted to two partitions
as shown above; three or more maximum-length LFSRs may be combined,
provided that the number of stages obeys the coprime rule. (Failure to obey
this rule will, of course, result in a reduced-length combined test vector
sequence.)
Although the coprime rule gives the maximum combined-length
sequence, noncoprime pairs may also be acceptable in given circumstances,
provided that they are not of equal length. Of the possible 45 different pairs
of LFSRs with lengths between n= 10 and 19, 32 pairs are coprime and 13
are noncoprime. The lowest combined length noncoprime sequence is with
n = 10 and 15, giving 1.08 x 106 test vectors, and the highest is with n = 16 and
18, giving 5726 x 106 test vectors.
Structured design for testability (DFT) techniques 285
P 1 = -L X 1OO% (5.10)
The probability of detecting the fault with M random test vectors is:
l00% (5.11)
If M is made greater than 2n then it follows that the fault coverage closely
approaches one hundred per cent.
Therefore, to test many of the combinational logic blocks, test vectors are
selected from coprime LFSR assemblies which have in total more stages than
the maximum number of primary inputs per logic block. A cited example is
a 20-stage coprime LFSR assembly, 17 connections from which are taken to
test the largest combinational block. Hence w= 17 and M- 20 in eqn 5.11,
giving a theoretical fault coverage of 99.9 % with 220 test vectors. The actual
fault coverage may be better than these theoretical values, since other
theoretical studies have indicated that these values represent the lower
bound for nonredundant faults, with true fault coverage being higher107'108.
The thrust of this built-in test strategy, therefore, is to permit flexibility
in partitioning and in routing of test vectors, with a very high probability of
fault detection at the expense of more test vectors than used in an exact
exhaustive test set. Standard MISR techniques are used to capture the test
results, which are scanned off-chip for confirmation of fault-free
performance. More than one block is tested at a time; no scan-test ATPG
programs are used; a total of 3 800 000 clock cycles are used to check the chip
fully, with 40 000 clock cycles to scan in and scan out test data. A factor not
fully discussed in Reference 107 is that although the method of test vector
286 VLSI testing: digital and mixed analogue/digital techniques
generation guarantees near 100 % fault coverage, see eqn. 5.11, the on-chip
test results are still compressed in MISR configurations, and therefore the
probability of aliasing, see eqns. 5.2 and 5.8 above, is still present. Hence,
although high fault coverage is achieved by the autonomous test vector
generation, we are still dependent upon the performance of the output
compression for final fault-free/faulty decisions. More than one scan-out of
the MISR signature during a test may be a way of minimising the possibility
of aliasing.
Other segmented LFSR generators have been discussed in published
literature109'110, but as far as is known have not been used to date in practical
applications. An analysis of the properties of these generators and further
variants may be found in Reference 19. Sharing of the individual outputs of
a single LFSR between several circuit inputs is also considered in Reference
111.
To summarise these various BIST techniques, all will be seen to involve (i)
some form of autonomous pseudorandom test vector generator and (ii) some
form of MISR test response capture. An objective in all cases is to avoid having
to use expensive off-chip test hardware as far as possible, and also not to have
to undertake any comprehensive ATPG programming. Further discussions
on principles and theory may be found in References 16, 19.
We will return to some additional considerations of built-in self test in the
following chapter when we consider the testing of specific devices such as
PLAs, memory and other strongly-structured architectures.
behavioural
statements in
English
top-down
hierarchical
design architectural
behavioural
domain
algorithmic
data flow
bottom-up
details or
redesign
logic
structural
domain
silicon
manufacture
the present status of VHDL may be found120'121, but certain conflicts still
remain concerning the OEM adoption of the full VHDL IEEE standard 1076,
or reduced subsets of 1076, or competitive commercial alternatives
particularly Verilog™ of Cadence Design Systems, Inc., CA.
High-level hardware description languages, therefore, will not introduce
any new testing concepts beyond those which we have previously covered;
what they may do is to provide a unified platform for the incorporation of
chosen test strategies into a circuit or system concurrent with the normal
functional design activity. Difficulties of conforming with standards, such as
IEEE 1076 and 1149 and others*, and also commercial interests, will
undoubtedly continue to cause problems for OEM designers seeking to use
the latest CAD tools for DFT and BIST purposes.
* Other standards include IEEE standard PI 149.5, standard module test and
maintenance bus, which is a dedicated test and maintenance interface independent
of the module's functional interface; IEEE standard 1212, standard command and
status register architecture, which covers a range of system management functions and
microprocessor backplanes; and ISO10164, open standards, covering a range of open
systems standards for computers and telecommunication systems. The latter will also
address test management and define standard classes of system test.
290 VLSI testing: digital and mixed analogue/digital techniques
(i) to attempt to use the on-chip sequential elements to provide test stimuli
and record the test results, so as to minimise the need for costly external
test hardware;
(ii) to attempt to do the on-chip tests at normal system speed if possible;
(iii) to eliminate the need to determine any minimum set of test vectors
based upon fault modelling or other basis;
(iv) to minimise the number of additional I/Os necessary to undertake the
built-in test procedure (s).
5.8 References
1 BENNETTS, R.G.: 'Design of testable logic circuits' (Addison-Wesley, 1984)
.2 GIACOMOJ.D.: 'Designing with high performance ASICs' (Prentice Hall, 1992)
3 NEEDHAM, W.M.: 'Designer's guide to testable ASIC devices' (Van Nostrand
Reinhold, 1996)
4 Parker, K.P.: 'Integrating design and test: using CAE tools for ATE programming'
(IEEE Computer Society Press, 1987)
5 'Design for testability'. Microelectronics for industry publication PT.505DFT, The
Open University, UK, 1988
6 ABRAMOVICI, M, BREUER, M.A., and FRIEDMAN, A.D.: 'Digital systems testing
and testable design' (Computer Science Press, 1990)
7 'Design for testability' in 'Design handbook' (Intel Corporation, 1986)
8 'Testing and testability' (NEC Electronics Corporation, 1986)
9 'Data book and design manual' (LSI Logic Corporation, 1986)
10 BERGLUND, N.C.: 'Level sensitive scan design test chip/board systems',
Electronics, 1979, 52, 15 March, pp. 118-120
11 FUNATSU, S., WAKATSUKI, N., and YAMADA, A.: 'Easily testable design of large
digital circuits', NEC Res. Dev., 1979, (54), pp. 49-55
12 FUJIWARA, H.: 'Logic testing and design for testability' (MIT Press, 1985)
13 MICZO, A.; 'Digital logic testing and simulation' (Harper and Row, 1986)
14 PYNN, C: 'Strategies for electronic test' (McGraw-Hill, 1986)
15 WILLIAMS, T.W. (Ed.): 'VLSI testing' (North-Holland, 1986)
16 WILLIAMS, T.W, and PARKER, KP: 'Design for testability—a survey', Proc. IEEE,
1983, 71, pp. 98-112
17 EICHELBERGER, E.B.: 'Latch design using level sensitive scan design'.
Proceedings of COMCON, 1983, pp. 380-383
18 DASGUPTA, S., GOEL, P., WALTHER, R.G., and WILLIAMS, T.W: 'A variation of
LSSD and its implications on design and test pattern generation in VLSI'.
Proceedings of IEEE international conference on Test, 1982, pp. 63-66
19 BARDELL, P.H., McANNEY, W.H., and SAVIR, J.: 'Built-in test for VLSI:
pseudorandom techniques' (Wiley, 1987)
20 WILKINS, B.R.: 'Testing digital circuits: an introduction' (Van Nostrand Reinhold,
1986)
21 GUTFREUND, K.: 'Integrating the approaches to structure design for testability',
VLSIDes., 1983, 4 (6), pp. 34-37
22 STEWART, J.H.: 'Future testing of large LSI circuit cards'. Digest of IEEE
Semiconductor test symposium, 1977, pp. 6-15
23 ANDO, H.: Testing VLSI with random-access scan'. Digest of IEEE COMPCON,
1980, pp. 50-52
23tfLALA, P.K: 'Fault tolerant and fault testable hardware design' (Prentice Hall,
1986)
24 BREUER, M.A., GUPTA, R., and LIEN, J.C.: 'Concurrent control of multiple BIT
structures'. Proceedings of IEEE international conference on Test, 1988, pp.
431-442
25 ABADIR, M.S., and BREUER, M.A.: 'Scan path with look-ahead shifting'.
Proceedings of IEEE international conference on Test, 1986, pp. 699-704
26 ABADIR, M.S.: 'Efficient scan-path testing using sliding parity response
compaction'. Proceedings of IEEE international conference on Computer aided
design, 1987, pp. 332-335
27 GUPTA, R., GUPTA, R., and BREUER, M.A.: 'The BALLAST methodology for
structural partial scan design', IEEE Trans., 1990, C-39, pp. 538-544
292 VLSI testing: digital and mixed analogue/digital techniques
28 CHEN, KX, and AGARWAL, V.D.: 'A partial scan method for sequential circuits
with feedback', IEEE Trans., 1990, pp. 544-548
29 RAJSUMAN, R.: 'Digital hardware testing: transistor-level fault modelling and
testing' (Artech House, 1992)
30 MA, H.-KT., DEVADAS, S., NEWTON, A.R., and SANGIOVANNI-VINCENTELLI,
A.: 'An incomplete scan design approach to test generation for sequential
machines'. Proceedings of IEEE international conference on Test, 1988, pp.
730-734
31 TRISCHLER, E.: 'Incomplete scan path with an automatic test generation
methodology'. Proceedings of IEEE international conference on Test, 1980, pp.
153-162
32 CHICKERMANE, V., and PATEL, J.H.: 'A fault-oriented partial scan design
approach'. Proceedings of IEEE international conference on Computer aided
design, 1991, pp. 400-403
33 PARK, S., and AKERS, S.B.: 'A graph theoretic approach to partial scan design by
K-cycle elimination'. Proceedings of IEEE international conference on Test, 1992,
pp. 303-311
34 ASHER, P., and MALIK, S.: 'Implicit computation of minimum-cost feedback-
vertex sets for partial scan and other'. Proceedings of IEEE conference on Design
automation, 1994, pp. 77-80
35 MIN, H.B., and ROGERS, W.A.: 'A test methodology for finite state machines
using partial scan design',/. Electron. Test, Theory Appl, 1992, 3, pp. 127-137
36 ANDERSON, T.L., and ALLSUP, C.K: 'Partial scan and sequential ATPG', Test,
1993, 16, July/August, pp. 13-15
37 KUNZMANN, A., and WUNDERLICH, H.-J.: 'An analytical approach to the partial
scan problem',/. Electron. Test., Theory Appl, 1990, 1, pp. 163-174
38 TAI, S.-E., and BHATTACHARYA, D.: 'A three-stage partial scan design method
using the sequential circuit flow graph'. Proceedings of IEEE international
conference on VLSI testing design, 1994, pp. 101-106
39 KIM, KS., and KIME, C.R.: 'Partial scan using reverse direction empirical
testability'. Proceedings of IEEE international conference on Test, 1993, pp.
498-506
40 MARTLETT, R.A., and DEAR, J.: 'RISP (reduced intrusion scan path)
methodology',/ Semicust. ICs, 1988, 6 (2), pp. 15-18
41 POMERANZ, I., and REDDY, S.M.: 'Synthesis of testable sequential circuits: an
overview'. Digest of papers, test synthesis seminar, IEEE international conference
on Test, 1994, paper 1.3
42 IEEE standard 1149.1-1990 'Standard test access port and boundary scan
architecture'
43 Supplement to IEEE standard 1149.1, P.1149.1a/D9, ibid., 1993
44 BLEEKER, H., VAN DEN EIJNDEN, P., and DE JONG, E: 'Boundary scan: a practical
approach' (Kluwer, 1993)
45 'Testability primer'. Texas Instruments, Inc., SSYA.002A, CA, 1991
46 T h e ABCs of boundary-scan test' (Philips Test and Measurement, Eindhoven,
1994)
47 'SCOPE: an extended JTAG architecture'. Texas Instruments SCL162,CA, 1989
48 'SCAN: IEEE 1149.1 (JTAG) compliant logic family'. National Semiconductor
Databooklet, UK, 1992
49 MAUNDER, C, and BEENKER, E: 'Boundary scan: a framework for structured
design-for-test'. Proceedings of IEEE international conference on Test, 1987, pp.
714-723
50 PARKER, KP., and ORESJO, S.: 'A language for describing boundary scan
devices',/ Electron. Test., Theory Appl, 1991, 2 (1), pp. 43-54
Structured design for testability (DFT) techniques 293
51 BRAVSAR, D.: 'An architecture for extending IEEE standard 1149.1 test access
port to system backplanes'. Proceedings of IEEE international conference on Test,
1991, pp. 768-776
52 DE JONG, R: 'Testing the integrity of the boundary scan test infrastructure'.
Proceedings of IEEE international conference on Test, 1991, pp. 106-112
53 ROBINSON, G.D., and DESHAYES, J.G.: 'Interconnect testing of boards with
partial boundary scan'. Proceedings of IEEE international conference on Test,
1990, pp. 572-581
54 BASSETT, R.W., TURNER, M.E., PANNER, J.H., GILLIS, P.S., OAKLAND, S.F.,
and STOUT, D.W.: 'Boundary scan design principles for efficient LSSD ASIC
testing', IBM/. Res. Dew., 1990, 34, pp. 339-353
55 OAKLAND, S.F., MONZEL, J.A., BASSETT, R.W., and GILLIS, P.S.: 'An ASIC
foundary view of design and test'. Digest of papers, test synthesis seminar, IEEE
international conference on Test, 1994, paper 4.2
56 ESCHERMANN, B.: 'An implicity testable boundary scan TAP controller', /
Electron. Test, Theory AppL, 1992, 3, pp. 159-169
57 LINDER, R.: 'Getting to grips with boundary scan', Test, 1994,16, July/August, pp.
17-19
58 KONEMANN, B., MUCHA, J., and ZWIEHOFF, G.: 'Built-in logic block
observation technique'. IEEE international conference on Test, 1979, digest of
papers, pp. 37-41
59 KRASNIEWSKI, A., and ALBICKI, A.: 'Automatic design of exhaustively self-
testing chips with BILBO modules'. IEEE international conference on Test, 1985,
pp. 362-371
60 KONEMANN, B., MUCHA, J., and ZWIEHOFF, G.: 'Built-in test for complex
integrated circuits', IEEEJ. Solid-State Circuits, 1980, SC-15, pp. 315-318
61 SMITH, J.E.: 'Measures of effectiveness of fault signature analyses', IEEE Trans.,
1980, C-29, pp. 510-514
62 CARTER, J.: 'The theory of signature testing for VLSI'. Proceedings of 14th ACM
symposium on Theory of computing, 1982, pp. 111-113
63 MUZIO, J.C., RUSKEY, R, AITKEN, R.C., and SERRA, M.: 'Aliasing probabilities
of some data compression techniques', in MILLER, D.M. (Ed.): 'Developments in
integrated circuit testing' (Academic Press, 1987)
64 YARMOLIK, V.N.: 'Fault diagnosis of digital circuits' (Wiley, 1990)
65 DAVID, R.: 'Signature analysis of multi-output circuits'. IEEE symposium on Fault
tolerant computing, 1984, digest of papers, pp. 366-371
66 SRIDHAR, T , HO, D.S., POWELL, T.J., and THATTE, S.M.: 'Analysis and
simulation of parallel signature analysers'. Proceedings of IEEE international
conference on Test, 1982, pp. 656-661
67 DAMIANI, M., OLIVO, P., FAVALLI, M., ERCOLANI, S., and RICCO, B.: 'Aliasing
in signature analysis testing with multiple input shift registers' IEEE Trans., 1990,
CAD-9, pp. 1344-1535
68 HUDSON, C.L., and PETERSON, G.D.: 'Parallel self-test with pseudorandom test
patterns'. Proceedings of IEEE international conference on Test, 1987, pp.
954-963
69 WANG, L.T., and McCLUSKEY, E.J.: 'Concurrent built-in logic block observation
(CILBO)'. IEEE international symposium on Circuits and systems, 1986, pp.
1054-1057
70 WANG, L.T., and McCLUSKEY, E.J.: 'Circuits for pseudoexhaustive test pattern
generation', IEEE Trans., 1988, CAD-7, pp. 1068-1080
71 FASANG, P.P.: 'BIDCO: built-in digital circuit observer'. Proceedings of IEEE
international conference on Test, 1980, digest of papers, pp. 261-266
72 McCLUSKEY, E.L., and BOZORGUI-NESBAT, S.: 'Design for autonomous test',
IEEE Trans., 1981, C-30, pp. 860-875
294 VLSI testing: digital and mixed analogue/digital techniques
73 DE BRUIJN, N.G.: 'A combinatorial problem', Nederlands Akad. Wetensch. Proc. Ser.
A, 1946, 49 (2), pp. 758-764
74 RUSSELL, G., and SAYERS, I.L.: 'Advanced simulation and test methodologies for
VLSI Design' (Van Nostrand Reinhold, 1989)
75 BHAVSAR, D.K., and HECKELMAN, R.W.: 'Self-testing by polynomial division'.
IEEE international conference on Test, 1981, digest of papers, pp. 208-216
76 HORTENSIUS, P.D., and McLEOD, R.D.: 'Cellular automata-based signature
analysis for built-in self-test'. Proceedings of 3rd Canadian technical workshop on
New directions for IC testing, Halifax, NS, 1988, pp. 117-128
77 PODAIMA, B.W., and McLEOD, R.D.: 'Weighted test pattern generation for built-
in self-test using cellular automata'. Proceedings of 3rd Canadian technical
workshop on Neto drections for IC testing, 1988, pp. 195-205
78 SERRA, M., SLATER, X, MUZIO, J.C., and MILLER, D.M.: 'The analysis of one-
dimensional linear cellular automata and their aliasing properties', IEEE Trans.,
1990, CAD-9, pp. 767-778
79 ZHANG, S., and MILLER, D.M.: 'A comparison of LFSR and cellular automata
BIST'. Proceedings of Canadian conference on VLSI, 1990, pp. 8.4.1-8.4.9
80 MILLER, D.M., ZHANG, S., PRIES, W., and McLEOD, R.D.: 'Estimating aliasing
in CA and LFSR based signature registers'. Proceedings of IEEE ICCD, 1990, pp.
157-160
81 WILLIAMS, T.W., DAEHN, W, GRUETZNER, M., and STARKE, C.W.: 'Bounds
and analysis of aliasing errors in linear feedback shift registers', IEEE Trans., 1988,
CAD-7, pp. 75-83
82 SERRA, ML: 'Algebraic analysis and algorithms for linear cellular automata over
GF(2) and the application to digital testing'. Congressus Numerantium,
Winnipeg, Canada, 1990, 75, pp. 127-139
83 BARDELL, PH.: 'Analysis of cellular automata used as pseudorandom pattern
generators'. Proceedings of IEEE international conference on Test, 1990, pp.
762-768
84 DAMIANI, M., OLIVO, P., FAVALLI, M., EROLANI, S., and RICCO, B.: 'Aliasing
in signature analysis with multiple-input shift-registers'. Proceedings of European
conference on Test, 1989, pp. 346-353
85 SAVIR, J., and BARDELL, PH.: 'Built-in self-test: milestones and challenges', VLSI
design, 1993, 1, pp. 23-44
86 KRASNIEWSKI, A.: 'Logic synthesis for efficient pseudo-exhaustive testability'.
Proceedings of IEEE conference on Design automation, 1991, pp. 66-72
87 HURST, S.L.: 'VLSI custom microelectronics: analog, digital and mixed-signal'
(Marcel-Dekker, 1998)
88 HURST, S.L.: 'A hardware consideration of CALBO testing'/ Proceedings of 3rd
technical workshop on New directions for IC Testing, Halifax, Canada, 1988, pp.
129-146
89 EL-ZIQ, Y.M.: 'S3: VLSI testing using signature analysis and scan path techniques'.
Proceedings of IEEE ICCAD, 1983, pp. 73-76
90 KOMONYSTKY, D.: 'LSI self-test using level-sensitive scan design and signature
analysis'. IEEE international conference on Test, 1982, digest of papers, pp.
414-424
91 BEUCLER, F.P., and MANNER, M.J.: 'HILDO: the Highly Integrated Logic Device
Observer', VLSIDes., 1984, 5 (6), pp. 88-96
92 LEBLANC, J.J.: 'LOCUST: a built-in self-test technique', IEEE Des. Test CompuL,
1984, 1 (4), pp. 42-52
93 SAYERS, I.L., KINNIMENT, D.J., and RUSSELL, G.: 'New directions in the design
for testability of VLSI circuit'. Proceedings of IEEE ISCAS, 1985, pp. 1547-1550
94 PARASKEVA, M., KNIGHT, W.L., and BURROWS, D.F.: 'A new test structure for
VLSI self-test: the structured register', Electron. Lett, 1985, 21, pp. 856-857
Structured design for testability (DFT) techniques 295
95 COSGROVE, B.: T h e UK5000 gate array', IEEProc. G, 1985, 132, pp. 90-92
96 RESNICK, D.R.: 'Testability and maintainability with a new 6K gate array', VLSI
Des., 1983, 4 (2), pp. 34-38
97 TOTTON, K.A.E.: 'Review of built-in test methodologies for gate arrays', ZEE
Proc. E, 1985, 132, pp. 121-129
98 EICHELBERGER, E.B., and LINDBLOOM, E.: 'Random pattern coverage
enhancement and diagnosis for LSSD logic self-test', IBMJ. Res. Dev., 1983, 27
(3), pp. 265-272
99 BARDELL, P.H., and McANNEY, W.H.: 'Self-testing of a multi-chip module'.
IEEE international conference on Test, 1982, digest of papers, pp. 302-308
100 BARDELL, P.H., and McANNEY, W.H.: 'Pseudorandom arrays for built-in tests',
IEEE Trans., 1986, C-37, pp. 653-658
101 GLOSTER, C: 'Synthesis for BIST with PREWARP'. Proceedings of 3rd annual
OASIS research review, Research Triangle Park, NC, May 1990
102 McANNEY, W.H., and SAVIR, J.: 'Distributed generation of non-uniform
patterns for circuit testing', IBM Tech. Disci Bull, 1988, 35 (5), pp. 113-116
103 CHIN, C.K., and McCLUSKEY, E.J.: 'Weighted pattern generation for
pseudorandom testing', IEEE Trans., 1987, C-36, pp. 252-256
104 MARTINEZ, M., and BRACHO, S.: 'Concatenated LFSR makes a weighted built-
in logic block observation', Microelectron.J., 1994, 25, pp. 219-228
105 WUNDERLICH, H.J.: 'Self-test using unequiprobable random patterns'.
Proceedings of IEEE international conference on Test, 1988, pp. 236-244
106 WAICUKAUSKI, J.A., and LINDBLOOM, E.: 'Fault detection effectiveness of
weighted random patterns'. Proceedings of IEEE international conference on
Test, 1988, pp. 245-255
107 ILLMAN, R., and CLARKE, S.: 'Built-in self-test of the MACROLAN chip', IEEE
Des. Test CompuL, 1980, 6 (2), pp. 29-40
108 WAGNER, K.D., CHIN, C.K., and McCLUSKEY, E.J.: 'Pseudorandom testing',
IEEE Trans., 1987, C-36, pp. 332-343
109 HURD, W.J.: 'Efficient generation of statistically good pseudonoise by linearly-
connected shift registers', IEEE Trans., 1974, C-23, pp. 146-15
110 BARDELL, P.H., and SPENCER, T.H.: 'A class of shift-register Hurd generators
applied to built-in test'. IBM technical report TR00.3000, NY, September 1984
111 KANZMANN, A., and KRINBEL, S.: 'Self-test with determinstic test pattern
generators', in SAUCIER, G., and MIGNOTTE, A. (Eds.): 'Logic and
architecture synthesis: state-of-the-art and novel approaches' (Chapman and
Hall, 1995)
112 ARMSTRONG, J.A., and GRAY, EG.: 'Structured logic design with VHDL'
(Prentice Hall, 1993)
113 RUSTON,A.: 'VHDL for logic synthesis' (McGraw-Hill, 1995)
114 IEEE standard 1076-1987, 'Standard VHDL language reference'
115 BELLON, C, ROBACH, C, and SAUCIER, G.: 'An intelligent assistant for test
program generation: the SUPERCAT system'. IEEE international conference on
Computer aided design, 1984, digest of papers, pp. 32, 33
116 ROBINSON, G.D.: 'HITEST: intelligent test generation'. IEEE international
conference on Computer aided design, 1983, digest of papers, pp. 311-323
117 ROBACH, C , MALECHA, P., and MICHEL, G.: 'CATA: a computer-aided test
analysis system', IEEE Des. Test CompuL, 1984, 1 (2), pp. 68-79
118 ABADIR, M.S., and BREUER, M.A.: 'A knowledge based system for designing
testable VLSI chips', IEEE Des. Test Comput., 2 (4), pp. 56-68
119 SHUBIN, H., and ULRICH, J.W.: 'IDT: an intelligent diagnostic tool'.
Proceedings of AAAI-82, 1982, pp. 90-295
120 LEUNG, E., QURESHY, N., RHODES, T, and TSAI, T.-S.: 'VHDL integrated test
development', Electron. Prod. Des., 1995, 16 (10), pp. 53-56
296 VLSI testing: digital and mixed analogue/digital techniques
6.1 Introduction
The majority of the material covered in previous chapters has been general
in its concepts, and has not specifically considered certain families of circuits
or circuit architectures. The self-test considerations of the previous chapter,
for example, did not involve any specific circuit structure or layout in the core
logic or sequential (storage) networks, apart from the requirement in the
majority of cases to separate the combinational logic elements from the
sequential elements.
However, in this chapter we will consider particular circuits and circuit
architectures, and how they may be tested. The fundamental principles of
digtal logic testing will still be relevant, but specific fault mechanisms, circuit
failures and/or testing procedures may now be involved. Additionally, many
of the required test procedures will have been considered in detail by the IC
manufacture (vendor), and therefore the OEM will not have the problem of
formulating tests for such circuits from scratch as may be necessary with a
system assembly of simpler ICs or other components—the problem of
accessibility of the I/Os of such circuits for test purposes in a completed
system assembly will, of course, still be present.
The main areas which will be considered in the following pages are:
• microprocessors and memory;
• programmable logic devices;
• cellular arrays.
Memory is an essential part of all processor-based systems; both RAM and
ROM have very strongly structured architectures, the testing of which is
crucial to the performance of the processor system. Similarly, programmable
logic devices have distinctive silicon layouts which, like cellular array
structures, lead to specific testing considerations. We will, therefore, consider
each of these in turn, beginning with programmable logic devices which are
of increasing significance to original equipment manufacturers.
298 VLSI testing: digital and mixed analogue/digital techniques
2n bit lines
- i / ^
Xi — •
B
o
*l
- i f = 1r
n primary CD
! -
inputs " C
- i V1^
1 \
<N
:i
x o
C
AND matrix
L — . —.. ~— . -
product lines- „——
1 >
- m primary outputs
OR matrix 1 . *
_ _.J *
r
00 01 11 10 \ 00 01 11 10 \ 00 01 11 10
00 1 1 1 1
01 1 1 1 1
11 1 1 1
10 1 1
-^
fault-free output growth fault, e.g. shrinkage fault, e^g
term AB A = loss of B >4BC= gain of C
I' nill
CDX 00 01 11 10 \ 00 01 11 10 00 01 11 10
F
\
u
00 1 1 1
01
11 T) Tl 1 1) (T~T) [Tj
10 1 1 1
LLJ
Jault-free output disappearance fault, appearance fault, e.g.
ABC + BCD + ABC e.g. ABC + BCD c+_ecD+>4ec+
=D+AB+AC
Figure 6.3 The hierarchy of possible test methods for programmable logic arrays
(Acknowledgements, based on Reference 26)
[(product term with the fault present) . (product term without the fault)] (6.1)
which in this particular case is
[(xx) . (xpq)]
= [xl(xl + x2)]
This is shown dotted in Figure 6.4&*. To detect the effect of this fault on the
final OR ouput/j (X) we need to perform a similar operation:
[(growth term with the fault present) . (sum of the remaining fault-free product terms)]
(6.2)
* The operation A.B between two Boolean terms A and B is sometimes referred to as
the Sharp operation, and expressed as (A # B). However, this is not a term often used
in engineering circles and we will not use it here.
Testing of structured digital circuits and microprocessors 303
00 01 11 1o growth fault
X3X4 ^ in x^ x2
00
01
11
10
Figure 6.4 A simple PLA example with a crosspoint groiuth fault in the product term
?
a circuit
b Karnaugh map for fj (X)
which in this case is
This is confirmed in Figure 6.4&. If the crosspoint fault in xlx2 had been the
loss of Xj rather than x2, it will be seen that the effect of this growth fault on
fi(X) would have been the additional output x^x^.
304 VLSI testing: digital and mixed analogue/digital techniques
The test vector to check for the loss of x^ in fx (X) would therefore be
xlx^x^x4 = 10 0 0, which would give ^(X) = 0 when fault free and 1 when
faulty. Similarly, to test for the loss of xl would require the test vector 0 1 0 -.
Should the product term x^x^ also be used in any other output^(X), ..., then
some alternative test vectors may also be appropriate.
Hence it is possible to determine a set of test vectors by Boolean
consideration of all relevant crosspoint failures. ATPG algorithms based upon
these considerations with a search for commonality to reduce the final test set
have therefore been developed. Shrinkage and growth faults are usually
considered first, followed by appearance and disappearance faults. A high
proportion of the latter are detected by the shrinkage and growth fault test
vectors, which successfully minimises the length of the final test set.
There are, however, certain disadvantages with this procedure and the
resulting ATPG programs, namely:
• multiple crosspoint faults are not specifically considered, although they
may be with certain extensions to the algorithms;
• the test patterns are entirely dependent upon the dedicated functions in
the PLA, and are not generalised for any possible dedication of the device;
• the test patterns do not take into account the possibility of other than
crosspoint faults, for example a loss of inversion in an input decoder or
an output buffer;
• if the PLA is part of a complex VLSI circuit, controllability and
observability of the PLA inputs and outputs may not be fully available for
such tests, see Figure 6.5;
• as PLA size grows towards 50 or more inputs and hundreds of product
terms, so the number of crosspoint faults increases such as to make ATPG
programs based upon this fault model prohibitively expensive in CPU and
execution time.
Hence, although useful ATPG programs have been developed based upon
the crosspoint fault model13'17, other approaches have been actively pursued.
These include:
(i) syndrome and other offline output compression test methods;
(ii) online concurrent error detection by the addition of checker circuits
using Berger codes or other methods;
(iii) additions to the basic PLA architecture to provide some built-in self test
facility to ease the testing problem.
Looking at the first of the three above broad categories, and considering a
ones-count (syndrome) test as covered in Chapter 4, Section 4.3.1. If we
could guarantee that all faults in the PLA would result in growth or shrinkage
faults at the outputs, then syndrome testing would be a powerful tool. For
example, in the simple function illustrated in Figure 6.4, the syndrome count
for fi(X) would be as shown in Table 6.1. However, a fundamental
Testing of structured digital circuits and microprocessors 305
Figure 6.5 The increasing use of large buried PLAs within VLSI ICs, with the
consequent difficulties of controllability and observability
Table 6.1 The effect of growth and shrinkage faults in the circuit of Figure 6.4a
Growth or shrinkage fault in Figure 6.4 fi (X) Syndrome count
Fault-free 12
x 2 missing in x 2 x 4 13
x 4 missing in x22 xx4 14
missing in ( x 14
x 2 missing in x ( x 2 13
x3 missing in x^ 16
Additional x, in x 2 x 4 II
Additional x 3 in x 2 x 4 10
It has been formally shown that all single faults in the AND and the OR arrays
of PLAs are detected by a syndrome count, including bridging faults between
product lines and between output lines 27 " 29 . However some multiple faults
and I / O faults can result in the fault-free syndrome count still being
produced, to overcome which the possiblity of weighted syndrome sum-
mation (WSS) testing, see Section 4.3.1, has been proposed. Nevertheless, the
basic need for a fully exhaustive input test set remains, and hence circuit
306 VLSI testing: digital and mixed analogue/digital techniques
additions to the basic PLA architecture to give a design which may be tested
with some nonexhaustive test set are potentially more attractive.
x, r, Y2 x, x,
x
i 0 0 (normal mode)
x
i 0 1
x
, 1 0
X 1 1 (not used)
TMS1 \ \TMS2
TMS I I scan in
T=Xi
> normal mode or scanned-in data
array
J - product terms
r — -• -• — •
additional AND array
\ — • — • — • — •
binary
counter | / of logic 0 and 1 on
•
:j the product lines
i ' when in test mode
i
•
• J
•
k product terms
1
Pi P2
column
J I.
TTTITTTT extra column or
columns to provide
scan in scan out
some specific test
\ \ \ I I ITT •]
feature
^ 9&$ I
..J
ll.UJ.il.l
i extra row or rows to
provide some specific
-•—I—I—h *" test feature
V2Y1 : _.
k product terms
U (X)
fm(X)
A
extra row = column
parity terms
Figure 6.7 The offline test additions ofFujhvara and Kinoshita. The (k + 1) input
exdusive-OR gate shown here for output Zj would be a cascade ofk two-
input XOR gates, and similarly for output Z^ there would be a cascade of
m two-input XOR gates
strategy does not rely upon the output functions of the dedicated PLA, but
relies instead on the two parity checkers for fault detection.
The PLA testing strategy of Hong and Ostapko31 has many similarities to
the above, and also provides a test procedure independent of the dedicated
output functions. The shift register to provide controllability of the product
column lines into the OR array is now located between the AND and OR
arrays, rather than as shown in Figure 6.7, and somewhat more complex
input decoders are present. However, these and further similar proposals all
require cascades or trees of exclusive-OR gates for the parity checking, which
impose a timing constraint on the offline tests and require a considerable
silicon area overhead for the additional circuit details.
A much reduced silicon area penalty can be achieved by not using parity
checking, and making the test patterns function dependent rather than
independent. The K-test scheme of Khakbaz32 uses a shift register above the
AND array to select individual product lines as in Figure 6.7, but instead of
Testing of structured digital circuits and microprocessors 311
any parity checks uses an additional row in the OR array to provide a test
output Z* which is the OR of all the product lines. Knowing the dedication
of the PLA, a test set can be formulated which tests (i) the correct operation
of the shift register, (ii) the correct presence of each product term by
applying the appropriate input test vectors x^ x^ ... xn, and (iii) the correct
outputs from the OR matrix. In test (ii) the appropriate xi inputs are applied
to activate the product term on the selected product line, and its presence
checked by observing the Z* output. All inputs are then individually inverted
in turn; if the particular xi is a don't care term in the selected product column
then Z* should remain 1; if xi is not a don't care input then Z* should change
from 1 to 0 when each xi is inverted from its correct value. The OR array
crosspoints are checked by observing that the programmed outputs only
respond when the correct AND terms are present on the product lines
from the array. It is claimed that all faults, crosspoint, stuck-at and bridging,
which give rise to incorrect output functions are detected, using a total of
2.5n + 2&+5 tests10'13'32.
A number of other function-dependent and function-independent test
strategies may be found33"38, the former including the proposals of Raj ski
and Tyszer33 and Reddy and Ha34. Further details may be found in the cited
references, and comparisons of the fault coverage and circuit overheads may
be found in References 10, 13 and 26. In general, these offline test strategies
have not found very great favour with vendors and OEMs, being unnecessary
for relatively small PLAs, with online self tests currently receiving greater
attention and acceptance for larger PLAs as will be covered in the next
section.
input normal
d
decoder AND C1
array
normal
OR
array
Ci
c2 C3 *z
a.
additional OR terms
Ci C 2
code checker depending upon some chosen coding scheme across all the OR
array outputs. This may be a parity check or some p out of q code word check.
All crosspoint and most other PLA faults are caught by one or more of
these checkers, but the overall circuit is not totally self checking and some
faults may be masked. Additional function-dependent tests have therefore
been proposed39 to check the PLA after the initial dedication, following
which the online checks in service are claimed to be satisfactory. However, the
requirement that only one product line leading into the OR array shall be
energised at a time means that a minimum sum of products for the several
output functions may not be possible. For example, consider the trivial case
shown in Figure 6.9. The minimum sum of products realisations for the two
functions are:
X
3X4\ 00 0 1 11 10 X
3X4\ 0 0 01 11 1 0
00 00 1 T||
01 1 1 1 01 J_ 1
J
11 [1 [i\ 1 11 1
. .—'
10 1
v.
1 10 JJ
f2(x)
Figure 6.9 Two functions with a common term x A in their realisation which
must be separately generated (see text)
3 x^
normal false
input
AND AND
decoder
array array
normal
o
OR
totally array
self-checking
c2 checker
circuit
additional OR terms
Figure 6.10 The online testable PLA ofMak, Abraham and Davidson41
normal mode/test
mode control signature decoder
fault-free / faulty
feedback
value product line shift-register selector
generator
normal
OR
array
I
15
otwo additional
exclusive-OR tree for OR lines
AND odd-parity check for OR parity
Figure 6.11 The offline built-in self test strategy ATPLA of Yajima and Aramaki^,
omitting the clock details which load the two shift registers for clarity
(i) test the AND array by generating an input test set using BILBO 1, and
capture and scan out the test signature using BILBO 2;
(ii) test the OR array by generating an input test set using BILBO 2, and
capture and scan out the test signature using BILBO 3;
(iii) if it is possible to connect the PLA outputs and if necessary additional
BILBO 3 outputs back to the PLA primary inputs, then BILBO 3 may be
used to drive the output buffers/inverters and the input decoders, the
test results being captured and scanned out from BILBO 1. Alter-
natively, if the PLA is buried, preceeding and following BIST circuits
may be used to test these input and output circuits.
There are, however, certain unique features in these tests. The BILBO circuits
used in autonomous test vector generation mode to supply test vectors to the
AND array and to the OR array do not need to be maximum-length
pseudorandom generators as discussed in Chapter 5, but instead can be
nonlinear feedback shift registers (NLFSRs) as shown in Figure 6.12& and c,
the output sequence generated by these circuits being as follows:
0 0 0 .. . 1 0 1 1 1 ... 0 1
0 0 0 .. . 0 1 1 1 1 ... 1 0
repeat repeat
0 0 0 ... 1 1 I I I . . . 0 0
0 0 0 ... 0 1 I I I . . . 1 0
repeat repeat
318 VLSI testing: digital and mixed analogue/digital techniques
scan in
\SDI
»»
it • • i
• input AND
(0 • • BILBO 1
decoder array
•
UiT •
>
NLFSR
I —• 1SDI
TSDO
0Ut ut
scan out u P
buffers/inverters
Figure 6.12 The offline built-in self-test strategy ofDaehn and Mucha5®
a the architecture
b the NLFSR generator circuit to test NOR/NAND structures
c the NLFSR circuit to test input decoders
It will be appreciated that outputs Q of Figure 6.12& are the appropriate test
vectors to test OR/NOR circuits, and outputs Q a r e t n e appropriate test
vectors to test AND/NAND circuits. Therefore, depending upon whether the
AND array of the PLA is in reality a NOR or a NAND structure, the product
output lines of the array may be tested with this set of 2n + 1 test vectors.
Similarly, the OR array may be tested with a set of k + 1 test vectors The
outputs of Figure 6.12£ are appropriate for checking the input decoders of
the PLA so as to ensure that all literals xi and x{ are correct with no stuck-at or
bridging faults.
The total number of test patterns required to test the PLA fully is therefore
linearly dependent upon the number of inputs, product terms and outputs.
The test signatures generated in the BILBO, however, are function
dependent and have to be calculated for every PLA dedication. The
Testing of structured digital circuits and microprocessors 319
normal mode/test
mode controls
extra product
column
parity check)
output buffers
and/or
inverters
MISR
1
test signature
Figure 6.13 The offline built-in self-test strategy ofSaluja, Kinishita and Fujizvara^
which is an extension of the test strategy shown in Figure 6.7
There has been and remains considerable development in the design and
choice of the standard cell which constitutes the array architecture. The
broad argument concerns whether the cell should be very simple, thus
requiring the interconnection of a number of cells to make circuits such as
shift registers and counters, or whether each cell should have a higher logic
capability so that it may itself realise simple combinational and sequential
requirements. This argument is concerned with what is now termed the
granularity of the architecture5'6'8, and is a subject of vigorous debate. A
compromise that has been adopted, however, is to have two standard cells in
a FPGA, one cell being entirely combinational logic gates and the other a
clocked flip-flop circuit.
Publications dealing specifically with programmable gate arrays are widely
available1'5"8; however, the original equipment manufacturer has to accept
whatever choice of architecture is commercially available, and hence it is the
vendor who should consider the testing implications of a particular
architecture. Currently the principal vendors in this field include:
• Texas Instruments;
• Intel Corporation;
• Amtel Corporation;
• Xilinx;
• Motorola;
• GEC Plessey Semiconductors;
• Lattice Semiconductors Corporation;
• Concurrent Logic;
• QuickLogic Corporation;
• Algotronix;
and others. Takeovers and newly-formed innovative companies make this a
continually evolving and dynamic field. Details of commercial products may
be found in company literature such as References 67-75; Figure 6.14
illustrates typical FPGA cell designs.
Since the choice of cell available in commercial FPGAs has been chosen to
enable any OEM circuit requirement to be realised, it is clearly possible to
dedicate these devices to provide appropriate controllability and observability
for final test purposes, or to build in scan-path or self-test mechanisms if
necessary. Possibly the size of commercially-available FPGAs up until recently
has not been sufficiently large to warrant full DFT mechanisms such as
BILBO to be built into the dedicated product, but this may change with
increasing FPGA capabilities. Some benchmark test results have been
published comparing the performance and silicon area overheads building
scan testing into Actel and Xilinx FPGAs, these tests using the normally-
available cells in the two architectures for these comparison studies76.
322 VLSI testing: digital and mixed analogue/digital techniques
aob
carry in cascade in
| J~ I 1 preset" j
Look-up table, -LE out
carry chain and
cascade chain
C1 C2 C3
r —• — 4—» — ••—
Figure 6.14 Example cells used in programmable gate arrays. The trapezoidal
elements are multiplexers in all cases
a Actel Corporation multiplexer-based cell; a sequential cell version
adds two latches to this configuration
b Altera Corporation FLEX 8000 cell
c Xilinx Corporation XC 4000 configurable logic cell (CLB)
Testing of structured digital circuits and microprocessors 323
T T 7 V
©B K>B toe
D-
D-
D-
D- —TJ\
INSTWUCTION REGISTER
0 6 PROOUCT TERMS
i
PROGRAMMABLE
—c
12 INTERCONNECT
INPUT PINS AND
COMBINATORIAL
LOGIC ARRAY
Logic diagram
24 2« 32 M 40
ASYNCHRONOUS REM
\ ^
°l
)»
Common
I/OE PIN
Individual OE
Individual
Asynchronous
Preset
Common
CLK/LE (PIN)
Individual ,—N
Asynchronous 1 \
Reset •—*
To AND Array
To AND Array
Figure 6.17 The output macrocell ofAdvanced Micro Devices PALCE 29MA16H-25
CMOS PUD (Acknowledgements, Reference 80)
standard-cell ICs,
including complex macros,
and full-custom design
no. of gates
perIC
PLDs FPGAs uncommitted gate
see Section 6.2.3 see Section 6.2.2 arrays
standard
cells including
complex macros
and full-custom
design
production volume
106 requirements
Figure 6.18 Typical technical and economic limits for the various categories of
programmable and custom digital ICs. The ranges shown are subject to
continuous physical and commercial evolution, and therefore represent a
broad picture of these parameters
a technical maximums
b economic regions of advantage
Testing of structured digital circuits and microprocessors 329
if eight inputs are present. Further circuit details may be found else-
where4'9'84.
Whatever the precise physical mechanisms present in the ROM
architecture, the final test of the dedicated memory must be to ensure that
the correct literals xt, x- appear in each output. This involves checking not
only that all required minterms appear in every output, but also that no
unwanted minterms appear. The only way of ensuring this is to step through
the full truthtable of the outputs, that is to apply all 2n input test vectors and
check for the correct logic 0 or logic 1 response on each test vector on all
outputs. Therefore we require a generator which will provide all 2n input test
vectors; the order of application is not significant, and hence a binary
counter or a LFSR circuit with the all-zero state (see Figure 5.29) can be used.
The manufacturers of ROMs which are vendor-dedicated to the
requirements of a particular customer may use very expensive computer-
controlled VLSI testers, running at clock speeds of several hundred
megahertz. When the OEM has to do the tests, then provision for the
necessary exhaustive tests must be made; with PROMs the OEM's own
programming hardware resource will invariably incorporate test means which
330 VLSI testing: digital and mixed analogue/digital techniques
memory ICs
, 1 ,
1 ]
volatile ramdom-access
nonvolatile read-only
memory (ROMs) memory (RAMs)
I I , LL-,
bipolar unipolar
I r
bipolar unipolar bipolar unipolar bipolar unipolar
p
Schottky
nMOS I
CMOS
Sc •^«r VL i
ichottky
k
ECL .
nMOS {
1 -rh
,2L0
2L0 n M 0 S
v TTL * CMOS
TTL v ' nMOS
nonerasable r M n o I2L0
nonerasable and
erasable (EPROMs • very widely used
and EEPROMs) 0 obsolescent
ferroelectric FRAM™
will check the dedicated device exhaustively and functionally, but with buried
memory within a custom IC appropriate controllability and observability
must be provided. Notice that the normal system logic signals are unlikely to
provide an exhaustive test of a ROM or PROM memory device, or enable all
the outputs to be directly monitored, and therefore attention must be given
to this problem in order to ensure a comprehensive check on the memory
patterns.
Some consideration has been given to compressing the m-bit output
response of a ROM or PROM when under exhaustive test in order not to have
to store the full fault-free responses against which the outputs under test are
checked. These considerations have included weighted syndrome test
signatures, cyclic redundancy check signatures and parity check signatures,
but to date these have largely been academic exercises and have not been
adopted for mainstream memory testing12'85"89. However, there has been a
commercial introduction of serial scan paths in memory circuits, briefly
forecast in Section 5.3.2 of Chapter 5, giving what has been termed serial
shadow register (SSR™) configurations. In general this has only been applied
to relatively small ROMs and PROMs of MSI complexity, and not to the much
larger versions which are now in widespread use. (SSR is a registered
trademark of Advanced Micro Devices, Inc.)
Figure 6.20 illustrates a serial shadow register 4096 x four-bit PROM.
Under normal mode conditions the four-stage shadow register SREG is
inoperative, and the PROM array operates normally controlling the output
registers and hence the four-bit output word. However, in test mode the
following resources are available:
Testing of structured digital circuits and microprocessors 331
(i) scan-in of test data to the shadow register and scan-out of the test
response data;
(ii) replacement of the normal PROM array output by the data bits loaded
into the shadow register;
(iii) loading of the normal PROM array outputs back into the shadow
register for subsequent scan out and verification.
In total, therefore, system data may be captured and serially scanned out for
test purposes, or test data scanned in to replace normal system data.
Further details of serial shadow registers may be found published9'90"92.
The same concept has also been applied to random-access memory and PLA
circuits of MSI complexity, and also to separately packaged serial shadow
register ICs which may be built into PCB data buses to provide the above test
facilities. Figure 6.21 illustrates such a circuit, which is packaged in a 24-pin
dual-inline package.
However, the increasing use of LSI and VLSI circuits and the adoption of
IEEE standard 1149.1 boundary scan has superseded these earlier MSI
developments, although the principles involved remain entirely valid for the
test of small assemblies containing ROM, PROM and other circuits.
Unlike ROMs, random-access memories do not contain fixed data, but are
repeatedly written to and read from during their lifetime service. There are,
therefore, no initial input/output logic relationships to test for and confirm
as in dedicated ROM and PROM circuits, but instead two aspects need to be
considered, namely:
(i) some initial test or tests which attempt to confirm that each individual
RAM cell is capable of being written to (logic 0 and logic 1) and read
from;
(ii) some online test or tests to confirm that the overall RAM structure is
continuing to operate correctly.
It is clearly not feasible to perform an initial test which will exhaustively
confirm that any memory pattern can be stored and read correctly, since with
n inputs and m outputs there are 2 2 " x 2m internal memory patterns
theoretically possible, including trivial and identical functions.
The family of RAM circuits has been illustrated in Figure 6.19, the two
classifications being static RAMs (SRAMs) and dynamic RAMs (DRAMs).
Details of their specific fabrication technologies may be found elsewhere, but
need not concern us here except to recall that both are characterised by the
smallest possible device size and the highest possible packing density on the
chip, with dynamic RAMs being dependent upon stored charges to
differentiate between logic 0 and logic 1 data9'10'14'15'89'93'94.
332 VLSI testing: digital and mixed analogue/digital techniques
----- - SDO
Figure 6.20 The principle of internal scan test applied to individual memory ICs,
now largely superseded by more general boundary scan techniques as
memory and IC size have increased
However, because of their structure the faults which may be experienced
have certain unique effects which the testing should address. These include:
• one or more bits in the memory stuck-at 0 or 1;
• coupling between cells such that a transition from 0 to 1, or vice versa, in
one cell erroneously causes a change of state in another (usually adjacent)
cell—a pattern sensitive fault;
• bridging between adjacent cells, resulting in the logic AND or logic OR of
their stored states;
• in dynamic RAMs unwanted charge storage which may result in a logic 0
being read as a logic 1 after a string of logic Is has been read;
• also in dynamic RAMs, inadequate charging or discharging of memory
cells to/from their logic 1 state, or undue leakage of charge between
refresh periods causing loss of logic 1 data;
• temporary faults caused by external interference which result in incorrect
data being generated within the memory, but with no lasting failure in the
circuit.
There may also be gross faults in the input and output circuits, but these
should be readily picked up by tests which are seeking to confirm the correct
action of the individual memory cells, and therefore we shall have no need to
consider these failings here. All these (and other) faults may be classified as
hard faults if they are permanent, or soft faults if they are transitory; clearly
only online testing (see later) can catch the intermittent soft faults. All these
memory faults have been very extensively studied and documented, and
continue to be of supreme importance as circuit geometries shrink and
circuit densities increase93"100.
Testing of structured digital circuits and microprocessors 333
; data in
61 ) vcc
SDI
scan in scan out
SDO
Figure 6.21 The AMD 29818 (MMI 74S818) eight-bit standalone bus-interface
shadow register IC, now superseded by IEEE standard 1149-1 circuits
such as shown in Figure 5.20
appropriate for the hard faults that may occur. There are several basic test
patterns which may be used for RAM testing, including:
marching patterns;
walking patterns;
diagonal patterns;
galloping patterns;
nearest-neighbour patterns.
The shifting write/read patterns of the marching-one test sequence are
shown in Figure 6.22a. The array is first filled with Os, and then the first
address is checked by confirming it is 0, followed by reading in a 1 and
checking that the readout is now 1. The next address is then tested in the
same manner, leaving the first address at 1. This procedure of progressively
filling up the array with Is continues untill the memory is full. The inverse,
the marching-zero test sequence, is then performed, progressively setting the
memory cells back to all 0s and checking the latest zero-valued cell at each
step. Note that this procedure and the procedures immediately below
relate to a single output bit of the RAM. For m outputs (an w^bit output word)
the test procedure must be applied to all the memory bits, but this may be
done simultaneously in parallel for all the separate m outputs if it is assumed
that there is no fault coupling between outputs. This is a reasonable
assumption, since each bit of the m-bit output word has its own memory array
structure.
This test sequence requires 6iV write/read cycles, where N is the total
number of memory cells per output bit, and covers all individual stuck-at cell
faults, most pattern-sensitive faults and address decoder faults. An additional
check that all cells are at 1 at the completion of the marching-one test and all
are at 0 at the completion of the marching-zero test may be done.
The walking pattern test procedure is shown in Figure 6.226. The array is
initially filled with all 0s and read out. A single 1 is then written into the first
address and all locations except this one are read out to confirm that they are
still 0. The single 1 cell is then verified. This action is repeated with all
remaining cells being individually set to 1 against a background of 0s, and
finally the whole procedure is repeated with a single 0 at each location against
a background of Is. This test is termed the WALKPAT test, and is particularly
effective against recovery faults in the output sense ampifier which make it
unresponsive to a logic 1 in the middle of a string of logic 0s or vice versa.
A variation on this test is the diagonal walking test shown in Figure 6.22 c,
which loads a complete diagonal of Is into the array against the background
of 0s, and then walks this diagonal through the array. This is repeated with a
diagonal of 0s against a background of Is. This variation requires fewer
write/read cycles than WALKPAT, but does not test the sense amplifier quite
as rigorously as the single 1 in all 0s or single 0 in all Is of the WALKPAT test.
A yet further variant on WALKPAT is GALPAT, which has a so-called
galloping-one and a galloping-zero test sequence. The write sequence is
Testing of structured digital circuits and microprocessors 335
identical to that shown in Figure 6.22b, but the read actions read all the
memory locations in order from the first one to the last one on each test.
Other variants have been proposed including galloping-row and galloping-
column test sequences. However, the nearest-neighbour test sequence is
slightly dissimilar, being designed specifically to detect local abnormal
interactions between adjacent cells. It will be seen that in WALKPAT and
GALPAT large blocks of 0 (or 1) cells remote from the single 1 (or 0) cell are
repeatedly checked, and hence it would be far more economical to identify
the cells in the immediate vicinity of the single 0 (or 1) bit, and verify the
fault-free nature of this cluster of cells at each step. This concept is illustrated
in Figure 6.22d, and clearly involves far fewer read operations than other
walking or galloping proposals, but requires a more complex addressing test
sequence.
Details of these and other ROM testing proposals may be found
published13'14'88"90'100"105. However, as memory size has grown, so the time to
test using these methods has become increasingly unacceptable. It may be
shown that the number of read operations required by galloping tests is of
the order of O(iV2), where Nis the number of memory cells per bit output
as previously. As an example, consider a 64Mbit RAM tested by GALPAT
which requires 4iV2 test cycles14, then with a tester speed of 100 MHz a test
time of 1896 days (overfiveyears) is involved. Such procedures are therefore
only feasible for small memory circuits of kilobit capacity, or by partitioning
the full RAM circuit into a number of smaller partitions which may be
separately and possibly simultaneously tested.
Details of several memory partitioning concepts have been published. They
include the following proposals:
• Jarwala and Pradhan's TRAM architecture as shown in Figure 6.23a,
which splits the memory into 16 blocks for test purposes106'
• Sridhar's architcture as shown in Figure 6.23&, which uses a Kbit wide
parallel signature analyser (PSA) to access Kbits of memory simul-
taneously107;
• Rajsuman's STD architecture as shown in Figure 6.23c, which partitions
the memory address decoder into multiple levels, with the memory cells
being grouped accordingly108.
Further details of these proposals may be found pubished14'106"108, but to
date no one partitioning method has become universally accepted.
All the above test procedures are applicable to both static and dynamic
RAMs, although the latter may have built-in wait perods during the tests to
confirm the dynamic memory. However, if the types of faults considered likely
are limited to fixed (stuck-at) cell faults, pattern sensitive faults being con-
sidered unlikely or adequately covered by the stuck-at tests, then marching
tests which involve O(N) rather than O(N2) tests are generally considered as
adequate test strategies for very large RAMs101.
There remains one class of static RAM listed in Figure 6.19 which to date is
336 VLSI testing: digital and mixed analogue/digital techniques
1 0 0 0 1 1 0 0 1 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1
0 1 1 1 0 0 1 1 0 0 0 0
1 1 1 1 1 1 1 1 0 0 0 0
1 1 1 1 1 1 1 1 0 0 0 0
1 1 1 1 1 1 1 1 0 0 0 0
1 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1
0 1 1 1 1 0 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 0
not represented in the literature on ROM and RAM testing. This is the non-
volatile ferroelectric random-access memory (FRAM™), which employs the
polarisation of a ferroelectric material such as lead-zirconate-titanate (PZT)
as memory cells9'109'110. It is not known what the exact fault mechanism(s)
may be in these memories, although it is likely that stuck-at conditions and
faults in the write/read circuits will be the functional fault effects principally
encountered. Test sequences which involve O(N) rather than O{N2) tests are
therefore probable. Dynamic faults will not be present.
Testing of structured digital circuits and microprocessors 337
1 0 0 0 0 1 0 0 0 0 0 1
0 1 0 0 0 0 1 0 1 0 0 0
0 0 1 0 0 0 0 1 0 1 0 0
0 0 0 1 1 0 0 0 0 0 1 0
0 1 1 1 1 0 1 1 1 1 1 0
1 0 1 1 1 1 0 1 0 1 1 1
1 1 0 1 1 1 1 0 1 0 1 1
1 1 1 0 0 1 1 1 1 1 0 1
1 0 X X X X X X X X X X
0 0 X X X X X X X 0 X X
X X X X X X X X 0 1 0 X
X X X X X X X X X 0 X X
X X X X X X X X X X X X
X X X X X X X X X X X X
0 1 X X X X X X X X X X
1 1 X X X X X X X 1 X X
X X X X X X X X 1 0 1 X
X X X X X X X X X 1 X X
X X X X X X X X X X X X
X X X X X X X X X X X X
memory cell
arrays
comparitor
^ circuits
/* m /*—i
test bus
column d€ jcoders ^
memory
•—•—».
- — .
^ cell
arrays
<
ZJI
scan in (SDI) scan out (SDO)
Figure 6.23 Some structured partitioning proposals for RAM testing, omitting the
control details for clarity
a TRAM architecture, using a test bus for input test data and
comparitors between the RAM partitions
b Sridhar's partitioning, using a parallel signature analyser for input
and output test data to the partitions107
Do Dy • • • D7
8Kx1 8Kx1
8Kx1 8Kx1
Au
8Kx1 —| 8Kx1 8Kx
2 to 4 decode when
C=0; all outputs 1
when C=1, all blocks 8Kx1 n 8Kx1 8Kx1 n
per column the same
write/read data
<]{=.
to all other
XOR circuits
fault-free/faulty O0
storage capacitance per cell to record a logic 1 bit becomes extremely small,
and therefore the soft errors produced by this and other external
interference become more frequent. An early figure of a soft error rate of
about 0.1 % per 1000 hours for 64 Kbit RAMs was quoted in the early 1980s,
but this is now likely to be considerably better with improvements in
packaging and other fabrication developments111"114.
Some online means of test of RAM circuits therefore becomes necessary if
soft faults are to be detected and ideally corrected, and hence the coding
techniques discussed in Chapter 4, Section 4.6.1, become relevant in this
context. We are, therefore, considering once again the left-hand branch of
Figure 4.10 and the general schematic of Figure 4.11.
340 VLSI testing: digital and mixed analogue/digital techniques
additional k bits
wide Hamming error
m output - bits - wide data | correcting code |
T 1
2"
bits bits bits
Figure 6.24 Outline schematic of the online single error correction/double error
detection (SEC/DED) Hamming code RAM circuit
Testing of structured digital circuits and microprocessors 341
0 12 3 0 2 3 1 0 3 12
10 3 2 13 2 0 12 0 3
LSi 2 3 0 1 LS2 = 2 0 13 LS3 = 2 13 0
3 2 10 3 10 2 3 0 2 1
2 to 4 row
decode of AQ=A{ normal column
decode
i • • • i I •
0 0 0 0 0 1 2 3 0 2 3 1 0 3 1 2
1 1 1 1 1 0 3 2 1 3 2 0 1 2 0 3
2 2 2 2 2 3 0 1 2 0 1 3 2 1 3 0
3 3 3 3 3 2 1 0 3 1 0 2 3 0 2 1
clock
row decode
of
similar
bit array for
each other
I/O 2 to m
f t 1 f
Co c5 Co c« Co (cJ Cu c7 Co C13 Ce
c< Ci Cu (c,j) c4 C,3 C,o c3 c4 (c9) c2 C,5
c8 C13 c2 c7 C8 c, c6 C,s C8 Cs C« c3
C12 (ft) C6 C3 C12 C5 c2 C12 c, C10 c7
t t tt t t tt TTTT
i skew LS22 skew
LS LS 3 skew
b e d
Figure 6.26 The use of Latin square bit patterns for error detection/error correction
a normal 16-bit (16 x 1 bit word) RAM storage
b skew LSj on a
c skew LS2 on a
d skew LS 3 on a
where %i is the failure rate per hour (or 103 hours). The reliability of a single
??£-bit word is therefore:
R(t)m=[R(t)t] (6.4)
The failure rate of the read/write circuitry surrounding the memory array
also has a failure rate, say X$f giving a reliability of:
e-x^ (6.5)
344 VLSI testing: digital and mixed analogue/digital techniques
and hence the overall reliability of the complete RAM with 2n m-bit words,
without any error detection/error correction, is given by:
R(t)wemU=[R{t)5UR{t)j2n
= R(t)s{[R(t).]m}2n (6-6)
When error detection/correction is applied such as the Hamming
SEC/DED strategy of Figure 6.24, then the number of bits in the memory
increases and additional detection/correction circuitry becomes necessary.
However, a single bit failure can now be accomodated. If the number of bits
per output word increases from m to m + k, the reliability of a single word in
the memory with not more than one bit failure is now given by:
-lUR(t).]m+kf (6.8)
The question which may now be asked is how the value of the reliability term
in { } brackets in eqn. 6.8 compares with the value of the reliability term in
{ ) brackets in eqn. 6.6. If the individual bit reliability R(t)i is high, then
eqn. 6.8 will give an improved reliability compared with eqn. 6.6, provided
that R(t)c is also reliable. However, if there is some inherent unreliability in
the system then the increased circuit complexity of the SEC/DED strategy
will not give good results. This is the same situation as considered in Chapter
4, where it was shown that redundancy and other strategies do not yield
higher reliabilities unless the basic system has an appropriate reliability to
begin with.
In the case of soft (intermittant) faults caused by external interference,
then SEC/DED and similar error-correction strategies will clearly be
beneficial, provided that there are no hard (permanent) faults already in the
memory which have been masked by the SEC circuit. Herein lies the danger:
to obtain the benefit of any single (or higher) correction circuit, the memory
must be periodically checked to ensure that there are no hard faults present,
without which check there is no guarantee of the continuing effectiveness of
the error correction. Also if there is any hard fault present in the memory the
continuing reliability of the memory is worse than it would be without any
error correction/detection; for example, in a 16-bit word with six check bits,
Testing of structured digital circuits and microprocessors 345
if any one bit is faulty this leaves 21 bits which may subsequently fail, which is
worse than 16 bits of uncorrected memory.
The present general consensus of opinion is that error detection/error
correction in random-access memories is not justified; the extra complexity
of, say, the proposed strategy of Figure 6.26 is not worthwhile because of
the overheads involved and the inherent risk of more random failures.
Indeed, most manufacturers of memory circuits now concentrate on
increasing the inherent reliablity of the device design and fabrication rather
than increasing the total device complexity. However, for secure systems it
now becomes necessary for the system designer to build in check resources,
possibly software-based15'122'124 in order to preserve the integrity of the
overall system.
Binary counters rather than LFSRs have been employed by Jain and
Stroud127 for embedded RAM testing, the binary counter producing not only
all the memory addresses when in test mode but also the write-in bit data to
the memory cells. A checkerboard pattern of memory data, see Figure 6.27,
is used, which consists of writing and reading the whole memory with one
checkerboard pattern of Os and Is, and then complementing this pattern for
the following write/read sequence. The readout test results may be captured
in a MISR for confirmation, or compared against the expected results which
have a very simple known sequence under fault-free conditions.
A dissimilar built-in self-test strategy has been developed by Knaizuk and
Hartmann128'129, and also by Nair130. Here the memory addresses are divided
into three groups Go, Gj and G2, where
Go = addresses 0, 3, 6, 9, 12,15, ...
Gj = addresses 1, 4, 7, 10, 13,16, ...
G2 = addresses 2, 5, 8, 11, 14, 17, ...
The steps in the write/read test sequence are now as follows:
• step 1, write all Os to G} and G2;
• step 2, write all Is to Go;
• step 3, read all Os in Gx;
• step 4, write all Is in Gx;
• step 5, read all Os in G2;
• step 6, read all Is in Go and Gx\
• step 7, write all Os in Go;
• step 8, read all Os in Go;
• step 9, write all Is in G2;
• step 10, read all Is in G2.
It has been shown that the above triplet grouping of write/read cycles will
detect all single and multiple stuck-at faults in the memory array, the registers
and the address decoders129, but does not check that all bits in Go can be
written to 0 or that all bits in Gj and G2 can be written to 1 since the memory
bits in these locations may possibly take these values on power-up. However,
this shortcoming can easily be overcome by adding an initialisation step131,
namely:
• step 0, write all Is to Gx and G2, and all Os to Go.
Every bit address now experiences five write/read operations, namely:
write 0, write 1, read 1, write 0, read 0
for the GQ address bits, and
write 1, write 0, read 0, write 1, read 1
Testing of structured digital circuits and microprocessors 347
1111
0 1 0 1 1 0 1 0
1 0 1 0 0 1 0 1
0 1 0 1 1 0 1 0
1 0 1 0 0 1 0 1
Figure 6.27 The checkerboard pattern of 0 andl bits for RAM testing
a first write/read test per output bit
b second write/read test per output bit
for the Gj and G2 bits, as shown in Figure 6.28«. Nair's proposals130 are very
similar, requiring four write/read cycles of all addresses, but need the
additional initialisation write of all cells as above if all bits can be confirmed
as being correctly written to as well as read from.
The overall schematic of this test strategy is shown in Figure 6.286. It is
reported131 that this strategy has been successfully used in real-life circuits,
and requires a low silicon area overhead. The test response circuit is a simple
comparitor circuit which compares the read outputs against the expected
fault-free response of blocks of Os and Is.
Several other embedded RAM test strategies have been proposed, the
majority of which will be found referenced in References 13 and 88. It may
be noted that in general these strategies consider only stuck-at faults in the
memory arrays rather than more detailed pattern-sensitive faults. Also, the
order of addressing the memory cells is largely irrelevant, the simplest
possible hardware (binary counters or LFSRs or special counters) being used
rather than more complex addressing sequences.
Overall, the built-in self test of buried RAMs must be considerd in the
context of the test strategies for the remaining and surrounding partitions of
the IC or system, and not in isolation. A further reference to RAM stuctures
will therefore be found in the following section, Section 6.5, when
considering microprocessor testing. The unique physical structure of RAMs
will, however, usually entail very lengthy test sequences for fault-free write-to
and read-from operation.
column address
0 1 1 0
1 1 0 1
1 0 1 1
0 1 1 0
initialisation
1 0 0 1 1 1 0 1 0 1 0 0 0 1 1 0
0 0 1 0 1 0 1 1 1 0 0 1 1 1 0 1
0 1 0 0 0 1 1 0 0 0 1 0 1 0 1 1
1 0 0 1 1 1 0 1 0 1 0 0 0 1 1 0
write preceding write preceding write preceding write preceding
read all Os in read all Os in read all Os in read all 1s in
G 2 and all 1 s
in G o and G1
normal
BIST 8 memory -2nxmbits
il
circuitry
array
"8 V o -a
C 03
write all Os or 1s
control and data
modified LFSR or to groups G o ,
other autonomous , and Gy^ read all • fault-free/faulty
address generator blocks of Os
to cyclically generate test modes or 1s
the address groups
G o , G 1( G 2 when in
test mode fl/O, M/CL
/77-bit data in/data out
Figure 6.28 The built-in RAM testing strategy ofKnaizuk and Hartman1^
a write/read grouping Go, Gy and G2 of the bit addresses for the
simple case of 16 memory tits. Note the diagonal relationships
b outline schematic, omitting the normal read/write controls and
clock signals, etc.
processor ICs
I
special purpose
i
general purpose
. i . i
others
1
T T i
microcontrollers programmable I!
possibly with logic sequencers large, with
onboard A/D
and D/A
(PLSs) for heavy
industrial control
ji onboard
RAM,
ROM
simple specials
i
f
i
i
i
and other
working
for industrial, memory
commercial or small, with possibly :
domestic applications separate RAM/ROM 1
V J working memory
application - specific
standard parts (ASSPs)
digital signal
processors
(DSPs), see
Chapter8
the detailed circuitry at the gate level and therefore testing strategies based
on stuck-at fault modelling or gate-level considerations will usually be
irrelevant. Some appropriate functional testing must be involved.
We must also distinguish between the tests which the vendors do on
processors before dispatch, and the tests which OEM and/or end users need
to do on individual processors or completed systems. Again, we do not usually
know the exact test sequences which vendors do, but provision for testing will
undoubtedly be built into the design of the more complex products.
However, for other than very simple off the shelf products, the OEM will have
vendor advice available on what tests are considered appropriate, these being
nonexhaustive tests which will hopefully catch major faults in the processor
circuitry.
For the DSP and special processors listed in Figure 6.29, it will usually be
the case that the designer of the system in which these products are being
used will formulate a series of functional tests to confirm key operations in
the overall system. Incoming ICs from vendors may also be checked on
receipt, using a special test set or even a final equipment as a test bed. We will
have further comments on digital signal processing applications and test in
Chapter 8 when we consider mixed analogue/digital test. We will, therefore,
have few further comments to make here, except to note that every system
will have its own unique test requirements, and that the system designer must
350 VLSI testing: digital and mixed analogue/'digital techniques
be conversant with the needs of and strategies for testing, such as we have
been considering in previous chapters of this text.
Turning therefore to the general-purpose microprocessor and considering
its testing difficulties and test strategies. The general architecture which is
involved is shown in Figure 6.30, all partitions being on-chip in the case of
most 16, 32 and 64-bit processors. The program counter, stack pointer, index
register and other operational circuits (not shown in detail in Figure 6.30)
may be in PROM or PLA or other structured circuit partitions; the CPU block
is the most complex, containing the arithmetic logic unit, tempory registers
(accumulators) to hold the ALU data, instruction register, decode and
control, and other details. A good educational introduction to micro-
processors may be found in Wakerley4 and in Hayes84.
Neither vendor nor OEM testing at gate level is feasable with such complex
architectures. Instead, key features are assumed to be covered by the
following functional tests, not necessarily in this order:
program counter test;
scratchpad memory test;
stack pointer and index register test;
arithmetic logic unit and its associated register tests;
further tests on control lines and other peripheral circuit tests.
The principal difficulty is that the normal controllability and observability
of the circuit is limited to the control, address and data buses, which provide
inadequate accessibility as processor size increases unless test access is built
in at the design stage. Different microprocessor design teams may have
dissimilar detailed test strategies132'140, but all now involve some combination
of scan-test, boundary-scan, built-in self-test and possibly IDDQ tests. Earlier
attempts to model complete microprocessor architectures, such as the
S-graph model in which each register in the architecture is represented
as a node with data flows between all the nodes in an assembled graph14'141,
did enable test patterns to be automatically generated for eight-bit
microprocessors based upon functional rather than gate-level tests, but a fault
coverage of only about 90 %-95 % of possible stuck-at faults was reported.
Details of this early work and other similar attempts at processor modelling
may be found in the literature140"145, but currently they have little impact on
VLSI processor test strategies.
inputs •
input/output '
interface
modules '
outputs
(iii) test each individual nonCPU partition by means of its own test strategy,
reconnecting to the buses as necessary;
(iv) tristate again all nonCPU partitions, and then test the CPU by means of
its own test strategy; this is likely to be the most complex of the partition
tests, and will be considered further below;
(v) finally reconnect the CPU to normal, and carry out a final system test at
maximum operational speed using some chosen set of operating
instructions and known responses.
The above division of test activities may also reflect the division of design
responsibilities for the complete processor, since separate small groups of
design engineers are frequently responsible for particular partitions of the
complete architecture. A considerable complexity in applying the final test
signals and monitoring the responses and in the overall housekeeping is
clearly involved in this divide and conquer test procedure. The OEM who
purchases such a product, however, may not wish or be able to undertake this
detailed test strategy, and hence it is possible for the vendor to specify a test
program which will ensure that no major failings are present in the product.
No guarantee of 100 % fault-free performance can ever be given, but the
probability of correct operation can be made acceptably high.*
* This does not of course take into account processor design errors which may not
show up until a very rare or unexpected computational exercise is being executed; on
the other hand there may be manufacturing faults present which never show up
because the system requirements never need or use the faulty node or nodes.
352 VLSI testing: digital and mixed analogue/digital techniques
The precise functional test methods used by vendors will vary from vendor
to vendor. The memory and random logic tests will not involve any new basic
ideas beyond those which we have already considered; however, the key
element, the core CPU, has received specific consideration which we will
shortly review in Section 6.5.2. Boundary scan in accordance with IEEE
standard 1149.1 is now extensively used in present-day microprocessors,
having first been introduced in an off the shelf product by Motorola at the
end of the 1980s in the 68040 general-purpose microprocessor. Later
products by Intel, such as the 80486 onwards, and other vendors, also now
incorporate boundary scan. BILBO for self test has also been incorporated,
particularly for the nonmemory partitions where nonexhaustive built-in self
test rather than fully exhaustive test may be used. The memory partitions
which are connected directly to the data buses may be directly tested from the
accessible I/Os and/or via the boundary scan, possibly by performing some
chosen interchange of data between memories as an alternative to individual
memory tests such as considered in Sections 6.3 and 6.4.
The large macros (megacells) provided by vendors for custom ICs may also
have test provisions. For example, the Alcatel Mietec 0.7 um CMOS standard-
cell family MTC-22000 supports IEEE standard 1149.1 by providing the
appropriate JTAG scan-path resources on large members of the cell library.
Other application specific standard part (ASSP) processors such as the high
performance Texas Instruments' DSP processor TMS.320.C50 also provide
this IEEE industry standard test facility, which it is claimed provides an
effective means of testing all on-chip partitions to a 99 % confidence
limit146'147. In total, therefore, there is a considerable effort to provide for the
testing of complex processor architectures, with vendor developments
continuing in order to keep pace with the increase in circuit capabilities. The
problem of checking for correct timing and circuit delays, however, is possibly
one of the most difficult factors, but exact details of the parametric tests
which vendors apply to production microprocessors are not disclosed. The
OEM will not usually be concerned with such tests, as it is generally assumed
that a purchased product will meet its published specification and that only
functional faults may be encountered. Further details of known micro-
processor testing techniques may be found in the published literature132"146.
control bus
instruction
decode / control
logic IL
data bus
SDI instruction
diagnostic register
controller
instruction
map
microprogram
sequencer
diagnostic SDI
registered
SDO proms
SDO
control bus
$
address bus
\ \
SDI-
/
/ shadow / / shadow /
'//
\ \
V /
\ ALU /
J
Figure 6.32 The early serial shadow register concept applied to a CPU, with six
shadow registers to provide controllability and observability
a overall schematic
b the shadow registers around the ALU
Testing of structured digital circuits and microprocessors 355
t
LFSR PLA LFSR LFSR PLA / LFSR
350 terms 160 terms
13 16 16 18
0
PLA binary ROM
LFSR 175 terms LFSR counter 95 Kbits LFSR
19 12 12 37
LFSR LFSR
M-bus
32,
,16
LFSR LFSR
control bus
SP SCR
SCR- \
data bus
SCR = scan and clock resource
SP = service processor
DBI = diagnostic bus interface
Figure 6.33 Outline schematics, showing the principal parts of some microprocessor
and CPU BIST strategies
a the 80386 uP built-in self test 134
b the scan subsystem of the Apollo DN10000 workstation, which pro-
vides full controllability and observability of all system flip-flops 149
Testing of structured digital circuits and microprocessors 357
• fail-safe operation, which in the event of any fault never gives an output
that is a potentially dangerous condition;
• fault-tolerant operation, which in the event of a fault still maintains
correct or acceptable final output data.
There is no clear-cut distinction between the above, and a particular
fail-soft network, for example, may also include fault-tolerant processor
circuits. Software (programming) faults can also be involved in these
considerations.
There have been many schemes for providing fault tolerance in
computer and other processor systems, being particularly necessary in
aerospace missions, nuclear power station control and supervisory systems,
rail traffic control systems and the like. Here we will briefly review past
developments to indicate the trend and scope of these activities, which
continue to be necessary in similar present day applications and
circumstances.
The first widely reported fault-tolerant computer system design was the
STAR (self testing and repair) computer study of Avizienis et al of the early
1970s1M, which investigated the basis for fault-tolerant processing hardware
ASS
mux
0
ALU ACC
• .
>
r
•TCFU
10 1
LD3 •i
i
BCC
I I
* ASS, BCC = registers reconfigured as
autonomous pseudorandom
TCRfl pattern generators.
TCR 3
0
TCR 2 ACC, LD3 = registers reconfigured as MISRs.
f
I error
I/O I/O
N
CPU /
X\ CPU
>
cache
register
N / cache
register
1 ;
working
store
X\ 'r
working
store
it \ \
system support system support
control processor control processor
1 2
Figure 6.34 The outline schematic of the Sperry Univac 1100/60 fault-tolerant
computer with duplicated resources, rewrite of data and repeat/
reselection of CPU activity
Figure 6.35 The COMTRAC train control system; bus and control connections have
been omitted for clarity
a the 3-computer hardware schematic
b the 3-control-program software schematic
of service by appropriate checks. This and similar fail-soft processor systems
will be seen to use the strategy of multiple processors effectively checking
each other and disconnecting one of their members if disagreements are
found.
Further details of concurrent error detection using separate coprocessors
known as watchdog processors may also be found in the published
362 VLSI testing: digital and mixed analogue/digital techniques
input B
input A - k1 k1 k1 k1 [f(A,B)
' 1 < ' 1 ' 1 ' 1
p. • •
k k k k
1 1 1 1
r 1 ' 1
Figure 6.36 Two-dimensional cellular array with parallel dataflow through the cells.
The cells may be purely combinational or contain memory (usually a
D-type flip-flop). Test signal paths may be as shown dotted
Table 6.2 The number of exhaustive test vectors required for group testing a 16 x 16 bit
parallel multiplier, assuming that the test vectors can be applied to all the cell
inputs (Acknowledgements, based on Reference 178)
No. of cells No. of overlapping Inputs per Exhaustive test Exhaustive test
per group groups per array group vectors per group vectors per array
1 271* 4 16 4336
I x2 256 6 64 16384
2x 1 254 7 128 32512
2x2 240 9 512 122880
3x3 210 14 16384 3440640
I 6 x 16 1* 33 =8.6 x 10'° =8.6 x I0 10
(whole array)
*cannot overlap
\ l J Ml \ l I Ml
cs cs cs cs
cs cs cs cs
cs cs cs cs
cs cs cs cs
Figure 6.37 The iterative parallel multiplier array with four inputs per cell, nine
inputs per group of four cells, 14 inputs per group of nine cells, etc.
(iii) how test strategies may be applied and the results detected, ideally using
the normal primary I/Os only.
We will look at two examples below to illustrate these ideas.
Figure 6.38a gives the outline schematic of an iterative systolic array which
performs the inner product computation on input matrix X and a stored
matrix W187. Each cell entails a clocked latch so that data progresses through
the cells with a clock delay, At, across a cell. The flow of data across the rows
is unchanged, with the delay At between the columns, and the results flow
down the columns again with the delay At between rows. (The exact logic
configuration need not concern us here; it is basically a full-adder
configuration with the stored data bit wJ per cell.)
A simple test structure for the horizontal logic flow of data is as shown in
Figure 6.38&. A serial bit stream of, say, 1, 0, 1, 0, ... applied to the top right-
hand test input will appear at each left-hand row output, displaced Dt
between rows if all is correct. A simple comparitor circuit can therefore be
used to confirm this horizontal flow of test data. The vertical logic can be
checked by first clearing the array with 0 0 0 ... input data, and then clocking
in a series of test vectors which flows through and exhaustively checks the
logic of each cell. This test vector sequence is arranged such that every cell is
simultaneously performing one of its exhaustive tests, the complete test
sequence ensuring that every cell receives (at least) its own fully exhaustive
test input data. Full details may be found in Reference 187. Allowing for on-
chip output comparitor circuits and checking, it is stated that for a 32 x 32
array of cells a total of 249 clock periods only is necessary for an exhaustive
test of the array. The number of tests for an n x n array is of length Q(n)
rather than O(n 2 ).
This is a good example how exhaustive testing of every cell in an array can
be undertaken with a relatively small number of test input vectors, the test
data flowing through the array such that every cell experiences every
combination of its input data sometime during the test sequence. The
formulation of such test sequences, however, remains largely intuitive.
Error correction and fault tolerance techniques may also be considered in
cellular array test strategies. This often involves a spare row and/or column
of cells which may be switched into service to replace a faulty row or column;
column bypassing using multiplexers has been proposed for the array of
Figure 6.38187.
As a further example, consider the cellular sorting network shown in
Figure 6.39a. This is one of a series of shuffle exchange networks which can
sort a given input vector into some alternative output vector; feedback
around the array may be present in some applications to realise the required
shuffle. Each cell in Figure 6.39a consists of either a straight-through
connection or a crossed-over connection, controlled by an appropriate global
controller (not shown). Further details may be found in Dowd et al. and
elsewhere188'189. Tests for faulty cells may be undertaken by consecutively
testing each column of cells in the array, with all remaining column cells set
Testing of structured digital circuits and microprocessors 367
w
wi wl
1. load W coefficients
I
w\ w? w?
4 wi wi wi 4.4:
4 wl w! wi
wi wl wi w!
\
serial input
vectors
accumulator registers
T
(At)f(xty)
H
test input
At At
1 p- bit stream
i Af
At
I \At\
fault-free/faulty
Af At
At
At
h-t J
Figure 6.38 The systolic array for inner product vector computation, with input X
floiving across the array from left to right andW held in the array; clock
lines omitted for clarity
a the general schematic and cell schematic
b possible test for the horizontal data flow, with A£ time delay across
each cell
368 VLSI testing: digital and mixed analogue/digital techniques
to the straight-through state. The input control vectors to execute this are
straightforward to determine, with, say, 0 1 0 1 0 ... and 1 0 1 0 1 ... or a
single 1 on a background of Os or a single 0 on a background of Is being
applied to the primary inputs. In general, 2 log2w tests, where nis the number
of primary inputs, is the minimum necessary for an exhaustive test.
Appropriate diagnosis of faulty test response enables any single faulty cell
to be identified. Hence it has been proposed190 that there shall be k
replications of each column of cells, where k > 2, with means to bypass a faulty
column using multiplexed bypass routing. If it is not possible to diagnose
exactly which cell or column is faulty, then some quasi-exhaustive
permutation of the column bypass facilities may be tried in order to establish
a fault-free output shuffle.
In general, the simpler the cell in an iterative cellular array then the
simpler the intuitive test strategy. Many other cellular structures may be
found in the published literature, with certain sophisticated analyses of the
data flow and test conditions for the more complex arithmetic and DSP
architectures180-185-19^197.
However, let us conclude with a research example of a general-purpose
logic array.* In considering easily-testable combinational logic primitives
(building blocks), attention has been given to the class of functions known as
self-dual logic functions, a self-dual function being defined as:
* This example could equally have been considered in the earlier section of this
chapter when discussing gate array architectures, since the dividing line between gate
arrays and cellular arrays is not a clear-cut distinction.
Testing of structured digital circuits and microprocessors 369
global control/test
control signals
1 control
This can be used as a universal logic building block (cell) since two-input
NAND and NOR relationships can be realised by setting one of the input
variables to logic 0 or 1, respectively, and hence any output function (s) may
be realised by an array of such cells. In normal mode one of the network
primary inputs, say xn, would be connected to all logic cells and held at logic
0 or 1, see Figure 6.40, and the outputs would be the required functions of
the remaning n- 1 primary inputs. Applying any two test vectors:
i0
and
X XX
\\ 2 •••
x2- f(X)
primary inputs
en J
6.8 References
1 WHITE, D.E.: 'Logic design for array-based circuits: a structured approach'
(Academic Press, 1992)
2 BROWN, S.D., FRANCIS, R.J., ROSE, J., and VRANESIC, Z.G.: 'Field
programmable gate arrays' (Kluwer Academic Publishers, 1992)
3 BOLTON, M.: 'Digital system design with programmable logic' (Addison-Wesley,
1990)
4 WAKERLEY, J.F.: 'Digital design, principles and practice' (Prentice Hall, 1994)
5 MOORE, W, and LUK, W. (Eds.): 'FPGAs' (Abingdon EE and CS Books, 1991)
6 MOORE, W, and LUK, W. (Eds.): 'More FPGAs' (Abingdon EE and CS Books,
1994)
7 TRIMBERGER, S.M. (Ed.): 'Field-programmable gate array technology' (Kluwer
Academic Publishers, 1994)
8 OLDFIELD, J.V., and DORF, R.C.: 'Field-programmable gate arrays' (Wiley,
1995)
9 HURST, S.L.: 'VLSI custom microelectronics: digital, analog and mixed signal'
(Marcel-Dekker, 1998)
10 WILLIAMS, T.W.: 'VLSI testing' (North-Holland, 1986)
11 NEEDHAM, W.M.: 'Designer's guide to testable ASIC design' (Van Nostrand
Reinhold, 1991)
12 WILKINS, B.R.: 'Testing digital circuits, an introduction' (Van Nostrand
Reinhold, 1986)
13 RUSSELL, G., and SAYERS, I.L.: 'Advanced simulation and test methodologies for
VLSI design' (Van Nostrand Reinhold, 1989)
14 RAJSUMAN, R.: 'Digital hardware testing: transistor level fault modeling and
testing' (Artech House, 1992)
15 LALA, P.K: 'Fault tolerant testable hardware design' (Prentice Hall, 1985)
16 BARDELL, P.H., McANNEY, W.H., and SAVIR, J.: 'Built-in test for VLSI:
pseudorandom techniques' (Wiley, 1987)
17 ABRAMOVICI, M., BREUER, M.A., and FREIDMAN, A.D.: 'Digital systems testing
and testable design' (Computer Science Press, 1990)
18 SMITH, J.E.: 'Detection of faults in programmable logic arrays', IEEE Trans., 1979,
C-28, pp. 845-853
19 OSTAPKA, D.L., and HONG, S.J.: 'Fault analysis and test generation for
programmable logic arrays (PLAs)'. Proceedings of IEEE conference on Fault
tolerant computing, 1978, pp. 83-89, reprinted in IEEE Trans., 1979, C-28, pp.
617-627
20 CHA, C.W.: 'A testing strategy for PLAs'. Proceedings of IEEE 15th conference on
Design automation, 1978, pp. 326-331
21 EICHELBERGER, E.B., and Lindbloom, E.: 'Heuristic test-pattern generation for
programmable logic array', IBMJ. Res. andDev., 24 (1), pp. 15-22
22 MIN, Y: 'A unified fault model for programmable logic arrays'. CRC technical
report 83-5, Stanford University, CA, 1983
Testing of structured digital circuits and microprocessors 373
23 MIN, Y.: 'Generating a complete test set for PLAs'. CRC technical report 83-4,
Stanford University, 1983
24 AGRAWAL, V.K.: 'Multiple fault detection in programmable logic arrays', IEEE
Trans., 1980, C-29, pp. 518-522
25 BOSE, P., and ABRAHAM, J.A.: Test generation for programmable logic arrays'.
Proceedings of IEEE conference on Design automation, 1982, pp. 574-580
26 ZHU, X., and BREUER, M.A.: 'Analysis of testable PLA designs', IEEE Des. Test
Comput., 1988, 5 (4), pp. 14-27
27 SERRA, M., and MUZIO, J.C.: 'Testing programmable logic arrays by the sum of
syndromes', IEEE Trans., 1987, C-36, pp. 1097-1101
28 YAMADA, T.: 'Syndrome-testable design of programmable logic arrays'.
Proceedings of IEEE international conferrence on Test, 1983, pp. 453-458
29 SERRA, M., and MUZIO, J.C.: 'Space compaction for multiple-output circuits',
IEEE Trans., 1988, CAD-7, pp. 1105-1113
30 FUJIWARA, H., and KINOSHITA, K.: 'A design of programmable logic arrays with
universal tests', IEEE Trans., 1981, C-30, pp. 823-828
31 HONG, S.J., and OSTAPKO, D.L.: 'FITPLA: a programmable logic array for
function independent testing'. Proceedings of IEEE 10th international
symposium on Fault tolerant computing, 1980, pp. 131-136
32 KHAKBAZ, J.: 'A testable PLA design with low overhead and high fault coverage',
IEEE Trans., 1984, C-33, pp. 743-745
33 RAJSKI, J., and TYSZER, J.: 'Easily testable PLA design'. Proceedings of
EUROMICRO, 1984, pp. 139-146
34 REDDY, M., and HA, D.S.: 'A new approach to the design of testable PLAs', IEEE
Trans., 1987, C-36, pp. 201-211
35 SALUJA, K.K., KINISHITA, K., and FUJIWARA, H.: 'An easily testable design of
programmable logic arrays for multiple faults', IEEE Trans., 1983, C-32, pp.
1038-1046
36 PRADHAN, D.H., and SON, JL: 'The effect of untestable faults in PLAs and a
design for testabity'. Proceedings of IEEE international conference on Test, 1980,
pp. 359-367
37 BOZORQUI-NESBAT, S., and McCLUSKEY, E.J.: 'Lower overhead design for
testability of programmable logic arrays'. Proceedings of IEEE international
conference on Test, 1984, pp. 856-865
38 MIN, Y: 'A PLA design for ease of test generation'. Digest of IEEE 14th
international symposium on Fault-tolerant computing, 1984, pp. 436-444
39 KHAKBAZ, J., and McCLUSKEY, E.J.: 'Concurrent error detection and testing for
large PLAs', IEEE Trans., 1982, ED-29, pp. 756-764
40 CHEN, C.Y, FUCHS, W.K., and ABRAHAM, J.A.: 'Efficient concurrent error
detection in PLAs and ROMs'. Proceedings of IEEE ICCD, 1985, pp. 525-529
41 MAK, G.P., ABRAHAM, J.A., and DAVIDSON, E.S.: 'The design of PLAs with
concurrent error detection'. Proceedings of IEEE 12th symposium on Fault
tolerant computing, 1982, pp.303-310
42 DONG, H.: 'Modified Berger codes for the detection of unidirectional errors'.
Proceedings of IEEE 12th symposium on Fault tolerant computing, 1982, pp.
317-320
43 WANG, S.L., and AVIZIENES, A.: 'The design of totally self-checking circuits using
programmable logic arrays'. Proceedings of IEEE 12th symposium on Fault tolerant
computing, 1979, pp. 173-180
44 PIESTRAK, S.J.: 'PLA implementations of totally self-checking circuits using m-
out-of-n codes'. Proceedings of IEEE ICCD, 1985, pp. 777 -781
45 SHEN, Y.-N., and LOMBARDI, E: 'On a testable PLA design for production'.
Proceedings of 4th technical workshop on New directions for testing, Victoria, BC,
Canada, 1989, pp. 89-134
374 VLSI testing: digital and mixed analogue/digital techniques
46 WESSELS, D., and MUZIO, J.C.: 'Adding primary input coverage to concurrent
checking for PLAs'. Proceedings of 4th technical workshop on New directions for
testing, Victoria, BC, Canada, 1989, pp. 135-154
47 SUN, X., and SERRA, M.: 'Concurrent checking and off-line data compaction
testing with shared resources in PLAs'. Proceedings of 4th technical workshop on
New directions for testing, Victoria, BC, Canada, 1989, pp. 155-166
48 Lui, D., and McCLUSKEY, E.J.: 'Design of large embedded CMOS PLAs for BIST',
IEEE Trans., 1988, CAD-7, pp. 50-59
49 YAJIMA, S., and ARAMAKI, T.: 'Autonomous testable programmable arrays'.
Proceedings of IEEE 11th symposium on Fault tolerant computing, 1981,
pp. 42-43
50 DAEHN, W., and MUCHA, J.: 'A hardware approach to self-testing of large PLAs',
IEEE Trans., 1981, C-30, pp. 829-831
51 HASSAN, S.Z., and McCLUSKEY, E.J.: 'Testing PLAs using multiple parallel
signature analysers'. Proceedings of IEEE 13th international symposium on Fault
tolerant computing, 1983, pp. 422-425
52 HUA, K. A., JOU, J.-Y, and ABRAHAM, J.A.: 'Built-in tests for VLSI finite state
machines'. Digest of IEEE 14th international symposium on Fault tolerant
computing, 1984, pp. 292-297
53 FUIJIWARA, H., TREUER, R., and AGRAWAL, V.K.: 'A low overhead, high
coverage built-in self-test PLA design'. Digest of IEEE 15th international
symposium on Fault tolerant computing, 1985, pp. 112-117
54 GRASSL, G., and PFLEIDERER, H.J.: 'A function independent test for large
programmable logic arrays', Integ VLSI]., 1983, 1 (1), pp. 71-80
55 SALUJA, K.K., KINOSHITA, K, and FUJIWARA, H.: 'A multiple fault testable
design of programmable logic arrays'. Proceedings of IEEE 11th international
symposium on Fault tolerant computing, 1981, p. 44-46
56 BREUER, M.A., and SCHABAN, R: 'Built-in test for folded programmable logic
arrays', Microprocess. Microsyst., 1987, 11, pp. 319-329
57 WANG, S.L., and SANGIOVANNI-VINCENTELLI, A.: 'PLATYPUS: a PLA test
pattern generation tool'. Proceedings of IEEE 22nd conference on Design
automation, 1985, pp. 192-203
58 HA, D.S., and REDDY, S.M.: 'On the design of random pattern testable PLAs'.
Proceedings of IEEE international conference on Test, 1986, pp. 688-695
59 HA, D.S., and REDDY, S.M.: 'On BIST PLAs'. Proceedings of IEEE international
conference on Test, 1987, pp. 342-351
60 BOSWELL, C , SALUJA, K., and KINOSHITA, K.: 'A design of programmable
logic arrays for parallel testing',/. Comput. Syst. Sci andEng, 1985, 1, October, pp.
5-16
61 UPADHYAYA, J.S., and SALUJA, K.: 'A new approach to the design of built-in self-
testing PLAs for high fault coverage', IEEE Trans., 1988, CAD-7, pp. 60-67
62 SON, K., and PRADHAN, D.K.: 'Design of programmable logic arrays for
testability'. Proceedings of IEEE international conference on Test, 1980, pp.
163-166
63 HA, D.S., and REDDY, S.M.: 'On the design of pseudo-exhaustive testable PLAs',
IEEE Trans., 1988, C-37, pp. 468-472
64 FUJIWARA, H.: 'Design of PLAs with random pattern testability', IEEE Trans.,
1988, CAD-7, pp. 5-10
65 FUJIWARA, H.: 'Enhancing random pattern coverage of programmable logic
arrays via a masking technique', IEEE Trans., 1989, CAD-8, pp. 1022-1025
66 TREUER, R., FUJIWARa, H., and AGRAWAL, V.K.: Tmpementing a built-in self-
test PLA design', IEEEDes. and Test Comput, 1985, 2, April, pp. 37-48
67 'FPGA applications handbook'. Texas Instruments, Inc., TX, publication
SRFA.001, 1993
Testing of structured digital circuits and microprocessors 375
101 NAIR, R., THATTE, S.M., and ABRAHAM, J.A.: 'Efficient algorithms for testing
semiconductor random access memories', IEEE Trans., 1978, C-27, pp. 572-576
102 HAYES, J.P.: 'Detection of pattern sensitive faults in random access memories',
IEEE Trans., 1975, C-24, pp. 150-157
103 SUK, D.S., and REDDY, S.M.: 'A march test for functional faults in
semiconductor random access memories', IEEE Trans., 1981, C-30, pp. 982-985
104 MARTINESCU, M.: 'Simplified and efficient algorithms for functional RAM
testing'. Proceedings of IEEE international conference on Test, 1992, pp.
236-239
105 SAVIR, J., McANNEY, W.H., and VECCHIO, S.: 'Testing for coupled cells in
random access memories'. Proceedings of IEEE international conference on
Test, 1989, p. 439-451
106 JARWALA, N.T., and PRADHAN, D.K: 'TRAM: a design method for high-
performance easily testable multimegabit RAMs', IEEE Trans,, 1988, C-37, pp.
1235-1250
107 SRIDHAR, T: 'A new parallel test approach for large memories', IEEE Des. and
Test CompuL, 1986, 3 (4), pp. 15-22
108 RAJSUMAN, R.: 'An apparatus and method for testing random access
memories'. US Patent Application 620359 1990
109 Technical report, nonvolatile ferroelectric technology and product'. Ramtron
Corporation, CO, 1988
110 WEBBER, S.: 'A new memory technology', Electronics, 1988, 18 February, pp.
91-94
111 TUMMALA, R., and RYMASZEWSKI, E.: 'Microelectronics packaging handbook'
(Van Nostrand Reinhold, 1989)
112 SINNADURAI, F.N.: 'Handbook of microelectronic packaging and interconnect
technologies,' (Electrochemical Publications, Scotland, 1985)
113 MAY, T.C., and WOODS, M.H.: 'A new physical mechanism for soft faults in
dynamic memories'. Proceedings of IEEE 16th symposium on Reliability physics,
1978, pp. 33-40
114 BRODSKY, M.: 'Hardening RAMs against soft errors', Electronics International, 53
(8), pp. 117-122
115 SARRAZIN, D.B., and MALIK, M.: 'Fault tolerant semiconductor memories',
IEEE Computer, 1984, 17 (8), pp. 49-56
116 ELKIND, S.A., and SIEWIORCK, D.P.: 'Reliability and performance of error-
correcting memory and register arrays'. Proceedings of IEEE international
conference on Test, 1980, C-29, pp. 920-927
117 OSMAN, F.: 'Error correcting techniques for random access memories', IEEEJ.
Solid State Circuits, 1982, SC-27, pp. 877-881
118 TANNER, R.M.: 'Fault-tolerant 256K memory designs', IEEE Trans., 1984, C-33,
pp. 314-322
119 SU, S.Y.H., and DuCASSE, E.: 'A hardware redundancy reconfiguration scheme
for tolerating multiple module failures', IEEE Trans., 1980, C-29, pp. 254-257
120 PRADHAN, D.K.: 'A new class of error correcting/detecting codes for fault-
tolerant computer applications', IEEE Trans., 1980, C-29, pp. 471-481
121 HSIAO, M.Y., and BOSSEN, D.C.: 'Orthogonal Latin square configuration for
LSI memory yield and reliability enhancement', IEEE Trans., 1975, C-24, pp.
512-516
122 HECHT, H.: 'Fault-tolerant software', IEEE Trans., 1979, R-28, pp. 227-232
123 FERIDUN, A.M., and SHIN, K. G.: 'A fault-tolerant microprocessor system with
rollback recovery capabilities'. Proceedings of 2nd international conferrence on
Distributed computer systems, 1981, pp. 283-298
124 ANDERSON, A., and LEE, P.: 'Fault tolerance: principles and practice' (Prentice
Hall, 1980)
Testing of structured digital circuits and microprocessors 377
125 NICOLAIDIS, M.: 'An efficient built-in self-test scheme for functional test of
embedded RAMs'. Proceedings of IEEE 15th symposium on Fault tolerant
computing, 1982, pp. 118-123
126 SUN, Z., and WANG, L.-T.: 'Self-testing embedded RAMs'. Proceedings of IEEE
international conference on Test, 1994, pp. 148-156
127 JAIN, S.K., and STROUD, C.E. 'Built-in self testing of embedded memories',
IEEEDes. Test of CompuL, 1986, 3 (5), pp. 27-37
128 KNAIZUK, J., and HARTMANN, C : 'An algorithm for testing random access
memories', IEEE Trans., 1977, C-26, pp. 414-416
129 KNAIZUK, J., and HARTMANN, C : 'An optimum algorithm for testing stuck-at
faults in random access memories', IEEE Trans., 1977, C-26, pp. 1141-1144
130 NAIR, R.: 'Comments on "An optimum algorirthm for testing stuck-at faults in
random access memories'", IEEE Trans., C-28, 1979, pp. 256-261
131 BARBELL, P.H., and McANNEY, W.H.: 'Built-in test for RAMs', IEEE Des. Test
CompuL, 1988, 5 (4), pp. 29-36
132 JAM, D., and ACKEN, J.M.: 'Test synthesis for microprocessors', Digest of IEEE
international conference on Test, Test synthesis seminar, 1994, pp. 4.1.1-4.1.8
133 SHIH, F.W., CHAO, H.H., ONG, S., DIAMOND, A.L., TANG, J.Y.-E, and
TREMPEL, C.A., 'Testability design for Micro/370, a system 370 single-chip
microprocessor'. Proceedings of IEEE international conference on Test, 1986,
pp. 412-418
134 GELSINGER. P.: 'Design and test of the 80386', IEEEDes. Test Comput.,1987, 4
(3), pp. 42-50
135 BHAVSAR, D.K., and MINER, D.G.: 'Testability strategy for a second generation
VAX computer'. Proceedings of IEEE international conference on Test, 1987,
pp. 818-825
136 NOZUMA, A., NISHIMURA, A., and IWAMURAJ.: 'Design for testability of a 32-
bit microprocessor, the TXF. Proceedings of IEEE international conference on
Test, 1988, pp. 172-182
137 GALLUP, M.G., LEDBETTEr, W., McGARITY, R., McMAHAN, S., SCHEUR,
K.C., SHEPHERD, C.G., and GOOD, L.: 'Testability features of the 68000'.
Proceedings of IEEE international conference on Test, 1990, pp. 749-757
138 JOSEPHESON, D.D., DIXON, D.J., and ARNOLD, B.J.: 'Test features for the HP
PA77100LC processor'. Proceedings of IEEE international conference on Test,
1993, pp. 764-772
139 DANIELS, R.G., and BRUCE, W.C.: 'Built-in self-test trends in Motorola
microprocessors', IEEEDes. Test CompuL, 1985, 1 (2), pp. 64-71
140 PERRY, T.S.: 'Intel's secret is out', IEEE Spectr., 1986, 26 (4), pp. 21-27
141 THATTE, S.M., and ABRAHAM, J.A.: 'Test generation for microprocessors', IEEE
Trans., 1980, C-29, pp. 429-441
142 BRAHME, D., and ABRAHAM, J.A.: 'Functional testing of microprocessors',
IEEE Trans., 1984, C-33, pp. 475-485
143 BELLON, C , LIOTHIN, A., SADIER, S., SAUCIER, G., VELAZCO, R.,
GRILLOT, E, and ISSENMANN, M.: 'Automatic generation of microprocessor
test programmes'. Proceedings of IEEE 19th conference on Design automation,
1982, pp. 566-573
144 BELLON, C : 'Automatic generation of microprocessor test patterns', IEEE
Des.Test CompuL, 1984, 1 (1), pp. 83-93
145 SHIDAR, T, and HAYES, J.P.: 'A functional approach to testiing bit-sliced
microprocessors', IEEE Trans., 1981, C-30, pp. 563-571
146 'Testability primer'. Texas Instruments Inc., TX, publication SSYA.002A, 1991
147 'TMS 320 C50 DSP preview bulletin'.Texas Instrument Inc., TX, publication
MPL 268/GB-2589 Pb, 1989
378 VLSI testing: digital and mixed analogue/digital techniques
148 CERNY, E., ABOULHAMID, M., BOIS, G., and CLOUTIER, J.: 'Built-in self-test
of a CMOS ALU', lEEEDes. Test Comput., 1988, 5 (4), pp. 38-48
149 DERVISOGLU, B.I.: 'Scan path architecture for pseudorandom testing', IEEE
Des. Test Comput., 1988, 6 (4), pp. 32-48
150 MARTINEZ, M., and BRACHO, S.: 'Weighted BIST structures in the arithmetic
unit of a communications processor', IEE Proc., Comput. Digit. Tech., 1995, 142
CDT, pp. 360-366
151 AVIZIENIS, A., GILLEY, G.C., MATHUR, F.P., RENNELS, D.A., ROHR, J.A., and
RUBIN, D.K.: 'The STAR (self-testing and repair) computer: an investigation
into the theory and practice of fault-tolerant computer design', IEEE Trans.,
1971, C-20, pp. 1312-1321
152 BASKIN, H.B., BORGERSON, B.R., and ROBERTS, R.: 'PRIME: a modular
architecture for terminally oriented system'. Proceedings of IEEE spring joint
conference on Computers, 1972, pp. 431-437
153 STIFFLER, J.J.: 'Architectural design for near 100% fault coverage'. Proceedings
of IEEE international symposium on Fault tolerant computing, 1976, pp. 134-137
154 SKLAROFF, J.R.: 'Redundancy management techniques for space shuttle
computers', IBM]. Res. Dev., 1976, 20 (1), pp. 20-27
155 KATSUKI, D., ELSAN, E.S., MANN, W.F., ROBERTS, E.S., ROBINSON, J.G.,
SKOWRONSKI, F.S., and WOLF, E.W: 'Pluribus—an operational fault-tolerant
microprocessor', Proc. IEEE, 1978, 66, pp. 1146-1157
156 MERAUD, C , and LLORET, P.: 'COPRA: a modular family of reconfigurable
computers'. Proceedings of IEEE conference on national aerospace and electronics,
1978, pp. 822-827
157 HOPKINS, A.L., SMITH, T.B., and LALA, J.H., 'FTMP—a highly reliable fault-
tolerant microprocessor for aircraft', Proc. IEEE, 1978, 66, pp. 1221-1239
158 WENSLEYJ.H., LAMPORT, L., GOLDBERG, J., GREEN, M.W., LEVITT, K.N.,
SMITH, P.M.M., SHOSTAK, R.E., and WEINSTOCK, C.B.: 'SIFT: design and
analysis of fault-tolerant computer for aircraft control', Proc. IEEE, 1978, 66, pp.
1240-1255
159 SEIWIOREK, D.P., KINI, V., MASHBURN, H., McCONNEL, S., and TSAO, M.:
'A case study of C.MMP, Cm and C.Vmp: experiences with fault-tolerance in
multiprocessor systems', Proc. IEEE, 1978, 66, pp. 1178-1199
160 KATZMAN, J.A.: 'A fault-tolerant computing system', Proceedings of IEEE
international conference on System sciences, 1978, pp. 85-102
161 RENNELS, D.A.: 'Architectures for fault-tolerant spacecraft computers', Proc.
IEEE, 1978, 66, pp. 1255-1268
162 BOONE, L.A., LEIBERGOt, H.L., and SEDMAK, R.M.: 'Availability, reliability
and maintainability aspects of the Sperry Univac 1100/60'. Proceedings of
international IEEE international symposium on Fault tolerant computing, 1980, pp.
3-8
163 OSSFIELD, B.E., and JONSSON, I.: 'Recovery and diagnosis in the central
control of the AXE switching system', IEEE Trans., 1980, C-29, pp. 482-491
164 HERBERT, E.: 'Computers: minis and mainframes', IEEESpectr., 1983, 20 (1), pp.
28-33
165 TOY, W.N.: 'Fault-tolerant design of local ESS processors', Proc. IEEE, 1978, 66,
pp. 1126-1145
166 IHARA, H., FUKNOKA, K., KUBO, Y, and YOKOTA, S.: 'Fault tolerant computer
system with three symmetrical computers', Proc. IEEE, 1978, 66, pp. 1160-1177
167 MARCHAL, P., NICOLAIDIS, M., and COURTOIS, B., 'Microarchitecture of the
MC 86000 and the evaluation of a self-checking version'. Proceedings of NATO
Advanced Study Institute, Microarchitectures of VLSI Computers, 1984
168 HALBERT, M.P., and BOSE, S.M.: 'Design approach for a VLSI self-checking
Testing of structured digital circuits and microprocessors 379
7,1 Introduction
(i) PCB assemblies of commercial off the shelf items such as operational
amplifiers, etc.;
(ii) uncommitted analogue arrays, dedicated to the required system
specification by the final custom metalisation mask(s);
(iii) full-custom IC designs, invariably designed by a vendor or specialist
design team.
Details of (ii) and (iii) may be found in the published literature dealing with
custom microelectronics (ASICs or USICs), but this literature contains
relatively little detail on testing requirements8"11.
382 VLSI testing: digital and mixed analogue/digital techniques
analogue-only
circuits and systems
L
special autonomous I
circuits - filters,
ADCs, DACs, I I mixed-mode \
see Section 7.6 j analogue/digital, |
! see Chapter 8 •
I i
PCB assembly
of standard
L J
off-the-shelf
parts
uncommitted
analogue
array USIC
full-custom
handcrafted
or standard
cell USIC
OEM input to vendors
vendor
testing
vendor or specialist
design house testing
OEM final
system test
.J
Figure 7.1 The hierarchy of analogue circuit and testing areas
Further details of test hardware will be given in Section 7.4. As far as the
OEM is concerned, the system test objective will be to confirm that all
components, be they off the shelf ICs or other items, are fault free, and to
identify and replace any faulty replaceable component on the PC board or
other system assembly. As far as the vendor of an analogue IC is concerned,
be it an off the shelf or a custom component, the objective will be to confirm
that the device fully meets its published specification, with no diagnostics (on-
chip fault location) normally being required on a production run unless
serious yield problems are encountered.
384 VLSI testing: digital and mixed analogue/digital techniques
— —
-- -
- -
:
- _ -
——
I additiona
test pins
i j
1> i .
i
J
1
L-
i
——
\
- -
-^ : - - •
a b
buried
operational
amplifier
analogue
test input(s)
possibly
other ._ analogue
macro test output
buffer(s)\7 - test signals
"1
I
• macro under test |
and other hard and (particularly) soft faults14"16. Hence, the simple stuck-at
fault model of the digital circuit is inadequate for applying to analogue
circuits in order to cover all possible parametric changes in circuit
performance.
Nevertheless, attempts have been made to fault model analogue circuits,
on the lines indicated in Figure 7.4. One argument which has been put
forward is that although in the digital case the stuck-at fault model does not
cover all the possible faults within a digital circuit or system, in practice it
proves to be able to cover a very large number of other faults; therefore it is
argued that if a given hard fault condition is chosen as the fault model for an
analogue circuit, its use will also cover a large number of other possible hard
and soft faults.
Details of this development may be found in the published
literature12'17"20. This fault model strategy for analogue circuits has been
justified by reports which suggest that up to 83.5 % of the observed faults
in analogue circuits are hard (catastrophic) faults21, but even so this leaves
16.5 % (or more) faults which would not necessarily be detected by fault
modelling based upon some open-circuit or short-circuit fault modelling
strategy. Other published data quotes only 75 % hard faults in production
analogue circuits22.
Even if analogue fault modelling is adopted, there is still the requirement
to simulate the circuit with each selected fault. This normally involves a
SPICE simulation7'8'23"25' which itself becomes prohibitively costly in time
and effort when very large analogue circuits and systems are involved unless
some partitioning and controllability and observability provisions are built
into the design. Higher level commercial simulators such as HELIX™25"27
may ease this problem, but the higher the level of simulation, the less fine
detail will be present in the simulation results. Temperature and other
physical parameter variations may not be possible unless SPICE or some
SPICE-derivative simulation is employed24'28.
Fault modelling of analogue circuits is therefore no longer considered to
be a main-stream strategy for analogue testing; instead, detailed fault-free
simulation characterisation of the circuit and functional tests to detect any
unacceptable deviation from the norm currently represents the generally
accepted method of test. In a sense this mirrors the digital situation, where
stuck-at fault modelling and ATPG have largely been superseded for VLSI by
partitioning and functional tests.
digital analogue
±
prepare the chosen prepare the chosen
stuck-at fault list fault/out - of - tolerance list
end end
Figure 7.4 The attempt to fault model analogue circuits corresponding to the fault
modelling of digital circuits
confirm the stability of the production process. Analogue circuit testing,
however, always involves more detailed testing to ensure fault-free system
performance.
The range of analogue-only circuits which are widely encountered include:
• amplifiers, particularly operational amplifiers;
• regulators;
• oscillators, and particularly voltage-controlled oscillators;
388 VLSI testing: digital and mixed analogue/digital techniques
comparitors;
phase-locked loops;
sample-and-hold circuits;
analogue multipliers;
analogue filters;
and others. Analogue to digital and digital to analogue converters must also
be considered, although it is debatable whether these should be classified
under analogue-only or mixed analogue/digital devices. Because of their
special importance we will consider them separately, see Section 7.6. In
addition to all these dissimilar circuit functions must be added the different
applications in which they may be used, which in its turn introduces further
testing requirements. Figure 7.5 is a well known illustration of this diversity of
analogue macros29, which precludes having a simple range of building blocks
and standard test methodologies for all possible applications.
Manufacturers/vendors of off the shelf analogue parts and of semicustom
analogue arrays and standard cells give parametric data on all standard
circuit designs. In the case of analogue arrays using individual FETs or bipolar
transistors, the full range of data required for SPICE simulation by the OEM
may not be available, and therefore default values will have to be used in
design simulations. However for circuit macros, the vendors' data sheets will
give appropriate transfer characteristics to enable the OEM to build up the
necessary test values and fault-free tolerances for system test purposes.
Example vendor's data is as follows, additional data being available if
required:
• Operational amplifier macro
L-level output voltage 1.2 V
H-level output voltage 4.8 V
small-signal differential output voltage gain 85 dB
unity gain bandwidth 75 kHz
slew rate at unity gain 0.05 V/|is
offset voltage < 10 mV
supply current 10 juA
load 1000 kft/100 pF
typical phase margin 60°
All parameters specified at VDD = 5 V, T amb = 25° C
• Analogue comparitor macro
input common-mode range 0.5-3.5 V
propagation delay time for 5 mV overdrive 85 ns
propagation delay time for 500 mV overdrive 30 ns
offset voltage 10 mV
supply current 200 |iiA
All parameters specified at VDD = 5 V, T amb = 25° C
Analogue testing 389
APPLICATIONS
Telecommunications
Industrial
Automotive
Others £ gpg*
Amplifiers
Regulators
Op.amps
CIRCUIT BLOCKS
Figure 7.5 A graphical representation of the diversity of analogue circuits, each with
their own unique requirements (Based upon Bray and Irissou2^)
measurement facility, see Figure 1.5 for example. This is possibly the most
common type of facility that an OEM may use in the development and
prototype stage of a new design, possibly using a more simple specific test rig
for production line testing. Further mechanical and electrical details may be
found in Parker30, with the appreciation that analogue test systems such as
illustrated in Figure 1.5 are almost invariably custom-built assemblies.
However, in addition to custom-built rack and stack assemblies, there are
three other types of analogue test resources commercially available, namely:
• complex general-purpose testers;
• design verification testers;
• individual bench-top instruments.
The first of these categories covers extremely sophisticated equipment often
costing several million dollars, examples being the Sentry Series 80, Teradyne
Series A500, Avantest Series T3700 and LTX Series 7 testers. Figure 7.6
illustrates one such product, from which it will be appreciated that such
resources are similar in complexity and cost to the VLSI digital tester
illustrated in Figure 1.4. These analogue testers allow measurement of voltage
down to a few microvolts, voltage gains up to or exceeding 120 dB, a dynamic
range of more than 140 dB, voltage noise densities in the nanovolt per Hz
region, bias measurements down to a few picoamps and frequencies from d.c.
to hundreds of megahertz.
The time taken for comprehensive analogue tests using purely analogue
instrumentation tends to be very long, and hence faster methods using some
form of digital signal processing and digital readout in the test resource is
desirable for more rapid production test purposes. The second of the
categories of test systems listed above, namely the design verification testers,
includes digital signal processing capability. Commercial products include
the IMS Logic Master XL, the Hilevel-Topaz systems, Hewlett-Packard 80805
testers, ASIX-1 and ASIX-2 testers and others, with a cost of about one tenth
that of the previous category of tester. However, these are all basically digital
logic testers with limited analogue testing capability; as such they may be
appropriate and relevant for an OEM who has analogue, digital and mixed
analogue/digital testing needs, but the analogue test resource may be too
limited for certain testing duties.
Thirdly, the bench-top resources are normal individual instruments for
specific purposes, such as waveform analysers, synthesisers, data loggers,
down to filter units and voltmeters, etc. Such instrumentation may be
assembled to provide a test bench for a particular OEM product, but the
distinction between a rack and stack resource and a bench-top assembly of
standard instruments is becoming blurred since most standard instruments of
any standing now have a backplane general purpose instrumentation bus
(GPIB or HPIB) built into them to enable them to be jointly controlled
under PC supervision. All these categories therefore may now be referred to
as automated analogue test equipments, AATEs. The use of a commercial or
Analogue testing 391
Figure 7.6 A comprehensive analogue test system, normally for vendors' use; cf.
Figures. 1.4 and 8.3 (Photo courtesy Avantest Corporation, Japan)
20 times faster being quoted for analogue filters by analysing magnitudes and
phases via a fast Fourier transform (FFT) obtained from a single-pass
measurement8.
Perhaps the most powerful attraction of using DSP techniques for analogue
testing is for built-in self-test (BIST) strategies. However, this is invariably
associated with mixed analogue/digital systems, where the digital part also
has a built-in self-test resource, and therefore we will defer consideration of
this until the following chapter.
The DSP emulation of analogue test instrumentation is generally of the
form shown in Figure 7.7a, where the PC or workstation contains the software
program to generate the required input stimuli and to analyse and display the
resulting output test data. The particular input stimuli and output test
signature (s) are specific for the particular analogue circuit under test.
In most cases the input stimuli will be generated by a digital to analogue
converter whose input is the sequence of words provided by the preceding
memory. Therefore any waveform and frequency input can in theory be
applied to the circuit under test, limited only by the performance of the DAC
and its input data. Similarly, the output will generally be processed by an
analogue to digital converter, the digital output of which is sampled and
captured in memory for test acceptance/rejection. This is illustrated in
Figure 7.76. It may be necessary to include appropriate bandpass filters in the
analogue input and output paths to eliminate the possibility of any high-
frequency components in the input and aliasing in the output, together with
some overall sequencing and synchronisation to ensure correct input/output
relationships of the digital data. In general the maximum sampling frequency
in the digital domain should be, say, at least ten times the maximum analogue
frequency, which places a limit on this type of testing for very high speed
applications. Further details may be found in the published literature8'31"35.
Sampling speed requirements and aliasing (the Nyquist criteria) may be
found in Reference 31 and elsewhere36.
There are commercially available testers which employ such digital domain
methods for analogue circuit testing, such as the LTX workstation-based Hi.T
linear test system illustrated in Figure 7.8. This computer-aided test
development and test application system is based upon an Apollo DOMAIN
network, with a multiple windowing and graphics capability to plot the results
of (i) initial simulation, (ii) test development procedures, and (iii) final
active test measurements, in write—edit—run procedures.
The Hi.T test system architecture is generally as shown in Figure 7.7a, and
provides both high-accuracy synthesis and high-accuracy measurement of a.c.
and d.c. signals. Waveforms with better than 100 dB signal to noise
performance are available, with the particular feature that each pin
connected to the circuit under test can be made:
(i) an independent a.c. waveform source;
(ii) an independent a.c. waveform measurement;
394 VLSI testing: digital and mixed analogue/digital techniques
PC or workstation
control and
supervision
vector
processor
(RAM, ROM,
PROM, etc)
L
data generation analogue data processing and
(digital) signals logging (digital)
-D-
address/data RAM / /
test sequence or DAC — • ADC RAM
ROM •
etc.
Figure 7.8 The LTX Hi. T linear IC test system (Photo courtesy LTX Corporation,
MA)
-At
one clock
period A t
Now if there was available a true unit impulse input, the Weiner-Hopf
equation given below gives the impulse response of a given analogue circuit
or system36"40:
«MOM**^" 1 1 ) d T i (7 1}
-
where
O xx (t) = the unit impulse input
OXF(x) = the impulse response of the circuit.
Therefore, a test strategy as shown in Figure 7.10a can be proposed. The
output of the circuit under test is multiplied by the M-sequence delayed by
0A£, 1A£, ..., (M— 1)A£, and then integrated and sampled to provide discrete
points from the circuit's impulse response.
However, it is extremely costly in test circuit overheads to provide the
M- 1 delayed sequences, multiplication and integration, and therefore
experiments have been made to use a very much reduced set, possibly only
two delayed sequences, in the test structure. This is illustrated in Figure 7.106,
where only two delays are incorporated40, together with possibly simplified
test signature sampling at the output. Notice that provided the maximum-
length autonomous LFSR generator is a type A generator and not a type B,
see Figure 3.20, and if the output sequence from the first stage is used to drive
the circuit under test, then the delayed sequences I At, 2 At, up to (n-l)At
are freely available at the 2nd, 3rd, up to the the final nth stage output of the
register. Another factor which should be considered in attempting any form
of impulse-based test is that the period of the M-sequence must be greater
than the impulse decay of the circuit under test, or otherwise the impulse
response of the circuit will be overlaid with subsequent circuit responses40.
Analogue testing 397
M-sequence
integration
/
,0t»
LU
_J
CL
<
CO
digital multiplexer
LFSR
M-sequence
generator (0/4T)
MUX
output
OT 4TT test
signature
0Tor4T sample
X and hold
comparitor
analogue limits
r
circuit
under test
test circuit |
i
analogue/ w normal
normal multiplexers a.c. output
a.c. input
7.6.1 Filters
Filter design is one of the few area of microelectronic design which may be
fully automated. Given a required filter specification and the designer's
choice of type of filter configuration, then component values may be
automatically generated by CAD software programs. This is the nearest to
true silicon compilation that is generally available to an OEM system designer,
since the outline circuit configurations are known and only component
evaluation and overall simulation is involved8'45'46.
The full hierarchy of filters is illustrated in Figure 7.11. Passive filters,
usually composed of discrete resistors, capacitors and inductors, need not
concern us here; almost without exception in microelectronic-based systems
the required filters will be active, based upon the use of operational
amplifiers to provide circuit gain and the required transfer functions. CAD
filter software is invariably used for active filter design, with more basic simple
circuit simulation or SPICE being sufficient for any required passive filter
design activity11 »24'25»4'7.
Analogue testing 399
analogue filters
passive active
discrete
LCR
continuous - time switched - capacitor
linear filters (RC - equivalent)
(active RC) filters
Butterworth
monolithic resistor monolithic capacitor
Chebyshev ,, realisations realisations
Bessel
Cauer t
parallel
others switched
capacitor
series
switched
capacitor
series/parallel
switched
capacitor
lowpass
highpass bilinear
bandpass
bandstop
Figure 7.11 The hierarchy of analogue filters. Note that in siuitched-capacitor filters
the internal switching frequency must be » than the frequency of use of
the filter. Finite impulse response (FIR) and infinite impulse response
(IIR) filters have been omitted from this table as they are digital-only
devices
••• V supply
pulse
generator
test
load
BICotvf
in the region of $106 to $107. The test procedures would largely be functional
in accordance with the device specification, the emphasis being upon:
throughput and speed of test;
purity of the analogue waveforms;
equal quantisation of the digital increments;
temperature coefficients and conversion stability;
settling time;
and possibly other detailed parameters. The OEM testing of such standard
parts, when required, would also be functional, and in the case of relatively
small converters would not involve a very great deal of detail or effort. One
possible OEM strategy when both A-to-D and D-to-A converters are available
is to back to back test them, feeding the ADC output into the DAC, and
comparing the DAC output with an a.c. test input fed into the ADC66.
Allowing for the quantisation in the digital signals, see below, the a.c. output
should be the same as the a.c. test input. The opposite arrangement of a DAC
feeding an ADC may also be used, see Figure 7.21 later. In these situations it
may be advantageous to have a higher performance DAC available than the
ADC under test, and conversely a higher performance ADC available than
the DAC under test, if possible. In a further situation, if an OEM has a
relatively simple system design which involves an input ADC, some internal
digital signal processing, and an output DAC, a possible test procedure may
be an overall functional test using the primary analogue I/Os only, not
observing the internal digital interfaces unless necessary.
However, when ADCs and DACs are buried within more complex systems,
often with restricted controllability and observability, then it may be
advantageous to consider some alternative possibilities for the testing of such
macros. Here we will briefly look at some of the concepts which have been
considered.
Considering in this section analogue to digital converters: many detailed
forms of ADCs are available1'48'66'67, all of which have quantisation steps as
illustrated in Figure 7.14a. The number of steps in the digital code is the
resolution of the converter; a 16-bit converter for example has a resolution of
1 bit in 216, which is 0.00152 % (15.2 p.p.m.) of the full-scale reading.
Because one digital code word represents a discrete interval of the analogue
input signal, this interval is usually referred to as the quantisation step, QS, its
amplitude being given by:
QS= — FS (7.2)
T
where n is the number of bits in the conversion and FS is the full-scale reading
of the analogue signal. There is therefore a maximum quantisation error of
Q^max = ±|"Q^ i n t n e output voltage as indicated in Figure 7.14&, assuming a
perfect converter.
Analogue testing 405
analogue signal
ADC <
output ^ ideal transfer
characteristics
\ ^ ADC transfer
X
s
/ characteristics
• • \/
s
error
+V2OS-
\ K K k K1
-V2OS- N N\ N N N
IS
1.0
0.5
/A v,
$• 0.0
j i T3
!
a J
O
O
-0.5
/ i
i i i ^ j
-1.0
I
Till
s...
312% 2%
Time
0.10
-0.10
Time
•ffset l.
CD
111
110
I ,-Jf
3
8 101
100
W !
. JF\ . I
'A\ 9 ain '
o 011 :vP \ error |
igitai
ldeal
010
• jp^ i
•J
"D
001
000 A '
analogue input
FS analogue input
FS
111 111 L-
110 110 ideal •'I
ii
101 101 missed
Figure 7.16 Errors in analogue to digital converters, three-bit (eight digital code
words) shown for clarity
a offset error
b gain error
c integral nonlinearity error
d differential nonlinearity error
fsm=N(l/UTP)
= NS
where 8 is termed the primitive frequency of the test. The input frequency fin
should now be:
where M is the number of input cycles of the input frequency, but where M
and N now have no common factor other than unity. Taking the above
example, we have:
M fin=M5
197 4925 Hz
199 4975 Hz
200 Not allowed
20! 5025 Hz
203 5075 Hz
Choosing, say, the input frequency 5025 Hz, then the complete coherent test
specification is now:
input frequency, fin = 5.025 kHz;
no. of input cycles, M= 201;
unit test period, UTP= 201 cycles at 5.025 kHz
= 40 ms;
sampling frequency, fsm = 25 kHz;
no. of samples, N, per test period = 1000.
The 1000 test samples are now distributed throughout the range of the digital
code words, with no exact point on the a.c. sinewave input signal being
sampled more than once in the 201 cycles—the finite resolution of the
converter will however mean that the same output digital code is of course
given more than once.
If the sampling of the input waveform is noncoherent, then fin is offset
from the value where there is an exact integer relationship between fin and
the sampling frequency fsmi but with no other specific relationship between
them such as illustrated above. Since there is now no longer any recognised
form of synchronisation between the two, the sampling process effectively
becomes a random sampling process, and a very large number of a.c. input
cycles may be necessary to ensure that the device test is fully comprehensive.
Both coherent sampling and noncoherent sampling (sometimes referred to
as correlated and uncorrelated, respectively) will be found in the following
discussions.
Continuing, therefore, with alternative published ADC test strategies, one
possibility is to determine the frequency of occurrence of each digital output
code word with a given test input simulation. A single constant dV/dt ramp
input voltage to an A-to-D converter should result in the equal occurrence of
every digital output code, provided that the dV/dt rate of change of the input
signal and the internal ADC sampling rate are appropriately correlated; if the
input ramp and the sampling rate are uncorrelated then the cumulative
occurrence of each output code over very many cycles of the input ramp is
necessary. However, this method of testing, known as histogram testing,
conventionally uses a pure sinewave rather than any other input waveform,
the frequency being selected such that the testing is noncoherent. This gives
Analogue testing 411
0.035--
8 0.030--
S 0.025- -
—\ 1- -f-
100 150 200 250
Digital code
Figure 7.17 The ideal probability of occurrence of the output code words of an eight-
bit ADC with many cycles of a pure sinewave input
(7.4)
Analogue testing 413
p-l
40-
o" 30--
•a
2
2
10-
GO
ADC
signal
under I • RAM
source memory m- bit
test
code words
giving the
• number of
{2 • • • occurrences
of each
A j logic input address
f
Ay value
50 r
0.2
Aj
b
Figure 7.19 The use o/Aj for ADC testing
a simplified schematic of the hardware for generating Aj , omitting any
coherence and other control signals
b the graph of SNR versus Aj for the AD7575 A-to-D converter
(Acknowledgements, References 74, 75, 77)
FS
/ \
nonmonotonicity / \
\
8- / ideal / nonmonc
"CO
/
CO
^ i ' i
/ \ j i
0
000 001 010 011 100 101 110 111
digital input code
agree/
disagree
JUl
clock/synchronisation
code word
generator/
counter
clock/synchronisation
Figure 7.21 Possible OEM testing of D-to-A converters using ideally higher
specification supporting converters
a comparing digital inputs and outputs
b Lissajous-type oscillograph plot of the analogue outputs
(7.5)
(7 6)
-
where I is the relative time offset between the data being correlated, from
which the index of functionality IF is given by the difference of all correlation
values:
RXY-RYY \\ (7.7)
low byte
AGNO
r OGNO
end of conv
load channel *
reset channel *
begin conv - *
Figure 7.22 The DT5716 modular ADC system, providing 16 single-input or eight
differential-input a.c. inputs, sample and hold, variable gain and
16-bit A-to-D conversion at 20 kHz throughput rate
(Acknowledgements, Data Translation Inc., MA)
Analogue testing 421
The OEM testing of such circuits must be an overall functional test when
required. No precise knowledge of the internal circuitry down to gate level is
generally available, and hence primary input to primary output tests to
confirm the device specification is all that can realistically be undertaken.
7.8 References
1 HOROWITZ, P., and HILL, W.: 'The art of electronics' (Cambridge U.P., 1991)
2 SEDRA, A.S., and SMITH, K.C.: 'Microelectronic circuits' (Holt, Reinhart and
Winston, 1987)
3 BOBROW, L.S.: 'Elementry linear circuit analysis' (Holt, Reinhart and Winston,
1987)
4 SAVANT, E.J., RODEN, M.S., and CARPENTER, G.L., 'Electronic design: circuits
and systems' (Benjamin/Cummings, 1991)
5 ALLEN, P.E., and SANCHEZ-SINECIO, E.: 'Switched capacitor circuits' (Van
Nostrand Reinhold, 1984)
6 VAN VALKENBURG, M.E.: 'Analog filter design' (Holt, Reinhart and Winston,
1981)
7 TOUMAZOU, C, LIDGEY, EC, and HAIGH, D.G. (Eds.): 'Analogue IC design:
the current mode approach' (IEE Peter Peregrinus, 1993)
8 TRONTELJ, J.,TRONTELJ, L., and SHENTON, G.: 'Analog digital ASIC design'
(McGraw-Hill, 1989)
9 HURST, S.L.: 'Custom VLSI microelectronics' (Prentice Hall, 1989)
10 HURST, S.L.: 'Custom-specific integrated circuits' (Marcel Dekker, 1985)
11 SOIN, R, MALOBERTI, E, and FRANCA, J. (Eds.): 'Analogue—digital ASICs:
circuit techniques, design tools and applications' (IEE Peter Peregrinus, 1991)
12 DUHAMEL, P., and RAULT, J.-C: 'Automatic test generation techniques for
analog systems: a review', IEEE Trans., 1979, CAS-26, pp. 411-440
13 BANDLER, J.W., and SALAMA, A.E.: 'Fault diagnosis of analog circuits,' Proc.
IEEE, 1985, 73, pp. 1279-1325
14 FANTINI, E, and MORANDI, C: 'Failure modes and mechanisms for VLSI ICs—
a review', Proc. IEE, 1985, 132, pp. 74-81
15 FANTINI, E, and VANZI, M.: 'VLSI failure mechanisms'. Proceedings of CompEuro
'87, 1987, pp. 937-943
16 AMERASEKERA, E.A., and CAMBELL, D.S.: 'Failure mechanisms in semi-
conductor devices' (Wiley, 1987)
17 OHLETZ, M.J.: 'Hybrid built-in self-test (HBIST) for mixed analogue/digital
integrated circuits'. Proceedings of European conference on Test, ETC '90, 1990,
pp. 307-316
18 HARVEY, R.J.A., BRATT, A.H., and DOREY, A.P.: 'A review of testing methods for
mixed-signal ICs', Microelectronics J., 1993, 24, pp. 663-674
Analogue testing 423
19 WEY, C.L., and SAEKS, R.: 'On the implementation of an analog ATPG, the non-
linear case', IEEE Trans., 1988, IM-37, pp. 252-258
20 MIJOR, L., and VISVANATHAN, V.: 'Efficient go/no-go testing of analog circuts'.
Proceedings of IEEE international symposium on Circuits and systems, 1987, pp.
414-417
21 STAPPER, C. H., ARMSTRONG, EM., and SAJI, K.: 'Integrated circuit yield
statistics', Proc. IEEE, 1983, 71, pp. 453-470
22 GALIAY, J., CROUZET, Y., and VERGINAULT. M.: 'Physical versus logical fault
models for MOS LSI circuits: impact on their testability', IEEE Trans., 1980, C-29,
pp. 527-531
23 ANGONETTI, P. (Ed.): 'Semiconductor device modelling with SPICE' (McGraw-
Hill, 1994)
24 VLADIMIRESCU, A.: 'The SPICE Book' (Wiley, 1994)
25 BERSFORD, R.: 'Circuit simulators at a glance', VLSISyst. Des., 1987, 8 (9), pp. 76,
26 MASSARA, R.E. (Ed.): 'Design and test techniques for VLSI and WSI circuits' (IEE
Peter Peregrinus, 1989)
27 'HELIX command reference manuals, vols. 1 and 2' (Silvar-Lisco, 1986)
28 WALSH, K., and WOLFE, B.: 'Mixed-domain analysis for circuit simulation', VLSI
Syst. Des., 1987, 8 (9), pp. 44-49
29 BRAY, D., and IRISSOU, P.: 'A new gridded bipolar linear semicustom array
family with CAD s u p p o r t ' , / Semicust. ICs, 1986, 3, June, pp. 13-20
30 PARKER, K.P.: 'Integrating design and test: using CAE tools for ATE
programming' (IEEE Computer Science Press, 1987)
31 SHEPHERD, P.: 'Testing mixed analogue and digital circuits', in [11], pp.334-359
32 MAHONEY, M.: 'DSP-based testing of analog and mixed-signal circuits' (IEEE
Computer Science Press, 1987)
33 SHANNON, C.E.: 'Communications in the presence of noise', Proc. IRE, 1949, 37,
pp. 10-20
34 BROWN, D., and DAMIANOS, J.: 'Method for simulation and testing of
analog/digital circuits', IBM Tech. Disci. Bull, 1983, 25, pp. 636-638
35 HOCHWALD, W, and BASTIAN, J.: 'A d.c. approach for analog fault dictionary
determination', IEEE Trans., 1979, CAS-26, pp. 523-529
36 OPPENHEIM, A.V., and SCHAFER, R. W: 'Discrete-time signal processing'
(Prentice Hall, 1989)
37 BANDLER, J.W., and SALAMA, A.E.: 'Fault diagnosis of analog circuits', Proc.
IEEE, 1988, 73, pp. 1279-1325
38 TOWILL, D.R.: 'Dynamic testing of control systems', Radio Electron. Eng., 1977, 47,
pp. 501-521
39 TSAO, S.H.: 'Generation of delayed replicas of maximal-length linear binary
sequences', Proc. IEE, 1964, 111, pp. 1803-1806
40 ROBSON, M., and RUSSELL, G.: 'Digital techniques for testing analogue
functions'. Proceedings of IEE colloquium on Systems design for testability, 1995, pp.
6.1-6.4
41 BELL, I.M., CAMPLIN, D.A., TAYLOR, G.E., and BANNISTER, B.R.: 'Supply
current testing of mixed analogue and digital ICs', Electron. Lett., 1991, 27, pp.
1581-1583
42 DA SILVA, J.M., MATOS, J.S., BELL, I.M., and TAYLOR, G.E.: 'Cross-correlation
between i(ld and vout signals for testing analogue circuits', Electron. Lett., 1995, 31,
pp. 1617-1618
43 BELL, I.M., CAMPLIN, D.A., TAYLOR, G.E., and BANNISTER, B.R.: 'Can supply
current monitoring be applied to testing of analogue as well as digital portions of
mixed ASICs?'. Proceedings of European conference on Design and automation,
1992, pp. 538-542
424 VLSI testing: digital and mixed analogue/digital techniques
8.1 Introduction
real
world
digital drivers
AtoD DtoA
logic and and
conversion conversion
processing buffering
L i
The applications for mixed analogue /digital systems are extremely diverse;
they include:
telecommunications;
medical;
automotive;
military;
industrial control and supervision;
consumer products;
and others. In the last area we have the every-day complexity of video
recorders, compact disc players, electronic music synthesisers and organs,
telephone and fax equipment, and so on. Increasingly manufacturers are
attempting to place the whole circuit on one VLSI chip, a systems-on-a-
chip design solution, which must involve a detailed consideration of how-
shall-we-test-it at the design stage. In the more general-purpose area, we
have off-the-shelf products such as the Motorola 68705 microcontroller
shown in Figure 8.2, which incorporates an analogue input port that can
accept up to eight analogue inputs, these analogue inputs being routed to a
shared A-to-D converter which quantises each input into eight-bit 256-level
digital data. These and other off-the-shelf products must be comprehensively
vendor tested, and may include some scan-test or built-in self-test provisions,
see later.
Mixed analogue/digital system test 429
main
SP = stack pointer CPU memory
SR = status register
IX = index register control 8-bit PROM
PC = program counter logic integer ALU
AC = accumulator RAM
_L
port A portB portC portD analogue
programmable
t J I
to digital
timer
converter
Figure 8.2 Schematic of the Motorola 68705 microcontroller, which has analogue
input capability
Figure 8.3 Avantest T7341 mixed-signal test system, featuring two-channel 200
MHz function generation, digitiser, digital-controlled test units and other
facilities (Photo courtesy Avantest Corporation, fapan)
analogue digital
reduced
mask set
full
mask set
digital standard
cells and macros
(soft)
Figure 8.4 A survey of the principal design methodologies for custom ICs, with
considerable blurring of the precise boundaries between types. Architectures
which span the divide between a full mask set and a reduced mash}® are
uncommon
The design phase of such circuits (and indeed of all mixed analogue/
digital circuits) inevitably partitions into an initial consideration of the
analogue circuits and of the digital circuits, followed by the interface require-
ments between them. This initial partitioning of duties continues through the
simulation phase right down to final test, since it is not possible to consider
the complete circuit as one homogeneous whole from either the design or
432 VLSI testing: digital and mixed analogue/digital techniques
the testing point of view. The interface between the two, however, remains the
critical area, and it is here where existing CAD and simulation resources are
at their weakest.
The overall schematic for the design and fabrication of a mixed-signal
USIC is generally as shown in Figure 8.5. If the overall system is small, using
possibly component-level uncommitted arrays (tiles and mosaics, etc.3*6) with
a reduced mask set, then an overall SPICE or SPICE-derivative simulation
may be possible. This is, however, only feasible if the total number of
transistors and other components involved is a few hundred and not
thousands; for example, it has been reported that to simulate just one
analogue to digital conversion in a high-speed 10-bit A-to-D converter at the
transistor level would take over twenty hours of workstation time12.
As system requirements grow, then the need to use predesigned library
macros becomes increasingly necessary. Among the analogue macros which
vendors may have available are:
• operational amplifiers—general purpose, low power, high frequency, high
drive, low noise and other variants;
comparitors—general purpose, high speed, low power and other variants;
programmable gain amplifiers;
filters—switched-capacitor and continuous-time;
bandgap voltage references;
current sources, current references and current mirrors;
analogue switches and multiplexers;
transconductance amplifiers;
A-to-D and D-to-A converters;
RC and crystal oscillators;
nonlinear expanders, compressors and limiters;
with both bipolar, MOS and BiCMOS being represented in the market place.
Again, as noted in the previous chapter, it is the variety of analogue elements
each with their own tolerance bands which is the problem in analogue and
mixed analogue/digital circuit design and test. Figure 8.6 shows a represent-
ative mixed-signal IC which illustrates a typical mix of circuits.
Simulation of LSI/VLSI mixed-signal ICs is therefore forced to use other
than just SPICE-based simulation. This may be:
(i) using SPICE or some alternative analogue simulation package for the
analogue elements*, with a separate digital simulator such as HILO™,
VHDLsim™, Verilog-XL™, Lsim™ or other commercially-available
software package for the digital elements;
(ii) using mixed-signal simulation, see later, which can cater for both
analogue and digital elements, but not in such fine detail as SPICE.
* As noted in the previous chapter, particular CAD software is available for switched-
capacitor filters and other specific analogue elements, but they are usually standalone
packages which are difficult to link together with other software.
Mixed analogue/digital system test 433
system specification
possible
mixed-signal
simulation
design iteration
post-layout simulation
if available
prototype manufacture
prototype test
production
1
production/OEM testing
Figure 8.5 The hierarchical design route for the majority of mixed-signal IC designs,
with the basic analogue and digital elements being predesigned library
data
434 VLSI testing: digital and mixed analogue/digital techniques
AGC CIRCUIT
O P AMPS AND
COMPARATORS"" KEYBOARD
INTERFACE LOGIC
RAM
(64 B)
Figure 8.6 An example combined analogue/digital IC, chip size 215 X 215 mil2
(Photo courtesy Sierra Semiconductor Corporation, CA)
With (i) above there remains the problem of linking the two simulators,
which are run separately, to interact together. This has been termed a glued
simulator approach, and involves feeding each simulator's output data to the
other. A true mixed-signal simulator, however, is a single simulator which
handles both the analogue and the digital components at a behavioural level.
However, the distinction between (i) and (ii) is blurred, since there is a
growing significance in the development and use of systems integration
software which can take the best from the analogue simulation area and the
best from the digital simulation area, and weld them together in a highly
integrated (seamless) design package. Figure 8.7 illustrates a mixed-signal
simulation resource handling both analogue and digital library elements in
the design of an analogue/digital system.
This is still a highly volatile CAD area, and from our interests here does not
yet have a clear path through to a final testing strategy. There are still
reported problems in mixed-signal simulation, including:
• noise from the logic switching action induced into the analogue circuits,
which cannot easily be modelled;
• the presence of high-power analogue elements near the vicinity of very
low power logic elements;
• tolerancing the analogue components for parametric test purposes, which
is generally unnecessary for the digital parts.
Further details of these aspects may be found published12"14.
Because of these present difficuties in both the design and simulation of
analogue/digital ICs, there are breadboarding techniques commercially
available which exploit the capabilities of digital simulation while providing
hardware resources for the analogue side. This is illustrated in Figure 8.8,
Mixed analogue/digital system test 435
from which it will be noted that the digital CAD software physically interfaces
to real-life analogue elements, these analogue elements being individually
packaged library elements identical to that which will be incorporated in the
fmal mixed-signal IC. This Lego-type assembly of the analogue elements
reflects the way in which many designers have conventionally undertaken
prototype system designs; normal bench-top instrumentation can readily be
used to monitor the analogue circuits, giving a system evaluation prior to
integration. However, the interconnections between such analogue circuit
elements do not exactly represent the final IC interconnect impedance, and
the interface between the analogue assembly and the digital software is also
not exact. Nevertheless, for frequencies up to possibly tens or hundreds of
kHz, this design methodology has proved to be useful to the OEM where
efficient, affordable and user-friendly CAD software is not otherwise available.
A further variant which may be used during an initial design phase is to
partition the digital logic so it may be realised in reconfigurable static RAM-
based field-programmable gate arrays (FPGAs)15; indeed, we may well find
the use of SRAM-based FPGAs and CPLDs increasing in both the design and
the test formulation stages of complex IC designs.
The information in this section has not directly involved the primary
subject of this text, namely testing, but has been included to illustrate the
problems of design and simulation when mixed-mode signals are present.
Details of circuit and system design may be found in the published literature,
436 VLSI testing: digital and mixed analogue/digital techniques
f ;
hardware
digital CAD analogue
kit parts
I bidirectional
; interconnect
DDD : :
logic
: : : : DD
module
design table patchboard
interface
board
:::DD ::
• • : :•
software
|:|°o
i bench-top
instrumentation
O O
O mrm
hardware
Figure 8.8 The concept of combining digital CAD software with analogue hardware
elements for mixed-signal IC design purposes
digital
logic
multiplexers or
primary other interface primary
inputs partitioning outputs
analogue
macros
Figure 8.9 The classic test strategy for mixed analogue/digital circuits and systems,
wherein the two halves are considered separately for both design and test
purposes
methods being applied to the digital parts and analogue testing methods
being applied to the analogue parts. The exception to this is, of course, when
the complete system is fairly small and uncomplicated, in which case overall
functional testing using the primary inputs and primary outputs may be
sufficient. This will not, however, test the parametric tolerances of all the
analogue elements.
This divide and conquer procedure for test therefore usually follows the
routes shown in Figure 8.10. This has invariably been the (intuitive)
procedure that an OEM follows when designing a mixed-signal hybrid or PCB
system, where full controllability and observability of the primary inputs and
outputs is freely available, and to a lesser extent when a mixed-signal IC
design is being considered2'25"28. The presence of D-to-A and A-to-D
converters and switched-capacitor filters to some extent blurs this division,
and this is why they were considered as autonomous analogue elements in
the previous chapter. However, recall from this chapter that there are no
accepted fault models for the analogue elements, corresponding to the stuck-
at model which may be used for the digital elements, and therefore in
438 VLSI testing: digital and mixed analogue/digital techniques
device specification
block schematic
test review
test plan
±
logic simulation
device debug
characterisation
core digital
logic
Figure 8.11 An extension of Figure 7.3 to utilise a digital scan-path resource for
selectively controlling the analogue multiplexers; the normal-mode
analogue/digital interfaces of the complete circuit have been omitted for
clarity. Note the scan path is the AMUX control, and does not handle
any analogue test data
of the means considered in Chapter 7, with the digital part being a separate
consideration. Note also that on a mixed-signal IC the d.c. supply rails for the
digital logic and the analogue elements are invariably kept separate or well
decoupled from each other, and hence it is still theoretically possible on a
mixed-signal IC to consider current monitoring tests, such as illustrated in
Figure 7.13, for the analogue macros.
With complete analogue/digital segregation as in Figures 8.9 and 8.11, all
our previous discussions on analogue testing using conventional
instrumentation or DSP techniques, etc., therefore remain relevant 2,21,30-35^
Note that Duhamel and Rault31 contains an extensive listing of about 500
references to early pioneering work in analogue test generation techniques.
However, there remains the possibility of some form of scan test or built-in
Mixed analogue/digital system test 441
self test to cover the analogue half, which we will consider in the following
sections. Unlike the digital-only situation considered earlier, the following
designed for test strategies are all offline, as it is currently not realistic to
consider any form of online monitoring of the analogue signals,
corresponding to the online digital code checkers and other DFT techniques
considered in Chapter 4—perhaps this may need reconsideration in the
future?
77TJ
| from I—
primary — core digital - I primary
inputs "j logic routputs
or or
A-to-D l,~~ "J D-to-A
converters converters
analogue test scan chain
|1to A-to-D
(
analogue -
analogue converters |
primary <
macros or primary
inputs
outputs
J
Figure 8.12 The use of a dedicated scan chain to shift a.c. data off-chip in addition
to the conventional digital logic scan chain; the normal-mode analogue/
digital interfaces of the complete circuit have been omitted for clarity
inputs to the analogue test scan chain, which may be the existing A-to-D
interface converters of the circuit or additional converters to monitor critical
nodes in the analogue circuits. Rather than using A-to-D conversion to load
the scan chain it may be possible to employ more simple threshold detection
circuits, each of which will give a binary output indication if its analogue
signal is within acceptable limits when measured.
There is clearly a very significant silicon area overhead present in this
proposed test strategy. If the analogue inputs are not primary inputs, or if
additional a.c. test inputs are required, then there is the further complication
of having to provide test access such as shown in Figures 8.9 and 8.11.
Additionally, it is necessary to control the point at which the data is loaded
into the scan chain from the analogue macros, which involves appropriate
clocking of the latches synchronised to the phases of the a.c. test waveforms.
As an alternative to LSSD-type scan paths with some form of A-to-D
conversion, analogue scan paths have been proposed which effectively scan
Mixed analogue/digital system test 443
through analogue data rather than binary data. These proposals employ
sample and hold operational amplifiers, chained together with transmission
switches, the whole being under the control of some appropriate scan-path
clocking.
The disclosures of Wey39"41 are shown in Figure 8.13. Each analogue node
which is to be monitored feeds an analogue shift register (ASR) circuit, these
circuits being chained together to form the analogue scan path. Each ASR
circuit is buffered from the node under test so as not to load the normal
analogue circuit elements.
The proposed ASR circuit shown in Figure 8.136 consists of two sample and
hold operational amplifiers, with tranmission switch SI controlling the
sampling and switches S2 and S3 controlling the scan action. The digital
signals to control the sample and hold and the serial scan action are shown
in Figure 8.13c. All the ASR stages may be loaded in parallel with the sample
and hold a.c. data, the values being held in Cl, then being shifted through
from Cl to C2 and thence to the following ASR stage by the interleaved clocks
which control switches S2 and S3. Serial scan out of all sample data therefore
results. If the a.c. data required to be monitored is not simultaneously
available, then more than one sample, hold and scan sequence becomes
necessary.
It will be seen that the two sample and hold operational amplifiers per ASR
circuit are analogous to the two latches used in the digital scan-path circuits
shown in Figures 5.8 and 5.10, data being shifted from one to the other
during scan-out. However, Wey has suggested an alternative analogue shift
register circuit which employs only one sample and hold amplifier per stage,
as shown in Figure 8.14#, but if all the stages are simultaneously loaded by SI
then it is not possible to scan out the stored data in exactly the same manner
as previously. Instead a separate control of the S2 transmission switches is
necessary as shown in the Figure. The data sampled by ASR1 will be the
final sample output, cascading through all the following conducting ASR
stages.
Two critical factors are clearly necessary in all such arrangements, namely:
(i) highly accurate sample and hold voltages;
(ii) a lossless scan path, that is all operational amplifiers provide a stage gain
of exactly unity.
The usual form of the analogue switches SI, S2, S3 is shown in Figure 8.146,
being the conventional n-channel/p-channel FET pair. This requires that the
peak to peak a.c. signal voltage shall be less than the d.c. voltage controlling
the FETs in order that gate to source voltages will always be above their
threshold cut-off value, but in any case there will always be some attenuation
through the switches, slightly nonlinear, which will impair the ideal
transmission of the sampled a.c. data. The small-signal a.c. equivalent circuit
of an ASR stage from one storage capacitor, Cl, to the following capacitor is
shown in Figure 8.14c, where:
444 VLSI testing: digital and mixed analogue/digital techniques
test point
buffers
analogue analogue
scan in scan out
a.c. test
data in
S1
I shift out
shift in
A1 S2 A2
rC1 ASRJ
n_n
- - - transfer data from A1 to A2
S1 S1
! i\
S2 S2
scan out
A1
!_
T C1
"" ASRn-A
!
j ! _
C2
ASR_n j
scan out
data n-1
VDD. vDD.
Vss- Vss-
A
VDD-
/ \ p.p. a.c. voltage < d.c. voltage
Clearly, the operational amplifier parameters are key factors in this transfer
of sampled data. In theory the operational amplifiers could be designed to
provide a small compensating gain for the imperfections of the circuit, a
monolithic realisation of the parts aiding this matching, but published
literature does not mention whether this is necessary or has been
incorporated.
The silicon area of these proposals is appreciable. The ASR circuit shown
in Figure 8.13a is not unduly different in silicon area from the digital L1/L2
circuit shown in Figure 5.8, consisting of about ten FETs per operational
amplifier plus the two FETs per switch, but the point to note is that this a.c.
scan path is additional to the normal-mode analogue circuits, whereas in the
digital logic case the L1/L2 latches are part of the working digital logic
network. It is not known whether this a.c. test strategy has been used in real-
life mixed-signal ICs, but it does constitute a possible means of providing
observability of internal nodes with the minimum number of additional I/Os.
The number of ASR circuits that can be cascaded to form an analogue scan
chain must however be limited by the imperfections that accrue with a large
number of registers in series. Finally, it may not always be appropriate to
sample all the analogue test nodes at the same instant, and hence more than
one SI clock may become necessary.
is therefore the main buried part of the circuit layout41"43. The observability
of the response of the input analogue macros and the controllability of the
test data into the output analogue macros therefore constitute the principle
difficulties for the a.c. tests. Note that we are not interested here at all in fault
location, but only in fault detection.
The disclosures of Ohletz covering his hybrid built-in self-test (HBIST)
strategy assumes the latter topology, being a digital core with primary input
and primary output analogue macros42. The chip architecture without built-
in self test is therefore as shown in Figure 8.16a, appropriate A-to-D and
D-to-A interfaces being present between the analogue and digital parts. The
test strategy for incorporating the analogue elements into a built-in self-test
environment has the following universal guide lines:
(i) established BIST techniques for digital-only circuits shall be maintained
for the digital elements in all mixed-signal circuits;
(ii) the self-test implementation for the analogue macros shall be
compatable with the digital BIST circuits, or incorporate them as far as
possible;
(iii) all the normal analogue to digital interfaces shall be tested at least once
during the tests;
(iv) reconfiguration of the normal-mode circuits into a test mode shall as far
as possible be done in preference to switching in entirely separate and
additional test mode only circuits.
Figure 8.161? therefore shows the disclosed BIST strategy for the mixed-signal
topology of Figure 8.16a, the action of which is as follows.
The IC is prepared for self test by the normal mode/test mode control
signal NTC, which in test mode disconnects the primary a.c. input pins from
the input analogue macros, connecting instead the a.c. test response data
ACTR, and also disconnects the a.c. outputs from the primary a.c. output
pins. The complete circuit is therefore isolated from its normal peripheral
a.c. inputs and outputs. The self test of the digital core logic is first
undertaken in the conventional BIST way, all the sequential storage elements
being reconfigurable into BILBO LFSR configurations which can operate as
autonomous test vector generators or as multiple-input signature registers
(MISRs), as detailed in Chapter 5—see in particular Figure 5.24. During self
test, the left-hand BILBO register of Figure 8.16*, BILBO 1, is run as the
autonomous test vector generator, providing a maximum-length pseudo-
random test sequence to exercise the combinational logic. Recall that in this
mode the normal inputs to the storage elements which constitute the BILBO
register are conventionally isolated, see Figure 5.28, and therefore here the
A-to-D data has no influence. At the same time the right-hand BILBO register,
BILBO 2, is run as an MISR to capture the test signature, which is subse-
quently scanned out in the usual manner for fault-free/faulty checking.
Following the self test of the digital logic, BILBO 2 of Figure 8.16* is
reconfigured as an autonomous test vector generator, and BILBO 1 as an
448 VLSI testing: digital and mixed analogue/digital techniques
s c a n in
autonomous test vector generator i
1 1
digital logic i
test j
register!
i threshold detectors
or comparitors
or A-to-D conversion
switches scan out SDO
analogue macros
analogue transient i:
I
normal mode \ serial digital
test response
• analogue signals test inputs
POs
Figure 8.15 Sharing of digital built-in self-test resources for analogue self test
a general schematic
b the topological variants which may be encountered, omitting the
internal A-to-D and D-to-A converters
MISR. The pseudorandom test vector sequence now exercises the output
analogue macros via the normal D-to-A converters, the a.c. test response
ATCR being fed back to the input analogue macros and thence via the
A-to-D converters to the BILBO 1 MISR circuit Notice two points, namely:
(i) all the signal paths between the analogue and the digital partitions are
tested in their normal working condition in this a.c. self test;
(ii) the final content of the MISR register of the logic test can act as a seed
for the same BILBO register when switched to become the test
generator for the a.c. tests.
However, this simple reconfiguration to provide the analogue self test has
problems, namely:
Mixed analogue/digital system test 449
analogue analogue
>-
analogue macros ^ POs
/
Pis
/ D
• the number of output signals from the analogue macros may not match
the number of inputs on the analogue macros;
• the analogue test signals produced by BILBO 2 and the following D-to-A
converter may not constitute a satisfactory test for the output analogue
macros;
and, similarly,
• the analogue test response of the output analogue macros may not
constitute satisfactory test data for the input analogue macros.
If BILBO 2 is run as a normal maximum-length pseudorandom test
generator, then some analogue response will undoubtedly be captured by
BILBO 1 in its MISR mode, and gross faults around this loop will be detected,
but this is an abnormal functional test of the analogue macros which may or
may not be adequate. It is certainly not a parametric test which seeks to check
on acceptable analogue circuit tolerances.
450 VLSI testing: digital and mixed analogue/digital techniques
R R R R R
Digital Kernel r 1 -t-O— Analogue
2R(_ 2R[] 2R| ] r-n-2 R N 2 R Q P +Uref
2R DUT
k
r\t
1 f
BLl
7\
if R
R
1 i 1
1m1
ir 7
1 i 1 31 V1!
1m1 ii* l i r 1
r ,f
>1
H irf II1
-•[H~~ \rHi! H
S
m
\
—It—HC
Function 2R?
D2RR [
12R r^ 2R f i 2 R n2R
converted
h i-rzi-i-CD-I-iz}-
HTSG Shift -Uref
Register D/A Conversion Network
n
0.8 / -
0.6
I J
0.4
0.2
/
IT
11
nn
1
L I
-0.2
-0.4
-0.6
-0.8
1
2 4 6 8 10 12 14 16
5
Time, S X 1(T
Figure 8.17 Examplefive-bitmodified autonomous test vector generator for built-in
analogue self test, with the D-to-A output test stimulus
(Acknoiuledgement, Reference 41)
analogue
macros
primary (primary
inputs f outputs
test mode control i:
ROM or DSP-based or threshold detectors ,-
other analogue signed source comparitors or I
A-to-D comparision j
/
see Figure 8.19
SDO
analogue
!
|
r-f- "II digital:
.. i
primary I data I
inputs
MISRor
scan path
SDI
f
SDO
| data
r
analogue
macros
primary I primary
inputs
i: r outputs
signal
source
SDI
synch ronisation/clock
ROM or
PROM data
uuress D to A conversion
/
V
\
\
cou nter
read-only
A
memory
clock filter
frequency
D to A conversion
tuning
word
test of PCB system assemblies, but do not help us in our present consideration
of fully on-chip test resources.
The broad choice of on-chip analogue test generation is therefore
summarised in Figure 8.20, with the continuous-time analogue solution
having application difficulties. Here we will look a little further at the third
possibility, namely the use of some form of DSP, as this is likely to be the area
of increasing significance in mixed-signal IC test strategies of the future. For
readers who may wish to be reminded of digital signal processing theory,
there are many excellent available texts including the following, and
reference should be made to them and other sources for further information
and refreshment23'45'52'55"62.
One of a number of published proposals for on-chip DSP signal generation
is the use of delta-sigma modulation, which it is claimed offers efficient silicon
area solutions44'48. Figure 8.21a shows the block schematic of an oversampled
AZ-based function generator, the closed loop circuit within the the dotted
Mixed analogue/digital system test 455
built-in analogue
source requirements
(autonomous test generators)
continuous-time
sinusoidal and direct look-up digital signal
other oscillator frequency synthesis processing (DSP);
circuits discrete-time
(more relevant signal generation
for onboard PCB
assemblies; not
prominent to date
for on-clip signal ROM look-up tables
generation) and similar means
output filtering
if/as required
Figure 8.20 The three general possibilities for generating on-chip analogue test
signals
multi-bit digital
sine wave
i bit
rurj -
output
two preset
n - bit coefficents
n-bits
1-bit output
possibly just
7 ! most significant
oversampling '!_ n ' r I^LDJ bit of n
clock fos
register 1, n +2 bits
z-1
unit delay \ n-bits
oversampling
clock fos
register 1, n +2 bits
is that the analogue output frequency fmt is only a small fraction of the
oversampling frequency fos possibly fout< IO~3 fos, and therefore the
maximum possible output frequency fout is severely limited.
Other possibilities for on-chip analogue signal generation include the
following:
(i) If the digital logic core itself contains a microprocessor or some other
digital processing resource, then it may be relevant to consider
reprogramming this resource to generate a.c. test stimuli. Simple tone
generation using sine/cosine approximation algorithms and other
mathematical functions may be generated; adaptive IIR filters and FIR
filters and Fourier and other transforms may also be executed61, which
may be relevant for the analysis of the analogue response data.
(ii) The special signal processing test strategies such as referenced in the
previous chapter, including impulse testing, correlation techniques and
other concepts, are also relevant to consider as BIST test resources,
possibly very much more so than many of the other alternatives. In this
context we must certainly consider built-in voltage and current
monitoring32'63'64, which with some form of correlation may provide
successful on-chip test strategies—Figure 8.22 illustrates on-chip voltage
and current transients when filter macros are subjected to an impulse
test, the resulting waveform signatures being correlated with known
healthy responses to give go/no-go results.
(iii) Finally, developments are still taking place in continuous-time amplifier
and oscillator design; in particular operational transconductance
amplifiers (OTAs) for the generation of sinusoidal signals are receiving
on-going attention, which may have relevance for future on-chip mixed-
signal design and test65"67.
However, because of the diversity of analogue circuits and the almost unique
nature of every mixed-signal IC or PCB assembly, no one test strategy for all
analogue and mixed analogue/digital circuits is ever likely to emerge. Rather,
a menu of accepted test strategies is likely to be formulated. Hence, the
circuit or system designer should become conversant with what may be
possible, which must include a much greater familiarity with digital signal
processing theory and practice than has previously been the case for digital
designers.
Moving on from the practical uncertainties of built-in self test for mixed
analogue/digital circuits to an area which is receiving international
consideration, it will be recalled from Section 5.4 of Chapter 5 that IEEE
standard 1149.1, 1991, has been established to provide a recognised means of
458 VLSI testing: digital and mixed analogue/digital techniques
Figure 8.22 Normalised voltage and current signatures for buried analogue macros
when subject to transient response tests
a supervisory audio tone filter
b receiver bandpass filter (Acknowledgement, Reference 63)
Mixed analogue/digital system test 459
providing test access to digital VLSI ICs by the provision of boundary scan
cells68'69. As well as providing test access into and out from the ICs, an
important objective of standard 1149.1 was also to allow the interconnections
between ICs to be checked on final OEM system assemblies, the increased pin
count per IC combined with new forms of packaging making the old-
established bed of nails test probing techniques increasingly impossible to
implement. Figures 5.18 to 5.22 of Chapter 5 illustrate the main concepts
involved in standard 1149.1.
International working parties are currently finalising a corresponding
boundary scan standard for analogue macros, this being IEEE standard
1149.4. It was originally hoped that a single universal standard covering both
analogue and digital macros would be possible, but partly because the digital
standard was considered first, being the most urgent need of the late 1980s,
and partly because it became evident that the boundary scan requirements
for digital and analogue macros would not have a great deal of practical
commonality, standard 1149.1 was established for the digital boundary scan
requirements, with 1149.4 now being finalised as the corresponding analogue
standard.
Perhaps even more important than in the digital-only case of 1149.1, the
analogue boundary scan is very heavily concerned with the interconnect
between macros. This is particularly necessary because there are discrete
components still required on certain analogue I/Os for timing or other
purposes which cannot readily be incorporated on-chip. An interconnect
situation such as shown in Figure 8.23 therefore arises which the analogue
boundary scan standard has to accommodate. The boundary-scan cells shown
in this Figure are:
ABSC = analogue boundary scan cells
DBSC = digital boundary scan cells
the latter being exactly as detailed in Figure 5.18. We will have no need to
refer to the DBSCs in detail in the following discussions.
If it was readily possible and convenient to probe each interconnect line,
then the correct presence of all passsive components outside the IC I/Os
could be confirmed by the analogue measurement techniques introduced in
Chapter I70. The ideal characteristics of operational amplifiers, namely
infinite input impedance and- virtual earth at the input terminals, allows
component measurements to be undertaken as in Figure 8.24; however, the
principle pursued in standard 1149.4 is generally to apply the interconnect
stimulus via the output pin of one IC and collect the test result at the input
pin of a following IC, as is done for the simple continuity test in the digital
case. Therefore, the analogue boundary scan cells are required to provide
this analogue controllability and observability, via an overall scan-in/scan-out
test structure.
460 VLSI testing: digital and mixed analogue/digital techniques
DBSC DBSC
_L
DBSC DBSC
digital digital
macros macros
DBSC DBSC
DBSC DBSC
V
simple
analogue —•>
interconnect /
ABSC Li
•
—»»| ABSC
analogue analogue
macros macros
component interconnect
under test
IC1
= Z
•<" IT ' '
if IN
analogue test
buses A T I & AT2
ABSC ABSC
primary primary
analogue ^analogue
inputs outputs
core
ABSC analogue ABSC
and
T
digital
macros
NDO
DBSC DBSC
primary primary
digital • digital
inputs outputs
DBSC DBSC
•AT2
IC perimeter
Figure 8.25 Outline schematic for the on-chip analogue boundary scan proposals of
IEEE standard 1149.4
Notice that the latter two switches enable any of the analogue I/Os to be
connected to either or both of the test buses, thus providing full flexibility to
access any or all of the I/Os and hence interconnections to the IC.
The analogue bus interface circuit ABIC is also a switching matrix similar
to the ABSC circuit. As shown in Figure 8.266, it has provision for switching
each internal analogue test bus to either or both the test bus I/Os, together
with switches to connect the two d.c. voltage inputs to either or both test bus
lines. If the particular IC is not being tested, then the I/Os ATI and AT2 of
ABIC can be directly connected by switches S3 and S8 or S4 and S7, with the
switches SI, S2, S5 and S6 in the ABSC circuits being open. There may also
be provision in both the ABICs and ABSCs for:
Mixed analogue/digital system test 463
I 1
+v ;
core S1
(analogue}
macro A primary
I/O
AT1
AT 2
+V G AT1 AT2
+V G AT1 AT2
t t
r i
+V i
• i 1
G . i i
i
• «; \ 'S5 \ i
AT1
i ' i u AT 2
i
'S3 J 'S4
i / 'S7 / 'S8
i
i i
i •
(i) generating specific values of +V and G within the cells if required for
special circuit applications, for example if specific threshold voltages
are required;
(ii) the provision of an operational amplifier comparator circuit within the
cells to allow monitoring of actual voltage responses during test.
We will not pursue these possibilities here, but instead will review the facilities
which the switches provide in test mode.
464 VLSI testing: digital and mixed analogue/digital techniques
Table 8.1 The sxuitch permutations with the control structure shown in Figure 8.27
Mode input Latched control data Resultant state of Resultant connections
switches
(CZ = closed,
C) = open)
Q4 Qs (
36 SI S2 S3 S4 S5
0 0 0 0 c O O O O normal mode*
0 0 0 1 c O O O C core, I/O, AT2
0 0 1 0 c O O O O normal mode
0 0 1 1 c O O O C core, I/O, AT2
0 1 0 0 c 0 O C O core, I/O, ATI
0 1 0 1 c O O C C core, I/O, AT I, AT2
0 1 1 0 c O O O O normal mode
0 1 1 1 c O O O C core, I/O, AT2
1 0 0 0 0 O O O O fully isolated
1 0 0 1 0 O O O C I/O.AT2
1 0 1 0 0 C O O O I/O, +V
1 0 1 1 0 C O O C I/O,+V,AT2
1 1 0 0 0 O O C O I/O, ATI
1 1 0 1 0 O O C C I/O,ATI,AT2,
1 1 1 0 0 O C O O I/QG
1 1 1 1 0 O C O C I/QG.AT2
*normal mode = core to I/O only
+V G AT1 AT2
Figure 8.27 A proposed control structure for the analogue boundary scan cells using
the normal TAP controller, cf. the digital boundary scan control shown
in Figure 5.20b
being isolated from this test path by the mode input signal being held at
logic 0. The appropriate control data for this series test would need to be
determined and then scanned in under the control of the individual TAP
controllers.
To test for the correct presence and value of interconnect components, the
operational amplifier technique shown in Figure 8.24 can be employed, but
a simpler alternative may be used which avoids having to feed any operational
amplifier connections through the various boundary scan switches, the losses
through which may have to be taken into account if accurate interconnect
measurements are required. The test circuit for a single series interconnect
466 VLSI testing: digital and mixed analogue/digital techniques
impedance is shown in Figure 8.28a. A known constant current is fed into one
side of the interconnect via, say, ATI, the other end being connected to G
(zero volts). The voltage at the source end is monitored via AT2, which
knowing the constant current is a measure of the component impedance.
Provided that the series impedance of the series switch S5 is negligible in
comparison with the high impedance of the voltmeter, as will usually be the
case, then the meter reading will be an accurate measure of the input voltage
to Zp but there will be an error in this impedance due to the small but finite
impedance of the switch S3. If a more accurate measurement of Zris required
then a difference voltage measurement as shown in Figure 8.28b can be
undertaken. Should the AT2 buses of IC1 and IC2 not be separate, then two
individual voltage readings, the first from IC1 with S5 of IC2 open and the
second from IC2 with S5 of IC1 open, will be necessary, and the difference
between them then calculated.
More complex interconnection assemblies such as two-port networks
involving two or more analogue boundary scan circuits on each IC can be
tested by appropriate multiple measurements, from which branch currents
and branch impedances may be calculated. Simple network theory will be
involved in these calculations, but the flexibility of the switches in the
boundary cells should ensure that appropriate measurements are always
possible.
However, although the first objective of standard 1149.4 was to formulate a
means for testing the interconnect between analogue macros in a mixed-
signal VLSI IC, there is also the desirability of being able to scan in test data
for testing the on-chip analogue macros themselves. This must take as its
starting point that the I/Os of the analogue macros are accessible or made
accessible for such test purposes, and not completely buried within
surrounding circuitry. This partitioning will generally be present in the
majority of mixed-signal circuits, or can be arranged as a DFT requirement
during the design phase.
A number of possible structures have been discussed in test conferences,
but a final standard has yet to be announced. All proposals use the ATI and
AT2 bus lines to feed in analogue test signals and feed out analogue response
data, but further switching beyond that contained in the boundary scan cells
clearly becomes necessary in order to access all the potentially required
internal macro nodes.
One outline proposal which indicates the general test strategy is shown in
Figure 8.29a. Each analogue macro can be isolated from its following
neighbour, and test signals fed into it via ATI and output signals fed out via
AT2. To separate the individual internal macros, a further design of control
cell is necessary to control the switches SI, S2 and S3; the first and the last
analogue macros in a series cascade can use the normal ABSC cells for
analogue input and output data, respectively.
Mixed analogue/digital system test 467
IC1 IC2
I interconnect I
f S1 open | j component jj j S1 open |
[~1
I1 I/O , I/O•i
2/
S4 S5 S3
closed closed closed
—G
! ABSC
•J i ABSCJ
AT1 AT2
- high impedance
IC1 IC2
S1 open S1 open !
—o/o-
A
S4 S5 S5 S3
closed closed closed closed
I ABSC L ABSCJ
AT1 AT2 AT2
high impedance
diffence
voltage measurement
JI
I/O •l/O
S1 S1
.1. L
ICC H ice
d.c. control and
scan path from ABSC = see Figure 8.26 a
TAP controller ICC = see below
-TDO
Figure 8.29 A strategy for scan test of the internal analogue macros
a general concept to allow injection of analogue test signals into a
macro via ATI bus and extraction of response data via AT2 bus
b possible circuit for the internal control cells (ICCs)
A possible circuit for the internal control cells (ICCs) is given in Figure
8.296. The mode input is not essential and may be deleted to simplify the
circuit. In comparison with the six latches in the ABSC cell, four latches are
Mixed analogue/digital system test 469
Table 8.2 The switch permutations with the control structure shown in Figure 8.29b
Mode input Latched control data Resultant state of Resultant connections
switches
(C = closed,
O = open)
Q3 SI S2 S3
0 0 0 C O O normal mode
0 0 i C O O normal mode
0 I 0 C O O normal mode
0 i i C O O normal mode
1 0 0 C O O normal mode
I 0 i C O C data t o AT2
1 I 0 O C O data from AT 1
1 1 i O O O fully isolated *
*Not useful
The final publication of IEEE standard 1149.4 will include the recom-
mendation of the working party considering all these aspects. Differential
I/Os requiring four analogue buses ATI to AT4 may also be included as a
possible means to improve the analogue testing performance, but this again
will impact upon the silicon area requirements. However, the basic concepts
introduced here should be present in the final documentation, although the
circuits which have been shown here may not be exactly as finally
documented.
Further information on all the developments and discussions to date may
be found in conference proceedings and other publications32'71"78. Circuit
details for what has been termed pin electronics, that is the many methods of
measurement of component and interconnect impedance, including the
essential guarding principles to ensure that only the one component or path
of interest is being measured, may be found in Bateson70.
What is clear from all these considerations is that there will never be one best
solution covering all the permutations of analogue and digital macros that
can be present in real-life systems. The possible test options must be
considered early in the design cycle so as to determine as far as possible the
costs and benefits of the DFT choices in the final design.
External analogue and increasingly DSP instrumentation provides the
most ready means of testing all the detailed parameters of an analogue core
or individual analogue macros. Modern instruments linked by the IEEE
standard 488.1/1978 instrumentation bus (otherwise known as the general-
purpose instrumentation bus, GPIB, or the Hewlett-Packard instrumentation
bus, HPIB) will be prominent in many current test resources79"85, providing
the vendor or OEM with fully flexible means of test for all the analogue
requirements. However, when detailed parametric testing is not required
then on-chip or custom test resources may become appropriate.
The IEEE standard 1149.1 covering boundary scan for digital circuits is
now well established, providing a means for the interconnection testing and
scan testing of digital macros. The publication of standard 1149.4 will
establish the corresponding standard for the analogue macros, but as we have
seen may involve a considerable silicon area penalty to implement in an IC
design. However, if it does become accepted in its final form, then the pros
and cons between BIST and scan test for mixed-signal circuits may become
more readily quantifiable.
Finally, in all the preceeding technical discussions on test, no mention has
been made of the specific testing requirements for military, avionic or other
specialised application areas of microelectronics. In general these will be very
heavily concerned with environmental and life testing rather than just one-off
tests for functional faults with an immediate pass/fail result. There are
procedures which the OEM must follow for specific customers, following for
example the various USA military specifications and standards such as MIL-
STD-883D and others86"89. This is beyond our concern in this text, but is an
essential part of the mechanical, electrical and electronic system test for many
specialist areas.
8.7 References
1 SOIN, R., MALOBERTI, E, and FRANCA, J. (Eds.): 'Analogue/digital ASICs:
circuit techniques, design tools and applications' (Peter Peregrinus, 1991)
2 TRONTELJ, J., TRONTELJ, L., and SHENTON, G.: 'Analog digital ASIC design'
(McGraw-Hill, 1989)
3 HURST, S. L.: 'VLSI custom microelectronics: digital, analog and mixed signal*
(Marcel-Dekker, 1998)
4 PLETERSEK, T, TRONTELJ, J., TRONTELJ, L., JONES, L, and SHENTON, G.:
'High-performance designs with CMOS analogue standard cells', IEEE]. Solid-State
Circuits, 1986, SC-21, pp. 215-222
5 DEDIC, I.J., KING, M. J., VOGT, A.W., and MALLISON, N.: 'High-performance
converters on CMOS',/ Semicust ICs, 1989, 7, September, pp. 40-44
472 VLSI testing: digital and mixed analogue/digital techniques
6 SPARKES, R.G., and GROSS, W.: 'Recent developments and trends in bipolar
analog arrays', Proc. IEEE, 1987, 75, pp. 807-815
7 'Quickchip 2 designers' guide'. Tektronix, Inc., OR
8 'Semicustom linear array brochure'. AT 8c T Technologies, PA
9 'RLA and RFA series linear array design manual'. Raytheon Corp,, CA
10 HORNUNG, K, BONNEAU, M., and WAYMEL, B.: 'A versitile VLSI design system
for combining gate array and standard circuits on the same chip'. Proceedings of
IEEE conference on Custom IC, 1987, pp. 245-247
11 'Mixed signal ASIC handbook'. GEC Plessey Semiconductors, UK
12 TORMEY, X: 'Mixed-signal simulation eases system integration', Comput. Des.,
1989,28 (9), pp. 103-106
13 MEYER, E.: 'ASIC users shift analog on-chip', Comput. Des., 1990, 29 (5), pp. 67-72
14 LAMBINET, P.: 'Trends in mixed-signal ASIC partitioning', Electron. Prod. Des.,
1993, 14 (10), pp. 37-41
15 FAWCETT, B.K.: 'Reconfigurable FPGAs in test equipment', Electron. Prod. Des.,
1996, 17 (2), pp. 20-26
16 SHEPHERD, PR.: 'Integrated circuit design, fabrication and test' (Macmillan,
1996)
17 ARMSTRONG, J.R., and GRAY, F.G.: 'Structured logic design with VHDL'
(Prentice Hall, 1993)
18 GU, R.X., SHARAF, K.M., and ELMASRY, M.I.: 'High-performance digital VLSI
design' (Kluwer, 1996)
19 GRAY, P., and MEYER, R.: 'Analysis and design of analog integrated circuits*
(Wiley, 1993)
20 GOYAL, R.: 'High-frequency analog integrated circuit design' (Wiley, 1995)
21 VERGHESE, N.K., SCHMERBECK, T.J., and ALLSTOT, D.J.: 'Simulation
techniques and solutions for mixed-signal coupling in integrated circuits' (Kluwer,
1995)
22 PUCKNELL, D.A., and ESHRAGHIAN, K: 'Basic VLSI design: systems and
circuits' ( Prentice Hall, 1988)
23 GEIGER, R.L., ALLEN, RE., and STRADER, N.R.: 'VLSI design techniques for
analog and digital circuits' (McGraw-Hill, 1990)
24 ISMAIL, M., and FRANCA, J. (Eds.): 'Introduction to analog VLSI design'
(Kluwer, 1990)
25 BEENKER, F.P.M., and EERDEWICK, KJ.E.: 'Macro testing: unifying IC and board
test'. Proceedings of IEEE conference on Design and test, 1986, pp. 26-32
26 PRILIK, R., VAN HORN, J., and LEET, D.: The loophole in logic test:
mixed-signal ASICs'. Proceedings of IEEE conference on Custom integrated, 1988,
pp. 1-5
27 O'LEARY, P.: 'Practical aspects of mixed analogue and digital design', in [1], pp.
213-238
28 SHEPHERD, PR.: 'Testing mixed analogue and digital circuits', in [1], pp.
334-359
29 FASSANG, P.P., MULLINGS, D., and WONG, X: 'Design for testability for mixed
analog/digital ASICs'. Proceedings of IEEE conference on Custom integrated, 1988,
pp. 16.5.1-16.5.4
30 WAGNER, K.D., and WILLIAMS, T.W.: 'Design for testability of mixed signal
integrated circuits'. Proceedings of IEEE international conference on Test, 1988,
pp. 823-828
31 DUHAMEL, P., and RAULT, J.-C: 'Automatic test generation techniques for
analog circuits and systems: a review', IEEE Trans., 1979, CAS-26, pp. 411-440
32 HARVEY, R.J.A., BRATT, A.H., and DOREY, A.P.: 'A review of testing methods for
mixed-signal ICs', Microelectronics J., 1993, 24, pp. 663-674
Mixed analogue/digital system test 473
33 BUTLER, I.C., TAYLOR, D., and PRITCHARD, XL: The effect of response
quantisation on the accuracy of transient response testing', IEE Proc, Circuits
Devices Syst, 1995, 142, pp. 334-338
34 TAYLOR, D., EVANS, RS.A., and PRITCHARD, T.I. 'Testing of mixed-signal
systems using dynamic stimuli', Electron. Lett., 1993, 29, pp. 811-813
35 BINNS, R.J., TAYLOR, D., and PRITCHARD, XL: 'Testing linear macros in mixed-
signal systems using transient response testing and dynamic supply current
monitoring', Electron. Lett., 1994, 30, pp. 1216-1217
36 ECKERSALL, KR.,TALYOR, G.E., BANNISTER, B.R., and BELL, I.M.: 'Testing an
analogue circuit using a complimentary signal set'. Proceedings of IEE
colloquium on Testing mixed signal circuits, London, May 1992
37 SAVIR, J., and BARDELL, P.H.: 'Built-in self test: milestones and challenges', VLSI
Des., 1993, 1 (1), pp. 23-44
38 Test synthesis seminar, digest of papers, IEEE Computer Society International Test
Conference, Altoona, PA, 1994
39 WEY, C.-L., JIANG, B.L., and WIERZBA, G.M.: 'Built-in self test for analog
circuits'. Proceedings of IEEE 31st midwest symposium on Circuits and systems,
1988, pp. 862-865
40 WEY, C.-L., JIANG, B.L., and WIERZBA, G.M.: 'Built-in self test (BIST) design of
large-scale analogue circuit networks'. Proceedings of IEEE international
symposium on Circuits and systems, 1989, pp. 2048-2051
41 WEY, C.-L.: 'Built-in self test (BIST) structure for analog circuit fault diagnosis',
IEEE Trans., 1990, IM-39, pp. 517-521
42 OHLETZ, M.J.: 'Hybrid built-in self test (HBIST) for analogue/digital integrated
circuits'. Proceedings of European conference on Test, 1991, pp. 307-315
43 OHARA, H., NGO, H.X., ARMSTRONG, M.J., RAHIM, C.F., and GRAY, P.R.: 'A
CMOS programmable self-calibrating 13-bit channel data acquisition peripheral',
IEEEJ. Solid-State Circuits, 1987, SC-22, pp. 930-938
44 ROBERTS, G.W., and LU, A.K.: 'Analog signal generation for built-in self test of
mixed-signal integrated circuits' (Kluwer, 1995)
45 MAHONEY, M.: 'DSP-based testing of analog and mixed-signal circuits' (IEEE
Computer Society Press, 1987)
46 TONER, M., and ROBERTS, G.W.: 'A BIST scheme for a SNR test of a sigma-delta
ADC. Proceedings of IEEE international conference on Test, 1993, pp. 805-814
47 BURST, L., and TSEY, M.-S.: 'Mixing signals and voltages on a chip', IEEE Spectr.,
1993, 30, pp. 40-43
48 LU, A.K., ROBERTS, G.W., and JOHNS, D.: 'A high quality analog oscillator using
oversampling D/A conversion techniques', IEEE Trans., 1994, CAS-41/2, pp.
437-444
49 TIERNEY, J., RADAR, CM., and GOLD, B.: 'A digital frequency synthesiser', IEEE
Trans., 1971, AU-19, pp. 48-57
50 'Direct digital synthesiser handbook'. Stanford Telecom, Inc., CA, 1990
51 NEW, B.: 'Complex digital waveform generation'. Application note XAPP.008.002,
Xilinx, Inc. Programmable Logic Data Book, 1994
52 MANASSEWITSCH, V.: 'Frequency synthesizers, theory and design' (Wiley,
1989)
53 NICHOLAS, H.T., and SAMUELI, H.: 'A 150 MHz direct digital frequency
synthesiser in 1.25 Jim CMOS with -90 dB spurious performance', IEEEJ. Solid-
State Circuits, 1991, 26, pp. 1959-1969
54 'New releases data book, vol. IV'. Maxim Integrated Products, CA, 1995
55 OPPENHEIM, A.V., and SCHAFER, R.W.: 'Discrete-time signal processing'
(Prentice Hall, 1989)
56 MITRA, S.K., and KAISER, J.F.: 'Handbook for digital signal processing' (Wiley,
1993)
474 VLSI testing: digital and mixed analogue/digital techniques
9.1 Introduction
There is a considerable amount of published information concerning the
relative design and fabrication costs of the competing methods of producing
microelectronic circuits for OEM use, the broad choice being between
standard off-the-shelf parts and some form of customised IC. However, there
is less information available concerning the financial pros and cons of test,
and particularly the design for testability (DFT) methodologies such as
considered in previous chapters of this text. We have in these previous pages
raised the question of the silicon area penalties which can be involved, see for
example Figures 5.11 and 5.38, but so far we have not specifically looked at
actual or relative financial costs.
We will, therefore, in this final chapter attempt to bring into the picture
these financial matters. We will not be able to cite any absolute costs in $, $k
or $M, since such detail is continually changing and in most cases depends
upon the internal financial cost structures of individual suppliers, vendors
and OEMs; however, we can consider the many factors that may be involved,
together with the possible equations and financial models which may help in
quantifying the cost of a product involving VLSI technology.
The overall importance of costing does not need emphasising, since it is
the responsibility of every vendor and OEM not to make a financial loss across
their range of products. Microelectronic costs, however, may be difficult to
assess, and may be based upon previous experience rather than on precise
financial data relating to a new product. Within the theme of this text, namely
testing, it would clearly be cheaper for an IC vendor not to test production
wafers and finished ICs, and for an OEM not to test a final product; on the
other hand it is clearly equally unacceptable to subject every manufactured
product to lengthy exhaustive life tests. This is the dilemma facing every
vendor, what and how much testing is optimum for the particular product; as
broadly indicated in Figure 9.1, too little and the end user will be upset and
478 VLSI testing: digital and mixed analogue/digital techniques
total
production cost
customer
satisfaction
amount of
testing
custom will be lost; too much and risk being uncompetitive in the market
place. Testing costs have, however, been reported as being as high as 30 to
40 % of VLSI production costs, although no detailed breakdown of this figure
is known.
arise, and others, such as training, may not be considered by some companies
to be NRE expenditure directly costed to a particular new product.
Nevertheless, they are costs which must be considered somewhere within the
company finances. Note that external PLD design costs should not arise,
since the whole objective of PLDs is to enable the OEM to undertake all
design activities in house so as to give personal control over the design and
prototype stages.
Table 9.1 The IC NRE costs which may be incurred by the OEM with the three main
categories of design styles. The individual item costs may vary greatly
between the three styles
Design style
NRE item standard
off-the-shelf IC PLD custom IC
(9.1)
Clearly, if Ex is large and/or N is small, then the IC design cost will have a
profound effect on per-unit cost, and the OEM should consider a design style
which reduces this factor as much as possible. On the other hand, NRE costs
become much less significant for large volume requirements, since £j + E^
can be amortised over a much larger production N9 with A + B now becoming
the significant parameters. (An IC vendor's sale of standard parts is the
extreme example of this where, for example, the original design costs and
also VLSI tester costs of $M may be spread over millions of production
circuits, adding only a very small sum to the per-unit selling cost.)
In theory this simple equation, eqn. 9.1, can indicate which is the most
economical design style for a given product and production quantity; the
often insuperable difficulty, however, is to obtain or estimate accurate
numbers to put into the equation for the alternative design styles, which may
involve different potential IC vendors, different external design houses and
other aspects. Overall the best economic decision will generally be as shown
in Figure 6.18, but the precise break-even points between the categories will
be almost impossible to quantify. Other nonfinancial matters such as long-
term availability, commercial product security, company image, etc.1"3 can
also influence a final choice.
To fill out the main parameters involved in eqn. 9.1, more detailed
tabulations such as shown in Table 9.2 may be compiled. The values given in
this Table are illustrative only, and must not be taken as accurate or up to
date, but they serve to illustrate the broad financial considerations which an
OEM may address. The cost of DFT and IC and system test, which we will
consider in greater detail in the following pages, will be noted as being but a
part of the overall picture; indeed, DFT and test strategies may be more
important for the intangible factors such as reliability and customer
satisfaction than for purely financial reasons.
The figures given in Table 9.2 should be appreciated as being simplistic,
not involving all the factors of a real-life situation. In particular, the per-unit
cost of custom ICs is highly dependent upon the production quantities
required, and hence the per-unit production cost is nonlinearly related to N.
None the less, if the OEM can obtain estimates for all NRE and per-unit
component costs, then effective forecasting and comparison of per-unit
system costs may be possible. Very detailed cost analyses of custom circuits
have been published, particularly by Fey and Paraskevopoulos4"7, involving
gate counts and production quantities but not specifically any DFT or other
test strategy, but there remains the problem of finding accurate data to enter
into all these financial equations.
New in-house CAD costs and designer learning (retraining) costs have not
been built into Table 9.2. Hardware and software CAD costs may be very
The economics of test and final overall summary 481
Table 9.2 Example OEM costs for a small digital product, ignoring any capital
equipment costs for new in-house CAD resources, etc. Design style 1 = using
off-the-shelf ICs, 2 = using PLDs, 3 - full-custom, giving maximum per-
formance and minimum silicon area, 4 = standard-cell IC, 5 = gate-array
IC. All costs in $k
Nonrecurring OEM costs Design style
item: 1 2 3 4 5
(i) OEM circuit design + PCB and 20 15 10 10 10
remaining hardware design costs
(ii) Custom or other outside design - - 150 20 5
costs to the OEM
(iii) OEM and end-user documentation 4 3 2 2 2
Total NRE Costs 24 18 162 32 27
appreciable, and also have the unfortunate feature that systems tend to
become obsolete within possibly three years of purchase. This is particularly
so with mixed-signal CAD software, which is still in the throes of rapid
development and obsolescence. CAD resources for programmable logic
devices are perhaps the most easy to cost, since complete hardware/software
packages are commercially available from vendors; a problem that may arise,
however, is that the CAD resource for the programmable products of vendor
x may not be compatable with the products of vendor y, and therefore more
than one software package may become necessary if more than one type of
PLD is adopted. Hardware and software maintenance will also add at least ten
per cent of the capital cost of the CAD resources for each year of use.
A broad generalisation of CAD costs with which the OEM may be involved
is shown in Figure 9.2, to which software costs and hardware and software
maintenance must be added. In total at least twice the initial hardware costs
may be involved in establishing and running a particular in-house CAD
resource, the cost of which has to be amortised over production sales in, say,
three years' activity.
Design time, correction time and learning time are also factors which the
OEM has to consider. Figure 9.3 illustrates the time factors which are involved
in the design of systems using differing microelectronic design styles, which
must translate in some complex way into financial considerations. Notice also
482 VLSI testing: digital and mixed analogue/digital techniques
mainframe resources
Figure 9.2 A general picture of CAD hardware costs to which software costs must be
added. The computing power of newer hardware continually increases but
overall costs remain very roughly constant
that the more sophisticated the microelectronic content, for example hand-
crafted full-custom ICs, then in general the greater risk of requiring a design
iteration at the prototype stage, and the greater the cost and time then
necessary to implement this iteration. On the other hand, for simple
applications, the adoption of PLDs allows the quickest and cheapest design
iteration, with no external agency being involved outside the OEM's
organisation.
Learning time (or retraining time) for OEM designers encountering a new
CAD design environment for the first time is a further factor which is difficult
to quantify financially, and is generally lost in company overheads. In broad
terms it takes perhaps two years for a new OEM designer to become
conversant and up to speed with CAD tools involving IC design activities, of
which time a possible 25 % is spent in nonprofitable activities. With a salary
plus company overhead of, say, $150k per designer per annum, this implies a
company learning cost of around $75k per new designer. For new/updated
CAD tools the subsequent learning times will be considerably less, costing,
say, $10-$15k per designer per new system.
These design iteration times and learning/re training times have a further
crucial effect on final market sales. Most microelectronic-based products have
a sales life of only about two to three years at the most before being
superseded by improved or more innovative products. Therefore any delay in
availability involves the risk of losing a considerable share of the market; a six-
The economics of test and final overall summary 483
design time
1.0- •
full custom
standard cells
gate arrays
standard parts
PLDs
risk
factor
Figure 9.3 Relative comparison of design and correction times with differing design
styles. Exact quantification is product, company and vendor dependent
a relative design to prototype times, taking off the shelf standard parts as
the norm
b similary, relative risk and correction times
month unforeseen delay in production and sales has been estimated to cost
at least 30 % loss in total sales of a given product design. Figure 9.4 shows the
usual representation of a microelectronic product life cycle and profit
revenue; the general effect of being late to market will leave the right-hand
part of this picture relatively unchanged, but the ramp up to maturity will be
depressed thus making total sales and total profits corresponding smaller 1>8.
These interlocking financial factors may be found more fully discussed in
Reference 1. Further general discussions on cost may also be found in
Needham8 but without a great deal of quantification; PCB assemblies will be
484 VLSI testing: digital and mixed analogue/digital techniques
decline/
obsolescence
years
Figure 9.4 Typical product life cycle and company profits for a microelectronic-based
product or system, with obsolescence rapidly approaching after two to three
years * life
found discussed in Bennetts9 and in Bateson10; other financial items will also
be found in several of the individual author chapters in Di Giacomo11.
correct the fault. The exact ratios of 1:10:100:1000 are, perhaps, over-
simplistic, but on the other hand a recent study which suggested ratios of
about 10:1:10:100, indicating that board-level testing is the least costly test
level, may not be universally valid15.
If we concentrate our considerations here primarily on VLSI testing costs,
since complete system costs are very individualistic, clearly the more
exhaustive the IC testing the fewer the problems that should be encountered
in product assembly and later testing. However, if no DFT provision is built
into the IC design, then exhaustive testing can become prohibitively time
consuming and therefore expensive, but if DFT is built in then there will be
the cost penalties of increased chip area and potentially lower yield to be
considered. These factors are broadly illustrated by Figure 9.5, which
indicates that there must be some optimum test overhead for a given VLSI
design. Notice that to build in increased controllability and observability or
BIST involves not only increased silicon area but also more IC pins, and
therefore a higher package cost to add to the overall picture.
Because of the difficulties of accurately costing any form of DFT, it has
been argued that it is not economically viable to include any design for
testability features in a new chip design. Also, until recently the chip design
time was unduly and indeterminately influenced by attempting to build in
such features, resulting in delayed time to market and loss of total sales (see
Figure 9.4), but this has to a large degree been overcome by the increasing
availablity of relevant CAD software which supports DFT. There was, for
example, a strong post-experience reaction to BILBO by some IC vendors in
the late 1980s, that it involved an unnecessary high expenditure and also
some loss of state of the art circuit performance. This reaction was to some
degree fostered by the increasing yield and decreasing defect density of
production wafers, which to some extent made the comprehensive BILBO
test strategy not as necessary as previously anticipated. However, with the
continuing increase in size and complexity of VLSI designs, and in spite of
continuing improvements in yield, it is now accepted that some DFT strategy
must be incorporated in complex chips. This acceptance is reinforced by:
(i) increasing knowledge of DFT theory and practice by circuit designers
and the availability of relevant CAD support;
(ii) increasing demand by OEM system designers for boundary scan and
other means to aid their PCB and system testing difficulties;
(iii) the publication of IEEE standard 1149.1 for digital scan test and the
(forthcoming) standard 1149.4 for analogue scan test, which establish
agreed international standards for all circuit and system designs;
(iv) the increased acceptance by all IC vendors that they must accept some
responsibility for easing the use and testing of their products by their
customers after the products have left their hands—lifetime costs are as
much a part of their professional responsibility as that of the OEM and
end-user.
486 VLSI testing: digital and mixed analogue/digital techniques
costs
processing costs
packaging costs
additional
- silicon area overhead
for test purposes
testing costs
no special
test provision
Figure 9.5 The general relationships between per-unit VLSI IC costs and the amount
of built-in DFT to ease the testing problem
The latter is expressed very aptly by Turino16, who states that '... what
becomes clear is that trade-offs at chip level are too myopic. It is thus
important to consider where the chip resides in the food chain of electronic
product and use'. Further introductory comments, including the terminology
'over the wall mentality' to highlight the dangers of being too parochial, may
be found in Dislis et a/.17.
A flow diagram which may form the basis of cost modelling such as will be
discussed in the following section is shown in Figure 9.6. This diagram implies
that to incorporate some form of DFT increases the design time, but reduces
the test time and, equally important, possibly the testing hardware. This will
generally be the case, particularly if there is a learning curve situation where
the chip designer has to learn to use new CAD support or other DFT software.
The very broad financial balance sheet with the availability of increasingly
relevant CAD software support is therefore as follows:
(i) For:
• insertion of scan path, boundary scan, etc. into the chip design can
be automatic;
The economics of test andfinaloverall summary 487
VLSI specification
architectural level
a
no / " \ yes
vacceptable'^
costs and
times acceptable to
marketing manager? complete the design
and manufacture
Figure 9.6 Flow diagram shoiving the basis upon xuhich quantitative cost estimates
may be made. Qualitative considerations such as customer acceptance etc.
are, however, additional aspects which may have to be considered
It may be noted that in this final cited reference an essential element is stated
to be the provision of standard 1149.1 boundary scan on all chips, and also
known-good chips before assembly wherever possible, thus allowing the
boundary scan to be an effective interconnection test and repair means for
the final product.
The economics of test and final overall summary 489
9A.I CustomICs
The earliest economic models for integrated circuit costs were largely
concerned with custom ICs, where it was desirable to show how the cost of,
say, a gate-array design compared with other possible design methods. No
detailed consideration of testing costs was done in these early financial
equations, and certainly very little consideration of the possible minimisation
of such costs in the final IC design. The choice of design style from a broad
technical point of view has been published1"3, but no detailed financial
models or spreadsheets were built into these techno-economic discussions
and tabulations.
The earliest studies involving the cost of test were concerned with purely
combinational networks and the expense of automatic test pattern
generation. The work of Goel22 was one of the first studies of ATPG costs, and
involved investigations into the relationship between the number of test
vectors and the resultant fault coverage, and hence cost versus fault coverage.
No built-in test or scan test was involved in these early considerations—they
may therefore be regarded as the costs of not considering any form of DFT.
Varma et at?2 built upon this work, and showed the relative advantages of
DFT methods where final system tests and field tests are concerned, but again
combinational networks only were generally considered. The very extensive
publications of Fey and Paraskevopoulos4"7 were entirely based on gate
count, with gates per IC being a common parameter in their financial
developments, and therefore their work could be considererd to be relevant
for comparing just the silicon cost of an IC with and without DFT if detailed
gate counts are evaluated. The acual cost of test remained outside these
figures.
A later work which produced a cost model and supporting software for
costing different custom IC design strategies was that of Edward33, but again
no direct means of comparison of a design with and without DFT was built in;
each possibility would have to be separately evaluated, effectively at gate level
and without any detailed time to test and cost to test parameters.
One of the early publications which specifically incorporated a testing cost
parameter was that of Dislis et al?A. Here three different sizes of gate array
were considered with and without DFT in each of them. Scan test was
assumed to require between 5 % and 15 % silicon area on a chip, and self test
between 20 % and 30 %, costs being normalised to the nonDFT case. Figure
9.7 shows the published results for a 5000-gate gate array with production
quantities between Ik and 1000k per circuit. An interesting result of these
estimations indicated that when production quantities were large, then the
increased cost of the extra silicon with DFT outweighed other factors such as
easier test, the crossover point being in the tens of thousands of circuits in the
case of 5000-gate and 10 000-gate ICs.
490 VLSI testing: digital and mixed analogue/digital techniques
normalised cost
1.6
PUCIC = p L + M (9.2)
IC
[N N)
which is similar to the per-unit system cost given in eqn. 9.1.
The capital equipment costs involved in the above computations will be an
appreciable part of the total cost when added to a specific design and
production activity. The CAD hardware and software, the production
equipment and all the required test resources have to be covered, although
it may be company policy to sum the total running, maintenance and
depreciation costs over a given period, together with all other in-house
overheads, and allocate an appropriate percentage of this grand total to
individual designs. Indeed, it may be possible to derive the approximate cost
of a new circuit by considering all the company costs, labour, manufacturing
and test, and arrive at an estimated per-unit cost as follows:
• total company salary costs per year, $C5;
• total capital equipment expenditure per year, including maintenance,
repair and depreciation, $Cp
• total buildings, maintenance, marketing and all other company costs per
year, $CM;
• estimated percentage of the total company manpower expended in the
design and production of Nunits over x months, m %;
• estimated percentage of the total company manufacturing resources used
in the production of N units over y months, e %;
• company final profit margin, k %;
Therefore, the estimated per-unit production cost is:
PUCIC=- •
[l2
—
(9.3)
100
and per-unit selling cost to an OEM is this estimate x (1 + k). The accuracy of
this rather coarse estimate depends heavily upon the estimated design and
production times x and y, with DFT considerations impacting strongly upon
both of these parameters. We will not pursue this form of overall costing any
further here.
494 VLSI testing: digital and mixed analogue/digital techniques
available
circuit partitioning existing macro
designs
iterate for
different DFT or no DFT?
DFT choices
gate-level
breakdown
estimated: no. of gates, no. of I/Os,
no. of complex macros; placement and
in-house routing requirements; total chip area
design activities
empirical
multiplying any overall system complexity factor, new
factor k learning curve or unknowns?
-*-
design team labour CAD resources* liaison costs,
costs, hours x $ costs, hours use hours x $
per hour x $ per hour per hour, etc.
Figure 9.8 Expansion of the IC NRE design costs C D . Company overheads and profit
margins may be applied to the total estimated design cost, or to the final
overall design, production and test cost
Other tangible and intangible factors may also be considered, such as time
to market which may involve additional manpower and/or equipment
availability, perceived market sales, guarantees and replacement parts, and
The economics of test and final overall summary 495
N
no. of wafers required =
CHw*YPRxYPK
when YPR = probe yield, 0 < YPR < 1,
YPK = package test yield, 0 < YPK<\
per-unit manufacturing
cost, = CT/N
Figure 9.9 Expansion of the per-unit IC fabrication and testing cost. Each of the four
boxes C w , C p R , C M and C T may be further expanded to cover the several
activities and capital equipment costs involved
system specification
circuit description
kr owledge - macro
hased DFT library
data data
planning
design considerations
test strategy -« • circuit design
try another
strategy
possibly
^ — " simulate
no /
I
complete the
design and
manufacture
Figure 9.10 The general schematic of test strategy planners, exact details being
variable
(ii) Jones and Baker, 1986, who developed a knowledge-based system for
determining an optimum test strategy to improve the testability of a
design by using BIST, including chosen constraints in overheads and
test time44;
(iii) TIGER (testability insertion guidance expert) system, 1989, which was a
development of TDES using a more sophisticated partitioning and
weighting system to indicate optimality45;
(iv) Fung and Hirschhorn, 1986, who published a system called TESTPERT
which combined design and testability considerations in mainly
telecommunications circuits, choosing a possible mix of DFT
strategies46;
(v) Gebotys and Elmasry, 1988, who published a system called CATREE
which considered test cost, silicon area and circuit delay penalties as
parameters to influence the design synthesis process47;
(vi) ECOtest and ECOvbs software developments at Brunei University, UK,
of the early 1990s, which were detailed economic models for test
strategy planning including design time, test time and other possible
parameters to give an estimate of the overall finances of a new design
incorporating any chosen DFT strategy. PCBs and field maintenance
were also considered in these developments17'48'49;
(vii) Davis, 1994, who considered the economic modelling of PCB testing,
including the need for lifetime cost considerations50;
(viii) Sandborn et aL, 1994, who considered the economics of multichip
modules (MCMs) as an alternative to traditional PCB assemblies51.
Details of these research and development activities may be found in the
cited references, with further general discussions and considerations in
References 17, 21 and 36. Note two essential points in all these financial
models, namely
• there are no new or novel test strategies or concepts introduced in these
developments over and above those which have been considered in the
earlier technical chapters of this text; the principles and practice of BIST,
boundary scan, self test and other methodologies remain the structures
which are considered in all these economic models;
• the actual costs generated by cost equations, however complex, are only
as accurate as the data entered into the equations.
A company with a great deal of experience in costing new products may be
able to make reasonably accurate cost estimates, but there is always the
possibility of new unknowns, such as the learning time for new CAD, CAM or
ATE resources, which will always make forecasting an art rather than an exact
science. Therefore, most authorities at present consider that a test economics
model should be used to provide a comparison between different possible
test strategies at the initial design stage, rather than as a means to provide
The economics of test and final overall summary 499
exact design, manufacturing and test costs. The fact that an economics model
has a very large number of cost parameters does not necessarily make it more
accurate than one with fewer parameters, and possibly heightens the need for
sensitivity analysis to be applied to the cost equations52.
In all the published information so far available on test modelling and test
strategy planning, the vast majority has been concerned with digital rather
than analogue or mixed-signal circuits. A mention of the latter consideration
may be found in the publications of Ambler et al17*24, but the difficulties of
analogue testing, which as we have seen in previous chapters involves
parametric as well as functional testing, makes this a very difficult financial
area to model. In principle the test models developed for digital circuits are
applicable to analogue and mixed analogue/digital ICs, no completely new
cost principles being likely, but the precise tests and test hardware
requirements will of course be specific to this task. The advent of the
boundary scan standard IEEE standard 1149.4 will undoubtedly be reflected
in future analogue cost modelling, in exactly the same way that the digital
standard 1149.1 is already reflected in digital cost estimates.
In summary, therefore, this area of test economics and test strategy
planning is still evolving, and is becoming of increasing significance to both
IC and OEM designers. The pressures of time to market, market share and
company reputation and profitability, together with the increasing
complexity of VLSI circuits, will all impact upon the economics of both
design and test. Further financial aspects may be found discussed in
References 7, 24, 25 and 36, and the further references contained therein.
limits of bed of nails probing of the I/Os. This and the increasing use of
multichip-module assemblies are therefore driving the demand for boundary
scan as the only present practical means of providing this controllability and
observability of closely-packed I/Os.
As we have seen in the earlier chapters of this text, the testing of digital
logic networks occupied almost all the early test research and development
activities, with combinational logic networks rather than sequential networks
being the primary focus of attention. In this work, a very high concentration
on fault modelling and automatic test pattern generation was pursued, but
even so the increase in gate count per circuit has tended to outstrip the useful
capabilities of ATPG programs, necessitating unacceptably long computer
run times to achieve an acceptable fault coverage from the generated test
vectors. The stuck-at fault model, which was the basis of virtually all ATPG
programs, has proved to be an excellent model for such programs, but the
volume of computation remains the problem with the increased circuit size
and complexity. The fundamentals of this work, however, remain entirely
valid and should continue to be understood.
The testing of sequential networks has not had such a concentrated
consideration. Basically, the problem of sequential testing with its inherent
feedback and memory structures is that it is not amenable to solution by any
fault modelling unless most (or possibly all) the feedback loops are broken
and the circuit decomposed to gate level. It will be recalled that for a
sequential network with n primary inputs and 5 internal storage circuits
(latches or flip-flops), a fully-exhaustive functional test to exercise every
possible combination of the logic would require 2n+s input test vectors, an
impossibly large number to consider as n and s increase. This numbers
problem in both combinational and sequential logic has been the prime
factor in making design for testability an essential design consideration.
Testing based upon fault modelling has therefore largely been superseded
by DFT strategies, which involve some form of partitioning of a complete
circuit plus offline scan test or built-in self test, or online (concurrent) self
test, or other functional means of test. This has been the subject matter of the
central chapters of this text, and may broadly be summarised as shown in
Figure 9.11. In addition to these general DFT strategies we must add the
considerable research and development which has been undertaken on
design methods for RAM, ROM and other strongly-structured circuits, as
covered in Chapter 6.
Work in all these areas continues, with boundary scan and scan test perhaps
receiving the most attention for digital networks. A phase in the late 1980s
when, due to improved fabrication and yield, the need for built-in self test
with its silicon area penalties was questioned by several authorities, has now
largely passed, although there are still voices which do not allow complacency
in an unthinking adoption of DFT53. Whether current critisisms are meant as
a spur to improve testing strategies or whether they are a real opposition to
the excesses of DFT is difficult to judge.
The economics of test and final overall summary 501
non-
1 \
concurrent non- concurrent
concurrent (online) concurrent (online)
(offline) (offline)
rr J
strategy
ad-hoc/ pseudorandom
1
HDL test I IEEE std.
manually test vectors generation t 1149.1
generated (see Chapter 3, data
LSSD
test sets Section 3.4) partial others BILBO CALBO other on-chip
scan test stimuli
Figure 9.11 The broad summary of digital circuit testing methodologies. Note, online
self test may be regarded as a particular form ofDFT, but has been shown
here separately since it is primarily used in specific applications
T 1
Figure 1.5
Figure 9.12 The broad summary of analogue and mixed analogue/digital test
strategies. Both functional and parametric tests may be required
Table 9.3 SIA Roadmap figures for VLSI fabrication limits, illustrating decreasing
feature size and increasing maximum possible die size
Target data
min. feature max. die max. no. max. transistor
Year size size of I/Os operating density,
frequency, transistors
Jim mm 2 MHz per mm 2
1998 0.25 300 512 450 7 x I0 4
2001 0.18 360 512 600 1 x I0 5
2004 0.13 430 512 800 2 x I05
2007 0.10 520 800 1000 5 x I05
2010 0.07 630 1024 MOO 9 x I05
Table 9.4 Some suggested possible figures based upon the SIA Roadmap data
(Acknowledgement, based on References 67 and 69)
Possible no. of Possible no. of Possible Possible max.
Year transistors transistors interconnect interconnect
per I/O per die density, length per
m/cm2 per level circuit, m
It is clear that if these projected increases in VLSI capability take place, which
will m e a n the realisation of systems o n a chip a n d greatly increased m e m o r y
capacity in memory-only chips, t h e n testing a n d DFT will b e c o m e crucial to
the success of the products. It is inconceivable that n o such provisions will b e
m a d e in t h e n a m e of saving t h e silicon area overhead which may be necessary
for some a p p r o p r i a t e DFT strategy; scan test, BIST o r newer developments
must b e a n essential part of these VLSI a n d ULSI circuits, unless some
completely n e w m e t h o d of production testing n o t based u p o n directly
m o n i t o r i n g test voltages o r currents in t h e circuit u n d e r test c a n b e
developed—see Figure 9.13. In all cases, however, the ATE a n d o t h e r off-chip
test resources must also be considered—can their performance and
throughput match the requirements of these newer circuits, and overall can
the market justify the cost of not only the new fabrication lines but also these
test resources?
It may well be that (i) rate of learning, (ii) capital costs and (iii) test, will
control the growth of VLSI capability rather than the possible manufacturing
limits, although from the past history of the semiconductor industry there is
no evidence to support this view, the market to date always absorbing all
increases in IC fabrication complexity. Memory should continue to be the
The economics of test and final overall summary 505
driving force in this evolution, since the demand from product and system
designers for ever more memory will never be satisfied provided that the cost
of bytes per cent remains acceptable.
Looking, therefore, at possible developments and emphases in the near
future in testing, we may anticipate research and development activities in
the following areas, some of which will prove valuable, others not so. All will,
however, add to our knowledge and perhaps generate testing concepts not yet
envisaged.
r~
,«•§
•1 „,,, Illi
purposes ,
• newer design methodologies, such as asynchronous logic design to
improve maximum performance capabilities, intelligent sensors and
systems on a chip, all of which will impact upon methods of test. Multi-
valued logic will continue to be an academic research area, but is unlikely
to become a practical proposition unless completely new and novel means
of realisation are developed;
• increased emphasis upon delay testing (temporal behaviour) in digital
networks, which will become more critical as digital circuit speed and
density increase, interconnect delays becoming as if not more significant
than gate delays;
• formal design methodologies which give correct by design circuit
The economics of test and final overall summary 509
physical post-layout
design physical layout verification o
tools and approval *
Figure 9.14 Future integrated CAD resources to link all aspects of design, test, cost
and manufacture, using knowledge-based data to optimise design and
test strategies, with minimum human intervention except for 'what-if
and decision making
realisations, but which have not to date specifically covered any test
strategies,
and finally, and possibly the most important:
• developments in digital signal processing (DSP) strategies for analogue
and mixed analogue /digital test93'95, and also fuzzy logic expert system
tools to handle test predictions and test data94'96"98.
The biggest problem in all these disparate CAD developments may remain
the difficulties of integrating them into a single, comprehensive system, with
seamless interfaces between all the individual software packages and
hardware tools.
Therefore, in conclusion we may say with confidence that testing will
remain one of the key factors, if not the key factor, in future VLSI and ULSI
products. Design, testing, manufacture and in-service needs will become
more closely interrelated99, with the experts and researchers of each area
510 VLSI testing: digital and mixed analogue/digital techniques
9.6 References
1 HURST, S.L., 'VLSI custom microelectronics: digital, analog and mixed signal'
(Mareel-Dekker, 1998)
2 'Microelectronics matters'. The Open University, Microelectronics for Industry
PT504M, UK, 1987
3 'Microelectronic decisions'. The Open University, Microelectronics for Industry,
PT505MED, 1988
4 FEY, C.F., and PARASKEVOPOULOS, D.E.: 'Economic aspects of technology
selection: level of integration, design productivity and development schedules', in
[11], pp. 25.3-25.27
5 FEY, C.F., and PARASKEVOPOULOS, D.E.: 'A techno-economic assessment of
application-specific circuits: current status and future trends', Proc. IEEE, 1987, 75,
pp. 829-841
6 FEY, C.F., and PARASKEVOPOULOS, D.E.: 'Studies in LSI technology economics:
a comparison of product costs using MSI, gate arrays, standard cells and full
custom VLSI', IEEEJ. Solid-State Circuits, 1986, SG-21, pp. 297-303
7 PARASKEVOPOULOS, D.E., and FEY, C.F.: 'Studies in LSI technology
applications: design schedules for application-specific integrated circuits', IEEEJ.
Solid-State Circuits, 1987, SC-22, pp. 223-229
8 NEEDHAM, W.D.: 'Designer's guide to testable ASIC devices' (Van Nostrand
Reinhold, 1991)
9 BENNETTS, R.G.: 'Introduction to digital board testing' (Crane Russak, 1982)
10 BATESON, J.: 'In-circuit testing' (Van Nostrand Reinhold, 1985)
11 DI GIACOMOJ. (Ed.): 'VLSI handbook' (McGraw-Hill, 1989)
12 Special issue on VLSI Testing, VLSIDes., 1993, 1(1)
13 FUQUA, N.B.: 'Reliability engineering for electronic design' (Marcel Dekker,
1987)
14 O'CONNER, P.D.T.: 'Practical reliability engineering' (Wiley, 1991)
15 DAVIS, B.: 'Economic modeling of board test strategies'. Proceedings of 2nd
international workshop on the Economics of design and test, Austin, TX, May 1993
The economics of test and final overall summary 511
16 TURINO, J.: 'Lifetime cost implications of chip-level DFT. Digest of test synthesis
seminar, IEEE international conference on Test, 1994, pp. 2.2.1-2.2.4
17 DISLIS, C, DICK, J.H., DEAR, I.D., and AMBLER, A.P.: Test economics and
design for testability' (Ellis Horwood, 1995)
18 HACKEROTT, M.: Yield management', Eur. Semkond., 1996, 18 (4), pp. 76-80
19 TRONTELJ, J., TRONTELJ, L., and SHENTON, G.: 'Analog digital ASIC design'
(McGraw-Hill, 1989)
20 AMBLER, A.P., PARASKEVA, M., BURROWS, D.E, KNIGHT, W.L., and DEAR,
I.D.: 'Economically viable automatic insertion of self test features for custom
VLSI'. Proceedings of IEEE international conference on Test, 1986, pp. 232-243
21 DAVIS, B.: 'The economics of automatic testing' (McGraw-Hill, 1994)
22 GOEL, P.: 'Test generation costs, analysis and projections'. Proceedings of IEEE
conference on Design automation, 1980, pp. 77-84
23 HOUSTON, R.E.: 'An analysis of ATE testing costs'. Proceedings of IEEE
international conference on Test, 1983, pp. 396-411
24 AMBLER, A.P., ABADIR, M., and SASTRY, S. (Eds): 'Economics of design and test
for electronic circuits and systems' (Ellis Horwood, 1992) (extended version of
papers presented at the first international workshop on the Economics of Test,
Austin, TX, 1992)
25 TURINO, J.: 'Design to test: a definitive guide for electronic design, manufacture
and service' (Van Nostrand Reinhold, 1990)
26 DISLIS, C, DEAR, I.D., and AMBLER, A.P.: 'The economics of chip level testing
and DFT'. Digest of test synthesis seminar, IEEE international conference on Test,
1994, pp. 2.1.1-2.1.8
27 DESENA, A.: 'Solving the ASIC test dilemma', ASIC and EDA: Technologies for System
Design, 1992, 1 (1), pp. 54-57
28 RUSSELL, G., and SAYERS, I.L.: 'Advanced simulation and test methodologies for
VLSI' (Van Nostrand Reinhold, 1989)
29 BLEEKER, H., VAN DEN EIJNDEN, P., and DE JONG, E: 'Boundary-scan test: a
practical approach' (Kluwer, 1993)
30 HEGARTY, C, and MEIER, E: 'COO analysis for automatic semiconductor
assembly', supplement to 'Packaging, assembly and test', Solid State Techn. and
Euro. Semkond., 1996, 4 (3), pp. S10-S14
31 STOREY, T: 'Multichip module testing in a foundry environment, supplement to
'Packaging, assembly and test', Solid State Techn. and Euro. Semkond., 1996, 4 (3),
pp. S16-S20
32 VARMA, P., AMBLER, A.P., and BAKER, K: 'An analysis of the economics of self-
test'. Proceedings of IEEE international conference on Test, 1994, pp. 20-30
33 EDWARD, L.N.M.: 'USIC cost simulation: a new solution to an old problem',/.
Semkust. ICs, 1990, 8 (2), pp. 3-12
34 DISLIS, C, DEAR, I.D., LAU, S.C., and AMBLER, A.P.: 'Cost analysis and test
method environments'. Proceedings of IEEE international conference on Test,
1989, pp. 875-883
35 DAVIS, B.: 'The economics of design and test', in [24]
36 'Economics of electronic design, manufacture and test', special issue of/. Electron.
Test Theory and AppL, 1994, 5 (2/3), pp. 127-312
37 TRISCHLER, E.: 'Testability analysis and incomplete scan path'. Proceedings of
IEEE international conference on Computer aided design, 1983, pp. 38,39
38 PARASKEVA, M., BURROWS, D.E, and KNIGHT, D.E: *A new structure for
VLSI self-test: the structured test register (STR)', Electron. Lett, 1985, 21, pp. 856,
857
39 AGRAWAL, V.D., CHENG, K.T., JOHNSON, D.D., and LIN, T: 'A complete
solution to the partial scan problem'. Proceedings of IEEE international
conference on Test, 1987, pp. 44-51
512 VLSI testing: digital and mixed analogue/digital techniques
89 MIR, S., and COURTOIS, B.: 'Automatic test generation for maximal diagnosis
of linear analogue circuits'. Proceedings of IEEE European conference on Design
and Test, 1996, pp. 254-258
90 HUISING, J.H., VAN DE PLASSCHE, R.J., and SANSEN, W.M.C.: 'Analog circuit
design' (Kluwer, 1995)
91 MAUNDER, CM., and TULLOSS, R.E.: T h e test access port and boundary scan
architecture' (IEEE Computer Society Press, 1994)
92 RUNYON, S.: 'Tool automatically generates Idd vectors', Electron. Engin. Times,
1996, January 29, reprinted by Systems Science, Inc., CA, 1996
93 MAHONY, M.: 'DSP-based testing of analog and mixed-signal circuits' (IEEE
Computer Society Press, 1987)
94 MOHAMED, E, MARZOUKI, M., and TAUATI, M.H.: 'FLAMES: a fuzzy logic
ATMS and model-based expert system for analog diagnosis'. Proceedings of IEEE
European conference on Design and Test, 1996, pp. 259-263
95 DA SILVA, J.M., and SILVA MATOS, J.: 'Evaluation of cross-correlation for mixed
current/voltage testing of analogue and mixed-signal circuits'. Proceedings of
IEEE European conference on Design and Test, 1996, pp.264-268
96 FARES, M., and KAMINSKA, B.: 'Fuzzy optimization models for analog test
decisions', in [36], pp. 299-305
97 SCHNEIDER, M., KANDEL, A., LANGHOLZ, G., and CHEW, G.: 'Fuzzy expert
system tools' (Wiley, 1996)
98 PATYRA, M.J. (Ed.): 'Fuzzy logic: implementations and applications' (Wiley,
1996)
99 MALY, W: 'Cost of silicon from VLSI perspective'. Proceedings of IEEE
conference on Design automation, 1994, pp. 135-142
100 VAN DE GOOR, A.J.: 'Testing semiconductor memories: theory and practice'
(Wiley, 1991)
101 ABRAMOVICI, M., BREUER, M.A., and FRIEDMAN, A.D.: 'Digital systems
testing and testable design' (Computer Science Press, 1990)
102 YARMOLIK, V.N.: 'Fault diagnosis of digital circuits' (Wiley, 1990)
103 SALEH, R., JOU, R.-S., and NEWTON, A.R.: 'Mixed-mode simulation and analog
multilevel simulation' (Kluwer, 1994)
104 SCHWARZ, A.F., 'Handbook of VLSI chip design and expert systems' (Academic
Press, 1993)
105 PERRY, W: 'Effective methods for software testing' (IEEE Computer Society
Press, 1995)
106 BARDELL, P.H., McANNEY, W.H., and SAVIR, J.: 'Built-in test for VLSI:
pseudorandom techniques' (Wiley, 1987)
Appendix A
Primitive polynomials for n < 100
The following gives the primitive polynomials with the least number of terms
which may be used to generate an autonomous maximum length pseudo-
random sequence (an M-sequence) from an n-stage linear feedback shift
register (LFSR). Alternatives are possible in many cases, particularly as n
increases.
Recall from Chapter 3 that the primitive polynomial has the form:
1 + a}xl + a^x2 ... anxn
Table A1 continued
8 6 5 1 0 58 19 0
9 4 0 59 22 21 1 0
10 3 0 60 I 0
11 2 0 61 16 15 I 0
12 7 4 3 0 62 57 56 I 0
13 4 3 I 0 63 I 0
14 12 II 1 0 64 4 3 I 0
15 I 0 65 18 0
16 5 3 2 0 66 10 9 I 0
17 3 0 67 10 9 I 0
18 7 0 68 9 0
19 6 5 I 0 69 29 27 2 0
20 3 0 70 16 15 I 0
21 2 0 71 6 0
22 I 0 72 53 47 6 0
23 5 0 73 25 0
24 4 3 I 0 74 16 15 I 0
25 3 0 75 II 10 I 0
26 8 7 I 0 76 36 35 I 0
27 8 7 I 0 77 31 30 I 0
28 3 0 78 20 19 I 0
29 2 0 79 9 0
30 16 15 I 0 80 38 37 I 0
31 3 0 81 4 0
32 28 27 I 0 82 38 35 3 0
33 13 0 83 46 45 I 0
34 15 14 I 0 84 13 0
35 2 0 85 28 27 I 0
36 II 0 86 13 12 I 0
37 12 10 2 0 87 13 0
38 6 5 I 0 88 72 71 1 0
39 4 0 89 38 0
40 21 19 2 0 90 19 18 I 0
41 3 0 91 84 83 I 0
42 23 22 I 0 92 13 12 I 0
43 6 5 I 0 93 2 0
44 27 26 I 0 94 21 0
45 4 3 I 0 95 II 0
46 21 20 I 0 96 49 47 2 0
47 5 0 97 6 0
48 28 27 I 0 98 II 0
49 9 0 99 47 45 2 0
50 27 26 I 0 100 37 0
Appendix A 517
The first list of 168 primitive polynomials was published by Stahnke in 19731.
The list of n < 300 may be found in Bardell, et al.2, and for n = 301 to 500 in
Bardell3. A listing of the primitive trinomials for n< 100, that is those with
only three terms in the generating polynomial, thus requiring only one two-
input exclusive-OR gate, may be found in Bardell4. The same data as given
here may also be found in other publications. Further information may be
found in References 2, 5-7. Some comments on the above tabulation:
1. It will be seen that for n < 100 never more than four taps on the LFSR
are required to give an M-sequence. This also hold for n < 500, as shown
in Reference 3. It is not known whether this also applies for all n > 500.
Three taps are never necessary.
2. There are no trinomial polynomials for n = any power of 2 greater than
2 s . All require four feedback taps, and hence need three two-input
exclusive-OR gates in their hardware realisation.
3. The primitive polynomials listed in the above table are not the only
ones possible. See Chapter 3, page 87. A complete table for all the
irreducible primitive polynomials up to n = 34 is given in Peterson5.
4. Notice that if an r^stage maximum-length LFSR requires to be increased
to a longer M-sequence, it almost always necessary to change the taps on
the earlier stages. For example, to change from n = 1 2 t o n = 1 3 requires
the taps on stages 7, 4 and 3 to be changed to 4, 3 and 1, with the nth
stage tap of course moved to the n+lth stage. There are a few
exceptions, for example n = 2, 3 and 4, 6 and 7, 26 and 27, and others,
but in general it is not possible to modify the length of a LFSR M-
sequence without some feedback modification to the stages before the
final stage. This is in contrast to a CA maximum-length pseudorandom
sequence generator, see Section 3.4.3.2, where connections between
earlier stages of the CA generator can remain unaltered if n is
increased.
References
1 STAHNKE, W.: 'Primitive binary polynomials', Math. Compute 1973, 27, pp. 977-980
2 BARDELL, PH., McANNEY, W.H. and SAVIR, J.: 'Built-in test for VLSI: pseudo-
random techniques' (Wiley, 1987)
3 BARDELL, PH.: 'Primitive polynomials of degree 301 through 500',/. Electron. Test.,
Theory AppL, 1992, 3, pp. 175, 176
4 BARDELL, PH.: 'Design considerations for parallel pseudorandom pattern
generators', / Electron. Test., Theory AppL, 1990, 1, pp.73-87
5 PETERSON, W.W.: 'Error correcting codes' (Wiley, 1961)
6 LAWIS, T.G., and PAYNE, W.H.: 'Generalised feedback shift register pseudo
random number generator',/. ACM, 1973, 20, pp. 456-468
7 WILLETT, M.: 'Characteristics of M-sequences', Math. Comput., 1976, 30, pp. 306-
311
Appendix B
Minimum cost maximum length cellular
automata for n < 100
Table A2 continued
8 2 3 58 17 108 1 35
9 1 59 4 15 109 1 4
10 2 7 60 2 38 110 13
I1 1 61 1 10 III 27
12 3 7 62 5 112 2 5
13 5 63 31 113 1
14 1 64 3 5 114 22
15 3 65 1 115 41
16 1 15 66 1 19 116 16
17 5 67 15 117 33
18 1 17 68 8 118 30
19 3 69 1 119 1
20 2 3 70 1 37 120 3 73
21 1 10 71 17 121 45
22 5 72 6 55 122 14
23 1 73 9 123 51
24 8 12 74 1 124 21
25 9 75 7 125 13
26 1 76 2 22 126 40
27 1 20 77 3 44 127 15
28 3 78 1 41 128 1 29
29 1 79 9 129 49
30 1 80 1 71 130 1 27
31 II 81 1 131 1
32 1 15 82 1 69 132 18
33 1 83 1 133 1 4
34 1 19 84 36 134 26
35 1 85 1 46 135 1
36 6 86 1 136 1 97
37 9 87 13 137 1 132
38 7 88 5 138 28
39 1 89 1 139 II
40 8 90 1 140 8
41 1 91 15 141 25
42 19 92 3 71 142 5
43 3 93 33 143 35
44 4 26 94 42 144 13
45 9 95 1 145 1 46
46 2 10 96 6 146 1
47 13 97 1 82 147 1 136
48 15 98 8 148 8
49 1 10 99 13 149 1 108
50 II 100 1 67 150 2 102
Appendix B 521
References
1 ZHANG, S., MILLER, D.M., and MUZIO, J.C.: 'Determination of minimal cost one-
dimensional linear hybrid cellular automata', Electron. Lett, 1991, 27, pp. 1625-1627
2 SERRA, M., SLATER, T., MUZIO, J.C., and MILLER, D.M.: The analysis of one-
dimensional linear cellular automata and their aliasing properties', IEEE Trans.
1990, CAD-9, pp. 767-778
Appendix C
Fabrication and yield
In Chapter 1 it was shown that the defect level, JDL, after test was given by the
theoretical relationship
DL={1- Y{l~FQ} x 100 %
Both the 'goodness' of the fabrication process, the yield, F, and the
effectiveness of the testing procedure, FQ are involved in this result.
Modelling of the number of good die on a wafer, which is principally
dependent upon die size and process goodness and not upon circuit
complexity, has been extensively studied, since with accurate modelling the
yield, and hence the cost, of new circuits may be forecast. Also, once the
detailed modelling parameters have been determined, the quality of the
production lines can be maintained and possibly improved. However, the
available modelling theory and available parameter values usually lag the
latest production process, and as a result the yield of most production lines
has historically tended to be higher than that predicted by modelling theory.
(This is also true of reliability predictions for most products, where actual
reliability, except for catastrophic occurrences, tends to be somewhat higher
than predicted.)
Wafer yield Y, where Y has some value between 0 and 1, is normally
considered to be a function of (i) the density of defects per unit area of the
wafer, Do, (ii) the area of the die, A, and (iii) an empirical parameter, a, which
is specific to a particular fabrication process or model being used. Many
equations have been proposed for 7, all of which have a statistical basis. Many
variants try to take into account factors such as the defect density, Z)o, not
being uniform across the whole wafer, being higher towards the edges, but all
predict that the yield, F, decreases as die sizes increase.
One of the more simpler modelling equations which has been used is:
Y =\ — xl00%
524 VLSI testing: digital and mixed analogue/digital techniques
This equation does not consider any variations in the value of Do with die size,
or variations across the wafer surface. The difficulty of finding a realistic value
for Do, which will vary with process efficiency and wafer size, is the problem.
Vendors rarely release their own in-house figures of yield, so most published
data is inevitably obsolete and pessimistic. Some early 1980 published values
for Do are:
Do = 105 defects per m2 for bipolar technology
and
Do = 5 x 104 defects per m2 for MOS technology
These figures give the yield characteristics shown in Figure A.I. Other
equations may be found published1.
Although the general characteristics for wafer yield shown in Figure A.1
remain valid, the values for the yield of present day process lines are possibly
one or two orders of magnitude better than these early figures. The
100
90
80
70
\
60
\
50
\ \
40
^-MOS
N\\
\ \
CD 30 \
O
a
20 \ \
BIPOLAF
10
1 \
\
\
\
V
2500 5000 7500
x 2500 /trri x 5000 /Jim x 7500 /*m
Figure A. 1 Statistical good die yield from a 6 inch (15 cm) wafer as a function of die
size
Appendix C 525
References
1 MOORE, W.R., MALY, W., and STROJAW, A.: Yield modelling and defect tolerance
in VLSI' (Adam Hilger, 1988)
2 CHRISTOU, A.: 'Integrating reliability into microelectronic manufacturing'
(Addison-Wesley, 1988)
3 JAEGER, R.C.: 'Introduction to microelectronic fabrication' (Addison-Wesley,
1988)
4 SZE, S.M. (Ed.): 'VLSI technology' (McGraw-Hill, 1983)
5 BAKOGLU, H.B.: 'Circuits, interconnects and packaging for VLSI' (Addison-
Wesley, 1990)
6 HURST, S.L.: 'VLSI custom microelectronics: digital, analog and mixed-signal'
(Marcel-Dekker, 1998)
Index
AC faults see delay faults 90, 94, 142, 245, 260, 265
acceptance tests 1 AXE 358
accumulator syndrome testing 128, 191
ad-hoc DFT strategies 201, 371 back-to-back testing 404
algorithmic state machine (ASM) 238 backward trace 58, 61
algorithmic (or automatic) test pattern balanced structure scan test (BALLAST)
generation (ATPG) 48 226
aliasing 127, 143, 248, 257, 268 'bed-of-nails' 13, 382, 499
analogue arrays 381 Berger codes 161, 184
analogue multiplexers (AMUXs) 382, Bessel filters 400
384, 439, 454 BIC circuits 402
analogue scan path 442 bidirectional I/Os 211
analogue shift register 443, 445 binary counters 74, 346
analogue testing 9, 381, 427, 436, 450, binary decision diagrams (BDDs) 194
502 bonding failures 39
analogue-to-digital conversion 403 bonding pads 8
analogue-to-digital converters (ADCs) Boolean difference 51, 62
403, 419 boundary scan 230, 350, 457
appearance fault 300 boundary scan description language
application-specific ICs (ASICs) 2, 327 BSDL 288
{see also user-specific ICs (USICs)) bridging faults 25, 30, 33, 332, 450
application-specific standard parts built-in analogue test generators 446
(ASSPs) 429 built-in current (BIC) testing 104, 402
arithmetic logic unit (ALU) 353, 358 built-in digital circuit observer (BIDCO)
arithmetic operations 165 260
arithmetic spectral coefficients 130, 139, built-in logic block observation (BILBO)
192 241,280,447
artificial intelligence (AI) 110 Butterworth filters 400
ASICs (see also USICs) 2, 327
assembly related faults 39 CAD future 508
asynchronous operation 206 calculus of D-cubes 62
asynchronous reset 72 CAMELOT 23, 25
autocorrelation 79, 396 canonic expansion 131, 132, 133
automatic test pattern generation capital equipment 6, 10, 242, 391, 395,
(ATPG) 43,47,97, 111 481
autonomous test vector generation 74, CATA 286
528 Index
ISBN 978-0-852-96901-5