Professional Documents
Culture Documents
Microelectronics Reliability
journal homepage: www.elsevier.com/locate/microrel
A Built-In Self-Test (BIST) system with non-intrusive TPG and ORA for FPGA test
and diagnosis
Aiwu Ruan , Shi Kang, Yu Wang, Xiao Han, Zujian Zhu, Yongbo Liao, Peng Li
State Key Laboratory of Electronic Films and Integrated Devices, University of Electronic Science and Technology of China, Chengdu 610054, China
a r t i c l e
i n f o
Article history:
Received 8 September 2011
Received in revised form 11 September 2012
Accepted 11 September 2012
Available online 23 October 2012
a b s t r a c t
This paper presents a BIST system with non-intrusive test pattern generator (TPG) and output response
analyzer (ORA) for eld-programmable gate array (FPGA) test and diagnosis. The proposed BIST system
physically consists of software and hardware parts with two communication channels in between. The
TPG and ORA of the BIST circuitry are in the software part while a circuit under test (CUT) is in the hardware part, respectively. One more FPGA is incorporated in the hardware part to act as an interface
between the TPG, ORA and the CUT. Algorithms for FPGA test and diagnosis are also presented. Compared
with embedded BIST technique, conguration numbers can be reduced without exchanging the TPG, ORA
for the CUT when the proposed BIST system is applied to test an FPGA. Also, the proposed BIST system can
provide good observability and controllability for the FPGA-under-test due to the proposed algorithms
developed for test and diagnosis. No matter what type and array size of an FPGA-under-test is, the
CUT can be tested by the proposed BIST system. The BIST system is evaluated by testing several Xilinx
series FPGAs, and experimental results are provided.
2012 Elsevier Ltd. All rights reserved.
1. Introduction
An FPGA is composed of a large amount of repeated and regular
congurable logic blocks (CLBs), interconnect resources (IRs), and
input/output blocks (IOBs), each of which incorporates logic gates,
D ip-ops (D-FFs) and control units. FPGAs have increasingly
played an important role in modern electronic industry due to
their recongurability, exibility, low development cost, and reduced time-to-market, since they were introduced by Philips in
the early 1970s. Applications for FPGAs are diversied, e.g. communications, storage systems, adaptive computing, etc.
Thanks to shrinking_size of transistors fabricated by nanoCMOS manufacturing process, more and more complicated structures of FPGAs can be implemented. As a result, more and more
Abbreviations: BIST, Built-In Self-Test; CLB, congurable logic block; CUT, circuit
under test; D-FF, D ip-op; EDA, electronic design automation; FPGA, eldprogrammable gate array; IOB, input/output block; IR, interconnect resource; ISE,
integrated software environment; JTAG, joint test action group; LUT, look-up table;
MVP, module verication platform; ORA, output response analyzer; PCIE, peripheral
component interface express; PIP, programmable-interconnect-point; RTL, register
transfer level; SM, switch matrix; SPI, software procedural interface; STAR, selftesting area; TC, test conguration; TPG, test pattern generator; TR, test response;
TV, test vector; XOR, exclusive or; XNOR, exclusive nor; Verilog HDL, Verilog
hardware description language; VHDL, very-high-speed integrated circuit hardware
description language; VPI, Verilog hdl procedural interface.
Corresponding author.
E-mail address: ruanaiwu@uestc.edu.cn (A. Ruan).
0026-2714/$ - see front matter 2012 Elsevier Ltd. All rights reserved.
http://dx.doi.org/10.1016/j.microrel.2012.09.013
functions can be realized by FPGAs. However, several types of defects can be introduced by the manufacturing process, such as
stuck-at faults, delay faults, etc. A study showed that FPGAs at
and beyond the 45 nm technology node have low yield [1]. FPGAs
have high density of transistors and interconnect wires. Hence,
after FPGAs have been fabricated, they are tested extensively to
nd faulty ones from the batch.
The idea of BIST was rst proposed around 1980s and has become one of the most important testing techniques at the current
time, as well as for the future. The basic idea of BIST is to design a
circuit which can test itself and determine whether it is faulty or
fault-free. This typically requires that additional circuitry and functionality are incorporated into the design of the circuit to facilitate
the self-testing feature. This additional functionality is implemented by a TPG and an ORA. A sequence of patterns for testing
a CUT is produced by the TPG, while the ORA determines whether
the output responses are corresponding to those of a fault-free circuit [2].
From the perspective of whether the TPG and ORA are embedded in the FPGA-under-test or not, BIST techniques for FPGA test
are categorized into intrusive BIST [312,15] and non-intrusive
BIST approaches [16]. Usually the terminology of embedded BIST
can substitute for that of intrusive BIST. In the area of FPGA test,
the embedded BIST approach has been increasingly applied to
FPGA test in recent years. The embedded BIST method includes
conguring one part of the FPGA to undergo testing, conguring
the other parts to generate test vectors and analyze test results.
2. Background
In this section, we discuss why non-intrusive BIST approach is
used, as well as the previous work done with non-intrusive BIST
technique for FPGA test.
The term of non-intrusive BIST was rst proposed by Charles E.
Stroud in his book A Designers Guide to Built-In Self-Test [2]. In his
book, he mentioned When the TPG and ORA functions are
implemented using existing ip-ops and registers of the FPGAunder-test, the BIST architecture is generally referred to as embedded or intrusive. Therefore, non-intrusive BIST architectures refer
to the TPG and ORA functions NOT implemented by existing ipops and registers of the FPGA-under-test. Rather, the TPG and
ORA functions are carried out by some resources external from
the FPGA-under-test, i.e. an FPGA [16].
The intrusive BIST technique is now increasingly applied to
FPGA test and diagnosis [312,15]. This is primarily due to the
reprogrammable characteristic of FPGAs. As a result, no area overhead and delay penalties are incurred. Despite these advantages,
489
490
config 1
Enable Disable
TC
TC
Enable
TV
config 2
Disable Clear
TV ORA
ORA
config 3
491
492
Software side
Hardware side
CUT
Channel_1
Channel_2
discussed in the paper while the last two resources tests are
ignored since their test approaches are straightforward and
detailed information can be found in [13]. These algorithms as well
as fault types will be introduced in the section with the proof of
their effectiveness provided in Section 4.3.
4.2.1. Fault types
The CLB and IOB Faults in this paper are classied into the following categories:
Stuck-at fault on Look-up Tables (LUTs).
Functional faults on D-FFs in a CLB/IOB, except the clock and
reset function.
The IR faults in this paper can be categorized into two groups,
namely, stuck-at and bridging faults. A stuck-at fault appears in a
pass transistor of a switch matrix (SM), while a bridging fault occurs on different wire segments.
4.2.2. IOB test and diagnosis
Each D-FF of N IOBs is congured as a shift register and all D-FFs
are connected to form a shift register chain. N denotes the number
of IOBs. Since each series FPGA has similar IOB architecture, IOB
congurations as well as the algorithm of test and diagnosis are
alike. For example, six, ve and six congurations are required
for IOB test and diagnosis in XC4000, Virtex and Virtex-2 FPGAs,
493
494
Fig. 8. A repeatable building block with three basic types of test conguration and fault mapping method.
the library. After the SMs are initialized, TVs are applied to
i1, . . . , in, j1, . . . , jnrespectively. Output responses of the two LUTs
in repeatable building blocks are TR1 and TR2.
A TCld conguration for IR test and diagnosis in an FPGA-undertest is displayed in Fig. 9. The conguration structure is based on
repeatable building blocks. As shown in Fig. 9, the conguration is
implemented in every other row to avoid fault masking. Consequently, two congurations, TCld_1 and TCld_2, are required for the
TCld structure. Altogether, six congurations are needed for IR test
and diagnosis. On the other hand, the output of each LUT in each
repeatable building block is controlled by an enabling signal En of a
tri-state buffer. Put another way, the output of an LUT is independent
on other outputs of LUTs. Thus, fault masking will not be introduced.
Pseudo code for IR test and diagnosis ow is illustrated in Fig. 10.
495
496
Table 1
Experimental results of Xilinx XC4010FPGA.
Table 4
Library of IR fault types.
Resources of FPGA
CLB
IOB
IR
Faults type
TR1
TR2
Conguration numbers
Conguration time
Test application time
2 or 4
1.5 s 2 or 4
0.45 2 or 4
6
1.5 s 6
0.45 6
6
1.5 s 6
0.45 6
Fault-free
A1 stuck-at-1
A1, A4 stuck-at-1
A2 stuck-at-0
A2, A3 stuck-at-0
A1, A2 bridging
00111000011000101101
01110000110001111111
01111000110011000000
00110011011011111111
10101001000011111111
01100100110011111111
00000011111000101101
01110000110111100111
01111000110000001100
00110011011111101111
10101001000111101111
01100100110111101111
Table 2
Experimental results of Xilinx XCV300 FPGA.
Resources of FPGA
CLB
IOB
IR
Conguration numbers
Conguration time
Test application time
2 or 4
11.5 s 2 or 4
0.93 2 or 4
5
11.5 s 5
0.93 5
14
11.5 s 14
0.93 14
Table 3
Experimental results of Xilinx XC2V1000 FPGA.
Resources of FPGA
CLB
IOB
IR
Conguration numbers
Conguration time
Test application time
2 or 4
25 s 2 or 4
2.1 2 or 4
6
25 s 6
2.1 6
32
25 s 32
2.1 32
Fig. 11. TVs for IR test and diagnosis generated by the TPG.
Since every member of each Xilinx series FPGAs shares the same
internal architecture with varying numbers of CLB and IOB as discussed in Section 4.2, numbers of test conguration for every
member of the series FPGAs are identical. The only difference between different series FPGAs lies in varying conguration numbers
with small modication of algorithms for FPGA test and diagnosis.
That is why IOB and CLB conguration numbers do not vary as
shown in Tables 13. On the other hand, IR architecture including
PIPs and types of wire segments is more and more complicated in
the new generation of FPGAs. Luckily, the concept of repeatable
building block and fault mapping method introduced in Section 4.2.4 are still applicable for the new generation of FPGA test
and diagnosis. When an FPGA is under test, these repeatable building blocks share no other than TVs. Thus, conguration numbers of
an FPGA-under-test have nothing to do with the array size of an
FPGA. Instead, conguration numbers are dependent on the input
terminal numbers of PIPs as well as types of wire segments. For
example, the input terminal numbers for a PIP for the case of
XC4000, Virtex and Virtex-2 FPGAs are 3, 5, 24, respectively. Then,
the minimum conguration numbers for the three types of FPGAs
are 3, 5, 24, respectively. In fact, practical conguration numbers
will be larger than the numbers considering PIP types.
Observability
Controllability
Conguration
numbers
[10]
[11]
[16]
[21]
This work
2 N M or
4NM
(CLB)
120 (CLB & IR)
20 (IR)
Shown in
Tables 13
497
The test time is dened as the time required to carry out the
test to completion, which includes the time required to set
up the test congurations plus the time required to apply
the TVs. The test times for three FPGAs are listed in Tables
13, respectively. The conguration time is relevant to size
of conguration bitstream, while the test application time
is subject to the length of TVs. The conguration le for
XC4010, XCV300 and XC2V1000 is 240 Kbit, 1.75 Mbit and
four Mbit, respectively.
(3) Comparisons: Comparisons between the proposed BIST system and some previous works are listed in Table 5. None of
the previous works can simultaneously provide good
observability and controllability, as well as derive conguration numbers independent on type, array size of an FPGAunder-test. Our proposed system along with corresponding
algorithms can offer these capabilities.
5. Conclusion
This paper has proposed a BIST system with non-intrusive TPG
and ORA for FPGA test and diagnosis. The proposed BIST system is
generic and can be applied to Xilinx Virtex series FPGAs test, Xilinx
Spartan FPGAs test as well as Altera FPGAs test with small modications. The further investigation will be presented in the future.
The proposed BIST system can provide good observability and controllability for an FPGA-under-test. No matter what type, array size
of an FPGA-under-test is, the CUT can be tested automatically, and
repeatedly. Experimental results also veried that conguration
numbers are reduced compared with embedded BIST techniques.
References
[1] Campregher N, Cheung YK, Vasilko M. Analysis of yield loss due to random
photolithographic defects in the interconnect structure of FPGAs. In: ACM
international workshop on FPGAs 2005; p. 13848.
[2] Stroud C. A designers guide to built-in self-test. Kluwer Academic Publisher;
2002.
[3] Stroud C, Konala S, Chen P, Abramovici M. Built-in self-test of logic of blocks in
FPGAs. In: Proceedings of VLSI test symposium; 1996. p. 38792.
[4] Stroud C, Wijesuriya S, Hamilton C. Built-in self-test of FPGA interconnect. In:
Proceedings of test conference; 1998. p. 40411.
[5] Abramovici M, Stroud C, Skaggs B, Emmert J. Improving on-line BIST-based
diagnosis for roving STARs. In: Proceedings of on-line testing workshop; 2000.
p. 319.
[6] Bradley D, Stroud C. Built-in self-test of congurable logic blocks in virtex-5
FPGAs. In: Proceedings of 41st Southeastern symposium on system theory;
2009. p. 2304.
[7] Girard P, Heron O, Pravossoudovitch S, Renovell M. BIST of delay faults in the
logic architecture of symmetrical FPGAs. In: Proceedings of the 10th IEEE
international on-line testing, symposium; 2004. p. 18792.
[8] Wang CC, Liou JJ, Peng YL, Huang CT, Wu CW. A BIST scheme for FPGA
interconnect delay faults. In: Proceedings of the 23th IEEE VLSI test,
symposium; 2005. p. 2016.
[9] Dutt S. Mixed PLB, and interconnect BIST for FPGAs without fault-free
assumptions. In: Proceedings of the 24th IEEE VLSI test, symposium; 2006. p.
3643.
[10] Dutt S, Verma V, Suthar V. Built-in self-test of FPGAs with provable
diagnosabilities and high diagnostic coverage with application to online
testing. IEEE Trans Comput-Aided Des Integr Circ Syst 2008:30926.
[11] Hsu CL, Chen TH. Built-in self-test design for fault detection and fault diagnosis
in SRAM-based FPGA. In: Proceedings of instrumentation and Measurement;
2009. p. 230015.
[12] Kumar TN, Chong CW. An automated approach for locating multiple faulty
LUTs in an FPGA. Microelectron Reliab 2008;8(1112):19006.
[13] Sun XJ, Xu J, Trouborst P. Testing carry logic modules of SRAM-based FPGAs. In:
IEEE international workshop on memory technology, design and Testing;
2001. p. 918.
[14] Renovell M, Figueras J, Zorian Y. Test of RAM-based FPGA: methodology and
application to the interconnect. In: 15th IEEE VLSI test, symposium; 1997. p.
2307.
[15] Suthar V, Dutt S. Efcient on-line interconnect testing in FPGAs with provable
detectability for multiple faults. Des Autom Test Europe 2006:16.
[16] Gardel A, Bravo I, Lazaro JL, Perez B, Balinas J, Hernandez A. Verication of
FPGA internal resources. In: Proceedings of IEEE international intelligent signal
processing, symposium; 2009. p. 13741.
[17] Grahm PS. Logic hardware debuggers for FPGA-based systems. Ph.D. thesis.
Brigham Young University; 2001.
498
[18] Liao YB, Li P, Ruan AW, Li W, Li WC. Full coverage manufacturing testing for
SRAM-based FPGA. In: Proceedings of the 12th IEEE international symposium
on integrated circuits; 2009. p. 47881.
[19] Liao YB, Ruan AW, et al. Interconnect resources testing and faults diagnosis in
eld programmable gate arrays. In: Proceedings of the 10th international
conference on electronic measurement & instruments; 2011. p. 1859.
[20] Liao YB, Li P, Ruan AW, Li W, Li WC. Test scheme for wide edge decoder in
F.P.G.A. Chin J Sci Instrum 2010;31(7):163843 [In Chinese].
[21] Sun XL, Trouborst P. A unied global and local interconnect test scheme for
Xilinx XC4000 FPGAs. IEEE Trans Instrum Meas 2004;53(2):36877.