testing of memories that decode a serial stream of address data to access the memory may be performed by cither successively halving the number of selected word lines as each address bit is acquired, until a single word line is selected, or by rotating the selection bits in its shift register to select a new set of address lines. As such, a combination of incomplete addressing and rotation can efficiently test large memories by reading and/or writing groups of words. Similar techniques may also be applied to non-memory devices.
|
0. 18. A method of testing a memory, comprising:
(a) simultaneously writing into all of the words in the memory;
(b) simultaneously writing into half of the words in the memory;
(c) simultaneously reading half of the words in the memory; and
(d) simultaneously reading the words in the memory not read in (c).
1. A method of testing a memory, said memory addressed using a serial decoder, said method comprising:
(a) simultaneously writing into all of the words in said memory;
(b) simultaneously writing into half of said words in said memory;
(c) simultaneously reading half of said words in said memory; and
(d) simultaneously reading the words in said memory not read in (c).
8. A semiconductor component comprising:
one or more devices;
at least one test input; and
at least one test output;
wherein, in a first mode of said test input, said test output indicates if the voltage on a data input to the semiconductor component is between a first pair of predefined voltage limits, and in a second mode of said test input, said test output indicates if the voltage on said data input is not between a second pair of predefined voltage limits.
11. A structure for testing a plurality of functional blocks within an integrated circuit, said functional blocks comprising at least one enable input and at least one block test output, said test structure comprising:
output logic with a test output and a plurality of inputs coupled to at least one block test output of at least one of said functional blocks; and
a serial decoder with one or more word lines coupled to one or more of said enable inputs of said functional blocks;
wherein each of said block test outputs is to be enabled by at least one of said word lines.
0. 23. A method of isolating a single fault in a memory, said method comprising:
testing the memory, wherein said testing include:
(a) simultaneously writing into all of the words in the memory,
(b) simultaneously writing into half of the words in the memory,
(c) selecting another half of the words in the memory,
(d) simultaneously reading the selected words from the memory, and
(e) repeating steps (c) and (d) until all words in the memory have been read;
collecting faulty and good results from said testing the memory;
finding results that match the faulty and good results in a fault dictionary; and
retrieving an address of the single fault.
7. A method of isolating a single fault in a memory addressed using a serial decoder, said method comprising:
i) testing said memory, said testing method further comprising:
(a) simultaneously writing into all of the words in said memory,
(b) simultaneously writing into half of said words in said memory,
(c) selecting another half of said words in said memory,
(d) simultaneously reading said selected words from said memory, and
(e) repeating steps (c) and (d) until all words in said memory have been read;
ii) collecting faulty and good results from said testing said memory;
iii) finding results that match said faulty and good results in a fault dictionary; and
iv) retrieving the single fault address.
0. 15. An integrated circuit comprising
a memory; and
output logic coupled to the memory, wherein the output logic includes:
a test input line;
a test output line; and
a plurality of output logic blocks coupled to receive, in parallel, respective bits of a word from the memory;
wherein the test input line is coupled to the output logic blocks to indicate whether or not the output logic is in a test mode;
wherein, if the output logic is in the test mode, a respective one of the output logic blocks is configured to cause a value indicating a fault to be output on the test output line if the respective output logic block detects a fault;
wherein if the output logic is not in the test mode, a respective one of the output logic blocks is configured to cause a value indicating an invalid signal to be output on the test output line if the respective output logic block detects an invalid signal;
wherein the fault and the invalid signal correspond to different conditions.
2. The method as in
3. The method as in
4. The method as in
said words in (a) are selected by resetting said serial decoder;
said words in (b) are selected by partial addressing of said serial decoder;
said words in (c) are selected by rotating a decoded address within said serial decoder; and
said words in (d) are selected by resetting, partially addressing, and rotating a decoded address within said serial decoder.
5. The method as in
6. The method as in
9. The semiconductor component as in
10. The semiconductor component as in
12. The structure as in
13. The structure as in
14. The structure as in
0. 16. The integrated circuit of claim 15, wherein, the invalid signal, if the output logic is not in the test mode, corresponds to a voltage value on a respective data input line that falls within a predetermined range of voltage values lying between voltages values corresponding to logical zero and logical one.
0. 17. The integrated circuit of claim 15, wherein the fault, if the output logic is in test mode, corresponds to a voltage value on a respective data input line that falls outside a predetermined range of voltage values lying between voltage values corresponding to logical zero and logical one.
0. 19. The method of claim 18, wherein in (b), the half of the words in the memory correspond to either the even words in the memory or to the odd words in the memory.
0. 20. The method of claim 18, wherein half of the half of the words in the memory read in (c) are not in the set of the half of the words in the memory written in (b).
0. 21. The method of claim 18, wherein at least one said simultaneously reading includes simultaneously determining if voltage levels of all outputs of the words in the memory that are to be read are between two reference voltages.
0. 22. The method of claim 21, wherein the two reference voltages are determined by a state of a test input.
0. 24. The method as in claim 23, wherein in (b), the half of the words in the memory correspond to either the even words in the memory or to the odd words in the memory.
0. 25. The method as in claim 23, wherein:
the words in (a) are selected by resetting a serial decoder configured to address the memory; and
the words in (b) are selected by partial addressing of the serial decoder.
|
This application is a reissue application of U.S. Pat. No. 7,797,595, issued Sep. 14, 2010, which was based on U.S. patent application Ser. No. 12/141,284, filed on Jun. 18, 2008, the contents of which are incorporated herein by reference.
The present invention pertains to testing memories that decode a serial stream of address data to access the memories with either parallel or serial output. Other embodiments may apply similar techniques to the testing of devices other than memories.
Evans, in U.S. Pat. No. 5,996,097, granted Nov. 30, 1999, teaches a technique for efficiently testing a memory or an array of logic configured as an addressed array by simultaneously selecting all the addresses, simultaneously writing patterns into the selected memory or logic, and simultaneously reading and comparing each of the multiple results with the desired outcomes. Evans correctly points out that this technique can significantly reduce the test time required to test such a structure, which in turn would significantly reduce the cost of the product since the cost of testing a complex semiconductor product is a significant portion of the cost of producing such products. Still, selecting all of the address lines in a traditional memory is not desirable since different states must be stored into adjacent bits of the memory in order to test for shorts between the bits. Furthermore, Evans' approach requires comparison logic at each of the selected addresses to compare the results with the desired outcomes, which while readily available in a content addressable memory that Evans used as an example, it is not readily available in a standard memory.
This inventor has disclosed a serial decoding technique in US Published Application Number 2007/0050596, published on Mar. 1, 2007, that successively halves the number of selected word lines as each address bit is acquired until, on acquiring the last address bit, a single word line is selected. Because the structure is a circular shift register, at any point in this serial address generation cycle, the structure can alternatively rotate the selection bits in its shift register to select a new set of address lines. In that application the inventor also disclosed a way to improve the access of a memory with serial output when the last two possible values from the selected memory outputs contain the same data.
The serial shift register decoder as shown in
TABLE 1
Shift Bit #
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Polarity
−
+
+
+
+
−
+
+
−
−
+
−
+
−
−
−
4 bit
Address
0
1
3
7
15
14
13
11
6
12
9
2
5
10
4
8
Decode
Polarity
−
+
+
+
−
+
−
−
3 bit
Address
0
1
3
7
6
5
2
4
Decode
Polarity
−
+
+
−
2 bit
Address
0
1
3
2
Decode
Still, while the advantages of serially addressing a memory in today's high speed communications technology was discussed in the disclosure of the aforementioned application, the advantages of testing memories with such a decode structure was not discussed. Furthermore, while a technique was previously presented to improve the latency of the memory by one clock cycle when selecting between outputs, this disclosure extends the capability with new techniques.
This disclosure describes a method that may be used to efficiently test a large serially addressed memory, by utilizing the features of a serial shift register decoder.
Specifically it describes a method for testing a memory, addressed using a serial decoder, which may comprise:
The words in step a may be selected by resetting the serial decoder, the words in step b may be selected by partially addressing the serial decoder, the words in step c may be selected by rotating the decoded address within the serial decoder, and the words in step d may be selected by resetting, partially addressing and rotating the decoded address within the serial decoder.
Reading may include simultaneously checking that the voltage levels of all outputs of the selected words in the memory are between two reference voltages, which may be determined by the state of a test input.
This disclosure further describes an integrated circuit memory that may comprise: a serial address decoder; a memory core; and output logic; where the output logic may detect and output both an output value from the at least one selected word in the memory core and a bit test output signifying the validity of said output value. The bit test output in a normal mode may be invalid when the output value is in a mid-voltage range and in a test mode may be valid in a different mid-voltage range.
This disclosure also describes an integrated circuit memory where the output logic may serially output the values of successive outputs as soon as the outputs are valid, by serially outputting the results of a memory access as soon as the differences between the contents of the remaining possible alternative addresses in memory can be resolved.
Also described is the application of similar techniques to more general devices, which may be other than memories.
The invention will now be described in connection with the attached drawings, in which:
Reference is made to
Reference is now made to
Reference is now made to
Table 2 below shows the ordered word line values after each clock cycle of two address decode operations, according to some exemplary operations.
TABLE 2
Serial Decoding
Address
Oper-
Ordered Word Lines
ation
A
S
R
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Reset
x
1
x
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
A: xxx0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
A: xx00
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
A: x000
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
A: 0000
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Reset
x
1
x
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
A: xxx1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
A: xx11
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
A: x111
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
A: 1111
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
As can be seen in Table 2 above, the reset may select all word lines, and each successive address bit may then select half of the remaining word lines, based on the value of the address bit, least-order bit first, in the embodiment represented in Table 2. Rotation may occur when the R input (column 4 of the table) is set to a 0 value. A Rotation following partial addressing may be used to combine the remaining selected word lines as if a don't-care had been shifted into the least-order bit position of the address, as can be seen in the 0xxx and 1xxx examples in Table 3 below.
TABLE 3
Serial Decoding and Rotation
Address
Oper-
Ordered Word Lines
ation
A
S
R
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Reset
x
1
x
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
A: xxx0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
A: xx0x
X
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
A: x0xx
X
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
A: 0xxx
X
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
Reset
X
1
x
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
A: xxx1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
A: xx1x
X
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
A: x1xx
X
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
A: 1xxx
X
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
In both of the cases shown in Table 3, one address bit was entered after the reset, selecting half of the word lines. Thereafter, 3 cycles of Rotation shifted the selected bits to the upper or lower half of the address space, which is equivalent to all addresses with either a 0 or 1 in the most significant position. With the addition of a small amount of test logic, such word line manipulation may be used to rapidly test the memory it is associated with.
A common memory test called the checkerboard consists of writing each word of memory with alternating 0s and 1s, creating a checkerboard pattern, where each bit's adjacent bits, above, below, left and right of the bit, contains a state opposite to the bit's state, and reading each word back again. For a memory with N words this takes at least 2N write and read cycles. Using partial decode and rotation, the entire memory may be set to a 0101 . . . pattern following reset, and half the entries (either odd or even) may be set to a 1010 . . . pattern after loading the first address bit into the serial decoder. Thereafter, a reset may be used to select all the words in memory, half of those set to a logical 1 and half set to a logical 0. Then, with the proper configuration of memory, a read may select the entire memory and output a mid-voltage between logical 0 and 1, which if it were possible to properly detect, would be equivalent to separately reading each of the N words. In this fashion, it is theoretically possible to perform a checkerboard test in 3 cycles, as opposed to 2N cycles. Practically, the difference between a good memory and one with a single bit stuck high or low, may be too difficult to detect for memories larger than 1024, requiring successive reads of groups of words, requiring rotation of the serial decoder.
In an embodiment of the present invention, partial address decoding and partially decoded address rotation of a serially address decoded digital memory may be used in conjunction with test logic to efficiently test the memory, by performing groups of memory writes and reads, each of which may be used to simultaneously select multiple words in the memory.
Reference is now made to
Reference is now made to
Reference is now made to
During test mode, the transistors 64 may be turned on, which may thus change the ratios of the resistances, pulling the reference voltage for the first operational amplifier 60 lower and the reference voltage for the second operational amplifier 70 higher. If the input voltage 61 is between the two reference voltages, the XNOR 67 may then pull its output low, but if the input voltage is above or below the two reference voltages, the XNOR 67 may then pull its bit test output 72 high. In this fashion, when multiple words are read simultaneously, where half were written to a logic level 1 and half were written to a logic level 0, a bad bit may then produce a higher or lower than mid-range voltage, which may then be detected.
TABLE 4
Voltage
Low
Mid
High
Test Mode
Fault
Ok
Fault
Normal Mode
Ok
Fault
Ok
Reference is again made to
Unfortunately, if there are 2048 words in a 3-volt memory, where half are driving a logical 1 and half are driving a logical 0 on all outputs of a read of all word lines, then a one-bit error may result in less than 2 mV deviation from the mid-range for that output. This may be difficult to detect, given the process variation of the resistors and transistors. On the other hand, if only 8 words were selected and one was failing, the deviation could be as much as 375 mV. While this may be easily detectable, it requires reading in blocks of 8 words. Table 3 shows a single bit 0 rotated address, which selects the pairs of addresses 0 and 1, 4 and 5, 8 and 9, and 12 and 13 corresponding to the address xx0x. Further down in the table there is a rotation of a single bit 1 address, which selects pairs 2 and 3, 6 and 7, 10 and 11, and 14 and 15, corresponding to the address xx1x. Together the two writes and the two reads may be used to cover the entire checkerboard test as shown below:
TABLE 5
Address
Decoder Ordered Word Lines
Memory
Operation
A
S
R
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Operation
Reset
x
1
x
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
Write 0101 . . .
A: xxx0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
W/R 1010 . . .
A: xx0x
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
read xxxxxx
Reset
x
1
x
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
—
A: xxx1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
—
A: xx1x
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
read xxxxxx
As can be seen in Table 5 above, writing the entire memory with a checkerboard pattern may be accomplished in two writes. Then, given this technology, only two successive reads, two additional address cycles and another read may be needed to verify that this checkerboard pattern was correctly written into memory. Another round of the tests shown in Table 5, where the opposite bit values are written into the memory, may then sufficient to detect all single bit stuck and adjacent short conditions in the memory core. These techniques may similarly be used improve the performance of other memory tests, such as inverting ones, and testing the serial decoder. Furthermore, the test input 54, shown in
It is also contemplated that multiple heterogeneous functional blocks may be enabled by a serial decoder in a manner similar to the memory described in this disclosure. Furthermore, these testing structures and techniques may be used by successively applying patterns and addressing sub-groups of these blocks, where half of the selected blocks have one state and the other half have the opposite state on a selected set of their outputs.
Reference is now made to
It is further contemplated that that the output logic with the test structures presented above may be inserted between a memory core and subsequent select logic, which may then be used to select outputs of the memory from multiple outputs of the memory core.
Reference is again made to
Reference is now made to
Reference is now made to
In some cases, it may not be desirable to wait for each bit to become valid, so in yet another embodiment of the present invention, it is also contemplated that the output logic could be constructed so as to wait until the number of valid successive high order bits equals or exceeds the number of clock cycles left in the serial address decoding, thus guaranteeing the ability to access all the valid bits of output on successive clock cycles.
It may also be desirable to determine the specific location of an actual failure in a memory, because statistically significantly repeating defects may represent a design or mask error, which when corrected can significantly improve the yield of the process. Isolation of such defects can traditionally require more testing than was required to determine if the part was good.
Therefore, in yet another embodiment of the present invention, partial address decoding and partially decoded address rotation of a serially address decoded digital memory may be used to efficiently isolate defects in the memory, by performing groups of memory writes and reads, each of which simultaneously selects multiple words in the memory.
For example, considering a 16 bit×16 word memory, such as that shown in
TABLE 6
Address
Decoder Ordered Word Lines
Operation
A
S
R
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
RW
P#
Reset
x
1
x
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
A: xxx0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
R
1
A: xx0x
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
R
2
Reset
x
1
x
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
A: xxx1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
4
A: xx1x
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
R
5
A: x1xx
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
R
6
A: 1xxx
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
R
7
If the reads in tests 1, 2 and 5 (denoted by the “P#” in the last column of Table 6) of the regular checkerboard test, duplicated in Table 6 from Table 5, form some combinations of good tests and faulty tests, there may be more than one single failing bit in the memory. Otherwise, the rest of the tests where some are good and some are faulty may generally indicate that a single fault is the cause. In those cases, tests 6 and 7 may be used to reduce the possible addresses to one based on whether these tests are faulty. The fault dictionary in Table 7, below, shows the failing address corresponding to which tests are faulty. The good tests are denoted by a G, and faulty tests are denoted by an F. The first column of the table lists the test number, and the last row contains the address of a fault corresponding to the pattern of good and faulty test results found in the particular column above it, starting with the second column.
TABLE 7
1
G
G
G
G
G
G
G
G
F
F
F
F
F
F
F
F
2
F
F
F
F
G
G
G
G
F
F
F
F
G
G
G
G
5
G
G
G
G
F
F
F
F
G
G
G
G
F
F
F
F
6
F
F
G
G
F
F
G
G
F
F
G
G
F
F
G
G
7
F
G
F
G
F
G
F
G
F
G
F
G
F
G
F
G
Addr
12
4
8
0
15
7
11
3
12
4
8
0
14
6
10
2
It will be appreciated by persons skilled in the art that the present invention is not limited by what has been particularly shown and described hereinabove. Rather the scope of the present invention includes both combinations and sub-combinations of various features described hereinabove as well as modifications and variations which would occur to persons skilled in the art upon reading the foregoing description and which are not in the prior art.
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
5311468, | Mar 21 1991 | Texas Instruments Incorporated | Random access memory with a serial register arranged for quick access of a second bit from an arbitrary address |
5406527, | Jun 26 1992 | Kabushiki Kaisha Toshiba | Partial write transferable multiport memory |
5566124, | Feb 13 1990 | Renesas Electronics Corporation | Semiconductor memory device capable of reading required data signal at designated address interval and method of operation thereof |
5781717, | Sep 19 1996 | RPX Corporation | Dynamic spare column replacement memory system |
5946256, | Aug 29 1996 | NEC Corporation | Semiconductor memory having data transfer between RAM array and SAM array |
5996097, | Apr 28 1997 | International Business Machines Corporation | Testing logic associated with numerous memory cells in the word or bit dimension in parallel |
6462995, | Mar 11 1999 | Kabushiki Kaisha Toshiba | Semiconductor memory device capable of recovering defective bit and a system having the same semiconductor memory device |
6812874, | May 22 2002 | Andrew LLC | Method and apparatus for processing analog signal |
20070050596, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Apr 07 2011 | ON-CHIP TECHNOLOGIES, INC | Osterach Tech Limited Liability Company | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 028928 | /0977 | |
Sep 10 2012 | Osterach Tech Limited Liability Company | (assignment on the face of the patent) | / | |||
Aug 26 2015 | Osterach Tech Limited Liability Company | Gula Consulting Limited Liability Company | MERGER SEE DOCUMENT FOR DETAILS | 037526 | /0917 |
Date | Maintenance Fee Events |
Feb 25 2014 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Feb 14 2018 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Feb 09 2022 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Feb 11 2017 | 4 years fee payment window open |
Aug 11 2017 | 6 months grace period start (w surcharge) |
Feb 11 2018 | patent expiry (for year 4) |
Feb 11 2020 | 2 years to revive unintentionally abandoned end. (for year 4) |
Feb 11 2021 | 8 years fee payment window open |
Aug 11 2021 | 6 months grace period start (w surcharge) |
Feb 11 2022 | patent expiry (for year 8) |
Feb 11 2024 | 2 years to revive unintentionally abandoned end. (for year 8) |
Feb 11 2025 | 12 years fee payment window open |
Aug 11 2025 | 6 months grace period start (w surcharge) |
Feb 11 2026 | patent expiry (for year 12) |
Feb 11 2028 | 2 years to revive unintentionally abandoned end. (for year 12) |