A Clustering Method for iDDT-Based Testing - CiteSeerX

3 downloads 0 Views 262KB Size Report
[4] K. Baker, “ SIA Roadmaps: Sunset Boulevard for IDDQ”,. Int. Test Conf., 1999, p. 1121. [5] D. Bhavsar, “ITC99 Panels,” IEEE Design & Test, vol. 16, no.
A Clustering Method for iDDT-Based Testing Ali Chehab ECE Department American University of Beirut P.O.Box 11-0236 Beirut, Lebanon [email protected]

Rafic Makki and Saurabh Patel ECE Department University of North Carolina at Charlotte Charlotte, North Carolina 28223, U.S.A [email protected]

Abstract

random logic gates. However, this technique can detect defects that are difficult to detect by traditional tests [17]. Thus, it can be employed for select locations on a chip to improve detection capability, even though it may not be practical to use on the entire chip.

This paper presents a test method that can allow the scaling of some iDDT-based testing methods to test larger circuits. The method uses a “clustering” technique that organizes the gates in the circuit under test into different clusters in a way that controls the switching activity and disciplines iDDT. The individual iDDT responses can be monitored on a cluster-by-cluster basis. We describe the software implementation of the clustering technique and qualify its application on the ISCAS’85 benchmark circuits. We present fault simulation results on selected benchmark circuits as well as physical test results.

1. Introduction Current-based test methods may improve the test quality and coverage when used to augment traditional voltage-based test methods [1]. The current-based techniques include variations to the single-threshold IDDQ method [2]-[10], and include the transient or dynamic current, iDDT, test methods [11]-[19]. Some iDDT-based techniques, such as the Double Threshold technique [19] that is based on monitoring the peak value of iDDT, require a set of test vector-pairs that will attempt to activate every net in the circuit. The Double Threshold method establishes upper and lower bounds on iDDT for a good circuit in response to a fixed test set composed of a predetermined number of test vector pairs. These bounds are established for specific test pattern sets that switch circuit nodes for the purpose of detecting defects using iDDT. The defect detection capability of such a technique decreases as the circuit size increases. This is due to the fact that, as the number of switching components increases, the relative contribution of a single component to the overall iDDT pulse decreases. Thus, it would be very difficult to account for one faulty component among a sea of switching components. This is one of the principal reasons that limits the effectiveness of iDDT testing in

Clearly, the test method is not intended to be a standalone test method, but its defect detection capability can be significantly enhanced by controlling the number of switching components in response to a test vector set. Indeed, such control can improve the detection capability of most iDDT test methods because the relative contribution of a single faulty component becomes greater. In other words, we need to reduce and keep almost constant the switching activity in the circuit under test as we apply the test vector-pairs. The proposed clustering method is driven by the ATPG-produced test vector pairs. The ATPG is presented in [20] and it is briefly reviewed in the next section. In section 3, we describe the clustering algorithm and its software implementation, and then in section 4 we show the clustering results when applied to the ISCAS’85 benchmark circuits. In section 5 we present the fault simulation results and show the postclustering improvement of an iDDT-based test method. In section 6 we present physical test results and finally, we conclude the paper in section 7.

2. Review of ATPG for iDDT-based Test The ATPG is presented in [20] and it is briefly described below for convenience. The ATPG generates a set of test vectors based on the following criteria: • Each test vector consists of a pair of two vectors, the application of which will activate at least one net in the circuit. One vector will set the target-net to a logic value of 1/0 while the second vector will set the same net to a logic value of 0/1.

• While targeting a specific net, a test vector-pair should be chosen in a way that minimizes the number of the switching gates in the circuit. This condition is important to minimize the peak value of iDDT, which will allow for the distinction between the peak iDDT values of a defective circuit and a fault-free circuit. • The vector set should activate every net in the circuit to maximize the fault coverage, yet it should contain a minimum possible number of input vectors to minimize the test length.

The ATPG selects a minimum set of paths covering all the nets in the circuit. Then, for every selected path, it generates a test vector-pair that sensitizes this path. The resulting vector-pair will be retained as part of the iDDT test set only if it is unique. When applied to the C432 benchmark circuit, for example, the ATPG resulted in 79 vector-pairs.

