A novel FPGA local interconnect test scheme and automatic TC derivation/generation

https://doi.org/10.1016/j.sysarc.2003.08.009Get rights and content

Abstract

This paper presents a novel local interconnect testing scheme for field programmable gate arrays (FPGAs). To maximize parallel testing, error-detecting code is used for testing one portion of interconnects and functional test of D latch for another in a test configuration (TC). A polynomial run time algorithm is introduced for deriving a minimal set of TCs. An in-house CAD tool is developed to automate the generation of device configurations from the set of TCs.

Introduction

Field programmable gate arrays (FPGAs) are increasingly used to implement logic functions that traditionally have been designed into application specific integrated circuit (ASIC) technologies. State-of-the-art FPGAs have reached unprecedented levels of complexity, containing millions of equivalent logic gates, high speed I/Os, and embedded microprocessors and random access memory (RAM) blocks. Highly integrated system-on-a-chip (SoC) designs now contain tens of embedded components, such as FPGAs and intellectual property (IP) cores. Such systems present great challenges to test professionals. Existing testing methodologies require significant enhancement. New test methods that support low-cost test development and high reliability solutions are in great demand. This paper addresses testing and test development issues of FPGAs.

An FPGA is comprised of an n×n array of configurable logic block (CLB) and interconnect resources. Local interconnects are associated with CLBs, including I/O pins of CLBs, wire segments and programmable switches (PSs) that bring signals into and out of CLBs. Wire segments and PSs in global interconnects form horizontal and vertical routing channels that connect signals between CLBs. In Xilinx FPGAs most of the programmability is concentrated in local interconnect resources. A complicating factor is that the integrity of local interconnects cannot be verified without accessing CLB logic. This paper extends the work by the same authors on testing global interconnects in [1] to verify the integrity of local interconnect resources.

Prior work on interconnect testing can be found in [1], [2], [3], [4], [5], [6], [13], [14], [15], [16], [17], [18], where component testing assumes direct I/O access to a device and the use of an external tester while built-in self-test (BIST) typically utilizes the JTAG port of a device and requires minimum control from the outside. In [2], [3], [4], [6], problems of component testing for interconnects are considered, where [2], [3], [4], [6], [13], [14], [17], [18] focus on global, local, and global and local interconnects respectively. In [4], global interconnects are programmed to form “global busses” and are tested using classical bus testing vectors externally applied to the device. Testing for local interconnects can only be performed by passing test signals through the CLBs. In [3], [6], n one-dimensional CLB arrays, each containing n CLBs, are used for an n×n FPGA. Multiple fault detection is not guaranteed in [6] due to the use of XOR trees and D flip-flop (DFF) chains to propagate the test outputs.

The first BIST proposal for testing interconnect resources is a comparison-based approach by Stroud et al. [5]. They configure a subset of wire segments and PSs to form two groups of wires under test (WUTs). The two WUTs receive identical test patterns from a group of CLBs configured as test pattern generators (TPGs), and are compared by a group of CLBs configured as an output response analyzer (ORA). This approach has good fault coverage for shorts/opens on wire segments and stuck-on/off faults in PSs. However, the ORAs fail to detect multiple faults that have identical faulty behavior in the two WUTs groups. In [1], a parity-based error control coding technique is proposed for global interconnect testing. It supports superior multi-fault coverage. This paper extends the work by the authors on global interconnect testing in [1] to test local interconnects. The global interconnect and switch matrices are homogeneous and the local interconnect and PSs are irregular. This makes it more challenging to configure the local interconnect into the proposed conceptual bus structure used in the global and local interconnect testing. An extra complicating factor is that the integrity of local interconnects cannot be verified without accessing CLB logic.

The main objective of this research is to develop a low cost and efficient test for FPGA local interconnect in component test and/or BIST applications. This paper addresses three inter-related issues on local interconnect testing: (a) the development of a novel test scheme for local interconnects; (b) the investigation of a computerized algorithm for deriving local interconnect TCs. We model local interconnects and their test requirements using adjacency graphs, study the characteristics of these graphs, and present a polynomial run time algorithm that derives a minimal set of TCs, each defining a subset of PSs under test in a basic tile [19]; (c) the development of an in-house computer-aided design tool, TCcompile, to automate the generation of device configurations (DCs). TCcompile takes in a set of TCs obtained in step (b) for a basic tile, makes use of the physical device information of the FPGA, and automatically generates a set of DCs to be used to program the physical device.

The proposed testing scheme supports both BIST and component test. The TC derivation and DC generation methods are applicable to FPGAs of various architectures and sizes. This paper is organized as follows. Section 2 gives the background preparation. Section 3 presents the proposed testing scheme and gives the proofs for fault detectability. Section 4 introduces the FPGA interconnect model and the algorithm for deriving minimal TCs, and reports on the experimental results. Section 5 discuses the automated DC development environment.

Section snippets

Background

An FPGA consists of an n×n array of basic tile. Fig. 1 shows the symbolic diagram of the basic tile in a Xilinx XC4000E FPGA. It consists of a configurable logic block (CLB), some horizontal and vertical wires (Hs and Vs), many programmable switches (PSs), and a switch matrix (SM).

There are three types of PSs: (1) a basic PS, denoted by a solid square, can be programmed to connect two intersecting wire segments, (2) an MUX PS, shown as a set of unidirectional triangles over a solid line,

Proposed test strategy

