|

BACKGROUND OF THE INVENTION
1. Field Of The Invention
This invention relates to an apparatus and method for testing electronic circuits and, more specifically, to an apparatus and method for testing application specific integrated circuits.
2. Description Of Related Art
An application specific integrated circuit (ASIC) requires the same number of test vectors to verify correct operation as an entire circuit board comprised of smaller scale integrated circuits. However, unlike a circuit board, no probing is possible within an ASIC. This becomes a problem because it is a great advantage to a circuit board designer to verify the operation of an ASIC prior to its insertion in a board.
Integrated circuits are typically subjected to functional testing in which input signals are provided to all of the input terminals of the integrated circuit. In such functional testing, the output signals on the output terminals are observed in order to verify the proper functioning of the integrated circuit. Such functional testing is generally done utilizing complicated and complex test devices which are very expensive. Some of the test devices even require specific environmental controls be placed on the ASIC.
At present, testers are available specifically for testing ASICs. Such testers require special adapters and are oftentimes package specific. Moreover, such testers rely on complex circuitry and are thus expensive. Many small companies cannot afford such expensive testers. In many cases, these testers offer extra tests which are not required for the specific ASIC which is being tested. Consequently, there is a need for a low cost ASCI tester which is affordable to small companies.
SUMMARY OF THE INVENTION
A low cost ASIC tester is provided which is based itself on ASIC technology. The ASIC tester is a single board into which a device under test (DUT), such as an ASIC, is inserted. The tester includes a microprocessor and a test vector RAM bank that is equal in bit width as the input/output pin count of the DUT. The RAM bank holds all vector information for the DUT input/output pins. In addition, the tester board contains a number of tester ASICs placed between the test vector RAM and the DUT. These tester ASICs are configurable with respect to the particular DUT to control the direction of the data lines and to compare the results of the DUT with preloaded RAM data. In addition to testing a single DUT, the ASIC tester is able to compare the results from two different DUTs. This is useful in a reverse engineering application where a comparison between a developed product and its model is necessary.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a system block diagram of a presently preferred embodiment of the present invention.
FIG. 2 is a block diagram of an ASIC used in the presently preferred embodiment of the tester of the present invention.
FIG. 3 is a schematic representation of the Input/Output buffers and control circuitry of the tester ASIC devices.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
As shown in FIG. 1, ASIC test device 10 contains a microprocessor 12 which interfaces with a work station or personal computer 14. Although any microprocessor which possesses serial and parallel ports can be used in test device 10, the 68HC811 microprocessor is presently preferred because of its mix of serial and parallel ports, on-chip read only memory (ROM) and random access memory (RAM). Communication between host workstation 14 and microprocessor 12 is accomplished through the RS-232 interface.
Test device 10 also includes a test vector RAM bank 16. Test vector RAM bank 16 is equal in bit width to the input/output pin count of DUT 18. Test vector RAM bank 16 holds all vector information for the pins on DUT 18. Test device 10 also contains a number of tester ASICs 20 placed between test vector RAM bank 16 and DUT 18. Each tester ASIC 20 is configured with respect to the particular DUT 18 which it interfaces to control the direction of data lines and compare the results of DUT 18 to preloaded RAM data. Test device 10 can also compare the results from two DUTs 18 by using two tester ASICs 20.
For synchronous designs, and for loading results into registers, a clock 22 is provided in tester device 10. Clock 22 is fed into programmable delay line 24 so that the setup time for each DUT 18 may be altered. The on-chip clock 22 is used to load the RAM address that generates the vector data. This is accomplished by means of a counter 26 connected to clock 22 and a multiplexer 28 connected to counter 26 and microprocessor 12.
The configuration of tester ASIC 20 in test device 10 and any programmable DUT is performed by microprocessor 12 using data downloaded from host workstation 14 by means of the RS-232 interface. DUT 18 and tester ASIC 20 are configured by another serial port on microprocessor 12. As shown in FIGS. 1, 2, and 3, serial configuration data 30 is shifted into each tester ASIC 20 to load in internal serial in - parallel out shift register 32 with two bits dedicated to each input/output buffer 34 connected to DUT 18.
FIG. 3 shows the input/output buffer 34 of tester ASIC 20. As shown in FIG. 3, pad A is connected to latch 36 and pad B is connected to latch 38. Clock 40 and reset 42 are connected to both latch 36 and latch 38 to assist in the reconfiguration thereof. In operation, latch 36 maintains pad A in either a high or low state until activated by reset 42. Latch 38 operates in a similar manner with respect to pad B.
The resulting signal from latch 36 proceeds to AND gate 44 where it is processed with data 46. The resulting signal from the AND gate 44 is converted by inverter 48 with the resulting signal serving as the gate input to N-transistor 50.
In contrast to the output signal of latch 36, the output signal of latch 38 is introduced into OR-gate 52 with data 46 serving as the other OR-gate input. The output of OR-gate 52 is converted by inverter 54 with the resulting signal serving as the gate input to P-transistor 56. Transistors 50 and 56 are arranged such that the drains of transistors 50 and 56 are connected at junction 58.


