Background of the Invention
1. Field of the Invention
The present invention lies in the field of semiconductor memory devices and, more specifically, pertains to improved methods and apparatus for built-in self test of such devices.
2. Description of the Prior Art
As semiconductor memory manufacturing techniques advance and ever greater density is achieved, it is now common to see complete memory systems contained in a single integrated circuit chip. As DRAM densities increase, testing such circuits is increasingly challenging due to the large number of memory cells and multiple memory blocks within a single chip. Testing time is critically important, and testing techniques are limited by available chip area and pin limitations.
Generally, two methods for testing a packaged RAM are distinguished by the place where a test pattern is generated. One method uses external test equipment and the other is by a built-in self test (BIST) circuit, i.e. on-board the memory IC. The test method using external test equipment has an advantage in that it is easy to test the RAMs by using various patterns. The test equipment can be programmed as desired. However, in order for the test equipment to interface to an address data input, a data output and control signals of each block of RAM during a test mode of operations, all ports of the RAMs must be connected to a pin which is accessible by the test equipment, and accordingly overhead is incurred in routing and the use of the pins. Alternatively, the pins can be multiplexed with respect to the RAM blocks, but since the RAM blocks then cannot be simultaneously tested, the test time increases.
In the test method using the BIST circuit, if a BIST mode is set from the exterior, the BIST circuit is activated and the RAMs are tested by applying a predetermined test pattern. The test result indicates whether or not an error was produced. Since the number of external connections needed for such testing is minimized, the RAM blocks can be simultaneously tested and therefore test time is reduced. However, since a test circuit for generating the test pattern is added on-board the IC, chip area overhead is incurred and the test pattern is fixed. What is needed, therefore, is improved self-test methods and apparatus for providing rapid functional testing of multiple blocks of RAM while minimizing chip area and pin count.
Summary of the Invention
It is an object of the present invention to provide a semiconductor memory device with a built-in self test (BIST) circuit to simultaneously test multiple blocks of RAM. One aspect of the invention is minimization of interconnection costs by sharing one BIST controller yet providing for testing a plurality of RAM blocks. Another feature of the invention accomodates concurrent testing of memory blocks of different sizes. This feature helps to reduce routing overhead as well as test time.
According to one aspect of the present invention, a semiconductor memory device with a built-in self test (BIST) circuit includes a plurality of memory blocks, which can be of different sizes (e.g. numbers of words). Each memory block has associated selectors for selecting an address, a control signal and input data source. The selectors operate in response to a normal mode or a test mode of operation as indicated by a BIST mode signal. Each memory block (or "RAM Block") includes an associated background generator to provide test data to be written in the corresponding memory block and to provide comparison data for comparison to data read from the RAM Block. The background generator variously provides test data in response to a background number (BGN), and can invert the test data responsive to an invert control signal INV.sub.-- BG. The background generator provides test data having the appropriate number of bits (word size) for the corresponding RAM block. Each RAM Block further includes a comparator for comparing data read from the memory block with the comparing data in response to the BIST mode signal and for generating a comparative result. Combinatorial logic combines the outputs of the plurality of comparators and generates an overall error signal if any block fails.
A single test controller provides the testing for all of the blocks concurrently. The controller includes a test enable generator for supplying a test enable control signal to each of the plurality of selectors. The test controller further includes counters for supplying a data background number and an output inversion control signal to the plurality of background generators. The controller further includes a control signal generator that provides a done signal, a test write enable signal, a background invert control signal, and a compare control signal to the plurality of comparators in proper sequence so as to test the multiple RAM blocks simultaneously as further explained below.
Brief Description of the Drawings
FIG. 1 is a block diagram of a semiconductor memory device with a built-in self test circuit according to the present invention; and
FIG. 2 is a diagram illustrating a single order addressing (SOA) algorithm executed in a cycle controller shown in FIG. 1.
Detailed Description of Preferred Embodiment
Referring to FIG. 1, a semiconductor memory device with a BIST circuit 100 includes a plurality of memory blocks R1, R2 and R3. Each memory block, or RAM Block, includes a set of selectors labeled MUX1, MUX2 and MUX3 respectively. In each block, each selector selects one of two inputs, for selecting an address ("A"), control signals ("OEN, WEN" etc.) and data ("DI") in response to a normal mode or a test mode as indicated by the BIST mode signal BIST.sub.-- MODE which is externally applied as illustrated. Each memory block further includes a corresponding background generator--BG1, BG2 and BG3--for providing data to be written in each memory block and to provide comparison data. Each background generator provides test data for the corresponding memory block in response to a common background number BGN. For example:
Each memory block further includes a corresponding comparator--COMP1, COMP2 and COMP3--for comparing data read from the memory block with the comparing data provided by the corresponding background generator in response to the BIST mode signal BIST.sub.-- MODE and for generating a comparative result E1, E2 and E3 respectively. An OR logic gate G1 for ORing test error signals E1-E3 provides an overall test result signal ERROR, which is asserted true if any of the individual memory block error signals indicates an error.
The memory includes a test controller 100 for supplying test addresses tA5 and tA8 and a control signal tWEN to the selectors MUX1, MUX2 and MUX3, for supplying a background number BGN and an output inversion control signal INV.sub.-- BG to the background generators BG1, BG2 and BG3, and for supplying a comparing control signal COMPARE to the comparators COMP1, COMP2 and COMP3. The memory blocks R1, R2 and R3 may have different sizes from one another and share the single controller 100, thereby minimizing interconnection costs.
The controller 100 for achieving a SOA (single order addressing) algorithm includes a first up counter 10 "STAGE" for counting stages from 0 to 3, a second up counter 20 "AP" as an address pointer for counting a test address, a third up counter 25 "ABP" for counting an address background number (pointer), and a fourth up counter 30 for counting a data background number "DBP".
A cycle controller 40 generates a test operation cycle by performing the SOA algorithm while communicating with the first to fourth up counters 10 to 30. A control signal generator 50 generates a test end signal DONE, the test write control signal tWEN, the background control signal INV.sub.-- GB and the comparing control signal COMPARE. These control signals are generated in response to stage information from the first up counter 10, address background information of the third up counter 25 and an output of the cycle controller 40. Details of control signal logic are further described below.
The test circuit 100 further includes a test enable generator 70 for generating test enable signals TEN1, TEN2 and TEN3 of the memory blocks by combining the address pointer information of the second up counter 20 and outputs of the cycle controller 40, the third up counter 25 and the fourth up counter 30.
If the number of the memory blocks is N, and if the number of bits of an address line of each memory block is Ri (where 1.ltoreq.i.ltoreq.N), we can define the following quantities:
Then, the control signals of the control signal generator 50, that is, the test end signal DONE, the test write control signal tWEN, the background control signal INV.sub.-- BG and the comparing control signal COMPARE are defined as follows:
The test enable signal TEN(i) maintains an active state while the address pointer value AP is smaller than the last address value LastAddress(Ri) of the corresponding memory block; the address background value ABP is smaller than the corresponding address background size ABGSize(Ri); and the data background value DBP is smaller than the corresponding data background size DBGSize(Ri); otherwise it has an inactive state.
Thus in boolean logic form: ##EQU1##
The test address signal is connected only by the size of an address line of the RAM among address pointer signals, and an address has only an incremental variation. In other words, only the applicable address lines are connected to each RAM block, depending on its size. The address pointer AP provides adequate address lines for the largest RAM block. For the smaller RAM blocks, only selected address lines need be connected. For example, if the largest block, say R1 requires 8 address lines, then AP provides 8 bits of addressing on tA8. If another, smaller block R2 requires only 5 bits, then only five of the address lines, say AP4:0! are connected to R2 input "A".
As indicated in FIG. 2, the cycle controller 40 includes an initialization cycle for initializing values of the first to fourth counters 10, 20, 25, 30; a read cycle for reading test data M(tA) from the memory block and for comparing the read data with data to be compared; a write cycle for writing the test data in the background generators, a cycle stage for performing only the read and write operation at stages 0 and 3, a stage increment cycle inc.sub.-- stage, address and data background number increment cycles inc.sub.-- adb and inc.sub.-- dbg, and a final cycle.
Each background generator BGi generates the comparing data in response to the background control signal INV.sub.-- BG and the background number BGN of the fourth counter 30.
Each comparator COMPi compares data generated from the corresponding memory block Ri with data generated from the corresponding background generator BGi and generates the test error signal of the corresponding memory block in response to the comparing control signal COMPARE.
To further illustrate operation of the addressing according to the invention, an address background number is provided by the ABP counter 25. The address background number is log.sub.2 N+1 where N is the required number of address lines.
For example, the above table illustrates operation for an 8.times.1 RAM block. As described above, since one controller is shared to test a plurality of RAMs having various sizes, interconnection costs can be minimized.
Having described and illustrated the principles of the invention in a preferred embodiment thereof, it should be apparent that the invention can be modified in arrangement and detail without departing from such principles. I claim all modifications and variations coming within the spirit and scope of the following claims.