3. Clustering Methodology Controlling the switching activities of a CUT (Circuit Under Test) in response to test vectors is a key factor for the improvement of the detection capability of iDDT-based test methods. We need to minimize and keep almost constant the switching activity in the CUT as we apply the test vector-pairs. Hence, we need to: ƒ Reduce the number of gates that switch in response to test vectors ƒ Reduce the number of iDDT spikes per transition ƒ Reduce the variations of the peak iDDT values among all test vectors. One way to achieve these objectives is to organize the gates in the circuit into different clusters. The main power supply will have different branches, one per cluster. This is not to say that there will be a separate VDD supply pad for each cluster, but that each cluster receives its supply from a separate branch coming from the chip VDD supply pad. All the gates in the same cluster will share the same power supply branch. The iDDT response from each cluster can be monitored separately. When a test vector is applied to the CUT, the switching activity will be spread among the various clusters and it will impact the different clusters differently. The gates will be grouped in a way such that the maximum number of switching gates in one cluster, in response to the vector-pairs, does not exceed a specific parameterized value. Note that for every subset of gates belonging to

the same cluster, there corresponds a subset of vectorpairs, among the space of the total test vectors generated by the ATPG, that will be used to test the gates in this cluster We can then monitor the individual iDDT response on a cluster-by-cluster basis. The parameterized value will be chosen depending on the resolution of the current monitoring technique. The following is a description of the proposed “clustering” technique. First, we apply the ATPG-generated test vectors to the defect-free circuit. For every vector-pair we record the specific nets in the circuit which switched in response to this vector pair and we store the switching information in a 2-dimensional array. For a circuit with N gates and for which the ATPG produced M vector-pairs, the dimensions of the array are MxN. Every element, Eij in the array is set to “1” if vector-pair Vi switches any input in gate Gj, and set to “0” otherwise. The range of subscript “i” is [1 to M], and the range of subscript “j” is [1 to N]. After running all the vector-pairs on the CUT and checking the switching gate-inputs, the array would be similar to the one shown in table 1. Table 1. Vectors and Switching-Gates Relationship V1 V2 … VM-1 VM

G1 1 0 … 1 0

G2 0 1 … 1 1

G3 1 0 … 0 1

… … … … … …

GN-1 0 1 … 1 0

GN 1 0 … 1 1

Second, we start grouping the gates into different clusters based on the criterion that the number of switching gates in a cluster, in response to any vectorpair in the corresponding subset of vector-pairs, does not exceed a preset maximum value. The pseudo-code description of the clustering algorithm is shown below: While the set of un-clustered gates is not empty Generate a new cluster, Cx For every un-clustered gate, Gi Compute the maximum number of switching gates for the cluster Cx when Gi is added to it If this maximum “max_switch_gates” Set “max_switch_gates” = “switch_counter” End if End if End for loop Return “max_switch_gates”

4. Clustering Results The clustering algorithm was implemented in software using the C++ programming language. The program was first tested on the C432 circuit and the results for different parameter values of “ maximum switching gates per cluster” are shown in Table 2. The first column indicates the maximum number of allowed switching gates per cluster. The second column shows the total number of clusters formed, and the third column shows the number of gates in every cluster.

SG 7 10 12 14 18 23

Table 2. Clustering Results on C432. #C Number of Gates in Each of the Various Clusters 13 63 35 24 23 16 9 7 7 7 7 7 7 5 9 82 39 29 18 10 10 10 10 9 8 92 42 29 13 12 12 12 5 7 100 45 24 15 14 14 5 5 116 47 19 18 17 4 133 41 23 20

Note that the number of gates in the various clusters is not balanced. This is due to the way in which the algorithm was implemented, where gates will be added to a cluster as long as the number of switching gates in this cluster does not exceed the maximum allowed value. However, it is possible to make use of the clustering algorithm in order to obtain a more balanced set of clusters whereby all the clusters will have more or less the same number of gates. This is definitely preferable from a layout perspective and to achieve a uniform sizing for the power supply branches feeding the various clusters. One possible way to achieve this objective is to use the clustering algorithm in an iterative manner as follows: Step 1: Run the clustering algorithm based only on the constraint that the maximum number of switching gates in every cluster should not exceed a predefined value. Let N be the resulting number of clusters. This will give us an estimate of the number of gates per cluster, say M, being equal to the total number of gates divided by N. Step 2: Run the clustering algorithm with an additional constraint whereby the total number of gates in a cluster should not exceed the average value M Step 3: If the number of resulting clusters is much greater than N, increment the value of M and go to step 2. Otherwise stop. These iterations will lead to a number of clusters approximately = N, except that the clusters will be more balanced. When we applied this modified technique to the C432 circuit, we obtained a more balanced number of gates per cluster, an example of which is shown in Table 3, where the second column indicates the maximum number of allowed gates per cluster. The first and third rows in Table 3 show the unbalanced clusters, and the second and fourth rows show the balanced clusters. We can see that with the addition of a maximum of 1 cluster we can obtain better balanced clusters in terms of the number of gates per cluster. A graph illustrating the relationship between the maximum number of switching gates per cluster and the resulting number of clusters for the C432 circuit is shown in Figure 1. The graph shows that we can obtain a relatively small number of clusters without requiring a very low value of switching gates per cluster.