By regulating pad A and pad B between a high and low state, transistors 50 and 56, respectively, can be turned on or off depending on the data 46 signal. Transistors 50 and 56 are operated to produce the desired direction of data flow inbetween IN port 60 and OUT port 62, thereby configuring input/output buffer 34. Pull-up resistor 64 is provided to create the tri-state portion of the configurable input/output buffer 34.
The two bits of configuration information from internal serial in - parallel out shift register 32 are used to program input/output buffers 34 in a variety of modes.
TABLE 1
______________________________________
PAD A PAD B DATA OUT
______________________________________
0 0 0 0
0 0 1 1R
0 1 0 TS
0 1 1 TS
1 0 0 0
1 0 1 1
1 1 0 1R
1 1 1 1
______________________________________
0 = LOW
1 = HIGH
TS = TRISTATE
1R = RESISTIVE HIGH
Table 1 shows that when pad A is low and pad B is high, the output of buffer 34 become tri-state, regardless of the state of the data lines. This allows external data to pass to the IN port 60 of buffer 34.
For buffer 34 to be configured as an output, pad A must be high and pad B must be low. In these situations, data 46 passes to the OUT port 62 of buffer 34.
Buffer 34 may be configured as a bidirectional pad with pad A low and pad B low. This bidirectional configuration is configured as an open drain output in which no output enable pin is required. In this configuration, a high on data 46 produces a resistive high on OUT port 62 which can be overriden by an external driver. The tri-state pad is configured identical to the bidirectional pad in all other respects. In the tester application, when a tri-state or bidirectional pin is required, a high will be placed in the test RAM in those cycles in which the pin is to be tri-stated. This provides a resistive high which can be driven low by the DUTs 18.
After buffers 34 have been configured, test vector information is downloaded from host workstation 14 to test device 10. This information is loaded into test vector RAM 16. Each memory location in RAM 16 contains one cycle of test data 66. Counter 26 provides the address for the RAM during the free running test. The RAM outputs are passed to tester device 10 to be used as DUT 18 inputs or to compare with DUT 18 outputs, depending on the configuration loaded for each tester ASIC 20 pin.
All the tester ASICs 20 on test device 10 are identical. FIG. 2 shows the circuitry in each tester ASIC 20. In addition to the control signals required for configuration, tester ASICs 20 have a set of input data lines to accept test data from the test vector RAM 16 and two identical sets of output data lines to interface with the two DUT 18 sockets. The dash lines in FIG. 2 denote that a plurality of input/output buffers 34 may be used in the design. The number of buffers 34 is dependent on the particular tester ASIC 20 used in the tester design. In the design of FIG. 2, the number of buffers 34 is shown to be 50, with 25 used for each DUT 18 socket. Each of the output data lines are set up in pairs. Each element of the pair is connected to the same pin of the different DUT 18. These tester ASIC 20 pins also provide an input to tester ASIC 20, regardless of the configuration of the input/output buffer 34. These inputs are fed into a comparator 68 to test the outputs of the DUTs 18. If a difference is encountered, the values of the pins are captured for status information and an interrupt 70 is generated to the microprocessor 12 for testing to be handled. To capture more than one event in error, a first-in-first-out (FIFO) register 72 can be used. The error circuitry is daisy-chained so all tester ASICs 20 act as one unit.
In an alternative embodiment to the described architecture, the serial interface may be replaced by a bus interface particular to the host computer 14. One example of this is the IBM AT BUS. The design is placed on a board that is inserted directly into the host computer 14 add-on board slot, with an external board to hold the DUT 18 connected to the first board by a cable. If desired, the on-board microprocessor could be eliminated, with control for the entire test handled by the CPU of the host computer 18.
Test device 10 provides a modular design which can be expanded to any size DUT 18 by adding RAM and tester ASICs 20. The expandability of test device 10 increases the flexibility of its use and provides a low cost alternative to existing expensive machines. Test device 10 allows testing of bidirectional pins of the DUT 18 without the need of vector software to create and provide direction control for each pin of the DUT 18. Moreover, test device 10 provides an ASIC test capability to a low cost personal computer.
Test device 10 provides a designer the ability to program input/output pads after an ASIC is fabricated. Test device 10 also allows a designer to compare two devices or to test a single device to a specified response using the same circuitry. In fact, test device 10 permits a DUT 18 to be tested using the same computer 14 on which it was designed.
By allowing a comparison of the outputs of two DUTs with the same pin out, test device 10 provides a useful tool in a reverse engineering situation. For example, if a design was originally implemented in a field programmable gate array for low cost prototyping, and subsequently ported to an ASIC for lower cost production quantities, the two devices can be placed on test device 10 and the outputs can be automatically compared.
In the foregoing specification certain preferred practices and embodiments of this invention have been set out, however, it will be understood that the invention may be otherwise embodied within the scope of the following claims.
|