Professional Documents
Culture Documents
1487
I. INTRODUCTION
fault simulation in a pipelined manner. Also, some algorithms [6], [10][12] using a zero-delay model along with
some efficient techniques have successfully handled very large
sequential circuits. On the other hand, a special purpose
hardware accelerator for fault simulation [4] has also been
devised and implemented in a board that plugs into a SUN
workstation. In [1], a concurrent fault simulation algorithm is
partitioned into pipeline stages. Each part is performed by a
processing element controlled by a dedicated microprogram.
This approach, requiring a large number of memory chips,
achieves an order of magnitude run-time speed up over a
conventional software fault simulator. However, the above
approaches, either software or hardware, are still inefficient
for handling large sequential designs.
Logic emulation systems [4], [19] are now commercially
available for fast prototyping, real-time operation, and logic
verification. A logic emulator consists of both hardware and
software. It can automatically implement the function of a
gate-level design on a board composed of dozens of field
programmable gate array (FPGA) chips. Even larger emulator
can be built by integrating several FPGA boards. The software
aided implementation process can be divided into two phases,
circuit compilation and bitstream downloading as shown in
Fig. 1. The circuit compilation process maps the given gatelevel netlist into the FPGA-based format. It involves circuit
partitioning, placement and routing for FPGAs. The output of the compilation process is a bitstream representing
the configuration for target implementation. The bitstream
is then downloaded into the FPGA-boards by programming
each lookup table (LUT) that defines the function of each
configurable logic block (CLB), and the routing switch that
defines the interconnection between CLBs. After the bitstream
downloading is completed, the system is ready for emulation. Usually a hardware emulation engine is used to assist
the emulation process. Given a set of test vectors and its
correct responses, the emulation engine handles the process
of applying the test vectors, collecting the output responses,
and checking if any mismatch occurs between the output
responses and the prestored correct responses. One test vector
is emulated for each clock cycle. A state-of-the-art logic
emulator can implement a logic design with up to three-million
gates and operate at a speed of 100 KHz to several MHz
[23]. Accordingly, it can emulate 100 K to several million
test vectors per second, which is about 10 0001 million times
faster than the traditional software simulators.
A number of methods have been proposed to use a logic
emulation system for fault grading. Wieler et al. [21] proposed
1488
IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, VOL. 18, NO. 10, OCTOBER 1999
(a)
1489
(b)
Fig. 3. Static fault injection by changing the netlist of a CLB. The netlist
(a) before fault injection and (b) after fault injection.
(a)
(b)
Fig. 4. Illustration of the independent fault set. (a) Independent fault set and
(b) dependent faults.
1490
IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, VOL. 18, NO. 10, OCTOBER 1999
(a)
(b)
Fig. 5. Dynamic fault injection by adding extra circuitry. (a) A portion of an original circuit mapped into FPGAs and (b) dynamic faults, signal a
s.a.1 and signal g s.a.0, are injected by G1 and G2 :
1491
(a)
(b)
Fig. 6. Mapping only four-input function to each CLB for dynamic fault injection. (a) A fault-free CLB regardless of the value of x and (b) a CLB
with a dynamic fault (activated as x
1).
Fig. 7. The fixed layout of the fault activation signals generated by a CSR.
(Only the interconnections needed for dynamic fault injections are shown.)
THE
1492
IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, VOL. 18, NO. 10, OCTOBER 1999
(a)
(b)
(a)
(b)
Fig. 10. Verification of the AND cell of the dual-railed logic. (a) Original
cell operation and (b) dual-railed cell operation.
(a)
(b)
Fig. 11. A primitive inverting gate for handling 3-valued logic using
dual-railed signals. (a) Original cell and (b) the cell implemented in hardware
emulator.
1493
TABLE III
THE PERCENTAGE OF THE POTENTIALLY DETECTED FAULTS
Fig. 12.
TABLE IV
THE AREA OVERHEAD OF USING DUAL-RAILED LOGIC
TABLE II
THE EXTRA NUMBER OF CLBS FOR DYNAMIC FAULT INJECTION
1494
IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, VOL. 18, NO. 10, OCTOBER 1999
emulation time)
where
is the implementation time of the original faultfree design. Consider a sample circuit with 100 K gates, 100 K
collapsed faults, and a test sequence with 50 K input patterns.
0.05)
55 K s,
The second term becomes 100 K (0.5
about 14.5 h without fault dropping. Now if we incorporate
both techniques mentioned above, the fault emulation time
can be expressed as
Time (fault emulation)
min
min.
VI. CONCLUSION
Fault simulation for large sequential circuits remains a
very time-consuming task. With the increasing performance
of field-programmable gate-array and logic emulation technology, a hardware fault emulation system has become not only
feasible but also very efficient as compared with the existing software-based or hardware-accelerator-based approaches.
This paper addresses the issues of realizing a fault emulator
based on an existing logic emulation system. In addition to
a primitive scenario of serial fault emulation, two techniques
are proposed to further speed up the process. The concept
of the independent fault set is exploited to allow parallel
fault emulation, while the dynamic fault injection using extra
circuitry attempts to break the performance bottleneck, i.e.,
the reconfiguration time. The experimental results show that
the overhead of our conservative policy of four-input CLB
realization for dynamic fault injection is modest. Meanwhile,
the issue of incorporating the unknown logic value in the
emulator is addressed. A dual-railed logic is used to augment
our emulator with the ability to simulate the unknown logic
value and, thus, to differentiate the hard detected faults from
those potentially detected faults. It is worth mentioning that
the use of the dual-railed logic is not always necessary: 1) For
circuits with a reset state, there will be no potentially detected
faults assuming that the reset hardware is fault-free. 2) For
synchronous circuits, the percentage of the potentially detected
faults is usually very low. The performance estimation of the
proposed emulation scheme shows that this novel approach
could improve the performance of fault grading significantly.
REFERENCES
[1] P. Agrawal, V. D. Agrawal, and K.-T. Cheng, Fault simulation in a
pipelined multiprocessor system, in Proc. Int. Test Conf., Aug. 1989,
pp. 727734.
[2] L. Burgun, F. Reblewski, G. Fenelon, J. Barbier, and O. Lepape, Serial
fault simulation, in Proc. Design Automation Conf., June 1996, pp.
801806.
[3] M. Abramovici, M. A. Breuer and A. D. Friedman, Digital Systems
Testing and Testable Design. Piscataway, NJ: IEEE Press, 1990.
[4] M. Butts, J. Batcheller, and J. Varghese, An efficient logic emulation
system, in Proc. Int. Conf. Computer Design (ICCD-92), Oct. 1992,
pp. 138141.
[5] P. A. Duba, R. K. Roy, J. A. Abraham, and W. A. Rogers, Fault simulation in a distributed environment, in Proc. 25th Design Automation
Conf., June 1988, pp. 686691.
[6] N. Gouders and R. Kaibel, PARIS: A parallel pattern fault simulator
for synchronous sequential circuits, in Proc. Int. Conf. Computer-AidedDesign, Nov. 1991, pp. 542545.
[7] F. Hirose, M. Ishii, J. Niitsuma, T. Shindo, N. Kawato, H. Hamamura,
K. Uchida, and H. Yamada, Simulating processor SP, in Proc. Int.
Conf. Computer-Aided Design, Nov. 1987, pp. 484487.
[8] F. Hirose, K. Takayama, and N. Kawato, A method to generate tests for
combinational logic circuits using an ultra high-speed logic simulator,
in Proc. Int. Test Conf., 1988, pp. 102107.
[9] V. S. Iyengar and D. T. Tang, On simulation faults in parallel, in
Dig. Papers 18th Int. Symp. Fault-Tolerant Computing, June 1988, pp.
110115.
[10] D. H. Lee and S. M. Reddy, On efficient simulation for synchronous
sequential circuits, in Proc. 29th Design Automation Conf., June 1992,
pp. 327331.
[11] H. K. Lee and D. S. Ha, HOPE: An efficient parallel fault simulator
for synchronous sequential circuits, in Proc. 29th Design Automation
Conf., June 1992, pp. 336340.
, New methods of improving parallel fault simulation in
[12]
synchronous sequential circuits, in Proc. Int. Conf. Conputer-AidedDesign, Nov. 1993, pp. 1017.
[13] C. Y. Lo, H. N. Nham, and A. K. Bose, Algorithms for an advanced
fault simulation system in motis, IEEE Trans. Computer-Aided Design,
vol. CAD-6, pp. 232240, Mar. 1987.
[14] R. Murgai, N. Shenoy R. K. Brayton, and A. Sagiovanni-Vincentelli,
Improved logic synthesis algorithms for table look up architecture, in
Proc. Int. Conf. Computer-Aided Design, Nov. 1991, pp. 564567.
1495
Kwang-Ting (Tim) Cheng (S88M88SM98), for a photograph and biography, see p. 1352 of the September 1999 issue of this TRANSACTIONS.
Shi-Yu Huang, for a photograph and biography, see p. 1352 of the September
1999 issue of this TRANSACTIONS.