Multiple defect diagnosis method and machine readable media

09983264 ยท 2018-05-29

Assignee

Inventors

Cpc classification

International classification

Abstract

A multiple defect diagnosis method includes: receiving a gate-level netlist of a chip, a plurality of test patterns and a plurality of test failure reports; deriving a plurality of seed nets from the gate-level netlist according to the plurality of test patterns and the plurality of test failure reports; utilizing a processor to compute similarity between the plurality of seed nets, and accordingly merging the plurality of seed nets to obtain a single seed net tree; and deriving at least one suspected seed net according to the single seed net tree.

Claims

1. A multiple defect diagnosis method, comprising: receiving a gate-level netlist, a plurality of test patterns and a plurality of test failures of a chip; deriving a plurality of seed nets from the gate-level netlist according to the plurality of test failures and the plurality of test patterns; utilizing a processor to calculate similarities between the plurality of seed nets, to merge the plurality of seed nets accordingly to generate a single seed-net tree; and determining at least one suspected seed net from the plurality of seed nets according to the single seed-net tree, so as to narrow down a defect region of the chip to the at least one determined suspected seed net.

2. The multiple defect diagnosis method of claim 1, wherein the step of deriving the plurality of seed nets from the gate-level netlist according to the plurality of test failures and the plurality of test patterns comprises: obtaining a plurality of erroneous output ports corresponding to the gate-level netlist according to the plurality of test failures, and tracing back from the plurality of erroneous output ports to derive a plurality of stuck-at faults; executing simulations for the plurality of stuck-at faults with respect to the plurality of test patterns, respectively, to generate a plurality of simulation failures, respectively; and deriving the plurality of seed nets from the plurality of stuck-at faults according to the plurality of simulation failures and the plurality of test failures.

3. The multiple defect diagnosis method of claim 1, wherein the step of utilizing the processor to calculate the similarities between the plurality of seed nets comprises: executing simulations for the plurality of seed nets with respect to the plurality of test patterns, respectively, to generate a plurality of seed net simulation failures, respectively; and calculating the similarities between the plurality of seed nets according to the plurality of seed net simulation failures and the plurality of test failures.

4. The multiple defect diagnosis method of claim 1, wherein the step of merging the plurality of seed nets accordingly to generate the single seed-net tree comprises: merging two of the plurality of seed nets with the highest similarity into a first node; and merging two of the unmerged seed nets and the first node with the highest similarity into a second node.

5. The multiple defect diagnosis method of claim 1, wherein the step of determining the suspected seed net according to the single seed-net tree comprises: from the top down dividing the single seed-net tree into at least one cluster, wherein the cluster respectively comprises at least one seed net meeting a first specific condition; and deriving a suspected seed net from each cluster, wherein the suspected seed net is a seed net of a cluster, and corresponds to the most patterns which meets a second specific condition compared with other seed nets of the cluster.

6. The multiple defect diagnosis method of claim 5, wherein all erroneous outputs of a seed net simulation failures of the seed net which meets the first specific condition are the same as erroneous outputs of the cluster, wherein the erroneous outputs of the cluster are a union of all erroneous outputs of respective seed net simulation failures of each seed net of the cluster.

7. The multiple defect diagnosis method of claim 5, wherein erroneous outputs of the test failure result of the pattern corresponding to a cluster to which the seed net belongs are the same as erroneous outputs of the simulation failure result of the seed net corresponding to the cluster to which the seed net belongs, and the erroneous outputs of the cluster are a union of all erroneous outputs of respective seed net simulation failures of each seed net of the cluster.

8. A non-transitory machine readable medium storing a program code, wherein when executed by a processor, the program code enables the processor to perform a multiple defect diagnosis method, the method comprising: receiving a gate-level netlist, a plurality of test patterns and a plurality of test failures of a chip; deriving a plurality of seed nets from the gate-level netlist according to the plurality of test failures and the plurality of test patterns; utilizing a processor to calculate similarities between the plurality of seed nets, to merge the plurality of seed nets accordingly to generate a single seed-net tree; and determining at least one suspected seed net from the plurality of seed nets according to the single seed-net tree, so as to narrow down a defect region of the chip to the at least one determined suspected seed net.