Table 3. Balanced Versus Unbalanced Clustering for C432. SG AC #C Number of Gates in Each of the Various Clusters 18 --5 116 47 19 18 17 18 40 6 40 40 40 40 33 24 22 --5 130 42 22 22 1 22 50 5 50 50 50 35 32

Number of Clusters

Clustering Algorithm 100 90 80 70 60 50 40 30 20 10 0 0

5

10

15

20

the TSMC035 process. The fault models included opens and shorts. Table 4. Clustering results on ISCAS’85 circuits

C 880 880 3540

SG 15 20 20

AC 60 80 200

#C 11 9 43

3540

30

250

28

5315

20

300

24

5315

30

300

17

7552

30

300

71

7552

100

---

17

25

Maximum Switching Gates

Figure 1. Clustering results for C432 We have also applied the clustering technique to the ISCAS’85 C880, C3540, C5315 and C7552 circuits. We applied the technique with different numbers of switching gates and maximum number of gates per cluster. A sample of the results is shown in Table 4, where the first column identifies the ISCAS circuit number. The first two rows show how the clustering results vary for different constraints on the number of switching gates for the C880. The next two rows show the same for the C3540 and so on.

5. Clustering Assessment for iDDT-based Test In order to assess the effectiveness of the clustering technique we have applied the Double threshold iDDT testing method to the C432 and C880 benchmark circuits and we performed fault simulation with and without clustering. For the C432 circuit, the maximum number of switching gates per cluster was set to 10 resulting in 9 clusters. For the C880 circuit, the maximum number of switching gates was set to 15 resulting in 11 clusters. The fault simulation results were obtained using SPICE. The Spice models were created by utilizing parameters from

# Gates in the Various Clusters 60 60 60 60 60 40 32 27 20 15 15 80 80 80 75 46 37 25 20 6 200 177 92 76 99 85 95 93 66 64 54 58 54 48 50 29 41 32 35 32 33 30 29 27 28 27 23 24 25 25 22 22 24 26 21 22 23 23 21 21 21 22 8 250 221 107 123 155 114 116 92 81 65 60 47 51 47 43 40 44 38 38 36 34 35 34 38 35 34 32 17 300 300 300 300 300 205 155 126 101 96 103 90 94 77 84 73 66 63 36 26 25 29 20 10 300 300 300 300 300 300 207 169 150 143 128 112 94 63 61 40 12 300 124 64 62 38 30 30 39 103 39 30 159 65 32 59 88 40 41 164 53 142 105 52 30 35 38 142 93 72 100 85 50 30 30 30 30 77 43 32 32 37 48 87 71 53 48 43 48 45 53 45 43 39 32 37 41 37 32 38 34 30 30 30 30 30 30 30 30 30 30 23 520 118 190 291 195 271 313 175 346 179 144 122 173 169 150 147 118 112 100 100 100 19

A 1MΩ resistive open was used to model cracks, as they would insert delays in the circuit and not necessarily cause a catastrophic failure on the signal. These defects were placed on interconnects, and on transistor-level nodes within logic gates. Bridging faults were modeled with a 10Ω resistor connecting two nodes. The results show an improvement in the detection capability of the testing technique for the post-clustered circuits. These results are shown in Table 5. Table 5. Pre/Post clustering detection comparison C432 Fault Coverage

C880 Fault Coverage

Pre-Clustering

57.90%

30.23%

Post-Clustering

92.00%

91.86%

6. Physical Test Results The clustering algorithm was applied to ISCAS’85 benchmark C432. The largest cluster was selected for implementation using the CMOS AMI 0.5-micron process. This cluster has 70 gates with a maximum of 23

gates switching for any of the input vectors generated by the algorithm. Two chips were fabricated containing one defect free version of the cluster and one with built-in defects. Table 6 shows the defect profile. Table 6. Summary of inserted defects

