Method for reducing pin overhead in non-scan design for testability

Information

  • Patent Grant
  • 7051302
  • Patent Number
    7,051,302
  • Date Filed
    Friday, November 7, 2003
    21 years ago
  • Date Issued
    Tuesday, May 23, 2006
    18 years ago
Abstract
A method and apparatus for reducing pin overhead in a non-scan design for testability, The method comprises connecting control signals of test points l1£l2£, . . . , £lh to a first primary input PI1 through AND gate switch, connecting control signals of test points lj, . . . , £lq to a kth primary input PIk through AND gate switch until every test point is connected to one of the primary inputs PI1, PI2, . . . , PIk, connecting a 1-control point to AND gate directly, connecting a 0-control point to AND gate through inverter, sharing one AND gate among all control points that are connected to the same primary input, controlling all control points by an uniform test signal, and checking whether the test points and the primary inputs produce new re-convergent fan-out while reducing inputs of the control signals.
Description
FIELD OF THE INVENTION

The present invention relates to IC design for testability. More particularly, the present invention relates to reducing pin overhead in non-scan design for testability.


BACKGROUND OF THE INVENTION

Since every test pattern used in non-scan design circuit only needs one test cycle in testing, and non-scan design for testability provides an at-speed testing method, the method of non-scan design has gained attention from both academy and industry.



FIG. 1 shows the conventional test point structure. In particular, FIG. 1(a) shows an original circuit; FIG. 1(b) shows insertion of observation points; FIG. 1(c) shows insertion of 1-control point; and FIG. 1(d) shows the insertion of 0-control point.


The pin overhead in non-scan design has remained an unsolved problem for a long time and the previous methods cannot solve it successfully. Currently there are 6 methods to handle the pin overhead problem, but none of them can bring about a satisfactory result. These 6 methods are:


(1) doing nothing to the extra control signal, which leads to a strict restriction on the number of control points and cannot improve testability to a great extent;


(2) connecting the control points to an extra register, when loading the test pattern, the value to be assigned to control point is shifted into the register. However, the method needs multiple clock cycles to load the test pattern for control points.


(3) controlling all control points with one control signal. Almost all reset design methods have chosen this strategy, but testability improvement based on this technique is limited.


(4) setting the control signal of control points to non-controlling values in functional mode and to the controlling values in test mode. This method makes many detectable faults undetectable and hence can not improve the testability of circuit.


(5) using test multi-plexers to improve testability of circuit and all test multi-plexers are controlled by a single control signal, which is similar to method (3). Though it can improve the testability of some signal lines, many fault propagation paths are blocked, hence it cannot really improve testability of the whole circuit.


(6) connecting an observation point and a primary output (PO) to a multiplexer, which makes the fault that must be observed via this PO unobservable.


Therefore, the pin overhead in non-scan design is a very hard problem and needs to be solved as soon as possible.


SUMMARY OF THE INVENTION

A method and apparatus for reducing pin overhead in a non-scan design for testability is disclosed. In one embodiment, the method comprises: connecting control signals of test points l1, l2, . . . , lh to a first primary input PI1 through AND gate switch, connecting control signals of test points Ij, . . . , lq to a second primary input PI2 through AND gate switch until every test point is connected to either primary inputs PI1 or PI2, connecting a 1-control point to AND gate directly, connecting a 0-control point to AND gate through inverter, sharing one AND gate among all control points that are connected to the same primary input, controlling all control points by an uniform signal test, and checking whether the test points and the primary inputs produce new re-convergent fan-out while reducing inputs of the control signals. In another embodiment, the apparatus comprises: means for connecting control signals of test points l1, l2, . . . , lh to a first primary input PI1 through AND gate switch, means for connecting control signals of test points lj, . . . , lq to a second primary input PI2 through AND gate switch until every test point is connected to either primary inputs PI1 or PI2, means for connecting a 1-control point to AND gate directly, means for connecting a 0-control point to AND gate through inverter, means for sharing one AND gate among all control points that are connected to the same primary input, means for controlling all control points by an uniform signal test, and means for checking whether the test points and the primary inputs produce new re-convergent fan-out while reducing inputs of the control signals.