9. The non-transitory machine readable medium of claim 8, wherein the step of deriving the plurality of seed nets from the gate-level netlist according to the plurality of test failures and the plurality of test patterns comprises: obtaining a plurality of erroneous output ports corresponding to the gate-level netlist according to the plurality of test failures, and tracing back from the plurality of erroneous output ports to derive a plurality of stuck-at faults; executing simulations for the plurality of stuck-at faults with respect to the plurality of test patterns respectively, to generate a plurality of simulation failures respectively; and deriving the plurality of seed nets from the plurality of stuck-at faults according to the plurality of simulation failures and the plurality of test failures.

10. The non-transitory machine readable medium of claim 8, wherein the step of utilizing the processor to calculate the similarities between the plurality of seed nets comprises: executing simulations for the plurality of seed nets with respect to the plurality of test patterns, respectively, to generate a plurality of seed net simulation failures, respectively; and calculating the similarities between the plurality of seed nets according to the plurality of seed net simulation failures and the plurality of test failures.

11. The non-transitory machine readable medium of claim 8, wherein the step of merging the plurality of seed nets accordingly to generate the single seed-net tree comprises: merging two of the plurality of seed nets with the highest similarity into a first node; and merging two of the unmerged seed nets and the first node with the highest similarity into a second node.

12. The non-transitory machine readable medium of claim 8, wherein the step of deriving determining the suspected seed net according to the single seed-net tree comprises: from the top down dividing the single seed-net tree into at least one cluster, wherein the cluster respectively comprises at least one seed net meeting a first specific condition; and deriving a suspected seed net from each cluster, wherein the suspected seed net is a seed net of a cluster, and corresponds to the most patterns which meets a second specific condition compared with other seed nets of the cluster.

13. The non-transitory machine readable medium of claim 12, wherein all erroneous outputs of a seed net simulation failures of the seed net which meet the first specific condition are the same as erroneous outputs of the cluster, wherein the erroneous outputs of the cluster are a union of all erroneous outputs of respective seed net simulation failures of each seed net of the cluster.

14. The non-transitory machine readable medium of claim 12, wherein erroneous outputs of the test failure result of the pattern corresponding to a cluster to which the seed net belongs are the same as erroneous outputs of the simulation failure result of the seed net corresponding to the cluster to which the seed net belongs, and the erroneous outputs of the cluster are a union of all erroneous outputs of respective seed net simulation failures of each seed net of the cluster.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

(1) FIG. 1 is a diagram illustrating the three types of failing patterns.

(2) FIG. 2 is a flowchart illustrating a multiple defect diagnosis method according to an exemplary embodiment of the present invention.

(3) FIG. 3 is a diagram illustrating an example of simulation failures of a seed net.

(4) FIG. 4 is a diagram illustrating an example of a seed-net tree.

(5) FIG. 5 is a diagram illustrating an example of calculating similarities between seed nets.

(6) FIG. 6 is a diagram illustrating an example of cluster partitioning of the seed-net tree shown in FIG. 4.

(7) FIG. 7 is a diagram illustrating an example of finding a suspected seed net from the seed-net tree of FIG. 4.

(8) FIG. 8 is a diagram illustrating a computer system for performing the multiple defect diagnosis method according to an exemplary embodiment of the present invention.

DETAILED DESCRIPTION

(9) Certain terms are used throughout the description and following claims to refer to particular components. As one skilled in the art will appreciate, manufacturers may refer to a component by different names. This document does not intend to distinguish between components that differ in name but not function. In the following description and in the claims, the terms include and comprise are used in an open-ended fashion, and thus should be interpreted to mean include, but not limited to . . . .

