This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2010-154215, filed on Jul. 6, 2010, the entire contents of which are incorporated herein by reference.
The present invention relates to a fault diagnosis method, a fault diagnosis apparatus, and a computer-readable storage medium that stores a program which, when executed by a computer, causes the computer to perform a fault diagnosis process.
A shipment test of a semiconductor device such as a LSI (Large Scale Integrated circuit) is performed after the design and fabrication thereof. When a fault is detected by the shipment test, a fault (or failure) analysis using a logic simulation or a fault event is performed in order to extract fault candidates. Based on the fault candidates, causes of the fault are narrowed down by volume diagnosis that performs a statistical analysis. The fault candidates related to the narrowed down causes of the fault are selected, and the cause of the fault is specified by performing a physical analysis using an electron microscope or the like and checking whether the fault is generated in the actual semiconductor device. The specified cause of the fault is fed back to at least one of the design of the semiconductor device and the fabrication process of the semiconductor device, in order to make modifications that may reduce the faults detected by the shipment test.
The fault diagnosis estimates the fault location within the semiconductor device in which the fault is detected by the shipment test performed after fabrication of the semiconductor device. Recently, techniques have been proposed to further narrow down the causes of the fault or to estimate the fault location, using the statistical analysis of the volume diagnosis.
The cost of the physical analysis is increasing due to scaling down and microfabrication of elements and large scale integration of circuits. In order to reduce the cost of the physical analysis and to quickly specify the cause of the fault (or failure), the fault candidates that become physical analyzing targets must be accurately narrowed down by the volume diagnosis.
A volume diagnosis that performs a statistical analysis based on a fault report of the semiconductor device input from a fault analyzing tool, and outputs features that become the causes of the fault depending on contributions to the fault has been proposed in M. Sharma et al., “Efficiently Performing Yield Enhancements by Identifying Dominant Physical Root Cause from Test Fail Data” International Test Conference 2008, Paper 14.3, pp. 1-9, for example. The fault report includes information of nets or input and output pins that are the fault candidates, and may include the fault type such as an open-circuit fault and a bridge fault. Generally, the volume diagnosis receives a fault list of the features that become the fault candidates or, such a fault list is provided in advance within a diagnosis apparatus. The features that become the fault candidates include layout information, such as a wiring length, a number of vias, and a wiring density, and a wiring pattern that becomes the cause of the open-circuit fault or the bridge fault. The proposed volume diagnosis focuses on one kind of feature, sorts the focused features of the circuit information, such as the net list, in a descending order starting from the feature having the largest feature quantity, and equally groups the features into a plurality of groups starting from the feature having the largest feature quantity. An anticipated value of the number of faults and the measured value are computed for each group. The anticipated value may be computed based on the feature quantity of the focused feature using a model formula. On the other hand, the measured value is computed by counting the number of fault candidates included in each group in the fault list. Further, the contribution of the one kind of focused feature to the fault is computed from how close distributions of the anticipated values and the measured values are. The above described process is repeated for all of the kinds of the features, in order to compute the contribution of each kind of feature to the fault and to narrow down the cause of the fault to the kind of feature having the highest contribution.
From the point of view of improving the accuracy with which the causes of the fault are narrowed down in the proposed volume diagnosis, the number of groups into which the circuit information is grouped is preferably large. However, in a case in which the number of fault candidates within the fault report input from the fault analyzing tool is relatively small, the large number of groups will increase the number of groups that include no fault candidates or, the increase the number of groups in which the number of fault candidates is relatively small. Consequently, the accuracy of the statistical analysis may deteriorate in such a case. The case in which the number of fault candidates is relatively small refers to a case in which the number of fault candidates is several tens of nets in the circuit information amounting to several million nets, for example, and data of the fault candidates may be regarded as noise. In addition, the case in which the number of fault candidates is relatively small is caused by a relatively small number of faults within the actual semiconductor device or, a relatively small number of semiconductor devices that are fabricated due to a startup period of the semiconductor device fabrication process or, limited fault information related to the semiconductor device available from a manufacturer due to the semiconductor device being designed and fabricated by a separate organization.
On the other hand, from the point of view of reducing the number of groups including no fault candidates or the number of groups including a relatively small number of fault candidates, the number of groups into which the circuit information is grouped is preferably small. However, when the number of groups is small, it means that the number of samples that become targets of the statistical analysis becomes small. Consequently, the small number of samples causes the accuracy of the statistical analysis to deteriorate.
Therefore, according to the conventional fault diagnosis, there was a problem in that the accuracy of the statistical analysis deteriorates when the number of fault candidates obtained from the fault report of the semiconductor device is relatively small.
Accordingly, it is an object in at least one embodiment to provide a fault diagnosis method, a fault diagnosis apparatus, and a computer-readable storage medium, which may suppress accuracy deterioration of the statistical analysis.
According to one embodiment, a fault diagnosis method to be implemented in a computer to execute a fault diagnosis of a semiconductor device to perform a statistical analysis based on a fault report including information of nets or input and output pins that become fault candidates, and features that become fault candidates, includes a first process causing the computer to perform a process of grouping circuit information of the semiconductor device into N (N is a natural number greater than or equal to 2) groups using one kind of feature as an index, for K (K is a natural number greater than or equal to 2) kinds of features, in order to group the circuit information into K×N groups, and to compute a sum total of feature quantities of partial circuits belonging to each of the groups and to output a computed result in a form of a list of learning samples; and a second process causing the computer to perform a learning process based on the list of the learning samples in order to compute a contribution of each feature to the fault, and to compute a ranking of the features having the contribution greater than or equal to a predetermined value in order to output and store in a storage part cause-of-fault information that includes the causes of the fault and indicate the ranking of the features.
According to one embodiment, a fault diagnosis apparatus configured to execute a fault diagnosis of a semiconductor device to perform a statistical analysis based on a fault report including information of nets or input and output pins that become fault candidates, and features that become fault candidates, includes a processor; and a storage part configured to store data and at least a program to be executed by the processor, wherein the processor includes a first unit configured to perform a process of grouping circuit information of the semiconductor device into N (N is a natural number greater than or equal to 2) groups using one kind of feature as an index, for K (K is a natural number greater than or equal to 2) kinds of features, in order to group the circuit information into K×N groups, and to compute a sum total of feature quantities of partial circuits belonging to each of the groups and to output a computed result in a form of a list of learning samples; and a second unit configured to perform a learning process based on the list of the learning samples in order to compute a contribution of each feature to the fault, and to compute a ranking of the features having the contribution greater than or equal to a predetermined value in order to output and store in the storage part cause-of-fault information that includes the causes of the fault and indicate the ranking of the features.
According to one embodiment, a non-transitory computer-readable storage medium which stores a program which, when executed by a computer, causes the computer to execute a fault diagnosis of a semiconductor device to perform a statistical analysis based on a fault report including information of nets or input and output pins that become fault candidates, and features that become fault candidates, and the fault diagnosis includes a first procedure causing the computer to perform a process of grouping circuit information of the semiconductor device into N (N is a natural number greater than or equal to 2) groups using one kind of feature as an index, for K (K is a natural number greater than or equal to 2) kinds of features, in order to group the circuit information into K×N groups, and to compute a sum total of feature quantities of partial circuits belonging to each of the groups and to output a computed result in a form of a list of learning samples; and a second procedure causing the computer to perform a learning process based on the list of the learning samples in order to compute a contribution of each feature to the fault, and to compute a ranking of the features having the contribution greater than or equal to a predetermined value in order to output and store in a storage part cause-of-fault information that includes the causes of the fault and indicate the ranking of the features.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed.
Preferred embodiments of the present invention will be described with reference to the accompanying drawings.
According to one embodiment, a fault diagnosis may perform a statistical analysis based on a fault report of a semiconductor device input from a fault analyzing tool that uses a logic simulation of a fault event, in order to output a feature that becomes the cause of the fault depending on a contribution of the feature to the fault. A process of grouping circuit information of the semiconductor device into N (N is a natural number greater than or equal to 2) groups using one kind of feature as an index may be performed for K (K is a natural number greater than or equal to 2) kinds of features, in order to group (or divide) the circuit information into K×N groups. A sum total of feature quantities of partial circuits belonging to each of the groups may be computed, and a computed result may be output in a form of a list of learning samples. The contribution of each feature to the fault may be computed by a learning process based on the list of the learning samples.
A description will now be given of the fault diagnosis method, the fault diagnosis apparatus, and the computer-readable storage medium in each embodiment according to the present invention.
First, a description will be given of a fabrication process of a semiconductor device, such as a LSI, including design, fabrication, test, and analysis, by referring to
The semiconductor device is designed in a design process 1, in order to generate circuit information, such as net lists and layout information. A fabrication process 2 fabricates the semiconductor device based on the circuit information of the semiconductor device designed in the design process 1. A shipment test process 3 performs a known shipment test with respect to the fabricated semiconductor device. If no fault is detected by the shipment test, the semiconductor device is shipped as a conforming device. On the other hand, information of the semiconductor device in which a fault is detected by the shipment test or, information of a claim device in which a deficiency is detected during operation of the semiconductor device that was shipped as a conforming device, is notified to a fault analyzing process 4. The fault analyzing process 4 extracts fault candidates by performing a fault analysis by a fault analyzing tool using a known logic simulation or fault event, in order to generate a fault report 5. The fault report 5 includes information of the nets or input and output pins that become the fault candidates, and may include a fault type such as an open-circuit fault and a bridge fault.
A volume diagnosis process 6 narrows down the causes of the fault by a volume diagnosis that performs a statistical analysis, based on the circuit information, the fault report 5, and the features that become the causes of the fault. The features that become the cases of the fault may include a wiring length, a number vias, a wiring density, and a wiring pattern that causes the open-circuit fault or the bridge fault within the semiconductor device. A physical analyzing process 8 performs a known physical analysis using an electron microscope or the like to check whether the fault is generated in the actual semiconductor device, based on cause-of-fault information 7 including the fault candidates of the narrowed down causes of the fault, in order to specify the cause of the fault. The specified cause of the fault is fed back to at least one of the design process 1 and the fabrication process 2, in order to make modifications in at least one of the design and the fabrication process that may reduce the faults detected by the shipment test.
The processes of the design process 1, the fabrication process 2, the shipment test process 3, the fault analyzing process 4, and the physical analyzing process 8 may be executed according to known procedures, and a detailed description thereof will be omitted.
The step S1 inputs test information used for the shipment test in the shipment test process 3, and the circuit information of the semiconductor device that is the target of the shipment test, to a computer that executes the fault analyzing process 4. In this example, the test information includes data of a test pattern input to the semiconductor device. In addition, the circuit information includes net lists (n1, n2, . . . , nN), layout information, and features fi (i=1, . . . , K). The step S2 extracts the fault candidates by the fault analysis using the logic simulation or the fault event, based on the test information and the circuit information input to the computer that executes the fault analyzing process 4, and generates and outputs the fault report 5 including information of the nets or input and output pins that become the fault candidates. The fault report 5 that is output is stored in a storage part, which may be provided within the computer that executes the fault analyzing process 4 or, may be externally connected to this computer.
The step S3 groups (or divides) the net lists into N groups according to specified features, by a computer that executes the volume diagnosis process 6. In addition, the step S3 computes the number of fault candidates in each group from the fault report 5, and computes the feature quantities of the features of each group from the layout information, in order to output the computed results as learning samples. The step S4 performs a learning process by the computer that executes the volume diagnosis process 6 based on the learning samples that are input, in order to compute the contribution of each feature to the fault and to output the features having a relatively high contribution as the cause-of-fault information 7. The steps S3 and S4 perform the statistical analysis, and the learning samples and the cause-of-fault information 7 may be stored in the storage part. The computer that executes the fault analyzing process 4 and the computer that executes the volume diagnosis process 6 may be formed by the same computer.
The step S5 performs a physical analysis with respect to the fault candidates having the feature that becomes the cause of the fault, from among the fault candidates included in the fault report 5, in order to judge whether the fault is generated in the actual semiconductor device. The step S6 outputs information of the fault location specified by the physical analysis, and feeds back this information to at least one of the design process 1 and the fabrication process 2. The information of the fault location specified by the physical analysis may be stored in the storage part.
In one embodiment, the fault diagnosis apparatus may be formed by a known general-purpose computer or computer system that includes a storage part such as a memory and a processor such as a CPU (Central Processing Unit). In this case, the storage part stores a program (or fault diagnosis program) that causes the processor (or computer) to execute procedures of at least a fault diagnosis method (or fault diagnosis process) to cause the processor (or computer) to function as each means of the fault diagnosis apparatus or, to realize each function of the fault diagnosis apparatus. This program may be stored in a suitable computer-readable storage medium that is tangible or non-transitory. The fault diagnosis program executes the process of the volume diagnosis process 6, however, the fault diagnosis program may be included in a program that executes the process of at least one of the design process 1, the shipment test process 3, and the fault analyzing process 4.
Of course, the connection of the CPU 11, the storage part 12, the input device 13, and the display device 14 is not limited to a bus connection using the bus 15.
A step S11 performs a process of grouping the circuit information 9 of the semiconductor device into N (N is a natural number greater than or equal to 2) groups using, as an index, one kind of feature in the feature list 50 of the features that become the causes of the fault, for K (K is a natural number greater than or equal to 2) kinds of features, in order to group (or divide) the circuit information 9 into K×N groups. In addition, the step S11 computes the number of fault candidates in each group generated from the fault report 5, and computes a sum total of the feature quantities of partial circuits belonging to each of the groups from the circuit information 9 and the fault report 5, in order to output the computed results in a form of a list of learning samples. The same fault candidate may overlap amongst different groups and be included in the count of the number of fault candidates. The list of learning samples may be stored in the storage part 12.
Generally, there is a technique which performs a random grouping a plurality of times. According to such a technique, however, there is a relatively high possibility of forming a plurality of similar groups. On the other hand, in a case in which the grouping is performed using, as the index, one kind of feature that becomes the cause of the fault, there is a high possibility that the grouping will be performed so that the distributions of the feature quantities differ amongst the groups. Furthermore, by performing the grouping for a plurality of kinds of features, a large number of groups having different tendencies may be generated, to thereby improve the accuracy of the statistical analysis. Hence, by performing the grouping of the step S11 by setting the value of N to a relatively small value and setting the value of K to a relatively large value, the accuracy of the statistical analysis may be prevented from deteriorating in a case in which the number of fault candidates is relatively small.
A step S12 performs a known learning process based on the list of learning samples, to compute the contribution of each feature to the fault, and to compute ranking of the features having a relatively high contribution, in order to output the cause-of-fault information 7 including the narrowed down causes of the fault and indicating the ranking of the features having the relatively high contribution to the fault. For example, the learning process may utilize a technique such as the SVM (Support Vector Machine). In addition, the learning process may extract a set of samples having a goodness of fit between the predicted value and the measured value of the number of generated faults that is greater than or equal to a predetermined value, amongst the groups generated in the step S11, in order to improve the accuracy of extracting the fault candidates and to improve the accuracy of the statistical analysis. The cause-of-fault information 7 may be stored in the storage part 12.
A step S22 selects a non-selected feature fi. The step S23 groups (or equally divides) the net lists (n1, n2, . . . , nN) or the dies into N groups Gi1, . . . , GiN according to the selected feature fi. A step S24 computes a number of generated faults, Fij (j=1, . . . , N), of each group Gij (j=1, . . . , N) from the fault report 5. A step S25 computes a sum total sumfk(Gij)=Σvp=1 . . . Pij(fk, nijp) of the feature quantity v(fk, nijp) (k=1, K) of the nets nijp (p=1, . . . , Pij, where Pij denotes the number of nets belonging to each group Gij) belonging to each group Gij (j=1, . . . , N), for each group Gij, from the layout information and the fault report 5. A step S26 adds to the list of the learning samples a set Sij={Fij, sum(f1(Gij), sum(f2(Gij), . . . , sum(fk(Gij)} of the number of generated faults, Fij, and the feature quantity v(fk, nijp) computed for each group Gij (j=1, . . . , N).
A step S27 judges whether all of the features fi have been selected, and the process returns to the step S22 if the judgement result in the step S27 is NO. On the other hand, if the judgement result in the step S27 is YES, a step S28 outputs a list of the learning samples, {Sij}.
Next, a description will be given of an example of the grouping (that is, division into the groups) performed in the step S23 illustrated in
In a first example of the grouping, the net lists of the circuit information 9 are sorted and grouped (or divided) according to the size of the feature quantity, and a known procedure is performed in which such a grouping is repeated for a plurality of features.
In a second example of the grouping, the grouping (or division) of the dies depending on the position on the wafer is performed a plurality of times.
In a third example of the grouping, the grouping (or division) of the net lists depending on the wiring density is performed a plurality of times.
The wiring density is included in the circuit information 9, and may be included in the layout information. For example, if the number of wiring layers (or levels) of the semiconductor device is 5, and the net lists are grouped into 4 groups depending on the wiring density, such a grouping (or division) is performed for the number of wiring layers, that is, for the 5 layers. In this case, the number of groups is 4×5=20.
Of course, the method of grouping the circuit information 9, such as the net lists and the wiring densities, and the method of grouping the dies, are not limited to the first through third examples described above. It is of course possible to use a clustering technique typified by the K-means or, a technique that uses the decision tree, for the grouping (or division). An example of the clustering technique is proposed in “http://www.kamishima.net/jp/clustering/”, and an example of the technique that uses the decision tree is proposed in “http://ja.wikipedia.org/wiki/decision tree”. When the clustering technique or the technique that uses the decision tree is employed for the grouping, it may be possible to include information having strong tendencies within the same group.
A step S34 computes a MSE (Mean Square Error) MSEi=Σ(pij−rij)2 of the predicted value pij of the number of generated faults and the measured value rij of the number of generated faults, for the samples Si1, . . . , SiN that are grouped for the feature fi, and regards the MSEi as the contribution of the feature fi to the fault. The measured value rij of the number of generated faults corresponds to the number of faults illustrated in
On the other hand, if the judgement result in the step S35 is YES, a step S36 sorts the features according to the descending order of the contribution, for example, and outputs only the features having a relatively high contribution that is greater than or equal to a predetermined value, in order to narrow down the features that become the causes of the fault. A step S37 outputs the cause-of-fault information 7 that includes the narrowed down features that become the causes of the fault, and indicates the ranking of the features having the relatively high contribution to the fault obtained by the sorting made in the step S36. The format with which the cause-of-fault information 7 is output is not limited to a particular format. The cause-of-fault information 7 that is output may be stored in the storage part 12, for example.
A step S44 performs a known learning process to compute the predicted value pij of the number of generated faults of each sample Sij using the SVM, for example, and to compute a MSE (Mean Square Error) AI=Σ(pij−rmj)2 of the predicted value pij of the number of generated faults and the measured value rmj of the number of generated faults. In addition, the step S44 regards the computed AI as the goodness of fit of the set SI of the samples. The goodness of fit, AI, corresponds to the contribution of the set SI of the samples to the fault, and the contribution to the fault is higher for higher goodness of fit, AI. A step S45 judges whether the goodness of fit, AI, is greater than or equal to a goodness of fit, A0, having a predetermined value that is set in advance. The process returns to the step S42 if the judgement result in the step S45 is NO.
On the other hand, if the judgement result in the step S45 is YES, a step S46 narrows down the features that become the causes of the fault, by outputting only the set SI of the samples having the goodness of fit, AI, that is relatively high and is greater than or equal to the predetermined value (goodness of fit, A0). In other words, the step S46 outputs the cause-of-fault information 7 that includes the combination of the narrowed features that become the causes of the fault, and indicate the ranking of the combination of the features having the relatively high contribution to the fault due to the goodness of fit, AI, that is greater than or equal to the predetermined value (goodness of fit, A0). The format with which the cause-of-fault information 7 is output is not limited to a particular format. The cause-of-fault information 7 that is output may be stored in the storage part 12, for example. Hence, by extracting the set SI of the groups in which the goodness of fit, AI, between the predicted value and the measured value of the number of generated faults, is greater than or equal to the predetermined value, amongst the groups generated in the step S11 illustrated in
According to the embodiment described above, the volume diagnosis process 6 may narrow down the causes of the fault by the statistical analysis, even in a case in which the number of faults obtained from the fault report 5 output by the fault analyzing process 4 is relatively small. As a result, the fault candidates may be extracted with a high accuracy, and the accuracy of the statistical analysis may be prevented from deteriorating.
Although the embodiments are numbered with, for example, “first,” “second,” or “third,” the ordinal numbers do not imply priorities of the embodiments. Many other variations and modifications will be apparent to those skilled in the art.
All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contribute by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification related to a showing of the superiority and inferiority of the invention. Although the embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2010-154215 | Jul 2010 | JP | national |