The present invention is directed to the selective masking of data generated by a scan-chain test of an integrated circuit device. Various implementations of the invention may be particularly useful for allowing a manufacturer to select the data to be masked after the integrated circuit device has been manufactured.
As integrated circuits continue to develop, they continue to have higher device densities and clocking rates. As a result, it requires ever-increasing numbers of test vectors to properly test them, which in turn requires larger and larger amounts of tester vector memory. Still further, manufacturing newer integrated circuits requires even more complex manufacturing techniques, with the corresponding increase in problems and costs related to the production of integrated circuits. To address these problems, and to allow for a self-test of integrated circuits in the field, a testing technique referred to as “built-in self-test” (BIST) is expected to be used more and more in the future.
With logic built-in self-test (LBIST), test circuits for testing the functional logic of an integrated circuit are added to the circuit's design.
The self-test is performed by repeatedly shifting the generated test stimuli into the scan chains so that they are applied to the circuit-under-test 105, and operating the circuit-under-test 105 for a number of clock cycles in its functional application mode. Various techniques for generating efficient stimuli are well-known in the art. These include, for example, techniques for generating test stimuli for built-in self-test applications that improve the random testability of the circuit by state-of-the-art test points insertion (TPI), by a linear feedback shift register (LFSR) reseeding, by Bit-Flipping-Logic (see, for example, U.S. Pat. No. 6,789,221, issued Sep. 7, 2004, which patent is incorporated entirely herein by reference), or by a cycle-based stimuli generation (see, for example, European Patent Application No. 06126627.6, filed on Dec. 20, 2006, which application is incorporated entirely herein by reference as well).
The responses produced by the circuit-under-test 105 are captured by the scan chains, and relayed to the test response evaluator 107 where, for example, they are compacted on-chip using a compacting device, such as a multiple input shift register (MISR), to produce a compacted test signature. The compacted test signature can then be compared against a corresponding fault-free signature to determine if the integrated circuit has any of the faults tested for by the test stimuli. Depending upon the implementation, the compacted test signature can be compared with the fault-free signature on-chip, or after it has been exported off of the integrated circuit for comparison by, for example, automated test equipment.
While the responses produced by the circuit-under-test 105 include data bits that have known good circuit response data and which can detect a fault, the responses also may contain “unknown” data values (that is, data values that cannot be predicted because they may vary from test to test). If these unknown data values (referred to herein as “X values” or “Xs”) are compacted with the relevant data values, then the compacted test signature may not contain enough stable and predictable information to determine if the integrated circuit has one or more of the targeted faults. Accordingly, unknown data values must be purged from the responses before compaction. With conventional integrated circuits, however, there may be a large number of clock systems using high application frequencies. As a result, it is often not possible to precalculate all unknowns that may occur due to false path, clock skew, and inaccurate timing models for all of the library elements and layout wires used in the integrated circuit. With conventional testing techniques, a manufacturer instead will analyze a manufactured prototype of the integrated circuit to identify the unknown response values (Xs), and then create a new layout design of the integrated circuit to address the identified unknown response values. While this methodology provides for accurate testing, creating a new layout design with the associated masks for an integrated circuit is very expensive, and increases the time-to-market significantly.
Aspects of the invention relate to techniques for masking unknown response values that may be produced by a BIST process. According to various implementations of the invention, masking circuitry is provided for selectively masking the response values obtained from a BIST process. The operation of the selective masking circuitry then is controlled by a programmable mask circuitry controller that can be programmed after the integrated circuit has been manufactured. The programmable mask circuitry controller may be, for example, a fuse box or a Joint Test Action Group (JTAG) register (i.e., an IEEE 1149.1 compliant user register). With various implementations of the invention, a user will analyze the integrated circuit after it has been manufactured to identify the unknown data values. After the unknown data values have been identified, the user will then program the programmable mask controller to have the selective masking circuitry mask the identified unknown data values from the test signature.
More particularly, the masking circuitry 207 will mask specific unknown values in response to control information provided by the programmable masking circuitry controller 209. As will be discussed in more detail below, with various implementations of the invention, the programmable masking circuitry controller 209 can be programmed to have the masking circuitry 207 mask test response values output by specific scan chains 203, mask test response values output from one or more scan chains 203 for a specific number of cycles, or some combination of both. With various implementations of the invention, the programmable masking circuitry controller 209 can be programmed to determine while test response values will be masked after the integrated circuit has been manufactured. Because the unknown values can be identified and masked after the integrated circuit has been manufactured allows the self-test system 201 to be effectively employed post-tape-out or in the field.
Once the masking circuitry 207 has masked out the undesirable test response values, the compacting device 205 compacts the test response values that are passed (that is, the test response values that are not masked) by the masking circuitry 207. The compacting device 205 may be any type of compacting circuitry. For example, with various implementations of the invention, the compacting device 205 may be implemented using a MISR. It should be appreciated still other implementations of the invention can employ any desired type of compactor, including, e.g., a software-based compactor or a combination of two or more compactors.
More particularly, the fuse box 307 outputs a certain number of control bits 311. If the initial output value on all outputs of the fuse box is a first value (e.g., a logical “0”), stimuli data can selectively be applied to the pins of the integrated circuit so that each output of the fuse box either permanently maintains its initial value or permanently maintains the opposite value (e.g., a logical “1”). Thus, it is possible for a user to selectively program the fuse box 307 so that each of the control bits 311 has either a logical value of “0” or a logical value of “1.” As previously noted, the fuse box 307 can be programmed after the integrated circuit has been manufactured. For example, a user may program the fuse box 307 during a production test for the integrated circuit. With conventional C-MOS processes, various examples of this type of fuse box are readily available and can be programmed within a few milliseconds.
The selective masking circuitry 309A, placed between the fuse box 307 and the MISR 305, can selectively mask out complete scan chains (such as, e.g., scan chain 303A). More particularly, the fuse box 307 can be programmed to determine the signal values of the control bits 311s1 to 311sn (where n is the number of scan chains). Each of the control bits 311s1 to 311sn is input to a masking gate 313 with the output values from a corresponding scan chain 303, and the results are then applied to a XOR compressor 315. Thus, the value selected for a control bit 311s will determine if the values for the corresponding scan chain 303 are masked or not masked.
It should be appreciated that, according to various implementations of the invention, a single control bit 311s can be used to mask a group of scan chains 303 instead of an individual scan chain 303, as illustrated in
With various implementations of the invention, the masking circuitry 309B can alternately or additionally be used to mask out scan chains for selected test cycles. More particularly, scan chains 303 can be masked on a cyclic basis by programming the fuse box 307 to output specific values for the control bits 311m1 to 311mj, 311i1, and 311c1 to 311ck, where j is the number of MISR inputs and k is the number of bits in the cycle counter (not shown). As known to those of ordinary skill in the art, the cycle counter is reset with every normal cycle of the scan test, and is incremented with every shift cycle of the scan test, so it counts the shift cycles from 0 to 2k−1.
As illustrated in
With some implementations, the programmable masking circuitry controller may also provide the fault-free signature to be compared with the test signature produced by the compactor. For example, as illustrated in
It should be appreciated that still other implementations of the invention may employ different programmable masking circuitry controllers and corresponding masking circuitry. For example,
As will be seen from this figure, the embodiment of the invention illustrated in
It should be appreciated that using a JTAG register as a programmable masking circuitry controller requires that the control bits be shifted into the register prior to the initiation of the self-test. This initial shifting can be done from a special-purpose test system, or from an application system in the case of an in-field self test.
With various implementations of the invention, an ATPG tool can be used to calculate the control bits that should be provided by the programmable masking circuitry controller during the self-test of the integrated circuit, to ensure that the masking circuitry masks unknown and irrelevant values so that a stable MISR signature is produced. Thus, with various embodiments of the invention, re-spins with new layout runs and creation of new mask sets are no longer required because the unknown values (Xs) can be masked out by programming a masking circuitry controller, such as a fuse box or JTAG register. Further, the register transfer language (RTL) code describing a self-test system according to various embodiments of the invention can be created very early in the design phase for an integrated circuit, independent of the logic of the circuit-under-test. Also, in the case of unforeseen unknowns, the ATPG tool only has to calculate the required control bit information to program the programmable masking circuitry controller, so that the unknowns are masked out as needed when the integrated circuit is tested after manufacture.
While the invention has been described with respect to specific examples including presently preferred modes of carrying out the invention, those skilled in the art will appreciate that there are numerous variations and permutations of the above described systems and techniques that fall within the spirit and scope of the invention as set forth in the appended claims. For example, while specific implementations of the invention have been discussed with regard to logic built-in self-test techniques, it should be appreciated that implementations of the invention also may be employed with other types of built-in self-test techniques, such as memory built-in self-test (MBIST) techniques.
This application claims priority to U.S. Provisional Patent Application No. 61/117,230, entitled “On-Chip Logic To Support In-Field Or Post-Tape-Out X-Masking In Logic-BIST Designs,” filed on Nov. 23, 2008, and naming Friedrich Hapke et al. as inventors, which application is incorporated entirely herein by reference.
Number | Date | Country | |
---|---|---|---|
61117230 | Nov 2008 | US |