(10) The concept of the present invention is to utilize limited information of the die under test in order to analyze the correlation between elements of the limited information according to the disclosed multiple defect diagnosis method. In this way, a defect region is narrowed down to one or more than one seed net, such that massive iterative simulations on a computer or tests on an ATE can be avoided. Specific descriptions regarding the present invention are given in the following. When multiple defects occur in a die, the failing patterns are divided into three types. FIG. 1 is a diagram illustrating the three types of failing patterns. Please note that the pattern mentioned here refers to patterns generated by an automatic test pattern generation system (ATPG). When a result outputted from a chip is different from a predetermined result by applying a pattern, the pattern will be regarded as a failing pattern. In FIG. 1, a chip has a first defect d.sub.1 and a second defect d.sub.2 located at different positions. In FIG. 1(A), a type-1 pattern only activates the first defect d.sub.1 and propagates its faulty effect to a portion of the outputs. In FIG. 1(B), a type-2 pattern activates both the first defect d.sub.1 and the second defect d.sub.2 but propagates their faulty effects to different outputs. Faults do not interact with each other, since their propagation paths do not overlap. In FIG. 1(C), a type-3 pattern also activates the first defect d.sub.1 and the second defect d.sub.2, which interact with each other. Fault masking or reinforcement may occur by applying type-3 patterns. The embodiments of the present invention mainly relate to cases in FIG. 1(A) and FIG. 1(B).

(11) FIG. 2 is a flowchart illustrating a multiple defect diagnosis method 200 according to an exemplary embodiment of the present invention. Provided that substantially the same result is achieved, the steps of the flowchart shown in FIG. 2 need not be in the exact order shown and need not be contiguous; that is, other steps can be intermediate. Some steps in FIG. 2 may be omitted according to various embodiments or requirements. The multiple defect diagnosis method 200 may be briefly summarized as follows. In step S202, a gate-level netlist N of a circuit C (e.g. a portion of or all circuits of a chip), a plurality of test patterns TP (which may be the type-1 pattern and/or the type-2 pattern) of the circuit C and a plurality of test failures TF of the circuit C are received. In step S204, a plurality of erroneous output ports corresponding to the gate-level netlist N are obtained according to the plurality of test failures TF, and a plurality of stuck-at faults are derived by tracing back from the plurality of erroneous output ports. The plurality of stuck-at faults is recorded in an initial error list. Please note that each one of the plurality of stuck-at faults may be a culprit defect, and analysis with respect to the plurality of stuck-at faults are performed in the subsequent steps.

(12) In step S206, a processor is utilized for executing simulations (a.k.a. fault simulation) for the plurality of stuck-at faults with respect to the plurality of test patterns TP, respectively, to generate a plurality of simulation failures SF, respectively. The plurality of stuck-at faults can be deliberately produced by breaking the construction (e.g. cutting a wire) at the corresponding location of the gate-level netlist N of the circuit C, and then using the processor to execute simulations for the plurality of stuck-at faults by applying the plurality of test patterns TP, respectively, and generating the plurality of simulation failures SF, respectively. In step S208, the plurality of seed nets SN are derived from the plurality of stuck-at faults according to the plurality of simulation failures SF and the plurality of test failures TF, which reduces the nets that need to be considered in the following steps. Determining the seed nets SN requires initial derivation of the seed fault, wherein a seed net includes at least a net of a seed fault. A plurality of seed faults can be screened out from the plurality of stuck-at faults by using equation (1):
.sub.TP(type-1+type-2)Min(Num(TPSF),Num(TFSF))=0(1)
where TFSF denotes outputs observed both in the plurality of test failures TF and the plurality of simulation failures SF; and TPSF denotes outputs observed only in the plurality of simulation failures SF.

(13) Those skilled in the art should readily understand how to identify the plurality of seed nets SN from the seed faults; details thereof are omitted for brevity. Next, the plurality of test patterns TP are applied to the plurality of seed nets SN, respectively, to obtain a plurality of seed net simulation failures SNSF. FIG. 3 is a diagram illustrating an example of simulation failures of a seed net SN.sub.1. For a first pattern P.sub.1 and a second pattern P.sub.2, if the seed net SN.sub.1 includes only two seed faults f.sub.1 and f.sub.2, then erroneous outputs (i.e. O.sub.1 and O.sub.3) induced by the seed faults f.sub.1 and f.sub.2 can both be observed in the plurality of test failures TF with respect to the first pattern P.sub.1. Hence, for the first pattern P.sub.1, the simulation failures of the seed net SN.sub.1 are a union of the simulation failures of the seed faults f.sub.1 and f.sub.2. For the second pattern P.sub.2, the erroneous outputs (i.e. O.sub.1) induced by the seed faults f.sub.1 can be observed in the plurality of test failures TF, but the erroneous outputs (i.e. either O.sub.2 and O.sub.3) induced by the seed faults f.sub.2 cannot be observed in the plurality of test failures TF. Hence, for the second pattern P.sub.2, the simulation failures of the seed net SN.sub.1 are solely the simulation failures of the seed faults f.sub.1.