Other features and advantages of the present invention will be apparent from the accompanying drawings and from the detailed description, which follows below.





BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example and not intended to be limited by the figures of the accompanying drawings in which like references indicate similar elements and in which:



FIG. 1 is a diagram showing a conventional test point structure.



FIG. 2 is a diagram showing test point structure according to one embodiment of the invention.



FIG. 3 is a diagram showing low-cost non-scan design for testability according to another embodiment of the invention.



FIG. 4 is a diagram showing avoiding conflicts incurred by signal verification according to another embodiment of the invention.



FIG. 5 is a diagram showing connect reset signal to primary input according to another embodiment of the invention.



FIG. 6 is a diagram showing the change of the circuit caused by connecting test point Ti to input PIj according to another embodiment of the invention.



FIG. 7 is a flowchart of showing connecting control points to primary inputs according to another embodiment of the invention.



FIG. 8 is a diagram showing connecting multiple control signals to one primary input according to another embodiment of the invention.



FIG. 9 is a diagram showing improvements on testability of circuit S9234.1 when different test points are inserted in.



FIG. 10 is a diagram showing improvements on testability of circuit S13207.1 when different test points are inserted in.





DETAILED DESCRIPTION OF THE DRAWINGS

A method for reducing pin overhead in non-scan design for testability is disclosed. Referring to FIG. 2, FIG. 2(a) shows an original circuit; FIG. 2(b) shows insertion of 1-control point; and FIG. 2(c) shows insertion of 0-control point.


In one embodiment, FIG. 3 shows a low-cost non-scan design for testability. Typically, the control signals of test points l1˜lh are connected to primary input PI1, and the control signals of test points lj˜lq are connected to primary input PIk. Every test point l is connected to a primary input (PI) by a AND gate. 1-controllable point l1 is connected to the AND gate directly; 0-controllable point 1h is connected to the AND gate by an inverter. All controllable points that are connected to the same PI share a single AND gate and all controllable points are controlled by a universal test signal. POS in FIG. 3 are the outputs of multiple inputs signature register (MISR).


The guiding principle of the pin overhead reduction method is that the control signals of test points are reduced at the furthest while avoiding generating new undetectable faults, in particular, the control signal of test points are connected to the primary input which with the control line that doesn't produce a new re-convergent fan-out. It is quite possible for a new re-convergent fan-out to generate new undetectable faults.



FIG. 4 illustrates how to avoid the conflicts incurred by signal requirements. As shown in FIG. 4, a 0-control point is inserted into signal line l1, and a 1-control point is inserted into signal line l2. In one embodiment, 0-control points situation is considered, and the situation for 1-control points is similar. Referring to FIG. 4, line C is directly controllable by the primary input, and the fan-out branches re-converge at the following 3 positions: the branches of fan-out PI re-converge at l1; line l1 and PI re-converge at K1 and K2; line l1 and line l2 re-converge at line r. To judge whether a re-convergence brings new undetectable faults, we should check whether the sequential delays of its fan-out branches are equal or not: if they are not, new undetectable faults will not occur; if they are, the inversion parities of different branches should be checked. The inversion parity of a path is defined as the remainder when the number of inversions in the path divided by 2. The inversion parity between line 1 and line s, invv(l, s), is defined as a two-binary-bit number. If there is no path between the two lines, the inversion parity is equal to 00, that is to say, inv0(l, s)=00, in this case, new undetectable faults will not occur.