Defect 1 2 3

Defect Type and Placement Pull-up drain open Pull-down drain open Line short (in Metal1)

These defects were inserted in a way such that each would be excited by a unique vector set. Figure 2 shows the layout of the defect-free chip. All PFETs within the cluster were sized to 10λ × 2λ and the NFETs were sized to 5λ × 2λ.. Test Set-up For testing the fabricated chips, a Tektronix TLA720 Pattern Generator was used to supply test patterns to the circuit under test. The circuit response was monitored on a Tektronix TDS6604 Digital Storage Oscilloscope. This oscilloscope has the capability to measure signals with a sampling rate of 20G samples/sec. The chips were fabricated through MOSIS.

using Ohm’s law. A 0.01µF bypass capacitor was used to minimize the power supply noise. Test Results Figure 3 shows the response of both the good and faulty chips, where the fault being excited is the line short listed in Table 6. Figure 3(a) shows a voltage drop which corresponds to an iDDT of 118µA. Figure 3(b) shows a voltage drop which corresponds to an iDDT of 196µA. It should be noted that the horizontal axis of Figure 3(a) is 80ns/square and that of figure 3(b) is 200ns/square. The vertical axes in both figures are 100 mV/square.

Figure 3(a). Good Circuit Response.

Figure 3(b). Defective Circuit Response.

Figure 2: Layout of the defect-free chip The circuit under test was mounted on a custom PCB with a large ground plane to minimize ground bounce and lower the noise levels. To measure iDDT, a 1KΩ resistor was added in series to the power line. The voltage across the resistor was used for calculating iDDT

Table 7 lists the good and bad iDDT results. Column 1 lists the test vector pair and targeted defects. The up arrow indicates a rising input transition. Columns two and three show the good circuit and bad circuit iDDT responses respectively. A positive value in column four indicates that the good circuit iDDT magnitude was higher than that of the bad circuit and a negative value indicates

the opposite. The average difference between the good and bad circuit iDDT responses was 29%. Chip Variances Tables 8 and 9 show a summary of the process variation data obtained from two chip copies of the good circuit and two chip copies of the bad circuit respectively. It can be seen that within the same wafer, process variations can be in excess of 32%. The average variation in the good chips was 11.33%. The average variation in the defective chips was 5.83%.

Table 7. Physical Testing Results Good iDDT (uA)

Vector Set and Pulse Set 1 (detects defects 1 and 3) Set 1 (detects defects 1 and 3) Set 2 (detects defects 2 and 3) Set 2 (detects defects 2 and 3) Set 3 (detects defect 3) Set 3 (detects defect 3)

388 404 166 166 118 118

Bad iDDT (uA) 268 208 178 188 124 200

Difference (%) 30.93% 48.51% -7.23% -13.25% -5.08% -69.49%

Table 8. Defect-free iDDT Circuit Variations (PA). VECTOR SET

GOOD CHIPS iDDT (uAmps) CHIP 1 CHIP 2 DEVIATION

Rising edge of Set 1

400

388

6.00%

Falling edge of Set 1

340

404

32.00%

Rising edge of Set 9

168

166

1.00%

Falling edge of Set 9

128

166

19.00%

Rising edge of Set 12

128

118

5.00%

Falling edge of Set 12

128

118

5.00%

Table 9. Defective iDDT Circuit Variations in (PA). VECTOR SET

DEFECTIVE CHIPS iDDT (uAmps) CHIP 1 CHIP 2 DEVIATION

Rising edge of Set 1

268

260

4.00%

Falling edge of Set 1

208

236

14.00%

Rising edge of Set 9

178

188

5.00%

Falling edge of Set 9

188

196

4.00%

Rising edge of Set 12

124

136

6.00%

Falling edge of Set 12

200

196

2.00%

6. Conclusions

A “ clustering” technique and its software implementation were presented, whereby the gates in a CUT are organized into different clusters such that the switching activity is reduced and the iDDT response disciplined. It was shown that this technique can be used with iDDT-based testing methods to improve their detection capability and scale up the test method to larger circuits. The results of the application of the clustering technique to the ISCAS’85 benchmark circuits were presented. We also showed the improvement of the detection capability of an iDDT test method, after clustering, when performing fault simulations on benchmark circuits. It should be noted that the clustering method is based on the availability of an on-chip sensor that can be multiplexed and used to monitor more than one cluster. Such a sensor is the subject of a utility patent [21].