(14) In step S210, the plurality of seed nets SN are merged according to similarities within the plurality of seed nets SN. The merging is completed gradually by employing data mining. In this way, the plurality of seed nets SN are merged one after another from the bottom up to establish a single seed-net tree. Please refer to FIG. 4, which is a diagram illustrating an example of a seed-net tree. In the first level of the seed-net tree, there is a plurality of seed nets SN.sub.1-SN.sub.5, wherein the seed nets SN.sub.1-SN.sub.5 may be regarded as five seed-net tree units. Then, two of the plurality of seed nets with the highest similarity are merged into a first node (e.g. a node r.sub.1 of the level 4, a node r.sub.2 of the level 3, nodes r.sub.3 and r.sub.4 of the level 2) to replace the original seed-net trees, until only one seed-net tree remains. The similarity can be derived using equation (2):

(15) sim tree ( T i , T j ) = .Math. A L ( T i ) .Math. B L ( T j ) sim net ( A , B ) .Math. L ( T i ) .Math. .Math. L ( T j ) .Math. ( 2 )
where T.sub.i and T.sub.j denote two seed-net trees, L(T.sub.i) and L(T.sub.j) represent the set of seed nets in T.sub.i and T.sub.j, and sim.sub.net(A, B) denotes the similarity between two seed nets A and B.

(16) Equation (3) shows how to calculate sim.sub.net(A, B):

(17) sim net ( A , B ) = .Math. p FP .Math. SF A P .Math. SF B P .Math. .Math. p FP .Math. SF A P .Math. SF B P .Math. ( 3 )
where SF.sub.A.sup.P and SF.sub.B.sup.P denote the plurality of simulation failures SF of the seed net A and the seed net B by applying a pattern p, respectively. FP represents the set of failing patterns on the ATE. Equation (3) only considers failing patterns, which provide information about culprit defects. SF of passing patterns are ignored in similarity calculation.

(18) FIG. 5 is a diagram illustrating an example of calculating a similarity of a seed net SN.sub.1 and a seed net SN.sub.2. For a failing pattern P.sub.1, |SF.sub.A.sup.PSF.sub.B.sup.P| and |SF.sub.A.sup.PSF.sub.B.sup.P| both equal 2; for a failing pattern P.sub.2, |SF.sub.A.sup.PSF.sub.B.sup.P| is 1 and |SF.sub.A.sup.PSF.sub.B.sup.P| is 2; for a passing pattern P.sub.3, the plurality of simulation failures SF are ignored. Using equation (3), sim.sub.net(SN.sub.1, SN.sub.2) is .

(19) In step S212, the single seed-net tree is divided from the top down into a plurality of sub seed-net trees (i.e. a plurality of clusters). Cluster partitioning will stop when each sub-seed-net tree contains at least one seed net meeting a first specific condition, i.e. a seed net whose failing outputs include all erroneous outputs of the sub-seed-net tree. Failing outputs of a seed net are the union of outputs where the plurality of simulation failures SF is observed by applying any test pattern. Erroneous outputs of a sub-seed-net tree are the union for failing outputs of all seed nets in the sub-seed-net tree. After cluster partitioning, seed nets in a sub-seed-net tree belong to the same cluster. FIG. 6 is a diagram illustrating an example of cluster partitioning of the seed-net tree shown in FIG. 4. There are five seed nets SN.sub.1-SN.sub.5 and five erroneous outputs O.sub.1-O.sub.5. Each check in the table represents that the output is a failing output of the corresponding seed net. At first, the seed-net tree with node r.sub.1 is partitioned into two sub-seed-net trees with nodes r.sub.2 and r.sub.4. This is because there is no seed net whose failing outputs include all erroneous outputs O.sub.1-O.sub.5. For the sub-seed-net tree with node r.sub.2, failing outputs of the seed net SN.sub.2 includes all of the erroneous outputs O.sub.1-O.sub.3. Hence, a cluster C.sub.1: {SN.sub.1, SN.sub.2, SN.sub.3} is composed of seed nets in the sub-seed-net tree with node r.sub.2. For the sub-seed-net tree with node r.sub.4, failing outputs of SN.sub.4 includes all of the erroneous outputs: O.sub.4-O.sub.5. Hence, a cluster C.sub.2: {SN.sub.4, SN.sub.5} is composed of seed nets in the sub-seed-net tree with node r.sub.4. Finally, cluster partitioning ends with two clusters, C.sub.1 and C.sub.2.