The method stated above can also be used to handle the connection and share of reset signals in partial reset design. In partial reset design, the reset signals are all inserted into the outputs of flip-flops. Referring to FIG. 5, supposing B is directly reachable from a PI, then we connect the reset signal of line l to PI, which makes the fan-out branches of PI re-converge at line l. This re-convergence does not bring any conflict, because the delay from PI to C and the delay from PI to F(suppose F is reachable from PI) are not equal. Similarly, if l and PI re-converge at k1 and k2, we should check whether there are any conflict with the rules stated above. The observation points are connected to multiple XOR trees (the maximal number is 20), the output of all XOR trees are connected to a multiple input signature register which has only one output pin. Thus it can be seen that the extra pin overhead is reduced to 2 by this invention.


The following algorithm illustrates how to connect the control signal of a control point to PIs of circuit. Using the same method, we can connect multiple control signals to one PI. This algorithm needs a circuit description file that includes information of line index, gate type, predecessor table and successor table and test point set{T1, T2, . . . , Tt}. The output result of the algorithm is a circuit after design for testability which has only two extra pins: one is the test signal that controls all control points, the other is the output of multiple inputs signature register (MISR).


Algorithm (Connect All Test Points to PI)


1. set i and j to be the subscripts of test point and PI, respectively, and i←1,j←1,n is the number of PIs;


2. While(j≦n),do


(1) Call function converge (Ti, PIj) to judge if test point Ti and PIj re-converge;


(2) If Ti and PIj do not converge, connect the control signal of Ti to PIj, and modify the circuit structure: add Ti into the successor table of PIj, and add PIj into the predecessor table of Ti, and let j←n+1; if they converge, do (3);


(3) j←j+1.


3. j←1; While(j≦n),do


(1) Call function converge(Ti, PIj) to find out the converge point set of Ti and PIj:{R1, R2, . . . , Rk}. For any converge point R, suppose its input signals are a and b, and a is reachable from Ti, b is reachable from PIj. If R is a AND gate or a NAND gate as well as seq1(Ti, a)≠seq1(PIj, b), or if R is a OR gate or NOR gate as well as seq0(Ti, a)≠seq0(PIj, b), then connect control signal of Ti to PIj; otherwise do (2);


(2) If R is a AND gate or a NAND gate and either of inv1(Ti, a) and inv1(PIj, b) is 0, or if R is a OR gate or a NOR gate and either of inv0(Ti, a) and inv0(PIj, b) is 0, then connect control signal of Ti to PIj.


(3) If control signal of Ti has already been connected to PIj, modify the circuit structure as stated in step (2), j←j+1.


4. If i<t, i←i+1,j←1, go to step 2;


5. Output all the PIs and their corresponding test points, and return the set of test points that cannot be connected to any PI.


Converge (a, b) /*Function to Find Out All Convergent Points of a and b*/


1. Put all direct successors of a into stack Q and tag every signal line that has been put into Q.


2. When Q is not empty, take an element ν from Q and check all of its successors. If successor v1 has no tag, tag it and put it into Q.


3. Find out all direct and indirect successors of b in the same way. If a successor ν has been checked in step 1 and 2, put it into set C.


4. Return all signal lines in set C as convergent points of a and b, if C is empty, return a value that denotes a and b do not converge.


Reach(a, b) /* Judge if b is Reachable From a*/


1. Put all immediate successors of a into stack Q and flag every signal line that has been put into Q. If b is one of them, return a value that denotes b is reachable from a. Otherwise go to 2.


2. If Q is not empty, pop an element v from Q and check all successors of v. If one successor v1 has no flag, add it into Q and flag it. If v1 is b, return a value that denotes b is reachable from a.


3. Return a value that denotes b is not reachable from a.


Now referring to FIG. 6, PIj has successors S1, S2, . . . , Sb, test point Ti has predecessors P1, P2, . . . , Pc and successors S1, S2, . . . , Sd. When control signal of test point Ti is connected to PIj, Ti is added into the successor table of PIj, and PIj is added into predecessor table of Ti.