7. Acknowledgements This project was partially funded by the National Science Foundation (CCR-9912412) and by DARPA Neo-CAD.

8. References [1] M. Sachdev, “ Current-Based Testing for Deep-Submicron VLSIs” , IEEE Design & Test of Computers, March-April 2001, pp. 76-84. [2] C. Thibeault, “ An Histogram Based Procedure for Current Testing of Active Defects,” Int. Test Conf., 1999, pp. 714-723. [3] A. C. Miller, “ IDDQ Testing in Deep Submicron Integrated Circuits,” Int. Test Conf., 1999, pp. 724-729. [4] K. Baker, “ SIA Roadmaps: Sunset Boulevard for IDDQ” , Int. Test Conf., 1999, p. 1121. [5] D. Bhavsar, “ ITC99 Panels,” IEEE Design & Test, vol. 16, no. 4, Oct.-Dec. 1999, pp. 96-99. [6] C. F. Hawkins, J.M. Soden, “ Deep Submicron CMOS Current IC Testing: Is There a Future?” IEEE Design & Test, vol. 16, no. 4, Oct.-Dec. 1999, pp. 14-15. [7] M. Sachdev, “ Deep Submicron IDDQ Testing: Issues and Solutions,” Proc. European Design & Test Conf. (ED&TC 97), IEEE CS Press, Los Alamitos, Calif., 1997, pp. 271-278. [8] A. Keshavarzi, K. Roy, and C.F. Hawkins, “ Intrinsic Leakage in Low-Power Deep Submicron CMOS ICs,” Proc.

Int’l Test Conf. (ITC 97), IEEE Press, Piscataway, N.J., 1997, pp. 146-155. [9] A. Gattiker and W. Maly, “ Current Signatures: Applications,” Proc. Int’l Test Conf. (ITC 97), IEEE Press, Piscataway, N.J., 1997, pp. 156-165. [10] P. Maxwell et al., “ Current Ratios: A Self-Scaling Technique for Production IDDQ Testing,” Proc. Int’l Test Conf. (ITC 99), IEEE Press, Piscataway, N.J., 1999, pp. 738746. [11] M. Sachdev, V. Zieren, and P. Janssen, “ Defect Detection with Transient Current Testing and Its Potential for Deep Submicron ICs,” Proc. Int’l Test Conf. (ITC 98), IEEE Press, Piscataway, N.J., 1998, pp. 204-213. [12] B. Kruseman, P. Janssen, and V. Zieren, “ Transient Current Testing of 0.25-µm CMOS Devices,” Proc. Int’l Test Conf. (ITC 99), IEEE Press, Piscataway, N.J., 1999, pp. 47-56. [13] W. Jiang, B. Vinnakota, “ Statistical Threshold Formulation For Dynamic Idd Test,” Int. Test Conf., 1999, pp. 57-66. [14] B. Vinnakota, “ Monitoring Power Dissipation for Fault Detection,” 14th VTS, pp. 483-488, 1996. [15] A. Germida, Z. Yan, J. Plusquellic, F. Muradali, “ Defect Detection using Power Supply Transient Signal Analysis,” Int. Test Conf., 1999, pp. 67-76. [16] J. Plusquellic, D. Chiarulli, S. Levitan. “ Characterization of CMOS Defects using Transient Signal Analysis,” DFT, pp. 93-101, November 1998. [17] R. Makki, S. Su, T. Nagle, “ Transient Power Supply Current Testing of Digital CMOS Circuits,” ITC, 1995, pp. 892–901. [18] S. Su, R. Makki, T. Nagle, “ Transient Power Supply Current Monitoring – A New Test Method for CMOS VLSI Circuits,” Journal of Electronic Testing: Theory and Applications, pp. 23-43, February 1995. [19] A. Chehab, R. Makki, M. Spica, D. Wu, “ IDDT Test Methodologies for Very Deep Sub-micron CMOS Circuits” , 1st International Workshop on Electronic Design, Test & Applications (DELTA 2000), January 2002. [20] A. Chehab, New Dynamic Power Supply Current Testing for Very Deep Submicron CMOS Circuits, Ph.D. dissertation, UNC-Charlotte, 2002. [21] D. Binkley, R. Makki, T. Weldon and A. Chehab, Methods and Apparatus for Testing Electronic Circuits, US utility patent filed co-pending U.S. Provisional Application No. 60/318,599, filed September 10, 2001.

Suggest Documents