Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL. 6, NO. 3, SEPTEMBER 1998
I. INTRODUCTION
SEUDORANDOM test pattern generation using autonomous circuits such as linear feedback shift registers
(LFSRs) [1] was proposed as a test application method
[1][4] since it eliminates the need to store deterministic test
patterns and requires low hardware overhead. The suitability
of an LFSR as a test pattern generator for a given circuit
depends on the number of test patterns required to achieve the
desired fault coverage. In many cases, a primitive LFSR that
generates pseudorandom patterns is considered insufficient
as a test pattern generator (a primitive LFSR is one that
can be described by a primitive polynomial [cf. 1, p. 70]).
Current approaches may try an arbitrary primitive LFSR
started from an arbitrary initial state. If the LFSR tried
does not reach the targeted fault coverage with a practical
number of test patterns, the existing approaches try to improve
the fault coverage by using design-for-testability techniques
(e.g., by adding test points to the circuit [1]) or by using
Manuscript received July 29, 1997; revised December 1, 1997. This work
was supported in part by the NSF under Grants MIP-9220549 and MIP9357581. This paper was presented in part at the IEEE 1993 International
Test Conference.
The authors are with the Electrical and Computer Engineering Department,
University of Iowa, Iowa City, IA 52242 USA.
Publisher Item Identifier S 1063-8210(98)05983-6.
433
and transition faults in Section III. In Section IV we consider the incorporation of the rules learned into an automatic
procedure for selecting LFSRs and initial states. The use
of complemented as well as uncomplemented LFSR patterns
is considered in Section V. In Section VI we describe the
genetic optimization procedure used to improve the selection
of LFSRs and initial states. Concluding remarks are given in
Section VII.
II. PRELIMINARIES
Throughout this work, we consider the circuit configuration
shown in Fig. 1. An LFSR is connected to the circuit-undertest such that for every primary input of the circuit there is an
LFSR cell driving it. Other configurations were proposed to
reduce the LFSR length and increase the sharing of LFSRs
among various circuits in a system. One such configuration
(STUMPS [1]) uses an LFSR of fixed length (independent
of the number of circuit inputs), driving a shift-register. The
length of the shift-register is equal to the number of primary
inputs in the circuits connected to it, and every circuit input is
driven by a shift-register cell. For simplicity, we concentrate
on the configuration of Fig. 1 and assume that distributed test
generators [25] are used, one for each circuit in a system.
However, the method can be applied to other configurations.
We present results for one such configuration in Section IV-B.
We consider the problem of selecting the most effective
LFSR for a given circuit, where effectiveness is measured by
the fault coverage and the number of patterns to achieve it.
The method proposed is based on collecting effective LFSRs
and initial states through a learning process, first introduced in
[23] for the generation of deterministic test sets. The learning
approach from [23] is applicable to circuits that have a notion
of size associated with them, e.g., operand size, and has the
following steps.
Step 1: Small versions of the given circuit are obtained,
which have a similar structure to the given circuit, but smaller
size. For combinational circuits considered here, circuits with
small numbers of inputs implementing the same function are
obtained. For example, if the large circuit is a 64-bit multiplier,
then 2-bit, 3-bit and 4-bit multipliers may be obtained in this
step. The small circuits can be obtained through synthesis or
by extracting the lower order terms of the given circuit.
Step 2: The problem of interest is solved on the sequence
of small circuits obtained in Step 1. Exhaustive search is used
434
IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL. 6, NO. 3, SEPTEMBER 1998
(a)
(b)
Fig. 2. LFSR realization.
A TRUTH-TABLE
TABLE I
3-BIT PRIORITY UNIT
FOR A
RESULTS
435
FOR
TABLE II
STUCK-AT FAULTS
IN
PRIORITY UNITS
and initial state without using the all-zero state. If it turns out
that no acceptable solution can be found, we add the all-zero
state and repeat the selection process. In all cases considered,
this correctly identified the circuits where the all-zero pattern
is necessary.
III. THE LEARNING PROCESS
In this section, we demonstrate the learning process by
applying it to derive test pattern generators for stuck-at faults
and transition faults in several functional units. Every one of
the units has a size parameter (operand length), that is used
to obtain small versions of the circuit for learning purposes.
The exhaustive generation of test pattern generators for small
circuits is done automatically, whereas the learning of rules to
describe them is done manually.
A. Stuck-at Faults in Priority Units
The first example we consider is the priority unit. An inputs and
outputs.
bit priority unit is a circuit with
The lowest-index input which assumes the value 1 sets its
corresponding output to 1. All other outputs are 0. A
truth table for a 3-bit priority unit is given in Table I for
illustration ( stands for a dont-care). We obtained gate
level implementations of priority units of several sizes.
When we applied the learning process to the priority units,
we found that the all-zero pattern is necessary to detect some
faults. We therefore used two initial states, namely, the allzero state and an additional state that was selected using
the proposed procedure. The selection of the LFSR and the
additional initial state is described next.
Considering all LFSRs and all initial states for two- to sixappears in
input priority units, we found that initial state
all the solutions and yields a small number of patterns. Another
, however, we decided to
candidate initial state was
and look for other options only if
turns out
use
, and
to yield poor results. We fixed the initial state to
proceeded to consider all possible LFSRs for the three- to sixinput priority units. Studying the LFSRs obtained, we derived
the following rules to describe the most effective ones (all
).
with initial state
(describes the LFSRs 101, 1001, 10001,
Rule 1:
);
100001,
(describes the LFSRs 110, 1100, 11000,
Rule 2:
);
110000,
where
and the diRule 3:
vision is integer division, i.e., the result is truncated
(describes the LFSRs 101, 1001, 11011, 110011,
).
1110111,
Note that both the first and the third rule correspond to the
same 3-bit and 4-bit LFSRs but generate different LFSRs of
5 bits or more. The second rule was the best of the three in
terms of test length, however, we retained all of them for the
purpose of comparison.
The results of applying the LFSRs described by the rules
given above to priority units of different sizes are given in
Table II. Every LFSR was allowed to go through at most
50 000 states (including the all-zero state). For every LFSR, we
give the number of patterns required before the fault coverage
reported in Table II was reached. For example, for the 40-bit
priority unit and the first LFSR in Table II, the last pattern
effective in detecting any fault was pattern 21 826, and the
fault coverage achieved was 55.63%. It is interesting to note
the differences between the different results obtained. The
first and third LFSRs sometimes resulted in incomplete fault
coverage. In all cases, the results obtained by the second LFSR
were significantly better than the other results in terms of the
number of test patterns required to completely test the priority
unit. This could have been predicted by observing that the
second rule required the smallest number of tests for the twoto six-input circuits. Table II demonstrates the importance of
selecting an appropriate LFSR, tailored to the circuit-undertest. Note that although the learning process was done for 2to 6-bit circuits, the LFSRs learned are effective for all the
circuits considered. This property is essential to the proposed
method that relies on the existence of such similarities between
different-size versions of the same circuit. Using Rule 2 for
an -bit priority unit, we expect 100% fault coverage to be
tests.
achieved by
To further establish the need for a systematic way of
selecting the best LFSR and initial state, we simulated the
32-input priority unit (which is one of the largest considered)
436
IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL. 6, NO. 3, SEPTEMBER 1998
using all five primitive 32-bit LFSRs from [27] as test pattern
generators. For every one of these five LFSRs, ten different
nonzero seeds were randomly selected, in addition to the allzero state. The all-zero state was included in each case. Each
LFSR was allowed to go through up to 3000 states, applying
3000 test patterns to the circuit-under-test. The best result was
with initial state
obtained for the LFSR
10001110110101100001101011011101, giving 70.45% fault
coverage achieved by the first 326 patterns (the following
2674 patterns applied did not detect any additional fault).
Allowing one of the five primitive LFSRs to produce 100 000
test patterns starting from 10 different randomly selected
initial states, the best fault coverage achieved was 78.54%
with 66 273 patterns. An arbitrarily selected nonprimitive
polynomial from the list in [27] which was used in the same
manner yielded 76.52% fault coverage with 57 632 patterns.
Comparing to the best result in Table II, it can be seen that 95
patterns were sufficient to achieve complete fault coverage
when the LFSR was appropriately selected. In this case,
the LFSRs selected through learning are significantly more
effective than other LFSRs. Furthermore, it should be noted
that the best result obtained from 60 trials using arbitrarily
seeded primitive and nonprimitive LFSRs was considerably
inferior to the best result obtained from three trials using the
LFSRs deduced by the learning process.
For the 32-bit circuit, the number of XOR gates in the LFSR
learned is one. The number of XOR gates in the best primitive
LFSR is four. Thus, the LFSR learned also incurs a lower
hardware overhead than the best primitive LFSR.
B. Stuck-at Faults in Carry-Lookahead Functions
In this section, we consider a circuit similar to that implementing the carry-propagate function of a carry lookahead
, implecircuit. The -input circuit, with inputs
ments the function
where
437
TABLE III
RULES FOR GENERATING LFSRs AND INITIAL STATES.
(a) RULES FOR LFSRs. (b) RULES FOR INITIAL STATES
(a)
(b)
TABLE IV
ADDITIONAL RULES FOR GENERATING LFSRs AND INITIAL
STATES. (a) RULES FOR LFSRs. (b) RULES FOR INITIAL STATES
(a)
E. Summary
In summary, it can be seen that learning based on binary
LFSR connection patterns and initial states is very effective
for matching LFSR-based test pattern generators to circuits
that have size parameters. The learned LFSRs and initial
states are considerably more effective than arbitrarily selected
ones. In the next sections we propose methods to match test
pattern generators to circuits that do not have recognizable
size parameters.
IV. SELECTING AN LFSR AND AN INITIAL
STATE FOR A RANDOM LOGIC CIRCUIT
In this section, we consider the application of the rules
collected in the previous section and in additional experiments
to random logic circuits. The circuits considered are in general
neither related to the example circuits studied in the previous
section, nor have recognizable size parameters. We compare
for these circuits the following test pattern generators. 1) The
best LFSR of an appropriate size selected out of the collection
established in experiments similar to the ones of Section III.
(b)
438
IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL. 6, NO. 3, SEPTEMBER 1998
RESULTS
FOR
TABLE V
BERKELEY PLAs (INCOMPLETE COVERAGE)
give the rules for generating the initial states. The program
implementing these rules proceeds as follows. Given a circuit,
the program tries every pair of (LFSR, initial state) as a test
pattern generator for the circuit, and reports the fault coverage
achieved and the number of patterns required to achieve it.
The best test pattern generator is then selected. If desired,
the program can also provide a list of undetected faults. This
list can be used for test-point insertion. The run time of this
be the number
program can be determined as follows. Let
of (LFSR, initial state) pairs tried. Let the TPGs be allowed
to go through states, producing test patterns. Suppose that
the time to fault simulate the circuit under test patterns is
. Then the total run time is approximately
.
Next, we report the results of experiments on multilevel
implementations of Berkeley PLAs [29], the combinational
which is
logic of ISCAS-89 benchmark circuits [30],
an ISCAS-85 benchmark circuit [31] and other ISCAS-85
benchmark circuits, and circuits from [32]. All the circuits
considered have faults that need large numbers of random
patterns to be detected.
For Berkeley PLA multilevel circuits, we tried all combinations of LFSRs and initial states given in Table III and
allowed up to 10 000 test patterns. We then added the rules
of Table IV, and repeated the experiment. We also used a
primitive LFSR from [1] with ten randomly selected initial
states. The best results obtained by both methods are reported
in Table V, as follows. For every one of the methods, we
give the best result in terms of fault coverage, followed by
the smallest number of patterns to achieve this fault coverage.
In parentheses we give the results obtained when the rules of
Table IV are added to the rules of Table III. It can be seen
that in most cases, the fault coverage obtained by the LFSRs
from Table III (or Tables III and IV) is higher than the fault
coverage achieved by primitive LFSRs. Note especially the
case of rckl, where a primitive LFSR resulted in 49.86% fault
coverage and the collection of Table III resulted in 97.28%
fault coverage. We repeated the experiment where primitive
LFSRs are used, this time applying 100 000 random patterns
to rckl. The highest fault coverage achieved was 71.66%, still
lower than what can be achieved with the LFSRs of Table III
, where the
with 991 patterns. Note also the case of
additional rules of Table IV resulted in a test pattern generator
that achieves complete fault coverage. The number of XOR
gates is lower in most cases when the LFSRs learned are
used. For all the circuits considered, an improvement in test set
size and/or fault coverage is achieved without increasing the
RESULTS
FOR
TABLE VI
ADDITIONAL BENCHMARK CIRCUITS
NUMBERS
OF
TABLE VII
LFSRs FOR PAIRS
OF
439
CIRCUITS
including a 32-bit priority unit (called prior), a 32-bit carrylookahead function (called cla), and a 32-bit circuit consisting
of a 32-input AND gate and a 32-input OR gate connected in
parallel (called andor). All the circuits considered are random
pattern resistant in that a primitive LFSR from [1] applying
100 000 pseudorandom patterns starting from each one of
five randomly selected initial states does not achieve 100%
coverage of detectable faults for any initial state.
We first applied the test-pattern generator selection procedure to each circuit separately. The purpose of this experiment
was to find out how many test-pattern generators from the list
of Table III are required for each circuit. Next, we considered
pairs of circuits driven from the same source (cf. Fig. 3).
When the number of inputs of the two circuits considered
was not equal, we assumed that the lower-index inputs of the
two circuits are driven by the same LFSR cells. The results
are reported in Table VII. Next to each circuit name, we give
the number of (LFSR, initial state) pairs required to achieve
complete fault coverage for the circuit. For each pair of circuits
considered, we give in Table VII the number of (LFSR, initial
state) pairs required to achieve complete fault coverage. The
number is followed by if the number of pairs for the two
circuits is smaller than the sum of the numbers of pairs for the
two circuits separately; it is followed by if the number of
pairs for the two circuits is equal to the sum of the numbers
of pairs for the two circuits separately. It can be seen that in
many of the cases considered, the number of pairs required
is smaller than the sum of the number of pairs for Circuit 1
,
and Circuit 2. Moreover, in some cases, like rckl and
the number of pairs required for the interconnection is smaller
than the number of pairs required for one of the circuits alone
(rckl in this case). This can happen when the other circuit has
a larger number of inputs, and therefore requires the use of
pairs of larger size which can sometimes be more effective for
the smaller circuit, or when the number of patterns generated
for the interconnection is larger than for each circuit alone.
C. Discussion
The experimental evidence above suggests that the rules of
Tables III and IV produce LFSRs that are effective as test
pattern generators for arbitrary circuits. These rules should
therefore be tried before resorting to other methods having
440
IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL. 6, NO. 3, SEPTEMBER 1998
WEIGHTS
FOR THE
LFSRs
TABLE VIII
TABLES III
OF
OF
COMPLEMENTED PATTERNS
AND
IV (INITIAL STATE 8)
RESULTS
FOR
TABLE IX
BERKELEY PLAs WITH COMPLEMENTED PATTERNS
441
(a)
(b)
(c)
Fig. 4. An LFSR producing complemented patterns.
442
IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL. 6, NO. 3, SEPTEMBER 1998
TABLE X
RESULTS FOR STUCK-AT FAULTS IN c2670 (233
INPUTS, 2747 FAULTS, 117 REDUNDANT FAULTS)
REFERENCES
[1] P. H. Bardell, W. H. McAnney, and J. Savir, Built-In Test for VLSI
Pseudorandom Techniques. New York: Wiley, 1987.
[2] E. B. Eichelberger, E. Lindbloom, J. A. Waicukauski, and T. W.
Williams, Structured Logic Testing. Englewood Cliffs, NJ: PrenticeHall, 1991.
[3] P. Agrawal and V. D. Agrawal, Probabilistic analysis of random test
generation method for irredundant combinational logic networks, IEEE
Trans. Comput., pp. 691695, July 1975.
[4] J. Savir, G. S. Ditlow, and P. H. Bardell, Random pattern testability,
IEEE Trans. Comput., pp. 7990, Jan. 1984.
[5] H. D. Shnurmann, E. Lindbloom, and R. G. Carpenter, The weighted
random test-pattern generator, IEEE Trans. Comput., pp. 695700, July
1975.
[6] H.-J. Wunderlich, Self test using unequiprobable random patterns, in
Proc. 17th Fault-Tolerant Computing Symp., 1987, pp. 258263.
[7] J. A. Waicukauski and E. Lindbloom, Fault detection effectiveness of
weighted random patterns, in Proc. Int. Test Conf., 1988, pp. 245250.
[8] H.-J. Wunderlich, Multiple distributions for biased random test patterns, in Proc. Int. Test Conf., 1988, pp. 236244.
[9] F. Siavoshi, WTPGA: A novel weighted test pattern generation approach for VLSI built-in self-test, in Proc. Int. Test Conf., 1988, pp.
256262.
[10] F. Brglez, C. Gloster, and G. Kedem, Hardware-based weighted random
pattern generation for boundary scan, in Proc. Int. Test Conf., 1989,
pp. 264273.
[11] F. Muradali, V. K. Agrawal, and B. Nadeau-Drostie, A new procedure
for weighted random built-in self-test, in Proc. Int. Test Conf., 1990,
pp. 660669; also F. Muradali, M.Sc. Thesis, McGill Univ., Canada,
Mar. 1990.
[12] S. Pateras and J. Rajski, Generation of correlated random patterns for
the complete testing of synthesized multi-level circuits, in Proc. Design
Automation Conf., June 1991.
[13] I. Pomeranz and S. M. Reddy, 3-weight pseudo-random test generation
based on a deterministic test set, in Proc. 1992 VLSI Design Conf., Jan.
1992, pp. 148153.
[14] J. Hartmann and G. Kemnitz, How to do weighted random testing for
BIST?, in Proc. 1993 Int. Conf. Computer-Aided Design, Nov. 1993,
pp. 568571.
[15] R. Dandapani, J. H. Patel, and J. A. Abraham, Design of test pattern
generation for built-in test, in Proc. Int. Test Conf., 1984, pp. 315319.
443
[16] B. Krishnamurthy, Test pattern generators for deterministically generating test data, Tektronix Res. Lab., Tech. Rep. 86-02, Feb. 1986.
[17] S. B. Akers and W. Jansz, Test set embedding in a built-in self-test
environment, in Proc. Int. Test Conf., 1989, pp. 257263.
[18] N. A. Touba and E. J. McCluskey, Transformed pseudo-random patterns for BIST, in Proc. 13th VLSI Test Symp., Apr. 1995, pp. 410416.
[19] J. Savir and W. H. McAnney, A multiple seed linear feedback shift
register, in Proc. 1990 Int. Test Conf., Sept. 1990, pp. 657659.
[20] S. Hellebrand, S. Tarnick, J. Rajski, and B. Courtois, Generation of
vector patterns through reseeding of multiple-polynomial linear feedback
shift registers, in Proc. 1992 Int. Test Conf., Sept. 1992, pp. 120129.
[21] J. Van Sas, F. Catthoor, and H. De Man, Optimized BIST strategies
for programmable data paths based on cellular automata, in Proc. 1992
Int. Test Conf., Sept. 1992, pp. 110119.
[22] P. D. Hortensius et al., Cellular automataBasic pseudorandom number generators for built-in self-test, IEEE Trans. Computer-Aided Design, pp. 842859, Aug. 1989.
[23] I. Pomeranz and S. M. Reddy, INCREDYBLE-TG: INCREmental
dynamic test generation based on learning, in Proc. 1993 Design
Automat. Conf., June 1993, pp. 8085.
[24] V. Chickermane, E. M. Rudnick, P. Banerjee, and J. H. Patel, Nonscan design-for-testability techniques for sequential circuits, in Proc.
30th Design Automat. Conf., June 1993, pp. 236241.
[25] M. Abramovici, M. A. Breuer, and A. D. Friedman, Digital Systems Testing and Testable Design. Rockville, MD: Computer Science,
1990.
[26] E. J. McCluskey and S. Bozorgui-Nesbat, Design for autonomous test,
IEEE Trans. Comput., vol C-30, pp. 866874, Nov. 1981.
[27] W. W. Peterson and E. J. Weldon Jr., Error-Correcting Codes, 2nd ed.
Cambridge, MA: The M.I.T. Press, 1972.
[28] I. Pomeranz and S. M. Reddy, A Learning-based method to match a
test pattern generator to a circuit-under-test, in Proc. Int. Test Conf.,
Oct. 1993, pp. 9981007.
[29] R. K. Brayton, G. D. Hachtel, C. T. McMullen, and A. L. SangiovanniVincentelli, Logic Minimization Algorithms for VLSI Synthesis. New
York: Kluwer Academic, 1984.
[30] F. Brglez, D. Bryan, and K. Kozminski, Combinational profiles of
sequential Benchmark circuits, in Proc. Int. Symp. Circuits Syst., May
1989, pp. 19291934.
[31] F. Brglez and H. Fujiwara, A neutral netlist of 10 combinational
Benchmark designs and a special translator in fortran, in Proc. Int.
Symp. Circuits Syst., June 1985.
[32] E. M. Rudnick, Simulation based techniques for sequential circuits,
Ph.D. dissertation, Center for Reliable and High Performance Computing, Univ. of Illinois, Tech. Rep. CRHC-94-14, Aug. 1994.
[33] J. H. Holland, Adaptation in Natural and Artificial Systems. Ann
Arbor, MI: University of Michigan Press, 1975.
444
IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL. 6, NO. 3, SEPTEMBER 1998