Professional Documents
Culture Documents
2, JUNE 1998
Abstract— We present a new technique for testing field The number of primary outputs of a CLB.
programmable gate arrays (FPGA’s) based on look-up tables The number of columns in the grid of CLB’s.
(LUT’s). We consider a generalized structure for the basic FPGA The number of rows in the grid of CLB’s.
logic element (cell); it includes devices such as LUT’s, sequential
elements (flip-flops), multiplexers and control circuitry. We use The number of CLB’s
a hybrid fault model for these devices. The model is based on a The number of I/O blocks.
physical as well as a behavioral characterization. This permits For a given test method and FPGA family, the
detection of all single faults (either stuck-at or functional) and number of configurations needed to test a single
some multiple faults using repeated FPGA reprogramming. We CLB.
show that different arrangements of disjoint one-dimensional
(1-D) cell arrays with cascaded horizontal connections and The part of due to the combinational par-
common vertical input lines provide a good logic testing regimen. tition of the CLB.
The testing time is independent of the number of cells in the The part of due to the sequential partition
array (C-testability). We define new conditions for C-testability of the CLB.
of programmable/reconfigurable arrays. These conditions do For a given method, the total phases needed for
not suffer from limited I/O pins. Cell configuration affects the
controllability/observability of the iterative array. We apply the specified FPGA family FPGA.
the approach to various Xilinx FPGA families and compare For a given test method and FPGA family, the
it to prior work. number of test patterns needed to test a single
Index Terms— C-testability, field programmable gate array, CLB.
programmability, reconfigurability, testing. The part of due to the combinational partition
of the CLB.
The part of due to the sequential partition.
I. NOTATION AND DEFINITIONS For a given test method, for the specified
Horizontal The internal inputs (outputs) of an iterative array. FPGA family FPGA (plus any extra clock cycles
These propagate dependency between the CLB’s needed to get the CLB response to chip I/O).
in the array. For a given FPGA, the number of sessions needed
Vertical The external inputs of an iterative array. These by the BIST method [7].
can be directly specified in the test patterns and For a given FPGA, the number of sessions needed
require I/O blocks. by the naive method [5].
Phase Each testing phase is a reprogramming of the The regeneration period of a given iterative array.
FPGA followed by test vector application. Since (The number of CLB’s traversed before the input,
reprogramming is slow, the number of phases is output, and CLB configurations begin to repeat.)
a good measure of testing time. The number of vertical (external) inputs to each
Session The application of every CLB test configuration to CLB in a given iterative array.
those CLB’s that are under test. Multiple sessions The number of iterative array vertical inputs that
are required if not all CLB’s can be under test differ for each CLB in one period. In the degen-
simultaneously. erate case of period 1,
C-testable An FPGA is C-testable with a given testing
method if the number of programmings is II. INTRODUCTION
independent of the circuit size. In particular, for
an iterative array, it is independent of the length
of the array.
The number of primary inputs to a CLB.
F IELD programmable gate arrays (FPGA’s) are widely
used for rapid prototyping and manufacturing of com-
plex digital systems, such as microprocessors and high-speed
telecommunication chips [1]. FPGA’s are commercially avail-
able from many vendors. Our prototypical FPGA is a two-
Manuscript received March 15, 1997; revised July 1, 1997. This work was dimensional (2-D) grid of configurable logic blocks (CLB’s).
supported in part by the State of Texas Advanced Research Program. The CLB’s can be programmed to implement combinational
W. K. Huang is with the Department of Electronic Engineering, Fudan
University, Shanghai, China. as well as sequential logic functions [1] and each CLB
F. J. Meyer and F. Lombardi are with the Department of Computer Science, is identical before programming. CLB’s are separated by
Texas A&M University, College Station TX 77843 USA. a programmable interconnection network; the interconnect
X.-T. Chen is with FPGA Software Core Group, Lucent Technologies,
Allentown, PA 18103 USA. consists of either programmable connector and/or switching
Publisher Item Identifier S 1063-8210(98)02949-7. blocks [2], or a series of horizontal/vertical routing tracks
1063–8210/98$10.00 1998 IEEE
HUANG et al.: TESTING CONFIGURABLE LUT-BASED FPGA’S 277
III. BACKGROUND
Testing FPGA’s is addressed in the literature such as [4]–[7].
These works and this paper deal with manufacturing test. Other
tests in the field, such as verifying correctly loaded configu-
ration data, are typically handled by architectural features for
reprogrammable FPGA’s [2]. Reference [4] discusses testing
of row-based (segmented channel) FPGA’s. The approach
sequentially tests every cell using a modified scan procedure, Fig. 2. Interior of a Xilinx XC5200 CLB.
providing 100% fault coverage of single stuck-at faults. It
requires many tests and does not fully exploit the regularity of
the FPGA to reduce test time. The methodology in [8] for in the figure has three inputs and two outputs. Three IOB’s
testing uncommitted segmented channel FPGA’s for single are consumed in order to provide the cells under test with
stuck-at faults is based on connecting the cells of each row their input vectors. The cells under test have no connections
as a one-dimensional (1-D) unilateral array, such that the between them. Their output response is directly observed at the
FPGA could be tested as a set of disjoint arrays. This yields IOB’s. In each programming phase, only a few CLB’s can be
considerable reduction in both vectors and test circuitry. tested in parallel. This is basically restricted by the number of
Simultaneous testing of disjoint arrays helps achieve constant IOB’s and the number of output lines of each CLB. In Fig. 1,
test set size (C-testability), so that test cost will be independent only three CLB’s can be under test, because, after three IOB’s
of chip size [9]. are used for CLB inputs, only seven IOB’s remain to observe
In [7], the FPGA is configured to conduct direct output output response.
comparisons of pairs of logic cells using full cell control-
lability. Test generation and output response comparison are
handled internally using some of the logic resources in a built- IV. PROPOSED FAULT MODEL
in self-test (BIST) arrangement. This requires at least one extra Fig. 2 shows a portion of a Xilinx XC5200 CLB. A full CLB
“session,” i.e., a doubling of chip programmings so that the consists of four stacked copies of the figure (with the carry in
cells previously used for test pattern generation and for output (CI) and carry out (CO) signals rippled through)—plus a little
comparisons can become cells under test. Fault simulation extra logic. The portion in Fig. 2 has a single LUT with four
established that 100% fault coverage can be accomplished inputs, so it has 24 configuration bits to specify its function.
for single stuck-at faults. In [10], the logic resources are Of the three multiplexers, M1 is a conventional multiplexer.
arranged as an iterative logic array (ILA) [9]. This allows M2 and M3 are programmable multiplexers; each needs only a
better scalability than the previous BIST arrangement [7]; single configuration bit to specify which input it passes. There
however, it also requires another additional session—i.e., a is also a D flip-flop.
tripling of chip programmings. Our generalized internal CLB structure permits these de-
A simple testing arrangement (referred to as “naive”) was vices: LUT’s, programmable (configurable) multiplexers, con-
mentioned in [5]. It connects together all input lines to ventional multiplexers, and flip-flops. Some conventional logic
the CLB’s (cells) under test from the IOB’s, and uses the usually does not interfere with test generation.
remaining IOB’s for direct observability of the output lines We assume the interconnect and the IOB’s have already
of each cell under test. Fig. 1 shows a single programming been tested; the interested reader should refer to [11] and [12]
phase with the three leftmost CLB’s under test. Each CLB for a detailed treatment. In our proposed testing strategy, we
278 IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL. 6, NO. 2, JUNE 1998
divide CLB’s into independent sets (linear arrays). For our multiple patterns are required. Furthermore, each LUT output
fault model, within each linear array, we assume at most one must be observable at a primary CLB output. So we require
faulty CLB; otherwise, fault masking might occur. For the a sensitized path from the LUT output to a primary CLB
single faulty CLB, the nature of the fault could take any form. output. By definition of the combinational partition, this can
For simplicity of illustration, in our investigation, we limited be achieved by configuring the multiplexers (or other devices)
a CLB to a single faulty device. The nature of a device fault in the partition.
varies with the device. We use a functional test for the multiplexers. Since a
We model single device faults both physically (e.g., stuck- multiplexer selects from among all inputs, each data input
at) and functionally [13]. This hybrid fault model is adaptable must be active in at least one phase. Further, the functional test
to emerging FPGA technology and to different products as consists of applying logic 1 to the selected input while holding
they become commercially available [2]. The fault model was all others at logic 0, and a second test pattern with these logic
shown suitable to FPGA’s in [5] and confirmed by industrial values reversed. The multiplexer output must be observable
experiments. In particular, by device as follows. from at least one primary CLB output. If a multiplexer is
• For a LUT, a fault can occur in any one of the: memory not simultaneously controllable/observable, additional phases
matrix, decoders, and input and output lines. A faulty could be required. We need at least phases to test a
memory matrix makes some memory cells incapable of multiplexer with inputs. A multiplexer can be tested with a
storing the correct logic value (the LUT has a single bit LUT (if connected); a possible way to accomplish this consists
output, so this value is either 0 or 1) [2]. Any number of of choosing a memory matrix for the LUT that satisfies the
memory cells in the LUT could be faulty. If the fault is multiplexer(s) testability conditions. In this way, test phases
in the decoder, the erroneous address leads to reading the can be overlapped (reduced).
contents of the wrong cell, i.e., a one-bit address fault. The
third possible LUT fault is on the I/O lines, with respect
A. Testing the Sequential Partition
to which we allow any single stuck-at fault. The one-bit
decoder address fault can be collapsed to the stuck-at fault The sequential partition includes the D flip-flops as well
of a LUT input line. So this fault type is detected when as multiplexers and control circuits emanating from them or
the decoders are tested. A stuck-at fault on a LUT output only observable through them. During test generation, we seek
line is covered by the tests for the LUT memory matrix. to overlap testing of programmable multiplexers with that of
• For a multiplexer, we use a functional fault model, flip-flops.
because the internal logic structure varies from FPGA In some FPGA’s, flip-flops are more complicated than the
to FPGA [2]. Testing confirms the multiplexer’s ability D type. In particular, the Xilinx XC4000 family [2] has D flip-
to select each input. flops plus added logic that can be programmed to add set/reset
• For the D flip-flops, we use a functional fault model. A capability. The S/R controllers are configurable to allow a set
fault can cause a flip-flop to receive no data, to be unable function, a reset function, or neither. For the XC4000, this
to be triggered by the correct clock edge, or to be unable requires three separate programming phases; however, testing
to be set or reset. of the S/R controllers can be overlapped with testing the
Our testing objectives are as follows: flip-flops.
1) Testing the D Flip-Flops: We functionally test the D
• a 100% fault coverage under a single faulty device model
flip-flops. We test the input and hold function with the data
with neither delay nor area overhead;
sequence 010 (or 101) at D. Separate phases are required
• ease of test pattern generation, because patterns are
to test both rising and falling edge trigger mechanisms, if
generated for a CLB, not the whole FPGA;
applicable. We can test the set (reset) function by applying
• efficient implementation of the testing process as mea-
the set (reset) signal after a flip-flop is in the “0” (“1”) state.
sured by the amount of memory required to store the test
The set/reset disable functions must also be tested if present,
instructions (configuration bits and test patterns);
leading to another phase. To test the clock enable function, we
• the number of programming phases must be as small as
use the five-vector sequence given in Fig. 3. Some functional
possible, because reprogramming time is much greater
tests can be overlapped to reduce the number of phases. We
than test pattern application time [3].
can possibly also overlap phases with those for multiplexers,
depending on the sequential partition’s structure.
V. TESTING A CLB
We generate test patterns in two steps according to the CLB
partitioning. VI. PROPOSED TEST STRATEGY
Consider initially a CLB made of a single LUT. We can Fig. 4 shows a linear iterative array. There is a cascaded
test the LUT memory matrix by reading all the memory bits (horizontal) input reflecting the dependence of the cells in the
in two phases. The programmed memory matrix contents in iterative array, and test vector is obtained from the IOB’s
the second phase are complements of the first. and applied to this input. Other (vertical) inputs to the cells
The scenario is different for testing stuck-at faults at the are not shown, but are also obtained directly from the IOB’s.
LUT inputs. The LUT matrix contents must be arranged such The CLB’s in the array are programmed to implement
that the boolean difference is one for the input to be tested; functions: , etc. The period of the array, is the
HUANG et al.: TESTING CONFIGURABLE LUT-BASED FPGA’S 279
TABLE I
XC5200 TESTING
TABLE IV
CLB ARCHITECTURAL COMPARISON
IOB’s cf. CLB outputs, and better CLB observability [13] J. Gailaiy, Y. Crouzet, and M. Vergniault, “Physical versus logic
compared to other families. For a test method, “ ” means faults: Impact on their testability,” IEEE Trans. Comput., vol. C-20,
pp. 527–531, June 1980.
faster testing (fewer phases) for that family than with [14] W. K. Huang, [Online]. Available FTP: //ftp.cs.tamu.edu/pub/fmeyer/
other methods. reports/test/abstracts.html.
• Our method uses only three different array layouts.
I/O limitations were never a problem, despite studying
FPGA’s of various sizes and with various architectural
features. Wei Kang Huang was born in Shanghai, China, in 1941 and graduated from
the Department of Physics, Fudan University, Shanghai, China, in 1965.
• We confirmed that the CLB architecture has a major From 1985 to 1987, he was a Visiting Scholar at the University of Arizona,
impact on array test complexity. In particular, LUT’s Tucson, and at the University of Colorado, Boulder. During the period from
connected in series or programmable multiplexers with 1994 to 1996, he was a Postdoctoral Research Associate at the Department of
Computer Science, Texas A&M University, College Station, where he pursued
many inputs are two characteristics that lead to more research in testing and fault tolerance of FPGA’s. Currently, he is a Professor
chip programmings. As seen with the Xilinx XC5200, in the Department of Electronic Engineering, Fudan University. He is a Group
a large CLB can still be very efficiently tested due Leader in the computer-aided design/computer-aided testing (CAD/CAT) area.
His research interests include test generation and simulation, VLSI design,
to the regularity of its internal organization and the design for testability, and fault tolerance.
simplicity of its sequential partition. For the naive and
BIST approaches, a small number of I/O blocks adversely
impacts testing time. Our approach is largely independent
of I/O blocks, but can benefit only slightly from having Fred J. Meyer (M’95) received the B.Sc. (Hons.) degree in computer systems
many CLB outputs. engineering and the Ph.D. degree from the University of Massachusetts,
Amherst, in 1984 and 1991, respectively.
He is a Research Associate in the Department of Computer Science at
ACKNOWLEDGMENT Texas A&M University, College Station. He was previously with the United
States Air Force. His research interests are in distributed computer systems
The authors would like to thank the reviewers for providing and algorithms, reliable and secure communication protocols, reliable system
very detailed comments. design and validation, and IC yield enhancement and assessment.
REFERENCES
[1] S. Brown, R. J. Francis, J. Rose, and Z. G. Vranesic, Field Pro- Xiao-Tao Chen was born in Shanghai, China, on April 28, 1964. He received
grammable Gate Arrays. Boston, MA: Kluwer Academic, 1992. the B.S. and M.S. degrees in electronics engineering from Fudan University,
[2] Programmable Gate Array Data Book, Xilinx, Inc., San Jose, CA, 1991. Shanghai, China, and the Ph.D. degree in computer science from Texas A&M
[3] B. K. Fawcett, “Taking advantage of reconfigurable logic,” in Proc. 2nd University, College Station, in 1985, 1991, and 1997, respectively.
ACM Workshop on FPGA’s, Berkeley, CA, 1994. From 1985 to 1988, he was involved in data communication, and from
[4] K. El-Ayat, R. Chan, C. L. Chan, and T. Speers, “Array architecture for 1991 to 1994, he was a faculty member at Fudan University. Since 1989,
ATPG with 100% fault coverage,” in Proc. IEEE Workshop on DFT in he has been working on computer-aided testing (ATPG and DFT), design
VLSI Systems, Hidden Valley, CA, 1991, pp. 213–226. verification, computer architecture, and algorithms. He is currently with
[5] W. K. Huang and F. Lombardi, “A general technique for testing
Lucent Technologies, Allentown, PA, working on ORCA FPGA design and
FPGA’s,” in Proc. IEEE VLSI Test Symp., Princeton, NJ, May 1996,
development.
pp. 450–455.
[6] W. K. Huang, F. J. Meyer, and F. Lombardi, “Array-based testing
of FPGAs: Architecture and complexity,” in Proc. IEEE Conf. on
Innovative Syst. Silicon, Austin, TX, 1996, pp. 249–258.
[7] C. Stroud, P. Chen, S. Konala, and M. Abramovici, “BIST of logic
blocks in FPGA’s,” in Proc. IEEE VLSI Test Symp., Princeton, NJ, May Fabrizio Lombardi (M’82) received the B.Sc. (Hons.) degree in electrical
1996, pp. 387–392. engineering from the University of Essex, U.K., in 1977. He received the
[8] T. Liu, W. K. Huang, and F. Lombardi, “Testing of uncustomized Master’s degree in microwave and modern optics, the Diploma in microwave
segmented channel FPGA’s,” in Proc. ACM Symp. FPGA’s, 1995, pp. engineering, and the Ph.D. degree from the University College London, U.K.,
125–131. in 1978, 1978, and 1982, respectively.
[9] A. D. Friedman, “Easily testable iterative arrays,” IEEE Trans. Comput., In 1977, he joined the Microwave Research Unit at the University College
vol. C–22, pp. 1061–1064, 1973. London. Previously, he was with the University of Colorado, Boulder, and
[10] C. Stroud, E. Lee, S. Kanala, and M. Abramovici, “Using ILA testing Texas Tech University, Lubbock. He is currently a Full Professor in the
for BIST in FPGA’s,” in Proc. IEEE Int. Test Conf., 1996, pp. 68–75. Department of Computer Science at Texas A&M University, College Station,
[11] T. Liu, F. Lombardi, and J. Salinas, “Diagnosis of interconnects and where his research interests are in fault-tolerant computing, testing and design
FPIC’s using a structured walking–1 approach,” in Proc. IEEE VLSI of digital systems, and parallel and distributed computer systems. Current
Test Symp., 1995, pp. 256–261. topics under investigation include design and test of programmable digital
[12] C. Feng, W. K. Huang and F. Lombardi, “A new diagnosis approach for systems (such as FPGA and FPIC), defect tolerance for IC manufacturing,
short faults in interconnects,” in Proc. IEEE Fault-Tol. Comput. Symp., mapping for parallel processing applications, testing of arrays, and protocol
Pasadena, CA, June 1995, pp. 331–339. design and verification.