In accordance with an aspect of the present invention, a test input (e.g., a test bit) previously generated for a scan chain of an IC is stored and used more than one time as input to the scan chain. This repeated use of a test input enables higher compression because more test patterns (made up of test inputs) can be stored and compressed by the tester in a given amount of memory. Further, more scan chains can be driven with the same number of scan channels. Additionally, the test generation flow only needs to be modified slightly with this compression scheme.
Also similar to the Illinois scan architecture 100 of
The first test channel 324 is also connected to a memory element 328, such as a flip flop or a register. The memory element 328 is used to store a test input transmitted over the test channel 324 during a previous clock cycle for use during the current clock cycle. The memory element 328 is in communication with a combinational circuit 332. The combinational circuit 332 is also in communication with the tester channel 324. The combinational circuit 332 selects whether to transmit a test input currently being transmitted over the tester channel 324 or the test input stored by the memory element 328 (which was transmitted over the tester channel 324 during a previous clock cycle).
For example, suppose the tester channel 324 is transmitting a first test input during a first clock cycle. The first test input is transmitted to the memory element 328, the combinational circuit 332, as well as the scan chain combinational circuit 320 (and scan chain combinational circuit 338) during a first clock cycle. Thus, the first test input may be transmitted to some of the scan chains (e.g., scan chain 1308). The first test input is also stored by the memory element 328 during the first clock cycle.
During the next clock cycle (the second clock cycle), the tester channel 304 transmits a second test input (to the combinational circuit 332, the scan chain combinational circuit 320, and the scan chain combinational circuit 338). During the second clock cycle, the memory element 328 transmits the stored first test input to the combinational circuit 332. Thus, the combinational circuit 332 receives the first test input from the memory element 328 and the second test input from the tester channel 324. The combinational circuit 332 then selects (e.g., via a control signal whose values are determined by the ATPG) either the first or second test input to transmit to the scan chain 3316. The same configuration is also present with respect to tester channel 342, memory element 346, combinational circuit 350, and scan chain 6354. In one embodiment, the combination of the memory element (e.g., memory element 328 or memory element 346) and combinational circuit (e.g., combinational circuit 332 or combinational circuit 350, respectively) are referred to as a limited memory decompressor.
In one embodiment, the compression that can be obtained by the ATE generating the test inputs is greater when the scan architecture 300 is used with the ATE. The possible compression that can be achieved is greater because previously shifted scan channel values are reused to generate the current scan slice. Unlike sequential decompressors based on LFSRs, the compression scheme associated with the scan architecture 300 has constraints depending on few variables. The scan architecture 300 can be integrated with automatic test pattern generation (ATPG) tools and can incorporate the decompressor constraints in search/backtrace procedures.
The memory element 412 and XOR gate 416 (as well as the other memory elements and XOR gates) are used to expand the bits coming in from the tester into several scan chain inputs. By utilizing the previously shifted tester bits, more scan chains can be driven with the same number of scan channels.
For example, referring again to
XOR gates can drive up to scan chains, where n represents the depth of the decompressor. If the depth of the decompressor (number of previous cycles stored or number of flip-flops connected serially) is increased, more scan chains can be driven at the cost of hardware overhead.
Limited memory decompressors can additionally handle heavily specified bit slices by reusing previous tester bits. By using combinational circuits as part of the decompressor and having four scan channels, an ATPG tool may not be able to specify any five bits in a scan slice irrespective of the number of specified bits in the previous slice. If a limited memory decompressor is used, however, and if the previous scan slice has less specified bits, then the ATPG may be able to assign more specified bits than the number of scan channels in the current slice. This will improve fault coverage using the compression scheme and increase dynamic compaction of test patterns.
As with combinational decompressors, the relation between the inputs and outputs of the limited memory decompressor can be expressed as a matrix.
For combinational decompressors, the matrix 500 is the same for different scan slices. Thus, the same relation between tester scan channels and scan chains is repeated for all of the scan slices. For a limited memory decompressor, however, the dependency is across multiple scan cycles. As shown in
Depending on the requirements for the maximum number of specified bits, rules for designing the limited memory decompressor can be formed using error correcting codes. For example, to assign any combination of two specified bits in a single scan slice, the rows corresponding to the scan slice should not be identical. In
Note that the number of flip-flops and the depth of the decompressor are design parameters of the compression/decompression scheme. In one embodiment, having more depth improves the compression but requires more hardware overhead for the decompressor and may increase the ATPG run-time.
It is possible, however, that some faults may become untestable using the decompressor and thus a serial mode (similar to Illinois Scan) is required to load the scan chains directly from the tester scan channels.
Even though the placement of scan flip-flops into different scan chains affects the compression of the scan chain architecture with a limited memory decompressor, there is typically no need to modify the scan chain synthesis. The design of the decompressor can be further optimized by taking into account the structure of the circuit-under-test (CUT). The combination of which inputs to XOR for a particular scan chain input may be based on structural information.
In one embodiment, the number of scan shift cycles is increased by the depth of the decompressor. Thus, if a decompressor of depth d is used and the maximum scan chain length is l, then d+l shifts are required to completely fill in the scan chains with the corresponding value. This can ensure that the decompressor flip-flops are reset between test patterns.
The foregoing Detailed Description is to be understood as being in every respect illustrative and exemplary, but not restrictive, and the scope of the invention disclosed herein is not to be determined from the Detailed Description, but rather from the claims as interpreted according to the full breadth permitted by the patent laws. It is to be understood that the embodiments shown and described herein are only illustrative of the principles of the present invention and that various modifications may be implemented by those skilled in the art without departing from the scope and spirit of the invention. Those skilled in the art could implement various other feature combinations without departing from the scope and spirit of the invention.
This application claims the benefit of U.S. Provisional Application No. 60/746,083 filed on May 1, 2006, which is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
60746083 | May 2006 | US |