Various aspects of the disclosed techniques relate to using dynamic shift for test pattern compression. Scan chains are divided into segments. Non-shift clock cycles are added to one or more segments to make an uncompressible test pattern compressible. The one or more segments may be selected based on compressibility, the number of specified bits and/or the location on the scan chains. A dynamic shift controller may be employed to control the dynamic shift.
|
15. An integrated circuit, comprising:
a decompressor configurable to decompress compressed test patterns;
a compactor configurable to compact test response data;
scan chains coupled to outputs of the decompressor and to inputs of the compactor, wherein the scan chains are divided into a plurality of segments; and
circuitry configured to add one or more non-shift clock cycles to one or more segments in the plurality of segments based on non-shift clock control data, wherein the one or more non-shift clock cycles are additional clock cycles the decompressor uses to generate bits for scan cells in the one or more segments of the scan chains.
1. A method, executed by at least one processor of a computer, comprising:
generating compressed test patterns for a design of an integrated circuit, wherein the integrated circuit comprises:
a decompressor configurable to decompress the compressed test patterns,
a compactor configurable to compact test response data, and
scan chains coupled to outputs of the decompressor and to inputs of the compactor, each of scan chains in the circuit design being divided into a plurality of segments, and
wherein the generating comprises:
adding one or more non-shift clock cycles to one or more segments in the plurality of segments to help derive the compressed test patterns, the one or more non-shift clock cycles being additional clock cycles that the decompressor uses to generate bits for scan cells in the one or more segments of the scan chains; and
storing the compressed test patterns and information related to the added one or more non-shift clock cycles.
8. One or more non-transitory computer-readable media storing computer-executable instructions for causing one or more processors to perform a method, the method comprising:
generating compressed test patterns for a design of an integrated circuit, wherein the integrated circuit comprises:
a decompressor configurable to decompress the compressed test patterns,
a compactor configurable to compact test response data, and
scan chains coupled to outputs of the decompressor and to inputs of the compactor, each of scan chains in the circuit design being divided into a plurality of segments, and
wherein the generating comprises:
adding one or more non-shift clock cycles to one or more segments in the plurality of segments to help derive the compressed test patterns, the one or more non-shift clock cycles being additional clock cycles that the decompressor uses to generate bits for scan cells in the one or more segments of the scan chains; and
storing the compressed test patterns and information related to the added one or more non-shift clock cycles.
2. The method recited in
3. The method recited in
4. The method recited in
6. The method recited in
determining whether test compression is achievable; and
when the test compression is unachievable, adding a predetermined number of non-shift clock cycles to bits of the test patterns associated with one segment in the plurality of segments.
7. The method recited in
determining whether the test compression is achievable after the predetermined number of non-shift clock cycles are added to bits of the test patterns associated with the one segment in the plurality of segments; and
when the test compression is unachievable, adding the predetermined number of non-shift clock cycles to bits of the test patterns associated with another segment in the plurality of segments.
9. The one or more non-transitory computer-readable media recited in
10. The one or more non-transitory computer-readable media recited in
11. The one or more non-transitory computer-readable media recited in
12. The one or more non-transitory computer-readable media recited in
13. The one or more non-transitory computer-readable media recited in
determining whether test compression is achievable; and
when the test compression is unachievable, adding a predetermined number of non-shift clock cycles to bits of the test patterns associated with one segment in the plurality of segments.
14. The one or more non-transitory computer-readable media recited in
determining whether the test compression is achievable after the predetermined number of non-shift clock cycles are added to bits of the test patterns associated with the one segment in the plurality of segments; and
when the test compression is unachievable, adding the predetermined number of non-shift clock cycles to bits of the test patterns associated with another segment in the plurality of segments.
16. The integrated circuit recited in
|
This application claims the benefit of U.S. Provisional Patent Application No. 61/910,741, filed on Dec. 2, 2013, and naming Xijiang Lin et al. as inventors, which application is incorporated entirely herein by reference.
The presently disclosed techniques relates to the field of circuit testing technology. Various implementations of the disclosed techniques may be particularly useful for testing circuits with high test data compression.
As integrated circuit feature size continues to shrink, more functional blocks are integrated in a single chip. Meanwhile, complex fault models are often required to detect the defects emerged from the shrinking technologies and new materials. It in turn causes dramatic increase of test data volume and test application time. On-chip test compression has become a standard DFT methodology in industry today.
In the past decades, a large number of test compression schemes have been proposed. They can be classified into three categories, stand-alone BIST, hybrid BIST, and test data compression. The original idea of test data compression approach, known as LFSR-coding, exploits the fact that the number of specified bits in the test cubes is typically no more than 1% of total number of scan cells in the design and the test data compression is achieved by encoding the specified bits as a LFSR seed. During test, the seed is decompressed by an on-chip LFSR (Linear Finite State Register). The same fact is utilized by the following test data compression schemes to reduce test data volume.
Depending on the implementation of the decompressing hardware, the schemes for test stimulus compression include code-based schemes, broadcast-based schemes, linear-decompressor based schemes, etc. The linear-decompressor based schemes typically achieve better encoding efficiency than the other two types of schemes. The function of the linear-decompressor can be described by a linear Boolean equation AX=Y, where A is a characteristic matrix, X represents compressed test stimuli supplied from the tester, and Y represents uncompressed test stimuli shifted into scan chains.
The combinational linear decompressor implements the characteristic matrix by using an XOR network, of which the encoding capability at a shift cycle is restricted to the number of inputs of the XOR network. The sequential linear decompressor inserts a linear finite-state machine such as LFSR, or ring generator between the decompressor inputs and the XOR network. It improves the encoding capability by utilizing the compressed test stimuli shifted-in at both current and previous cycles to encode the test stimulus needed at the current shift cycle. In static reseeding approaches, the specified bits in a test cube are encoded by using LFSR seed and the LFSR size has to be no less than the number of specific bits in the test cube. Through injecting the compressed test stimuli continuously during shift, the dynamic reseeding approaches increase the encoding capability significantly while allowing the use of the LFSR with a smaller size.
As the number of cores integrated in a system-on-chip circuit design increases, the number of top level pins is far less than the requirements to test a large number of cores in parallel. To reduce the test application time, the efficiency of utilizing limited tester bandwidth must be improved. The specified bits in the test cubes generated by dynamic compaction have been found to be non-uniform distributed. The tester bandwidth can thus be reduced through dynamic allocation of the input channels feeding to different cores in the system-on-chip circuit design. To support this scheme, de-multiplexers are inserted between top level channel inputs and core inputs that allow dynamic configuration of the channel inputs feeding to each core. In a paper by J. Janicki, et al., entitled “EDT Bandwidth Management in Soc Design,” in IEEE Tran. on CAD, vol. 31, no. 2, December 2012, pp. 1894-1907, the control data for de-multiplexers are supplied in pattern based manner and uploaded through the same channel inputs to provide compressed test patterns. In another paper by G. Li, et al., entitled “Multi-Level EDT to Reduce Scan Channels in Soc Designs,” in Proc. ATS, 2012, pp. 77-82A, a cycle-based method was proposed to allocate the channel inputs. Although the method proposed by G. Li, et al. provides more flexibility than J. Janicki, et al., dedicated control signals must be added for each core to control the configuration of the channel inputs, making it not scale up well for a circuit design with a large number of cores.
One way to improve the tester bandwidth without dynamically allocating the channel inputs is to reduce the number of channels used by each core. Testing each core in extremely high compression environment allows more cores to be tested in parallel. Unfortunately, reducing the number of channel inputs feeding to a core implies lower encoding capacity. As a result, testable faults may become undetected due to the lack of encoding capacity. More test patterns are often needed to achieve the same test coverage since less number of faults can be detected by each test cube during dynamic compaction.
Various aspects of the disclosed techniques relate to techniques for generating compressed test patterns based on dynamic shift. In one aspect, there is a method, executed by at least one processor of a computer, comprising: generating compressed test patterns for a design of an integrated circuit, wherein the integrated circuit comprises: a decompressor configurable to decompress the compressed test patterns, a compactor configurable to compact test response data, and scan chains coupled to outputs of the decompressor and to inputs of the compactor, each of scan chains in the circuit design being divided into a plurality of segments, and wherein the generating comprises: adding, when necessary for deriving the compressed test patterns, one or more non-shift clock cycles to one or more segments in the plurality of segments, the one or more non-shift clock cycles being additional clock cycles that the decompressor uses to generate bits for scan cells in the one or more segments of the scan chains; and storing the compressed test patterns and information related to the added one or more non-shift clock cycles.
The decompressor may be a linear finite-state machine. The one or more segments may be selected from the plurality of segments based on whether a segment is compressible. The adding may comprise: determining numbers of specified bits for the plurality of segments, and the selecting of the one or more segments from the plurality of segments may further be based on the numbers of specified bits. The one or more segments may be selected from the plurality of segments based still further on segment locations on the scan chains.
The adding may comprises: determining whether test compression is achievable; and if the test compression is unachievable, adding a predetermined number of non-shift clock cycles to bits of the test patterns associated with one segment in the plurality of segments. The adding may further comprise: determining whether the test compression is achievable after the predetermined number of non-shift clock cycles are added to bits of the test patterns associated with the one segment in the plurality of segments; and if the test compression is unachievable, adding the predetermined number of non-shift clock cycles to bits of the test patterns associated with another segment in the plurality of segments.
In another aspect, there are one or more non-transitory computer-readable media storing computer-executable instructions for causing one or more processors to perform a method, the method comprising: generating compressed test patterns for a design of an integrated circuit, wherein the integrated circuit comprises: a decompressor configurable to decompress the compressed test patterns, a compactor configurable to compact test response data, and scan chains coupled to outputs of the decompressor and to inputs of the compactor, each of scan chains in the circuit design being divided into a plurality of segments, and wherein the generating comprises: adding, when necessary for deriving the compressed test patterns, one or more non-shift clock cycles to one or more segments in the plurality of segments, the one or more non-shift clock cycles being additional clock cycles that the decompressor uses to generate bits for scan cells in the one or more segments of the scan chains; and storing the compressed test patterns and information related to the added one or more non-shift clock cycles.
In still another aspect, there is an integrated circuit, comprising: a plurality of circuit blocks, wherein each of the plurality of circuit blocks comprises: a decompressor configurable to decompress compressed test patterns; a compactor configurable to compact test response data; scan chains coupled to outputs of the decompressor and to inputs of the compactor, wherein the scan chains are divided into a plurality of segments; and circuitry configured to add one or more non-shift clock cycles to one or more segments in the plurality of segments based on non-shift clock control data, wherein the one or more non-shift clock cycles are additional clock cycles the decompressor uses to generate bits to scan cells in the one or more segments of the scan chains.
Certain inventive aspects are set out in the accompanying independent and dependent claims. Features from the dependent claims may be combined with features of the independent claims and with features of other dependent claims as appropriate and not merely as explicitly set out in the claims.
Certain objects and advantages of various inventive aspects have been described herein above. Of course, it is to be understood that not necessarily all such objects or advantages may be achieved in accordance with any particular embodiment of the disclose techniques. Thus, for example, those skilled in the art will recognize that the disclose techniques may be embodied or carried out in a manner that achieves or optimizes one advantage or group of advantages as taught herein without necessarily achieving other objects or advantages as may be taught or suggested herein.
Various aspects of the disclosed techniques relate to techniques for generating compressed test patterns based on dynamic shift. In the following description, numerous details are set forth for the purpose of explanation. However, one of ordinary skill in the art will realize that the disclosed techniques may be practiced without the use of these specific details. In other instances, well-known features have not been described in details to avoid obscuring the presently disclosed techniques.
Some of the techniques described herein can be implemented in software instructions stored on a computer-readable medium, software instructions executed on a computer, or some combination of both. Some of the disclosed techniques, for example, can be implemented as part of an electronic design automation (EDA) tool. Such methods can be executed on a single computer or on networked computers.
The detailed description of a method or a device sometimes uses terms like “generate” and “add” to describe the disclosed method or the device function/structure. Such terms are high-level abstractions. The actual operations or functions/structures that correspond to these terms will vary depending on the particular implementation and are readily discernible by one of ordinary skill in the art. It should also be appreciated by one of ordinary skill in the art that the term “coupled” means “connected directly or indirectly.”
Although the operations of the disclosed methods are described in a particular sequential order for convenient presentation, it should be understood that this manner of description encompasses rearrangements, unless a particular ordering is required by specific language set forth below. For example, operations described sequentially may in some cases be rearranged or performed concurrently. Moreover, for the sake of simplicity, the disclosed flow charts and block diagrams typically do not show the various ways in which particular methods can be used in conjunction with other methods.
The test cube properties have been studied extensively in the past. Various test compression schemes are based on one important test cube property: a test cube generated by a test generator usually contains only a small percentage of specified bits. The sequential linear decompressor based scheme, embedded deterministic test (EDT) is used as an example to describe the disclosed techniques. It should be appreciated, however, that the disclosed techniques can be applied to different test compression schemes.
In conventional EDT, the tester supplies the compressed test patterns to the on-chip decompressor through one or more channel inputs and the number of shift cycles to load the test stimuli of a test pattern is equal to the sum of the leading initialization cycles with the fixed size and the number of scan cells in the longest scan chain. The initialization cycles are used to initialize the decompressor to an appropriate state before starting to feed the uncompressed test stimuli to the internal scan cells. As a result, the number of free variables that can be used to compress the specified bits is bounded by the number of shift cycles times the number of channel inputs. Additional details concerning EDT-based compression and decompression are found in J. Rajski, J. Tyszer, M. Kassab, and N. Mukherjee, “Embedded deterministic test,” IEEE Trans. CAD, vol. 23, pp. 776-792, May 2004, and U.S. Pat. Nos. 6,327,687; 6,353,842; 6,539,409; 6,543,020; 6,557,129; 6,684,358; 6,708,192; 6,829,740; 6,874,109; 7,093,175; 7,111,209; 7,260,591; 7,263,641; 7,478,296; 7,493,540; 7,500,163; 7,506,232; 7,509,546; 7,523,372; 7,653,851, all of which are hereby incorporated herein by reference.
The number of specified bits in the test cubes generated by deterministic test generator drops quickly to less than 1% of the total number of scan cells after several hundreds of test patterns. Only 0.2% of scan cells on average are specified in a generated test cube set. This observation leads to use multiple channel input configurations to reduce test data volume as well as to avoid underutilization of the ATE interface bandwidth that causes low encoding efficiency.
When the number of channel inputs becomes smaller, a test cube can become uncompressible. An experiment to study which portion of specified bits in the test cube causes it become uncompressible is conducted on an industrial design comprising 1.72M gates and 127K scan cells that are stitched on 524 scan chains. A broad-side transition test set, including 62784 test cubes, is first generated for EDT with 4 channel inputs. Dynamic compaction is applied when generating the test cube set. When the EDT is set with 2 channel inputs, 52419 out of 62784 test cubes become uncompressible.
For every uncompressible test cube, the compression of specified bits in each segment alone for the EDT with 2 channel inputs is determined. If a segment is uncompressible, the original test cube is uncompressible too. In
To make the uncompressible segments compressible while keeping the number of channel inputs as 2, the linear equation solver for EDT is modified by doubling the free variables. For example, if a test cube has two uncompressible segments at the segments 1 and 5, we add extra 66 free variables in each segment when compressing all the specified bits in the original test cube. The details will be discussed below. The number of test cubes becoming compressible is shown by green bars in
Adding free variables is equivalent to adding non-shift clock cycles.
As will be discussed in more detail below, the compression unit 520 attempts to compress a test pattern. If the test pattern is uncompressible, the non-shift clock cycle addition unit 540 will add one or more non-shift clock cycles to one or more uncompressible segments in the plurality of segments.
As previously noted, various examples of the disclosed technology may be implemented by a multiprocessor computing system, such as the computer illustrated in
It also should be appreciated that, while the compression unit 520 and the non-shift clock cycle addition unit 540 are shown as separate units in
With various examples of the disclosed technology, the input database 515 and the output database 595 may be implemented using any suitable computer readable storage device. That is, either of the input database 515 and the output database 595 may be implemented using any combination of computer readable storage devices including, for example, microcircuit memory devices such as read-write memory (RAM), read-only memory (ROM), electronically erasable and programmable read-only memory (EEPROM) or flash memory microcircuit devices, CD-ROM disks, digital video disks (DVD), or other optical storage devices. The computer readable storage devices may also include magnetic cassettes, magnetic tapes, magnetic disks or other magnetic storage devices, punched media, holographic storage devices, or any other non-transitory storage medium that can be used to store desired information. While the input database 515 and the output database 595 are shown as separate units in
Initially, in operation 620 of the flow chart 600, the compression unit 520 determines whether a test pattern is compressible. In the case of EDT, if the set of linear equations associated with the test pattern has a solution, the test pattern is compressible. More specified bits may be added to the test pattern for detecting more faults.
If the test pattern is uncompressible, in operation 640, the non-shift clock cycle addition unit 540 adds one or more non-shift clock cycles to one or more uncompressible segments in a plurality of segments of scan chains. A segment of one scan chain may contain a predetermined number of consecutive scan cells, at least for segments excluding the one at the output end. The one or more segments may be selected from the plurality of segments based on whether a segment is compressible. Alternatively or additionally, the number of specified bits in a segment and/or the location of the segment on the scan chain may serve as selection criteria.
The segment control register 910 has two types of operations: 1) UPDATE_EN=0: It operates as shift register and the shift clock is driven by SHIFT_SCR_CLK. The left data input of the shift register is driven by value 0 and the output of shift register drives control signal ADD_CYCLE_N directly. ADD_CYCLE_EN=0 means no additional cycle is added in each shift cycle and ADD_CYCLE_EN=1 means N additional cycles are added before each shift cycle. After pulsing SHIFT_SCR_CLK_S times, the register content becomes 0, and 2) UPDATE_EN=1: The data stored in segment control shadow register is transferred to the segment control register in the falling edge of EDT_CLK.
The scan load begins when the scan enable, SE, becomes 1. At this time, all bits in the segment control register 910 have value 0. The dynamic shift controller starts to receive the test stimulus data from M channel inputs, CI1 to CIM. The first value at CI1 determines the scan load modes: 1) CI1=0: None dynamic shift mode. No segment control data will be loaded into the segment control shadow register and UPDATE_EN stays at 0 to disable to transfer data from segment control shadow register to segment control register. At the falling edge of the first EDT_CLK pulse, LOAD_CHAIN_EN becomes 1. It allows pulse decompressor driving clock, DC_CLK, continuously to decompress the test stimuli supplying from the channel inputs. This mode is the same as regular EDT scan load except one additional EDT_CLK cycle is added at the beginning of scan load; and 2) CI1=1: Dynamic shift mode. At the falling edge of the first EDT_CLK pulse, LOAD_SR_EN becomes 1 and it lasts S/M EDT_CLK cycles. In these cycles, the segment control data is loaded into segment control shadow register at the rising edge of EDT_CLK. At the rising edge of the last S/M EDT_CLK cycle, UPDATE_EN becomes 1 and it allows transfer segment control data from segment control shadow register to segment control register at the falling edge of EDT_CLK in the same cycle. Meanwhile, LOAD_SR_EN becomes 0 and LOAD_CHAIN_EN becomes 1 at the same falling edge. In
Although the dynamic shift mode may increase the scan shift cycles by N times in the worst case, it increases the encoding capacity without adding more channel inputs. By controlling segments with additional shift cycles, it improves the encoding efficiency such that the test cubes could become compressible with smaller number of channel inputs and more specified bits can be compressed in each test cube.
The processing unit 705 and the system memory 707 are connected, either directly or indirectly, through a bus 713 or alternate communication structure, to one or more peripheral devices. For example, the processing unit 705 or the system memory 707 may be directly or indirectly connected to one or more additional memory storage devices, such as a “hard” magnetic disk drive 715, a removable magnetic disk drive 717, an optical disk drive 719, or a flash memory card 721. The processing unit 705 and the system memory 707 also may be directly or indirectly connected to one or more input devices 723 and one or more output devices 725. The input devices 723 may include, for example, a keyboard, a pointing device (such as a mouse, touchpad, stylus, trackball, or joystick), a scanner, a camera, and a microphone. The output devices 725 may include, for example, a monitor display, a printer and speakers. With various examples of the computer 701, one or more of the peripheral devices 715-725 may be internally housed with the computing unit 703. Alternately, one or more of the peripheral devices 715-725 may be external to the housing for the computing unit 703 and connected to the bus 713 through, for example, a Universal Serial Bus (USB) connection.
With some implementations, the computing unit 703 may be directly or indirectly connected to one or more network interfaces 727 for communicating with other devices making up a network. The network interface 727 translates data and control signals from the computing unit 703 into network messages according to one or more communication protocols, such as the transmission control protocol (TCP) and the Internet protocol (IP). Also, the interface 727 may employ any suitable connection agent (or combination of agents) for connecting to a network, including, for example, a wireless transceiver, a modem, or an Ethernet connection. Such network interfaces and protocols are well known in the art, and thus will not be discussed here in more detail.
It should be appreciated that the computer 701 is illustrated as an example only, and it not intended to be limiting. Various embodiments of the disclosed techniques may be implemented using one or more computing devices that include the components of the computer 701 illustrated in
Some other embodiments of the disclosed techniques may be implemented by software instructions, stored on one or more non-transitory computer-readable media, for causing one or more processors to create a design of the integrated circuit such as the one shown in
While the disclosed techniques has been described with respect to specific examples including presently preferred modes of carrying out the disclosed techniques, 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 disclosed techniques as set forth in the appended claims. For example, while specific terminology has been employed above to refer to electronic design automation processes, it should be appreciated that various examples of the disclosed techniques may be implemented using any desired combination of electronic design automation processes.
Lin, Xijiang, Rajski, Janusz, Kassab, Mark A.
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
6684358, | Nov 23 1999 | Siemens Industry Software Inc | Decompressor/PRPG for applying pseudo-random and deterministic test patterns |
7188286, | Jan 24 2003 | American Patents LLC | Accelerated scan circuitry and method for reducing scan test data volume and execution time |
7237162, | Sep 07 2001 | SYNOPSYS INC | Deterministic BIST architecture tolerant of uncertain scan chain outputs |
7669154, | Mar 29 2005 | SOCIONEXT INC | Timing analysis method, timing analysis program, and timing analysis tool |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Dec 01 2014 | LIN, XIJIANG | Mentor Graphics Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 034306 | /0529 | |
Dec 01 2014 | KASSAB, MARK | Mentor Graphics Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 034306 | /0529 | |
Dec 01 2014 | RAJSKI, JANUSZ | Mentor Graphics Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 034306 | /0529 | |
Dec 02 2014 | Mentor Graphics Corporation | (assignment on the face of the patent) | / | |||
Dec 30 2020 | Mentor Graphics Corporation | Siemens Industry Software Inc | MERGER AND CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 056675 | /0285 | |
Dec 30 2020 | Siemens Industry Software Inc | Siemens Industry Software Inc | MERGER AND CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 056675 | /0285 |
Date | Maintenance Fee Events |
Oct 07 2019 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Oct 11 2023 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Date | Maintenance Schedule |
May 10 2019 | 4 years fee payment window open |
Nov 10 2019 | 6 months grace period start (w surcharge) |
May 10 2020 | patent expiry (for year 4) |
May 10 2022 | 2 years to revive unintentionally abandoned end. (for year 4) |
May 10 2023 | 8 years fee payment window open |
Nov 10 2023 | 6 months grace period start (w surcharge) |
May 10 2024 | patent expiry (for year 8) |
May 10 2026 | 2 years to revive unintentionally abandoned end. (for year 8) |
May 10 2027 | 12 years fee payment window open |
Nov 10 2027 | 6 months grace period start (w surcharge) |
May 10 2028 | patent expiry (for year 12) |
May 10 2030 | 2 years to revive unintentionally abandoned end. (for year 12) |