(20) In step S214, a suspected seed net is found out from each cluster obtained in step S210, where the suspected seed net is a seed net of a cluster, and corresponds to the most patterns which meet a second specific condition compared with other seed nets of the cluster. Given a seed net and a pattern, simulation failure result of the seed net must be the same as test failure results observed at erroneous outputs of the cluster to which the seed net belongs. The erroneous outputs of a cluster are a union of all erroneous outputs of respective seed net simulation failures of each seed net in the cluster. FIG. 7 is a diagram illustrating an example of finding a suspected seed net from the seed-net tree of FIG. 4. There are two failing patterns P.sub.1, P.sub.2 and five seed nets SN.sub.1-SN.sub.5. Each X represents a failure observed at the corresponding output. Two clusters C.sub.1: {SN.sub.1, SN.sub.2, SN.sub.3} and C.sub.2: {SN.sub.4, SN.sub.5} are the results of cluster partitioning shown in step S210. The erroneous outputs of the cluster C.sub.1 are O.sub.1, O.sub.2 and O.sub.3, while those of the cluster C.sub.2 are O.sub.4 and O.sub.5. The pattern P.sub.1 meets the second specific condition for the seed net SN.sub.2, since the plurality of simulation failures SF of the seed net SN.sub.2 are exactly the same as the plurality of test failures TF on erroneous outputs of the cluster C.sub.1. The pattern P.sub.1 also meets the second specific condition for both the seed nets SN.sub.4 and SN.sub.5, since the plurality of simulation failures SF of the seed nets SN.sub.4 and SN.sub.5 are exactly the same as the plurality of test failures TF on erroneous outputs of the cluster C.sub.2. The pattern P.sub.2 meets the second specific condition for both the seed nets SN.sub.1 and SN.sub.2, and also meets the second specific condition for SN.sub.4. For the cluster C.sub.1, since the seed net SN.sub.2 meets the second specific condition for 2 patterns, it is selected as a suspected seed net. Similarly, for the cluster C.sub.2, the seed net SN.sub.4 is selected as a suspected seed net.

(21) Please refer to FIG. 8, which is a diagram illustrating a computer system 800 for performing the multiple defect diagnosis method according to an exemplary embodiment of the present invention. The computer system 800 includes a processor 802 and a non-transitory machine readable medium 804. For instance, the computer system 800 could be a personal computer, and the non-transitory machine readable medium 804 could be any storage device capable of storing data in a personal computer, e.g. a volatile memory, non-volatile memory, hard disk or CD-ROM. In this embodiment, the non-transitory machine readable medium 804 stores a program code PROG, wherein when the program code PROG is loaded and executed by the processor 802, the program code PROG enables the processor to perform the disclosed multiple defect diagnosis method (i.e. the steps 202-214 shown in FIG. 2) of the present invention for a netlist N of a circuit C according to a plurality of test patterns TP and a plurality of test failures TF of the circuit C. Those skilled in the art will readily understand the deadlock detection processed by making the processor 802 execute the program code PROG; further description is therefore omitted here for brevity.

(22) Compared with the conventional multiple defect diagnosis, the multiple defect diagnosis method disclosed herein can analyze the correlation between the erroneous outputs corresponding to internal suspected seed nets, to find out the most possible locations where the defects occur at one time. The time and cost for iterative testing are therefore effectively reduced.

(23) Those skilled in the art will readily observe that numerous modifications and alterations of the device and method may be made while retaining the teachings of the invention. Accordingly, the above disclosure should be construed as limited only by the metes and bounds of the appended claims.