FIG. 7 is a flowchart of showing connecting control points to primary inputs according to another embodiment of the invention. Two efficient measures (sequential depth for testability and inversion parity) help to connect the control signals of control points to PIs. As shown in FIG. 7, to judge if a PI and l converge, for every successor of l, we must check the inversion parity from this PI to it. If the inversion parity from PI to every successor of l is 00, we can conclude that l and PI do not converge. In the same way, we can judge if one signal line is reachable from another signal line. When we check the sequential delay for testability of a re-convergent fan-out at l′, the following technique can be used: Let l′have inputs a and b, and l′is the output of a AND or NAND gate (or a OR or NOR gate). If seq1(a, PI)≠seq1(b, PI) (or seq0(a, PI)≠seq0(b, PI)), a re-convergent fan-out with non-uniform inversion parity. As shown in FIG. 4, the following scheme can be used to check whether the sequential delay for testability between the primary input A and the test point l: check whether seq1(l, PI)=0 if a o-control point is inserted into l; check whether seq0(l, PI)=0 if a 1-control point is inserted into l. The following scheme can be used to check whether l and PI generate a re-convergent fan-out with the uniform inversion parity: Let PI and l re-converge at an AND gate k1 (or an OR gate k2 as shown in FIG. 4), k1 has inputs D and F (or k2 has inputs E and G), if inv1 (D, PI)=inv1(F, PI) (or inv0(E, PI)=inv0(G, PI)), and both of them are not 11, the re-convergent fan-out has uniform inversion parity braches.


Now referring to FIG. 8, two control points are inserted in to signal line 10 and 11 respectively. First, we consider the primary input 4: because line 10 is unreachable from line 4 as well as line 10 and line 4 do not converge, the 1-control point of line 10 is connected to primary input 4; line 11 is also unreachable from line 4, and though they converge at line 16, the re-convergent branches, 4-11-14-16 and 4-16, are inverse compatible, hence the 0-control point of line 11 is connected to primary input 4. Though line 4 and line 11 re-converge at line 16, inv0(14,4)=00, that is to say that signal requirement (14,0) can be performed by (3,1), thus there will not be any new undetectable fault. Test point 10 and test point 11 do not converge in the circuit, thus it doesn't matter that the two test points share primary input 4.



FIG. 9 is a diagram showing improvements on testability of circuit S9234.1 when different test points are inserted in, and FIG. 10 is a diagram showing improvements on testability of circuit S13207.1 when different test points are inserted in. In particular, FIG. 9 shows the relationship between fault coverage and the number of control points inserted in circuit for s9234.1 and FIG. 10 presents results of s13207.1. Both circuits are hard-to-test ones. After using the method in this invention, up to 95% fault coverage for s9234.1 and 97% fault coverage for s13207.1 can be obtained. FIG. 9 and FIG. 10 also present the experimental results using a single control line. As shown in the figures, our invention can get much better fault coverage than the single control line scheme.









TABLE 1







EXPERIMENTAL RESULTS COMPARED WITH NSCAN ON ISCAS89 CIRCUIT










NSCAN
NSCAN+
















CIRCUIT
TP/PO
FC/TE
VEC
CPU
TP/PO
AO
FC/TE
VEC
CPU



















s1423
 40/2
93.6/94.5
607
2132
 40/2
5.3
94.1/95.0
274
2078


s5378
 60/2
97.3/99.5
1337
6584
 60/2
3.0
97.5/99.5
2599
6695


s9234
160/2
92.8/95.7
3685
8045
160/2
3.2
95.4/97.8
1760
2565


s9234.1
160/2
90.9/94.8
2946
9832
160/2
3.2
95.4/97.8
1760
2635


s13207
240/2
91.8/94.9
3927
13488
240/2
3.6
96.3/99.4
5044
16165


s13207.1
240/2
91.2/94.5
4023
15720
240/2
3.7
96.7/99.3
5059
20795


s15850
240/2
94.2/97.6
8583
8441
240/2
3.3
93.2/97.5
4007
7976


