A technique to reduce the test data volume and number of scan shift clocks per test pattern by combining the scan inputs with existing values in scan chains and inserting them at additional bit positions along the scan chains in order to reduce the number of shift clocks required to achieve required values at plurality of scan bit positions, and by using multiple taps from the scan chains to form a check-sum in order to reduce the number of scan shift clocks to capture test results.
|
1. A method of testing an integrated circuit (ic) using test vectors containing a multiplicity of care inputs that are applied to at least one scan-chain of said ic, at least one said test vector containing a number of care inputs that is less than a total length of said test vector, wherein a last one of said care inputs occurs prior to a last position of said at least one test vector, each test vector having a corresponding predetermined expected test responses containing a multiplicity of care outputs, said method comprising, for each of said test vectors:
a. applying said test vector by applying serial data and clocking at least one said scan-chain only until all bits of said at least one said scan-chain that correspond to care inputs of said test vector have been set to values in accordance with said care inputs of said test vector;
b. operating said ic to capture at least one bit of a response of said ic to said test vector into at least one scan chain of said ic;
c. reading out at least some bits of said response of said ic to said test vector from said at least one scan-chain of said ic; and
d. comparing the read out bits of said response of said ic to said test vector to bits of said predetermined expected test response corresponding to said test vector to determine a pass or fail status corresponding to said test vector,
wherein said care output values are read out of a multiplicity of scan positions of said at least one scan-chain of said ic on successive clocks until all said care output values of said predetermined expected test response corresponding to said test vector in said at least one scan chain of said ic are read out.
8. A method of testing an integrated circuit (ic) using test vectors containing a multiplicity of care inputs that are applied to at least one scan-chain of said ic, each test vector having a corresponding predetermined expected test responses containing a multiplicity of care outputs, said method comprising, for each of said test vectors, the steps of:
applying said test vector by applying serial data and clocking at least one said scan chain only until all bits of said at least one said scan chain that correspond to care inputs of said test vector have been set to values in accordance with said care inputs of said test vector, wherein said step of applying serial data includes the step of inserting serial data into a multiplicity of scan positions within said at least one said scan-chain, and, wherein said step of inserting serial data into a multiplicity of scan positions is performed for each of said multiplicity of scan positions by applying a combination of a next bit value of said serial data and a present value of a scan bit previous to the scan position;
operating said ic to capture at least one bit of a response of said ic to said test vector into at least one scan chain of said ic;
reading out at least some bits of said response of said ic to said test vector from said at least one scan-chain of said ic; and
comparing the read out bits of said response of said ic to said test vector to bits of said predetermined expected test response corresponding to said test vector to determine a pass or fail status corresponding to said test vector, wherein at least one value of said care inputs for at least one of said test vectors is set by using at least one captured response to a prior test vector.
2. A method of testing an ic as in
3. A method of testing an ic as in
4. A method of testing an ic as in
5. A method of testing an ic as in
6. A method of testing an ic as in
7. A method of testing an ic as in
9. A method of testing an ic as in
10. A method of testing an ic as in
enabling each of said scan-chain clocks by changing a state of the inputs to each of said scan-chains.
|
TABLE 9
x0
x1
x2
x3
x0is0
x1is1
x2is2
x3is3
x0is4
x1is5
x2is6
x3is7
x0is8
x1is9
x2isa
x3isb
Where “|” is an Exclusive Or operation. Now x0 through x3 can be selected such that the Exclusive-Or operation of the new x value with the existing previous scan value must be equal to the required value. In other words, the x values must be as defined in Table 10 below:
TABLE 10
x0 = r0
x1 = r1
x2 = r2
x3 = r3
x0 = r4is0
x1 = r5is1
x2 = r6is2
x3 = r7is3
x0 = r8is4
x1 = r9is5
x2 = rais6
x3 = rbis7
x0 = rcis8
x1 = rdis9
x2 = reisa
x3 = rfisb
But for all the required values in the first row, substitution of x0-x3 with r0-r3 can be made, so to determine if x0-x3 can be set to values to meet the test's required values, each column of expressions in Table 11 below must be true:
TABLE 11
r4 = r0is0
r5 = r1is1
r6 = r2is2
r7 = r3is3
r8 = r0is4
r9 = r1is5
ra = r2is6
rb = r3is7
rc = r0is8
rd = r1is9
re = r2isa
rf = r3isb
As we shift new values beyond the first sub-string into the second sub-string, the values are as shown in Table 12 below:
TABLE 12
x0
x1
x2
x3
x4|x0
x5|x1
x6|x2
x7|x3
x4|x0is0
x5|x1is1
x6|x2is2
x7|x3is3
x4|x0is4
x5|x1is5
x6|x2is6
x7|x3is7
Now x0-x3 can be set to r0-r3, and x4-x7 can be substituted with r4-r7 so the remaining requirements reduce to the expressions in Table 13 below:
TABLE 13
r8 = r4is0
r9 = r5is1
ra = r6is2
rb = r7is3
rc = r4is4
rd = r5is5
re = r6is6
rf = r7is7
And, similarly for shifting values into three sub-strings, the expressions in Table 14 must be met:
TABLE 14
rc = r8is0
rd = r9is1
re = rais2
rf = rbis3
This process continues in this fashion until all required values are met.
Now given S(*,*) are the previous pattern's output values and R(*,*) are the required “care-input” values, the flowchart in
It should be noted that the procedure represented in
The Flowchart in
0**1 **10 0**0 **01
Then after shifting in 4 bits x0-x3 are assigned 0**1 and the values shifted in are:
TABLE 15
x0
x1
x2
x3
x0is4
x1is5
x2is6
x3is7
x0is8
x1is9
x2isa
x3isb
x0isc
x1isd
x2ise
x3isf
Which can be converted into the assignments shown in Table 16 below:
TABLE 16
x0 = r0
x1 = *
x2 = r6is6
x3 = r3
The checking is then done by assigning the r values and verifying the following are true:
TABLE 17
1 = 1is6is6
0 = 1is7
0 = 0is8
0 = 1isb
0 = 1is6ise
0 = 1isf
This process continues through the second row as follows:
After shifting in 4 more bits, x4-x7 are assigned * *10 and the values shifted in are:
TABLE 18
x0
x1
x2
x3
x4|x0
x5|x1
x6|x2
x7|x3
x4|x0is8
x5|x1is9
x6|x2isa
x7|x3isb
x4|x0isc
x5|x1isd
x6|x2ise
x7|x3isf
Which can be converted into the assignments shown in Table 19 below:
TABLE 19
x0 = r0
x1 = *
x2 = xr(is6
x3 = r3
x4 = r8is8|x0
x5 = *
x6 = r6|x2
x7 = r7|x3
Where the value “(|s6)” only applies if s6 still exists (i.e., less than 7 shifts occurred). The checking is then done by assigning the r values and verifying the following are true:
TABLE 20
0 = 0is8|0|0|s8
0 = 0|1|1|sb
0 = 1|1|se
1 = 0|1|1|sf
This continues row by row until all created values have been verified good.
Considering the assignment of x2 occurs later than the first row because the first row does not contain a required value, code to assign the value to an x variable should begin from the highest row, reassigning it until no lower level required values exist. The flowchart to create the proper values is shown in FIG. 24.
In the flowchart in
While the algorithm described in
Procedure 3 above correctly evaluates the equations created by the shift and exclusive or operations in the scan string, regardless of the size of each sub-string, but may require more computation than the algorithm described in
Multiple Scan Strings
A common technique in the industry to reduce the number of tester cycles needed to perform serial scan-in of the target device is to break the scan-strings into multiple scan-strings with separate scan-in and scan-outs as shown in FIG. 12.
In a preferred embodiment of the present invention, illustrated in
The control signal on line 1403 can come from a primary pin, from a Tap controller, or other suitable control logic, which issues the control signal value prior to the beginning of each scan sequence, and maintains that value throughout the scan operations. The control signal is set to the opposite value at any other time, such as to capture the test results or during normal system operation. As such, the control signal is readily available in most systems that implement scan where a SCAN_ENABLE signal may be used to select either serial scan or normal capture operation of the system flip-flops.
The clock enable control circuit 1406 shown in detail in
The described logic requires 1 additional clock cycle for the whole test set to prime the clock enable control logic 1406, and one additional clock cycle per test to enable the first scan string clock, but does not require separate scan clocks for the individual scan chains. It requires very little logic, it meets scan test design rules, and it is easily extended to as many strings as needed. A key is to enable the clock signals of each scan string separately and to successively enable, rather than successively disable the clock signals to get the desired bits scanned in. Furthermore, if the control logic 1406 is also scanned, it must be done on separate scan strings from the scan strings it controls.
Pseudo Random Patterns
In yet another embodiment, as shown in
Notwithstanding the embodiments and methods above, it is contemplated that the present invention may be used with any or all of the existing scan based methods and test techniques, including scan test compression, BIST, hierarchical scan structures, and any other traditional scan techniques either referred to in this patent, and other patents or papers readily available to the industry. In all such cases it is expected that the testing time would be reduced, by the addition of these techniques.
Using existing scan test design, and by inserting Exclusive-Or gates periodically within the scan strings such that the scanned data is Exclusive-Ored with a selection of the input data, shift clocking need only proceed until the required inputs match the shifted values. Frequent taps from the scan strings into check-sums and/or signature registers serve to limit the required number of shifts necessary to capture the required “care output” values. These combined techniques significantly reduce the required number of shift clocks per pattern as compared to shift clocks required in prior art scan test techniques, thus significantly reducing the test time.
Further test time reductions obtained by breaking the scan strings into multiple commonly clocked scan strings with separate inputs. Variable scan clocking can be performed by including described scan clock control logic which enables scanning on each string to match each strings clocking requirements, without the need for additional pins.
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
3784907, | |||
4495629, | Jan 25 1983 | STORAGE Technology Partners | CMOS scannable latch |
4503537, | Nov 08 1982 | International Business Machines Corporation | Parallel path self-testing system |
4728883, | Mar 15 1985 | Credence Systems Corporation | Method of testing electronic circuits |
4855670, | Mar 15 1985 | Credence Systems Corporation | Method of providing information useful in identifying defects in electronic circuits |
5485471, | Oct 15 1993 | Mitsubishi Electric Research Laboratories, Inc | System for testing of digital integrated circuits |
5485473, | Aug 25 1992 | International Business Machines Corporation | Method and system for testing an integrated circuit featuring scan design |
5515383, | May 28 1991 | The Boeing Company; Boeing Company, the | Built-in self-test system and method for self test of an integrated circuit |
5654971, | Aug 10 1995 | VERIGY SINGAPORE PTE LTD | Electronic circuit or board tester and method of testing an electronic device |
5732246, | Jun 07 1995 | International Business Machines Corporation | Programmable array interconnect latch |
5841788, | Oct 18 1996 | THE CHASE MANHATTAN BANK, AS COLLATERAL AGENT | Methods for backplane interconnect testing |
5867507, | Dec 12 1995 | International Business Machines Corporation | Testable programmable gate array and associated LSSD/deterministic test methodology |
5991898, | Mar 10 1997 | Mentor Graphics Corporation | Arithmetic built-in self test of multiple scan-based integrated circuits |
5991909, | Oct 15 1996 | Mentor Graphics Corporation | Parallel decompressor and related methods and apparatuses |
6237122, | Nov 07 1997 | SOCIONEXT INC | Semiconductor memory device having scan flip-flops |
6324652, | Jan 15 1999 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Asynchronous switching circuit for multiple indeterminate bursting clocks |
6327687, | Nov 23 1999 | Siemens Industry Software Inc | Test pattern compression for an integrated circuit test environment |
6606713, | Nov 17 1999 | ADVANCED PROCESSOR TECHNOLOGIES, LLC | Microcomputer including circuitry for detecting an unauthorized stoppage of the system clock signal |
20020069387, | |||
20020099992, | |||
20020194565, | |||
WO3075028, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Mar 13 2008 | ON-CHIP TECHNOLOGIES, INC | OC Applications Research LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 020753 | /0337 | |
Dec 07 2010 | OC Applications Research LLC | Intellectual Ventures I LLC | MERGER SEE DOCUMENT FOR DETAILS | 025467 | /0063 | |
Jun 01 2018 | Intellectual Ventures I LLC | INTELLECTUAL VENTURES ASSETS 81 LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 046275 | /0948 | |
Jun 29 2018 | INTELLECTUAL VENTURES ASSETS 81 LLC | American Patents LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 046404 | /0466 |
Date | Maintenance Fee Events |
Nov 22 2010 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Nov 24 2014 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Feb 04 2019 | REM: Maintenance Fee Reminder Mailed. |
Jul 22 2019 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Mar 30 2013 | 4 years fee payment window open |
Sep 30 2013 | 6 months grace period start (w surcharge) |
Mar 30 2014 | patent expiry (for year 4) |
Mar 30 2016 | 2 years to revive unintentionally abandoned end. (for year 4) |
Mar 30 2017 | 8 years fee payment window open |
Sep 30 2017 | 6 months grace period start (w surcharge) |
Mar 30 2018 | patent expiry (for year 8) |
Mar 30 2020 | 2 years to revive unintentionally abandoned end. (for year 8) |
Mar 30 2021 | 12 years fee payment window open |
Sep 30 2021 | 6 months grace period start (w surcharge) |
Mar 30 2022 | patent expiry (for year 12) |
Mar 30 2024 | 2 years to revive unintentionally abandoned end. (for year 12) |