The proposed local interconnect test strategy extends the work by the authors on global interconnects testing in [1] to test local interconnect resources. In [1], global interconnects are tested by configuring global wires (Hs and Vs) and PSs in SMs to form long busses, then verifying their integrity using a parity-based coding scheme. The formation of the global busses does not use any CLB resources. Local interconnects, on the other hand, can only be tested indirectly by applying tests to the

The TC derivation

This section presents a heuristic method for deriving minimal (or near minimal) local interconnect TCs. The test scheme proposed in Section 3 is a divide-and-conquer strategy that utilizes the m×m array architecture of the FPGA and the global bus structure in [1]. For the purpose of finding test solutions, we first model local interconnects and their test requirements in a basic tile of the FPGA. We also model the global interconnects in the tile (although in the context of this paper we don't

Automating DC generation

A TC derived by LIC defines the use of specific PSs, wire segments, and CLB functions for testing purposes within a basic tile. The implementation of a TC is to generate a device configuration (DC) that is used to program a physical FPGA according to the proposed test architecture. In our case, we configure all the basic tiles under test into an identical TC. An FPGA in a device family has tens of dedicated TCs, thus, tens of DCs, and each FPGA in a family varies in shapes and sizes, requiring

Conclusion

This paper presents a novel testing scheme for local interconnects of field programmable gate arrays (FPGAs). It is fully compatible with the global interconnect testing scheme we discussed in [1]. The proposed test scheme uses global interconnects to carry test signals to individual tiles, and test local interconnects by configuring CLBs associated with the local interconnect under test to form the local test circuitry. To maximize parallel testing and minimize the number of TCs, local

Acknowledgements

The authors would like to thank Mr. J. Xu for his initial investigation on the proposed local test scheme, and Mr. A. Alimohammad for his involvement in this project.

Xiaoling Sun is an Associate Professor at the Department of Electrical and Computer Engineering, University of Alberta, Canada. She obtained her M.Sc. from Concordia University, Montreal, Canada, and Ph.D. from University of Victoria, Victoria, Canada, both in Computer Science, in 1988 and 1993 respectively. She is a Visiting Professor at Nortel Networks from July 1998 to June 1999. She is the Program Chair of the 18th IEEE International Symposium on Defect and Fault Tolerance in VLSI Systems

References (21)

  • X. Sun, J. Xu, B. Chan, P. Trouborst, Novel technique for built-in self-test of FPGA interconnects, in: Proceedings of...
  • F. Lombardi, D. Ashen, X. Chen, W.K. Huang, Diagnosing programmable interconnect systems for FPGAs, in: Proceedings of...
  • H. Michinishi, T. Yokohira, T. Okamoto, A test methodology for interconnect structures of LUT-based FPGAs, in:...
  • M. Renovell et al.

    Testing the interconnect of RAM-based FPGAs

    IEEE Design and Test of Computers

    (1998)
  • C. Stroud, S. Wijesuriya, C. Hamilton, M. Abramovici, Built-in self-test of FPGA interconnect, in: Proceedings of IEEE...
  • M. Renovell et al.

    Testing the local interconnect resources of SRAM-based FPGAs

    Journal of Electronic Testing: Theory and Application

    (2000)
  • Xilinx Inc. The Programmable Logic Data Book,...
  • M. Abramovici et al.

    Digital Systems Testing and Testable Design

    (1990)
  • Y.L. Yu, J. Xu, W.K. Huang, F. Lombardi, A diagnosis method for interconnects in SRAM Based FPGAs, in: Proceedings of...
  • S. Baase

    Computer Algorithms, Introduction to Design and Analysis

    (1993)
There are more references available in the full text version of this article.

Cited by (5)

Xiaoling Sun is an Associate Professor at the Department of Electrical and Computer Engineering, University of Alberta, Canada. She obtained her M.Sc. from Concordia University, Montreal, Canada, and Ph.D. from University of Victoria, Victoria, Canada, both in Computer Science, in 1988 and 1993 respectively. She is a Visiting Professor at Nortel Networks from July 1998 to June 1999. She is the Program Chair of the 18th IEEE International Symposium on Defect and Fault Tolerance in VLSI Systems (DFT'03) and the General Chair of DFT'04. Her main research interests include built-in self-test (BIST), testing and fault diagnosis algorithms, design for testability (DFT), FPGA testing, memory testing.

Kevin Ogden is studying Computer Engineering at the University of Alberta. He has worked as a research student for Dr. Xiaoling Sun developing and implementing circuit testing algorithms. His interests include computational complexity, optimization problems and computer graphics.

Horace Chan is working toward his B.Sc. in Computer Engineering at the Department of Electrical and Computer Engineering, University of Alberta. He has worked as a research assistant for Dr. X. Sun in the VLSI Design and Testing Lab, University of Alberta, developing computer algorithms and in-house CAD tools. He is currently doing a cooperative education work term at Research in Motion, Waterloo, Ontario, Canada.

Pieter Trouborst received the M.S. degree in Electrical Engineering from Delft University of Technology in 1974, and the Ph.D. degree in Electrical Engineering from the Eindhoven University of Technology in 1981. From 1981 to 1983 he was a consultant with the Medical Systems Division of Philips, Eindhoven, The Netherlands. At Nortel Networks, Ottawa, ON, Canada, from 1983 to 2002 he was responsible for digital simulation and for design-for-test research and development. In 2003 he joined LogicVision, Ottawa, ON, Canada.

This work was supported by research grants from the Natural Sciences and Engineering Research Council of Canada (NSERC) and Nortel Networks, and by equipment loans from the Canadian Microelectronics Corporation.

1

Now with LogicVision (Canada) Inc.

View full text