s38417
800/2
82.8/85.2
2271
31.8 H
800/2
4.6
91.7/93.9
5988
48829


s38584
400/2
91.6/94.5
8908
59757
400/2
2.6
92.6/94.9
8820
52178


s38584.1
400/2
91.4/93.8
10043
63268
400/2
2.6
93.7/96.0
11205
40439









Table 1 compares the experimental results of nscan+(the method proposed by this invention) and that of nscan (a recently published efficient tool). As shown in the Table 1, tp, po, FC, TE, vec, cpu and ao denote number of test points, number of extra pins, fault coverage, test efficiency, number of test patterns, CPU time, and area overhead (in percent style). The results in table 1 make it clear that nscan+is better than nscan almost for all circuits.


Thus, a method for reducing pin overhead in non-scan design for testability has been described with reference to specific exemplary embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.

Claims
  • 1. A method for reducing pin overhead in a non-scan design for testability, said method comprising: connecting control signals of test points l1, l2, . . . , lh to a first primary input PI1 through AND gate switch;connecting control signals of test points lj, . . . , lq to a kth primary input PIk through AND gate switch until every test point is connected to either primary inputs PI1, PI2, . . . , PIk, where k is no more than n and n is the number of the primary inputs:connecting a 1-control point to AND gate directly for a 1-control point circuit architecture;connecting a 0-control point to AND gate through inverter 0-control point circuit architecture;sharing one AND gate among all control points that are connected to the same primary input;controlling all control points by an uniform signal test; andchecking whether the test points and the primary inputs produce new re-convergent fan-out while reducing inputs of the control signals;wherein the checking stop comprises: setting parameters to describe a circuit architecture, said parameters including number, type, predecessor table and successor table of each signal line l, wherein for test point set {l1, l2, . . . , lj},i and j are subscripts of test point lj and the primary input Plj respectively;the checking step further comprises sub-steps of: setting i=1, and j=1 while n≧j;calling program converge(lj, Plj) to judge whether the test point lj converges with the primary input Plj;putting all direct successors of lj into a stack Q and marking said direct successors of lj as visited;popping an element I from the stack Q, and marking all its direct successors that are not visited and put them into the stack Q;repeating until all elements in the stack Q are checked;checking all lines that are accessible from Plj, if one of them is in the stack Q, then putting it into set C; andjudging that the lines in set C are the converge points of the test point li and plj, if C is empty, judging that li does not converge with Plj.
  • 2. The method of claim 1, wherein the checking step further comprises: connecting the control input of test point li to PIj while n≧j and li and PIj do not converge;setting i=i+1;repeating the sub-steps of the claim 1 until li, were t is the number of test point; andsetting j=j+1.
  • 3. The method of claim 2, wherein the checking step further comprises: setting i=i+1 and j=1 if it>i, andperforming steps of claim 4.
  • 4. The method of claim 3, wherein the checking step further comprises: outputting all the connection between test points of the control signals and the primary inputs; andoutputting the set of the test points of the control signals that can not be connected to any primary input.
  • 5. The method of claim 1, wherein the checking step further comprises: setting j=1 while n≧j and if li and PIj converge;calling converge(li, PIj) to find the converge point set {R1, R2, . . . , Rk} of li and P lj,and for any converge point R, setting the inputs of R as a and b, wherein a is accessible from Ii, and b is accessible from PIj;connecting the control input of test point li to the primary input PIj, if R is an AND gate or a NAND gate and the signal timing delay from a to li when R is set to 1 which is expressed as seq1(li, a) is not equal to the signal timing delay from b to PIj which is expressed as seq1(PIj, b), or if R is an OR gate or a NOR gate and the signal timing delay from a to li when R is set to 0 which is expressed as seq0(li, a) is not equal to the signal timing delay from b to PIj which is expressed as seq0(li, a), otherwise;connecting the control input of test point li to the primary input PIj, if R is an AND gate or a NAND gate and either the inversion parity from a to li when R is set to 1 which is expressed as inv1(li, a) or the inversion parity from b to PIj when R is set to 1 which is expressed as inv1(PIj, b) is equal to the value of 0, or if R is an OR gate or a NOR gate and either the inversion parity from a to li when R is set to 0 which is expressed as inv0(li, a) or the inversion parity from b to PIj when R is set to 1 which is expressed as inv0(PIj, b) is equal to the value of 0, andsetting j=j+1 if the control input of li has been connected to PIj.
  • 6. The method of claim 1, wherein the 1-control point architecture includes one AND gate and one OR gate, the inputs of the AND gate are one primary input and the uniform test signal, the inputs of the OR gate are the output of the AND gate and the output of circuit M1, and the output of the OR gate is the input of circuit M2.
  • 7. The method of claim 1, wherein the 0-control point architecture includes a first and a second AND gates and one inverter, the inputs of the first AND gate are one primary input and the uniform test signal, the input of the inverter is the output of the first AND gate, the inputs of the second AND gate are the output of the inverter and the output of circuit M1, and the output of the second AND gate is the input of circuit M2.
  • 8. An apparatus for reducing pin overhead in a non-scan design for testability, said apparatus comprising: means for connecting control signals of test points l1, l2, . . . , lh to a first primary input PI1 through AND gate switch;means for connecting control signals of test points lj, . . . , lq to a kth primary input PLk through AND gate switch until every test point is connected to one of the primary inputs Pl1, Pl2, . . . , Plk, where k is no more than n and n is the number of the primary input;means for connecting a 1-control point to AND gate directly for a 1-control point circuit architecture;means for connecting a 0-control point to AND gate through an inverter for a 0-control point circuit architecture;means for sharing one AND gate among all control points that are connected to the same primary input;means for controlling all control points by a uniform test signal; andmeans for checking whether the test points and the primary inputs produce new re-convergent fan-out while reducing inputs of the control signals;wherein the means for checking comprises: means for setting parameters to describe a circuit architecture, said parameters including number, type, predecessor table and successor table of each signal line l, wherein for test point set {l1,l2, . . . , li}, i and j are subscripts of test point li and the primary input PIj respectively;means for setting i=1, and j=1 while n>j;means for calling program converge (li, PIj) to judge whether the test point li converges with the primary input PIj;means for putting all direct successors of l1 into a stack Q and marking said direct successors of li as visited;means for popping an element from the stack Q, and marking all its direct successors that are not visited and put them into the stack Q;means for repeating until all elements in the stack Q are checked;means for checking all lines that are accessible from PIj, if one of them is in the stack Q, then putting it into set C; andmeans for judging that the lines in set C are the converge points of the test point li and PIj, if C is empty, judging that li does not converge with PIj.
  • 9. The apparatus of claim 8, wherein the 1-control point architecture includes one AND gate and one OR gate, the inputs of the AND gate are one primary input and the uniform test signal, the inputs of the OR gate are the output of the AND gate and the output of circuit M1, and the output of the OR gate is the input of circuit M2.
  • 10. The apparatus of claim 8, wherein the 0-control point architecture includes a first and a second AND gates and one inverter, the inputs of the first AND gate are one primary input and the uniform test signal, the input of the inverter is the output of the first AND gate, the inputs of the second AND gate are the output of the inverter and the output of circuit M1, and the output of the second AND gate is the input of circuit M2.
Priority Claims (1)
Number Date Country Kind
02146776 A Nov 2002 CN national
US Referenced Citations (5)
Number Name Date Kind
5754454 Pixley et al. May 1998 A
5898703 Lin Apr 1999 A
6275963 Maeno et al. Aug 2001 B1
6311317 Khoche et al. Oct 2001 B1
6597191 Oosawa et al. Jul 2003 B1
Related Publications (1)
Number Date Country
20040130313 A1 Jul 2004 US