In block 106, the output pattern read from the memory circuit is compared with a corresponding expected pattern. The comparing provides a fault indication FI when the output pattern differs from the corresponding expected pattern. The corresponding expected pattern is a pattern identical to the test pattern written at the memory location from which the output pattern was read. In an example, the corresponding expected pattern is a subsequently-generated pattern identical to the test pattern that was written.
Concurrently, in block 108, a diagnostic pattern corresponding to the output pattern is temporarily stored such that diagnostic patterns corresponding to no more than a most-recently read subset of the output patterns are stored. The most-recently read subset of the output patterns is composed of the output patterns read from fewer than all memory locations in the memory device.
In one embodiment, the output pattern read from the memory location is stored as the diagnostic pattern. In another embodiment, a difference pattern representing a difference between the output pattern read from the memory location and the corresponding expected pattern is stored as the diagnostic pattern. A diagnostic pattern consisting of an output pattern or a diagnostic pattern consisting of a difference pattern that represents the difference between an output pattern and a corresponding expected pattern will be regarded as a diagnostic pattern corresponding to the output pattern. In both embodiments, the output pattern is the output pattern read from the memory location in block 104.
In block 112, a test is performed to determine whether the fault indication exists. A YES result in block 112 causes execution to advance to block 114, where at least some of the stored diagnostic patterns are output. A NO result in block 112 causes execution to return to block 104, where normal BIST operation continues.
In an embodiment of method 100, in block 104, the BIST generates a single test pattern, writes such test pattern at a single memory location in the memory device and reads a respective output pattern from such single memory location. The BIST additionally generates the test pattern anew as the corresponding expected pattern for comparison with the output pattern in block 106. Alternatively, the BIST may store the original test pattern and output the stored test pattern as the corresponding expected pattern for comparison with the output pattern in block 106.
In another embodiment, the BIST generates a single test pattern, writes such test pattern at multiple memory locations in the memory device and sequentially reads respective output patterns from the memory locations at which the test pattern was written. The BIST repetitively generates the test pattern anew as the corresponding expected pattern for comparison with the output patterns in block 106. Alternatively, the BIST may store the original test pattern and repetitively output the stored test pattern as corresponding expected patterns for comparison with the output patterns in block 106.
In yet another embodiment, the BIST generates multiple test patterns, writes such test patterns at multiple memory locations in the memory device and sequentially reads respective output patterns from the memory locations at which the test patterns were written. The BIST additionally generates the multiple test patterns anew as corresponding expected patterns for comparison with the output patterns in block 106. Alternatively, the BIST may store the original test patterns and output the stored test patterns as corresponding expected patterns for comparison with the output patterns in block 106.
Other writing and reading schemes are possible as long as the output pattern read from each memory location is compared with its corresponding expected pattern and a diagnostic pattern corresponding to the output pattern read from the memory location is temporarily stored. The diagnostic pattern is stored such that diagnostic patterns corresponding to no more than a most-recently read subset of the output patterns are stored, as described above.
A memory device under test that performs an embodiment of method 100 is typically tested by connecting it to automatic test equipment (ATE). The ATE initializes the BIST controller in the memory device under test, determines whether the memory device under test has passed or failed the testing and receives the stored diagnostic patterns output in block 114.
Unlike the conventional test process described above with reference to
As noted above, in block 108, the diagnostic pattern is temporarily stored such that diagnostic patterns corresponding to a most-recently read subset of the output patterns are stored. The number of output patterns in the most-recently read subset of the output patterns is small compared with the total number of output patterns read during testing of the memory device under test. Consequently, the number of diagnostic patterns stored in block 106 is relatively small, so that storage for the diagnostic patterns can be provided in the memory device under test without significantly increasing the cost and complexity of the memory device.
An output pattern read in block 104 that differs from its corresponding expected pattern is a fault-indicating output pattern and causes a fault indication to be provided in block 106. As noted above, a finite output time is needed before a fault-indicating diagnostic pattern corresponding to the fault-indicating output pattern can be output in block 114. Consequently, the fault-indicating diagnostic pattern is stored in block 108 until it can be output in block 114. The most-recently read subset of the output patterns is composed of the output patterns read during the output time. As will be described in more detail below, storage is provided in the memory device sufficient to accommodate all the diagnostic patterns corresponding to the most-recently read subset of the output patterns without overwriting or otherwise destroying the stored fault-indicating diagnostic pattern.
The flow chart shown in
In the example of method 100 shown in
A memory device under test that performs an embodiment of method 100 is typically connected to automatic test equipment (ATE). The ATE initializes a BIST controller at least at the start of testing, determines whether the memory device under test has passed or failed the testing and receives the stored diagnostic patterns output in block 114. ATE that tests more than one memory device under test at a time typically suspends its normal testing operations only with respect to the memory device under test from which the diagnostic patterns are output in block 114: testing operations performed on the remaining memory devices under test continue uninterrupted.
Embodiments of method 100 that output the stored diagnostic patterns to a non-deterministic ATE as described above additionally comprise block 122 in which the ATE is set to receive the stored diagnostic patterns output in block 114. In an embodiment, the fault indication generated in block 106 is provided to the ATE in block 122. The fault indication indicates to the ATE that a fault has been detected and that stored diagnostic patterns are available for output.
The ATE periodically checks whether the fault indication exists and executes a diagnostic information receiving routine when it determines that the fault indication exists. In another embodiment, the fault indication provided to the ATE in block 122 operates as an interrupt that immediately causes the ATE to suspend its normal testing operations and execute a diagnostic information receiving routine in which it receives the diagnostic patterns output in block 114. Additional handshaking operations between the memory device and the ATE may be performed in connection with the execution of block 122. Such handshaking operations typically involve the ATE indicating that it is ready to receive the stored diagnostic patterns, and an indication to the ATE that all the stored diagnostic patterns have been downloaded. Such handshaking may take a non-trivial time.
Method 100 is performed by a diagnostic information collector built into the memory device under test. Examples of such diagnostic information collector will be described below with reference to
The example of BIST 216 shown in
During in-service operation of memory device 210, multiplexers 34, 36 and 38 connect the functional data input FD, the functional address input FA and the functional control input FC, respectively, of memory device 210 to the data input (DATA), address input (ADR) and control input (CTRL), respectively, of memory circuit 14.
BIST 216 additionally comprises a BIST controller 226 that communicates with ATE 212 via control port 35, control port 39 and control path 37. BIST controller 226 generates control signals that control the operation of pattern generator 20, address generator 24, control signal generator 28, multiplexers 34, 36 and 38, and diagnostic information collector 220. During testing of memory device 210, the control signals output by BIST controller 226 cause multiplexers 34, 36 and 38 to connect the outputs of pattern generator 20, address generator 24, control signal generator 28, respectively, to the data input (DATA), address input (ADR) and control input (CTRL), respectively, of memory circuit 14. Control signals output by BIST controller 226 additionally cause pattern generator 20, address generator 24, control signal generator 28 to generate the test patterns and expected patterns, the addresses and the WRITE and READ commands, respectively, used to test memory circuit 14. Additionally, BIST controller 226 exchanges control signals with the control port 39 of ATE 212 via control port 35 and control path 37.
Diagnostic information collector 220 has an expected pattern input 237 and an output pattern input 239. Output pattern input 239 is connected to the read output (RO) of memory circuit 14 to receive the output patterns read from the memory locations of memory circuit 14 defined by the addresses generated by address generator 24 and in response to the control signals generated by control signal generator 28. Expected pattern input 237 is connected to the output of pattern generator 20 to receive a corresponding expected pattern corresponding to each output pattern received at output pattern input 239. As indicated above, each expected pattern is identical to the test pattern written at the memory location of memory circuit 14 from which the output pattern was read.
Diagnostic information collector 220 additionally has a fault indication output 234, a control port 232, a diagnostic pattern output 227 and a test result output 31. Fault indication output 234 is internally coupled to a fault indication input 233 of BIST controller 226. Control port 232 is internally coupled to a control port 231 of BIST controller 226.
Diagnostic information collector 220 includes the above-mentioned test result output 31 and generates a test result that is output at test result output 31 to provide compatibility with conventional memory test routines executed by ATE 212. Test result output 31 and its associated difference accumulator 222 (described below with reference to
Diagnostic information collector 220 stores diagnostic patterns corresponding to the output patterns read from memory circuit 14. In one embodiment, the diagnostic information collector stores the output patterns received from memory circuit 14 at output pattern input 239 as corresponding diagnostic patterns. In another embodiment, the diagnostic information collector stores difference patterns representing respective differences between the output patterns received from memory circuit 14 at output pattern input 239 and the corresponding expected patterns received at expected pattern input 237 as corresponding diagnostic patterns.
Diagnostic information collector 220 additionally compares each output pattern with its corresponding expected pattern to detect any difference between the output pattern and its corresponding expected pattern. A difference between the output pattern and its corresponding expected pattern causes diagnostic information collector 220 to provide a fault indication at fault indication output 234. Otherwise, diagnostic information collector 220 provides no fault indication at fault indication output 234.
ATE 212 initiates testing memory device under test 210 by providing a start testing command to BIST controller 226 via control path 37. During operation of BIST 216 to test memory device under test 210, control signal generator 28 generates a control signal that sets memory circuit 14 to its write mode, address generator 24 generates an address signal that defines a memory location in memory circuit 14 and pattern generator 20 generates a test pattern that is written at the memory location in memory circuit 14. In response to further control signals provided by BIST controller 226, address generator 24 generates an address signal that again defines the memory location in memory circuit 14 at which the test pattern was written, control signal generator 28 generates a control signal that sets memory circuit 14 to its read mode, and memory circuit 14 reads a respective output pattern from the memory location defined by the address signal. The output pattern is input to diagnostic information collector 220 at output pattern input 239. Additionally, pattern generator 20 generates an expected pattern identical to the test pattern that was written at the memory location and outputs the expected pattern as the expected pattern corresponding to the output pattern to the expected pattern input 237 of diagnostic information collector 220.
Diagnostic information collector 220 temporarily stores a diagnostic pattern corresponding to the output pattern such that the diagnostic patterns corresponding to no more than a most-recently read subset of output patterns are stored. The most-recently read subset of output patterns is composed of output patterns read from fewer than all the memory locations in memory device 210, i.e., in memory circuit 14. In one embodiment, the output pattern received at output pattern input 239 is stored as the diagnostic pattern corresponding to the output pattern. In another embodiment, the difference pattern representing the difference between the output pattern received at output pattern input 239 and the corresponding expected pattern received at expected pattern input 237 is stored as the corresponding diagnostic pattern corresponding to the output pattern. No difference, as occurs when the output pattern and its corresponding expected pattern are identical, is regarded herein as being a special case of a difference.
In the event that storage for the diagnostic patterns within diagnostic information collector 220 becomes full, the diagnostic information collector provides a control signal at control port 232. Received at the control port 231 of BIST controller 226, the control signal instructs BIST controller 226 to command BIST 216 to suspend its normal testing operations until the stored diagnostic patterns can be output.
Diagnostic information collector 220 additionally compares the output pattern read from the memory location and received at output pattern input 239 with the corresponding expected pattern received at expected pattern input 237, and provides fault indication FI at fault indication output 234 when the output pattern differs from the corresponding expected pattern.
Finally, diagnostic information collector 220 generates a cumulative difference that, at the end of the test sequence performed by BIST 226, it outputs at a test result output 31 as the test result for memory device under test 210.
ATE 212 has a test result input 33, a control port 39, diagnostic information input 229 and a fault indication input 236. A test result path 32 connects test result input 33 to the test result output 31 of diagnostic information collector 220. The test result path and the test result input may be omitted in an embodiment of ATE 212 capable of determining a test result for memory device under test 210 instead receiving a test result from the memory device under test.
A control path 37 connects control port 39 to a control port 35 of BIST controller 226. BIST controller 226 controls the operation of BIST 216 in response to control signals provided by ATE 212 via control path 37 and additionally provides status information to ATE 212 via control path 37. A diagnostic pattern path 228 connects diagnostic pattern input 229 to the diagnostic pattern output 227 of diagnostic information collector 220. A fault indication path 235 connects fault indication input 236 to the fault indication output 234 of diagnostic information collector 220.
In response to fault indication FI, diagnostic information collector 220 outputs at least some of the stored diagnostic patterns to ATE 212. Diagnostic information collector 220 outputs the diagnostic patterns at diagnostic pattern output 227 connected by diagnostic pattern output path 228 to the diagnostic pattern input 229 of ATE 212. In an embodiment, fault indication FI provided at fault indication output 234 of diagnostic information collector 220 is received by ATE 212 and BIST controller 226. Fault indication FI provided at fault indication output 234 indicates to ATE 212 that a fault has been detected. In response to this indication ATE 212 sets itself to a state in which it can receive the output diagnostic patterns, and provides a ready signal to BIST controller 226 via control path 37. In response to fault indication FI and the ready signal, BIST controller 226 provides a control signal at control port 231. Such control signal is received at the control port 232 of diagnostic information collector 220 and causes diagnostic information collector 220 to output the stored diagnostic patterns.
The diagnostic patterns output to ATE 212 provide diagnostic information relating to memory device 210. Specifically, the diagnostic patterns indicate the nature of the failure, e.g., the erroneous output pattern, but as described above, do not identify the location of the failure, i.e., the address of the faulty memory location. Location information can be provided in two ways. First, during testing of memory device 210, BIST controller 226 keeps track of the memory location under test. Consequently, as part of the process of receiving the diagnostic patterns, the ATE can provide control signals via control path 37 to cause BIST controller 226 to output via control path 37 the address of the current memory location as the location information. This way of providing location information requires that no storage be provided in diagnostic information collector 220 for the location information, but requires that BIST 216 suspend its normal testing operations immediately in response to fault indication FI.
In a second way of providing location information, diagnostic information collector 220 has an additional input (not shown) connected to the output of address generator 24 to receive the address of the memory location from which the output pattern received at output pattern input 239 was read. In such an embodiment, each diagnostic pattern is composed of the diagnostic pattern as described above, i.e., the output pattern or the difference pattern, concatenated with the respective address received from address generator 24. The address that forms part of each diagnostic pattern provides the location information that allows the defective memory location to be identified. This way of providing location information requires that diagnostic information collector 220 provide storage for the location information that additionally constitutes part of the stored diagnostic patterns, but does not require that BIST 216 suspend its normal testing operations in response to fault indication FI.
Comparator 242 has an expected pattern input, an output pattern input 238, a difference pattern output 245 and a fault indication output. The expected pattern input and fault indication output of comparator 242 provide the expected pattern input 237 and fault indication output 234, respectively, of diagnostic information collector 240. Output pattern input 238 is connected to the output pattern input 239 of diagnostic information collector 240.
Referring additionally to
The difference pattern generated by comparator 242 provides a bit-by-bit indication of the modulus of any difference between the output pattern and the corresponding expected pattern. Typically, the output pattern is identical to the corresponding expected pattern. In this case, the comparison performed by comparator 242 provides the fault indication signal in a state that provides no fault indication, and the difference pattern output by comparator 242 has a logical zero in every bit position. When the output pattern differs from the corresponding expected pattern, the comparison performed by comparator 242 generates the fault indication signal in a state that provides fault indication FI. Additionally, the difference pattern output by comparator 242 has a logical one at each bit position at which the output pattern differs from the corresponding expected pattern and has a logical zero at each remaining bit position. The logical ones and logical zeroes may be interchanged.
Difference accumulator 222 has a difference pattern input 221 and a test result output. Difference pattern input 221 is connected to the difference pattern output 245 of comparator 242. The test result output of difference accumulator 222 provides the test result output 31 of diagnostic information collector 240. In operation, difference accumulator accumulates the difference patterns output by comparator 242 so that at the end of the test sequence performed by BIST 216, the test result output 31 of the difference accumulator has a logical one at every bit position at which one of the output patterns has differed from its corresponding expected pattern.
As noted above, difference accumulator 222, test result output 31 and the difference pattern output 245 of comparator 242 may be omitted from diagnostic information collector 240 in versions of memory device 210 intended for testing by an embodiment of ATE 212 capable of determining a test result for the memory device under test instead of receiving a test result from the memory device under test.
Buffer 244 has a control port, a diagnostic pattern input 247 and a diagnostic pattern output. The control port and diagnostic pattern output of buffer 244 provide the control port 232 and diagnostic pattern output 227 of diagnostic information collector 240. In the example shown in
An embodiment of buffer 244 that additionally stores a respective address as part of each diagnostic pattern additionally has an address input (not shown) connected to the output of address generator 24. The width of such an embodiment of buffer 244 is greater than that of an embodiment in which the diagnostic patterns lack respective addresses. The increase in width is equal to the width of the addresses.
In operation, the example of buffer 244 shown in
In an embodiment, either or both of comparator 242 and buffer 244 comprises additional logic (not shown) controlled by BIST controller 226. Such additional logic ensures that comparator 242 can generate a fault indication and a difference pattern and that buffer 244 can store a difference pattern only when BIST controller 226 is in a compare state.
Buffer 244 stores each newly-received diagnostic pattern in such a way that the newly-received diagnostic pattern replaces the oldest diagnostic pattern stored in the buffer. Typical replacement methods include overwriting the oldest diagnostic pattern stored in the buffer with the newly-received diagnostic pattern and shifting the oldest diagnostic pattern out of the buffer as the newly-received diagnostic pattern is shifted into the buffer. By replacing the oldest diagnostic pattern with the newly-received diagnostic pattern, buffer 244 always temporarily stores the diagnostic patterns corresponding to the N most-recently performed read operations, where N is less than the total number of read operations needed to read all of the memory locations in memory circuit 14. By storing only the diagnostic patterns corresponding to the output patterns read in what is typically a small subset of the total number of read operations performed to read all the memory locations in memory circuit 14, the size of buffer 244 can be relatively small. Minimizing the size of buffer 244 is highly desirable to minimize the cost of incorporating diagnostic information collector 220 in memory device 210. However, the number of diagnostic patterns stored in buffer 244 must be sufficient to ensure that, when comparator 242 provides fault indication FI, the fault-indicating diagnostic pattern corresponding to the fault-indicating output pattern that caused comparator 242 to provide fault indication FI has not been replaced by a diagnostic pattern subsequently stored in buffer 244, as discussed above. The number of diagnostic patterns stored depends in part on whether and how BIST 216 suspends its normal testing operations in response to fault indication FI.
In other embodiments, the diagnostic patterns are successively presented to the diagnostic pattern input 247 of buffer 244 but buffer 244 does not store them. Only when fault indication FI is additionally provided to buffer 244 does the buffer store the diagnostic patterns received at diagnostic pattern input 247.
The structure and operation of comparator 242, buffer 244 and difference accumulator 222 are identical to those of the corresponding elements of diagnostic information collector 240 described above with reference to
In the example shown, the output pattern read from memory circuit 14 and the corresponding expected pattern generated by pattern generator 20 are each N-bit quantities.
Comparator 252 is composed of N two-input exclusive-OR (XOR) gates 71 and an N-input OR gate 250. A respective conductor (not shown) of an expected pattern bus 251 connects one input of each XOR-gate 71 to expected pattern input 237. A respective conductor (not shown) of an output pattern bus 253 connects the other input of each XOR-gate 71 to output pattern input 239. A respective conductor (not shown) of a difference pattern bus 255 connects the output of each XOR gate 71 to difference pattern output 245. The output of each XOR gate 71 is additionally connected to a respective input of OR gate 250. The output of OR gate 250 provides the fault indication output 234 of diagnostic information collector 220.
The output of each XOR gates 71 provides a respective bit D1, D2, . . . , DN of a difference pattern D that represents the modulus of the difference between each bit of the output pattern received at output pattern input 239 and the corresponding bit of the corresponding expected pattern received at expected pattern input 237. Difference pattern bus 255 connects each difference pattern collectively generated by XOR gates 71 to difference pattern output 245.
Each XOR gate 71 receives at its inputs a respective bit (e.g., bit OP1) of the output pattern and the corresponding bit (e.g., bit EP1) of the corresponding expected pattern. Typically, each bit of the output pattern is identical to the corresponding bit of the corresponding expected pattern so that the output of each XOR gate 71 is in a logical 0 state. OR gate 250 receives the outputs of the XOR gates each in a logical 0 state and, in response, outputs the fault indication signal in a logical 0 state that provides no fault indication.
A difference between any bit of the output pattern and the corresponding bit of the corresponding expected pattern sets the output of the respective XOR gate to a logical 1 state. The output of any one or more of the XOR gates 71 in a logical 1 state causes OR gate 250 to output the fault indication signal in a logical 1 state that provides fault indication FI.
Referring again to
In other embodiments, buffer 244 is embodied as random access memory (not shown) and a memory controller (not shown) that controls the operation of the random access memory. In one embodiment, during each read operation performed by BIST 216 on memory circuit 14, the memory controller performs simultaneous buffer-write operations on memory cells (not shown) in buffer 244 equal in number to the number of bits in each diagnostic pattern. Additionally, the memory controller increments the buffer write address in a round-robin pattern so that, in each buffer-write operation, the newly-written diagnostic pattern overwrites the oldest diagnostic pattern stored in the buffer. The number of memory cells constituting buffer 244 is at least that which allows a number of buffer-write operations equal to the maximum number of read operations that BIST 216 performs on memory circuit 14 between comparator 242 providing fault indication FI at fault indication output 234 and completion of the output process for the stored diagnostic patterns. This prevents a fault-indicating diagnostic pattern stored earlier in the testing from being overwritten by subsequently-stored diagnostic patterns. The size of buffer 244 may be reduced by causing BIST 216 to stop performing its normal testing operations when comparator 242 provides fault indication FI, or when the output process for the stored diagnostic patterns begins, as will be described below.
In response to a read instruction received from BIST controller 226 via control port 232, buffer 244 outputs its contents to diagnostic pattern output 227 for output to ATE 212 via diagnostic pattern output path 228. In some embodiments, buffer 244 incorporates a multiplexer (not shown) interposed between its memory elements (memory cells or shift registers) and diagnostic pattern output 227. Such multiplexer multiplexes the diagnostic patterns read from the memory elements in parallel to generate a serial bit stream. Outputting the diagnostic patterns serially allows diagnostic pattern output 227 and diagnostic pattern output path 228 each to be configured as single channel components.
In embodiments in which fault indication FI output at fault indication output 234 causes BIST 216 to stop performing its normal testing operations until the stored diagnostic patterns have been output, the depth of buffer 244 can be relatively small. In such embodiments, the structure of the conventional difference detector and accumulator (22 in
Comparator 263 is similar in structure to comparator 253 described above with reference to
In this example, N-input OR gate 250 is constructed by connecting N-1 of the two-input OR gates 73 that constitute part of conventional difference detector and accumulator 22 (
The outputs of the XOR gates 71 additionally collectively provide an internal difference pattern output 265 of comparator 263 that is connected to a diagnostic pattern input 267 of buffer 264.
In diagnostic information collector 260, buffer 264 is composed of the N flip-flops 75 that additionally constitute part of conventional difference detector and accumulator 22 (
In operation of diagnostic information collector 260, each XOR gate 71 receives at its inputs a respective bit (e.g., bit OP1) of the output pattern and the corresponding bit (e.g., bit EP1) of the corresponding expected pattern. Typically, each bit of the output pattern is identical to the corresponding bit of the corresponding expected pattern so that the output of each XOR gate 71 is in a logical 0 state. OR gate 250 receives the outputs of the XOR gates each in a logical 0 state and, in response, outputs the fault indication signal in a logical 0 state that provides no fault indication.
After each read operation performed by memory circuit 14, the difference pattern collectively provided at the outputs of XOR gates 71 is clocked into the respective flip-flops 75 constituting buffer 264. The Q-outputs of the flip-flops and, later, the difference pattern output as a diagnostic pattern at diagnostic pattern output 227, then match the states of the outputs of XOR gates 71.
A difference between any bit of the output pattern and the corresponding bit of the corresponding expected pattern sets the output of the respective XOR gate to a logical 1 state.
The output of any one or more of XOR gates 71 in the logical 1 state causes OR gate 250 to output the fault indication signal in a logical 1 state that provides fault indication FI. Fault indication FI causes BIST controller 226 to stop BIST 216 from performing further write and read operations on memory circuit 14 once the output states of the XOR gates 71 have been clocked into flip-flops 75.
Fault indication FI additionally causes ATE 212 to receive the diagnostic pattern from diagnostic pattern output 227. Once ATE 212 has received the diagnostic pattern, it indicates this to BIST controller 226 via control path 37 (
In the example shown in
When the difference patterns stored in buffer 264 are output in response to fault indication FI, the oldest diagnostic pattern is initially present at diagnostic pattern output 227. BIST controller 226 then clocks flip-flops 75 and 76 to output the next-oldest diagnostic pattern and repeats this process until all of the diagnostic patterns stored in buffer 264 have been output at diagnostic pattern output 227. Alternatively, fewer than all of the stored diagnostic patterns need be output. In an example in which BIST 216 executes one additional test cycle before it stops in response to fault indication FI, one additional flip-flop 76 is interposed between the output of XOR gate 71 and flip-flop 75, and BIST controller 226 need perform no additional clocking operations because the fault-indicating diagnostic pattern is the oldest diagnostic pattern stored in flip-flop 75.
In the example shown in
In another embodiment of diagnostic information collector 260, buffer 264 is configured to store more than one output pattern by interposing additional series-connected flip-flops between the respective conductor (not shown) of output pattern bus 253 and the D-input of flip-flop 75 in a manner similar to that described above with reference to
In the above-described examples, diagnostic pattern output 227 is a multi-channel output having one channel per bit of the stored diagnostic pattern. Since it is often desirable to minimize the number of communication channels between memory device 210 and ATE 212, a multiplexer (not shown) can be interposed between diagnostic pattern output bus 254 and the diagnostic pattern output 227 of memory device 210. The multiplexer has parallel inputs connected to respective conductors (not shown) of diagnostic pattern output bus 254 and a single output that provides diagnostic pattern output 227. The multiplexer receives the bits of the diagnostic pattern in parallel via diagnostic pattern output bus 254 and outputs the diagnostic pattern as a serial bit stream at diagnostic pattern output 227. ATE 212 typically incorporates a corresponding demultiplexer (not shown) connected to diagnostic pattern input 229. Alternatively, ATE 212 lacks such demultiplexer and instead handles the diagnostic patterns received at diagnostic pattern input 229 as a serial bit stream.
Alternatively, the buffer of diagnostic information collector 220 may be structured to output the stored diagnostic patterns as a serial bit stream.
The Q-output of the flip-flop 75 of channel CH1 only provides the diagnostic pattern output 227 of diagnostic information collector 270 and is connected to diagnostic pattern path 228. The other input of the controlled switch 77 of channel CHN that, in channels CH1−CHN-1, would be connected to the Q-output of flip-flop 75 in channels CH2−CHN, respectively, is connected to a logical 0 state. Alternatively, these connections may be interchanged so that the Q-output of the flip-flop 75 of channel CHN only provides the diagnostic pattern output 227 of diagnostic information collector 270 and the other input of the controlled switch 77 of channel CH1 is connected to a logical 0 state.
During operation of diagnostic information collector 270, BIST controller 226 provides switch control signal SC in a state that sets each controlled switch 77 to connect the D-input of flip-flop 75 to the output of XOR gate 71 in the same channel. In this state, diagnostic information collector 270 operates in a manner substantially similar to that of diagnostic information collector 260 described above with reference to
When comparator 253 detects a difference between an output pattern received at output pattern input 239 and the corresponding expected pattern received at expected pattern input 237, it provides fault indication FI. Fault indication FI inhibits further clocking of flip-flops 75 after the most-recently generated diagnostic pattern has been stored in buffer 274 so that buffer 274 stores the most-recently generated diagnostic pattern. The most-recently generated diagnostic pattern stored in buffer 274 is the difference pattern that caused comparator 253 to provide fault indication FI. In response to fault indication FI, BIST controller 226 instructs BIST 216 to suspend its normal testing operations and changes switch control signal SC to a state that sets the controlled switches 77 in channels CH1−CHN-1 to a state in which they connect the D-input of the flip-flops 75 in channels CH1−CHN-1 to the Q-output of the flip-flops 75 in channels CH2−CHN, respectively, and sets the controlled switch 77 in channel CHN to a state in which it connects the D-input of flip-flop 75 in channel CHN to a logical 0 state, as described above. In this state, controlled switches 77 collectively connect flip-flops 75 in series to form an N-stage shift register having an output connected to diagnostic pattern path 228. BIST controller 226 then provides a sequence of N clock pulses to flip-flops 75 to cause them to shift the diagnostic pattern stored therein towards diagnostic pattern output 227 one bit at a time. The diagnostic pattern is output from diagnostic pattern output 227 as a serial bit stream. Again, ATE 212 incorporates a corresponding demultiplexer (not shown) connected to diagnostic pattern input 229 or, more typically, handles the diagnostic pattern received at diagnostic pattern input 229 as a serial bit stream. The N clock pulses additionally shift logical 0s into the N-stage shift register. This resets the shift register, so that the Q-output of each flip-flop 75 is set to a logical 0. BIST controller 226 then restores switch control signal SC to its original state, which causes controlled switches 77 to return buffer 274 to its original configuration with the Q-outputs of all the flip-flops 75 set to logical 0.
In another embodiment of diagnostic information collector 270, buffer 274 is structured to store multiple difference patterns as respective diagnostic patterns and to output such diagnostic patterns as a serial bit stream by connecting one or more additional flip-flops in series with each flip-flop 75 in a manner similar to that described above with reference to
In another embodiment of diagnostic information collector 270, buffer 274 stores the output pattern as the diagnostic pattern. In such embodiment, one input of each controlled switch 77 is connected to the corresponding conductor (not shown) of output pattern bus 253 in a manner similar to that described above with reference to
In embodiments of diagnostic information collector 220 in which the temporarily-stored diagnostic patterns each include a respective address, buffer 264 described above with reference to
In the above examples, at least one diagnostic pattern is stored in a buffer located in memory device 210. However, the diagnostic patterns may alternatively be stored in the ATE.
Diagnostic information collector 280 provides the output patterns read from memory circuit 14 as respective diagnostic patterns, and is composed of comparator 242 and an optional difference accumulator 222, both described above with reference to
Diagnostic information collector 281 is similar in structure and operation to diagnostic information collector 280, except that the parallel input 283 of multiplexer 284 is connected to the difference pattern output 245 of comparator 242 instead of to the output pattern input 239. Multiplexer 284 converts each difference pattern it receives at parallel input 283 to a serial bit stream that it outputs at diagnostic pattern output 227.
In embodiments of system 200 in which diagnostic information collector 280 or diagnostic information collector 281 is used as diagnostic information collector 220, ATE 282 comprises a demultiplexer 286 and a buffer 288. Demultiplexer 286 has a serial input that provides the diagnostic pattern input 229 of ATE 282, and a parallel output 285. Buffer 288 has a parallel input 287 and a diagnostic pattern output 289. Parallel input 287 is connected to the parallel output 285 of demultiplexer 286. In response to the fault indication FI received at fault indication input 233, buffer 288 outputs via diagnostic pattern output 289 at least some of the diagnostic patterns stored therein to other parts (not shown) of ATE 282 for analysis and/or storage. Alternatively, a buffer capable of storing a serial bit stream may be used as buffer 288. In such an embodiment, demultiplexer 286 is omitted.
ATE 282 operates deterministically with respect to the diagnostic patterns received at diagnostic pattern input 229, i.e., in each test cycle, ATE receives at diagnostic pattern input 229 a serial bitstream representing a respective diagnostic pattern, demultiplexes the serial bitstream and stores the resulting diagnostic pattern in buffer 288 such that diagnostic patterns corresponding to no more than a most-recently read subset of output patterns are stored. The most-recently read subset consists of the output patterns read from fewer than all of the memory locations in memory device 210.
As in the above-described embodiments of ATE 212, ATE 282 operates non-deterministically with respect to fault indication FI. Fault indication FI, which can be provided at any point in the process of testing memory device under test 210, causes BIST 216 to suspend its normal testing operations, as described above, and additionally causes ATE 282 to perform an operation in which it outputs at least some of the diagnostic patterns stored in buffer 288 to other parts (not shown) of ATE 282 for analysis and/or storage. Once the diagnostic patterns are output from buffer 288, ATE 282 instructs BIST 216 via BIST controller 226 to resume its normal testing operations. The minimum number of diagnostic patterns that need be stored in buffer 288 and, hence, the minimum size of buffer 288, depends on the maximum number of output patterns BIST 216 reads from memory circuit 14 before it can suspend its normal testing operations in response to fault indication FI.
In embodiments of diagnostic information collector 220 in which the temporarily-stored diagnostic patterns each include a respective address, diagnostic information collector 280 described above with reference to
Execution begins at block 302. In block 304, BIST controller 226 is initialized. In block 306, a test pattern is written at a memory location in memory circuit 14. In block 308, a respective output pattern is read from the memory location in memory circuit 14. In block 310, the output pattern read from the memory location is compared with the corresponding expected pattern, i.e., a pattern identical to the test pattern that was written at the memory location in block 306. In block 312, a diagnostic pattern corresponding to the output pattern read in block 308 is temporarily stored. The diagnostic pattern corresponding to the output pattern read in block 308 is the output pattern itself or a difference pattern representing the difference between the output pattern read from the memory location in block 308 and the corresponding expected pattern. The diagnostic pattern may additionally comprise the address of the memory location from which the output pattern was read, as described above.
In block 314, a test is performed to determine whether the comparison performed in block 310 has provided a fault indication FI. A NO result causes execution to advance to block 326, which will be described below. A YES result causes execution to advance to block 316, where BIST 216 suspends its normal testing operations.
In block 318, fault indication FI is output to ATE 212. Fault indication FI indicates to ATE 212 that diagnostic patterns usable as diagnostic information are ready for output to the ATE.
In block 320, a test is performed to determine whether ATE 212 is ready to receive the stored diagnostic patterns. A NO result causes execution to return to block 320, typically via a delay (not shown). A YES result causes execution to advance to block 322.
In block 322, at least some of the temporarily stored diagnostic patterns are output to ATE 212.
Once the diagnostic pattern output process performed in block 322 is complete, execution advances to block 324, where BIST 216 resumes its normal testing operations.
Execution advances to block 326 directly from block 324 or as the result of a NO result in block 314. In block 326, a test is performed to determine whether BIST 216 has performed all the tests in the test sequence. A NO result in block 326 causes execution to return to block 306, where execution of the next test in the test sequence begins. A YES result in block 326 causes execution to advance to block 328.
In optional block 328, a test result for memory device under test 210 is output. Testing of memory device under test 210 then ends. Block 328 may be omitted in embodiments of method 300 performed using an embodiment of ATE 212 that can determine a test result for the memory device under test instead of receiving a test result from the memory device under test.
Blocks 302, 304, 306, 308, 310 and 312 are executed as described above with reference to
In block 352, a test is performed to determine whether a fault flag has been set. The fault flag being set indicates that, in a previous test cycle, the comparison performed in block 310 provided fault indication FI, but ATE 212 has not yet indicated its readiness to receive the stored diagnostic patterns. A NO result (no fault flag set) causes execution to advance to block 314, described next. A YES result causes execution to advance to block 360, which will be described below.
In block 314, a test is performed to determine whether the comparison performed in block 310 provided fault indication FI. A NO result causes execution to advance to block 326, which will be described below. A YES result causes execution to advance to block 356, which will be described next.
In block 356, the fault flag is set, and execution advances to block 318.
In block 318, fault indication FI is output to ATE 212. Fault indication FI indicates to ATE 212 that diagnostic patterns usable as diagnostic information are ready for output to the ATE. Execution then advances to block 360, which will be described next.
A YES result in block 352 (fault flag set) or execution of block 318 causes execution to advance to block 360. In block 360, a test is performed to determine whether ATE 212 is ready to receive the stored diagnostic patterns. A YES result in block 360 causes execution to advance to block 316, which will be described below. In one embodiment of method 350, a NO result in block 360 causes execution to advance directly to block 326, which will be described below. In the example of method 350 shown in
In block 370, a test is performed to determine whether storage is available to store an additional diagnostic pattern. In an example, a test is performed to determine whether storing such additional diagnostic pattern would overwrite the diagnostic pattern stored in block 310 when the comparison performed in block 312 provided fault indication FI. A YES result causes execution to advance to block 326, which will be described below. A NO result in block 370 causes execution to return to block 360, typically via a delay (not shown). This prevents an additional diagnostic pattern from being stored until storage is available.
Execution advances to block 316 as the result of a YES result in block 360. In block 316, BIST 216 suspends its normal testing operations.
In block 322, at least some of the stored diagnostic patterns are output to ATE 212.
Once the diagnostic pattern output process performed in block 322 is complete, execution advances to block 324, where BIST 216 resumes its normal testing operations. Execution then advances to block 326, which will be described next.
Execution advances to block 326 from block 324, as the result of a NO result in block 314 or as the result of a YES result in block 370. In block 326, a test is performed to determine whether BIST 216 has performed all the tests in the test sequence. A NO result causes execution to return to block 306, where execution of the next test is begun. A YES result causes execution to advance to block 328.
In optional block 328, a test result for memory device under test 210 is output. Testing of memory device under test 210 then ends. Block 328 may be omitted in embodiments of method 300 performed using an embodiment of ATE 212 that can determine a test result for the memory device under test instead receiving a test result from the memory device under test.
This disclosure describes the invention in detail using illustrative embodiments. However, the invention defined by the appended claims is not limited to the precise embodiments described.
This disclosure is related to the following U.S. patent applications filed on the filing date of this disclosure: Ser. No. ______ of Khoche et al. entitled Diagnostic Information Capture from Logic Devices with Built-in Self Test (Docket no. 10051609) and Ser. No. ______ of Khoche et al. entitled Automatic Test Equipment Receiving Diagnostic Information from Devices with Built-in Self Test (Docket no. 10060524). The above disclosures are assigned to the assignee of this disclosure and are incorporated herein by reference.