Method and equipment for clustering defects of wafer, medium and product

By introducing a stop condition of preset clustering times in wafer defect clustering analysis, the problem of infinite expansion of defect clustering in the existing technology is solved, more accurate defect cluster identification and isolation is achieved, and the stability of the production process is improved Sex and efficiency.

CN119399101APending Publication Date: 2025-02-07上海朋熙半导体股份有限公司
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202411265460.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-09-10
Publication Date
2025-02-07

AI Technical Summary

Technical Problem

In the prior art, when using the DBSCAN method combined with the R tree for defect clustering analysis, the clustering process of defects cannot be automatically stopped, resulting in infinite expansion of the cluster area of ​​defect clustering, forming defect clusters across wafer chips.

Method used

By traversing each defect point of the wafer, unvisited defect points are determined, and target clusters are determined based on these defect points and preset clustering times. The preset number of clustering times is used as a stop condition to ensure that the clustering process does not expand infinitely and avoid defect clusters across wafer chips.

Benefits of technology

It effectively prevents too large clustering areas, avoids the judgment of card control rules that affect business, improves the accuracy of clustering results, and helps maintain the stability and efficiency of the production process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119399101A_ABST
    Figure CN119399101A_ABST
Patent Text Reader

Abstract

The embodiment of the invention relates to the technical field of semiconductors, and discloses a method and equipment for clustering wafer defects, a medium and a product. The method comprises the following steps: traversing each defect point of a wafer, and determining defect points which are not accessed; wherein the defect point is a central point of a circumscribed circle corresponding to the defect; determining a target cluster according to the defect points which are not accessed and a preset number of clustering times; the preset number of clustering times is used for providing a stopping condition for aggregating the defect points which are not accessed; the target cluster does not have a cross-wafer chip; and determining a clustering result according to the target cluster. The defect clustering method and device can at least solve the problem that the defect clustering process cannot be automatically stopped in the prior art. In this way, the cluster area of defect clustering is infinitely expanded, and a defect cluster across a wafer chip (i.e., across die) is formed.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of semiconductor technology, and in particular to a method, device, medium and product for clustering defects in a wafer. Background Art

[0002] In the wafer processing process, detecting and analyzing defects is a crucial step. Through cluster analysis methods, defects can be grouped according to their characteristics. This process is crucial for controlling wafer production batches because the clustering results - that is, the number of identified defect clusters - will directly affect production decisions. If too many defect clusters are found, production may need to be suspended to investigate the cause, which in turn affects overall production efficiency and costs. It can be seen that cluster analysis is a key quality control method in wafer processing, which helps ensure the continuity and efficiency of the production process.

[0003] In the related art, there is a technical solution that uses the DBSCAN algorithm combined with the R-tree to perform cluster analysis of defects. However, the applicant found that there are at least the following technical problems in the related art: in the technical solution of using the DBSCAN method combined with the R-tree to perform cluster analysis of defects, it is impossible to automatically stop the clustering process of defects. In this way, the cluster area of ​​the defect clustering will be infinitely expanded, forming a defect cluster across wafer chips (i.e., across dies). From a business perspective, this situation does not meet the requirements because it may cause defects on different dies to be mistakenly regarded as the same cluster, thereby affecting the control of wafer batches during the production process and affecting the production efficiency and quality of the wafers. Summary of the invention

[0004] One purpose of the present application is to provide a method, device, medium and product for clustering defects of wafers, at least to solve the technical problem that the process of clustering defects cannot be automatically stopped in the related art, which will cause the cluster area of ​​defect clustering to expand infinitely and form defect clusters across wafer chips (i.e., across dies).

[0005] To achieve the above objectives, some embodiments of the present application provide the following aspects:

[0006] In the first aspect, some embodiments of the present application also provide a method for clustering defects on a wafer, the method comprising: traversing each defect point on the wafer to determine a defect point that has not been visited; wherein the defect point is the center point of the circumscribed circle of the corresponding defect; determining a target cluster based on the defect point that has not been visited and a preset number of clustering times; the preset number of clustering times is used to provide a stop condition for clustering the defect points that have not been visited; the target cluster does not contain cross-wafer chips; and determining a clustering result based on the target cluster.

[0007] In a second aspect, some embodiments of the present application further provide an electronic device, comprising: one or more processors; and a memory storing computer program instructions, wherein the computer program instructions, when executed, cause the processor to perform the steps of the method described above.

[0008] In a third aspect, some embodiments of the present application further provide a computer-readable medium having computer program instructions stored thereon, wherein the computer program instructions can be executed by a processor to implement the method as described above.

[0009] In a fourth aspect, some embodiments of the present application further provide a computer program product, comprising a computer program / instruction, which implements the steps of the method described above when executed by a processor.

[0010] Compared with the related art, in the solution provided by the embodiment of the present application, by traversing each defect point of the wafer, the defect point that has not been visited is determined; wherein the defect point is the center point of the circumscribed circle of the corresponding defect; according to the defect point that has not been visited and the preset number of clustering times, the target cluster is determined; the preset number of clustering times is used to provide a stop condition for aggregating the defect point that has not been visited; the target cluster does not have cross-wafer chips; according to the target cluster, the clustering result is determined. It can be seen that the embodiment of the present application proposes an algorithm innovation, that is, automatically stopping the clustering process of defects by setting a preset number of clustering times. This innovation can effectively prevent the clustering area from being too large, thereby avoiding the card control rule judgment that affects the business. In this way, specific defect clusters can be more accurately identified and isolated, rather than mistakenly extending them to areas that should not belong to the same cluster. In this way, not only the accuracy of the clustering results can be improved, but also it helps to maintain the stability and efficiency of the production process. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] One or more embodiments are exemplarily described by pictures in the corresponding drawings, and these exemplified descriptions do not constitute limitations on the embodiments. Elements with the same reference numerals in the drawings represent similar elements, and unless otherwise stated, the figures in the drawings do not constitute proportional limitations.

[0012] Figure 1 An exemplary flow chart of a method for clustering wafer defects according to some embodiments of the present application;

[0013] Figure 2 An exemplary schematic diagram of a method for clustering wafer defects in a related technology provided according to some embodiments of the present application;

[0014] Figure 3An exemplary flow chart of step S101 in a method for clustering wafer defects provided according to some embodiments of the present application;

[0015] Figure 4 An exemplary flow chart of step S102 in a method for clustering wafer defects provided according to some embodiments of the present application;

[0016] Figure 5 An exemplary flow chart of step S1022 in a method for clustering wafer defects provided according to some embodiments of the present application;

[0017] Figure 6 An exemplary flow chart of step S103 in a method for clustering wafer defects provided according to some embodiments of the present application;

[0018] Figure 7 This is an exemplary structural diagram of an electronic device provided according to some embodiments of the present application. DETAILED DESCRIPTION

[0019] In order to make the purpose, technical solution and advantages of the embodiments of the present application clearer, the technical solution in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.

[0020] The following terms are used in this article.

[0021] R-tree: Rtree is an index structure specifically used for multidimensional spatial data. It optimizes the efficiency of range queries and nearest neighbor queries by dividing the space into multiple non-overlapping areas. This data structure allows for quick retrieval of all objects in a specific area or finding the object closest to a point.

[0022] DBSCAN: Density-Based Spatial Clustering of Applications with Noise, is an algorithm for grouping data points into clusters with similar density. The algorithm discovers clusters of arbitrary shapes by dividing data points into core points, boundary points, and noise points according to density.

[0023] Tolerance value: is a parameter used in cluster analysis, which determines the threshold of the distance between data points. When the distance between two data points does not exceed the tolerance, they can be considered to belong to the same cluster. In short, tolerance is a measure of the similarity of data points. If the distance between two data points is less than or equal to the tolerance, they are considered similar.

[0024] Cluster: The full name of cluster in English is a collection of data points that are identified and grouped by clustering algorithms based on the similarity between data points. In the clustering process, the goal of the algorithm is to divide the points in the data set into several such clusters, so that the data points within the clusters are more similar to each other, while the data points between clusters are relatively different.

[0025] Die: refers to wafer chip, which is a single integrated circuit unit that makes up the chip. It is an independent component cut from the whole wafer.

[0026] First embodiment

[0027] The first embodiment of the present application relates to a method for clustering defects of a wafer. Figure 1 As shown, the method may include the following steps:

[0028] Step S101, traversing each defect point of the wafer to determine a defect point that has not been visited; wherein the defect point is the center point of the circumscribed circle of the corresponding defect;

[0029] Step S102, determining a target cluster according to the defect points that have not been visited and a preset number of clustering times; the preset number of clustering times is used to provide a stop condition for aggregating the defect points that have not been visited; and the target cluster does not have cross-wafer chips;

[0030] Step S103: determining a clustering result according to the target cluster.

[0031] The following is a detailed description of each of the above steps.

[0032] For step S101, specifically, in some examples, each defect point of the wafer can be traversed according to the index function created by the R-tree to determine the defect points that have not been visited. Considering that the defect is generally a two-dimensional image and the shape of the defect is irregular, in the embodiment of the present application, the center point of the circumscribed circle of the defect is used as the defect point of each defect.

[0033] Regarding step S102, specifically, in some examples, if the number of aggregations based on the unvisited defect points is greater than or equal to the preset number of clusterings, the aggregation process based on the unvisited defect points can be stopped to obtain the target cluster. In this way, since the preset number of clusterings is used to provide the stop condition for aggregating the unvisited defect points, it is possible to achieve better control so that the target cluster does not have the problem of crossing wafer chips, thereby solving the technical problem in the related art that the cluster area of ​​defect clustering will be infinitely expanded to form a defect cluster crossing wafer chips.

[0034] The preset number of clustering times can be flexibly set by relevant personnel according to different business requirements, and the embodiment of the present application does not specifically limit this. Exemplarily, the preset number of clustering times can be represented by stop_times.

[0035] Regarding step S103, specifically, in some examples, the clustering result includes multiple target clusters. That is, multiple target clusters together form the clustering result.

[0036] In the related art, see Figure 2 As shown, the merged cluster Cluster will generally continue to merge with the surrounding adjacent clusters Cluster, such as Cluster ID 1, Cluster ID 2, and Cluster ID 3 in the figure, resulting in the problem that the merged Cluster is too large.

[0037] It is not difficult to find that, compared with the related art, in the solution provided by the embodiment of the present application, by traversing each defect point of the wafer, the defect point that has not been visited is determined; wherein the defect point is the center point of the circumscribed circle of the corresponding defect; according to the defect point that has not been visited and the preset number of clustering times, the target cluster is determined; the preset number of clustering times is used to provide a stop condition for aggregating the defect point that has not been visited; the target cluster does not have cross-wafer chips; according to the target cluster, the clustering result is determined. It can be seen that the embodiment of the present application proposes an algorithm innovation, that is, to automatically stop the clustering process of defects by setting a preset number of clustering times. This innovation can effectively prevent the clustering area from being too large, thereby avoiding the card control rule judgment that affects the business. In this way, specific defect clusters can be more accurately identified and isolated, rather than mistakenly extending them to areas that should not belong to the same cluster. In this way, not only the accuracy of the clustering results can be improved, but also it helps to maintain the stability and efficiency of the production process.

[0038] Second embodiment

[0039] The second embodiment of the present application relates to a method for clustering defects of a wafer. The second embodiment is an improvement on the first embodiment, and the specific improvement is: in the second embodiment of the present application, a method for traversing each defect point of the wafer and determining the defect points that have not been visited is provided, that is, a specific implementation method of step S101.

[0040] Specifically, in some embodiments, traversing each defect point of the wafer to determine the defect point that has not been visited, that is, step S101 may further include the following steps: Figure 3 As shown:

[0041] Step S1011, obtaining an index function created based on the R-tree;

[0042] Step S1012, traversing each defect point of the wafer according to the index function, and obtaining an index identifier corresponding to each defect point;

[0043] Step S1013, determining the defect points that have not been visited according to the index identifier and the access set; wherein the access set is used to store the index identifiers of the defect points that have been visited.

[0044] Regarding step S1011, specifically, in some examples, the index function created based on the R-tree may include a first function, an attribute object, an index dimension, a target index object, and the like.

[0045] Exemplarily, the name of the first function may be, but is not limited to: rtree_init.

[0046] Exemplarily, a Property object may be created, and the property object is used to determine the property of the index. For example, the exemplary code may refer to: p=index.Property().

[0047] For example, the setting value of the index dimension may be 2, which means that the technical solution in the embodiment of the present application can process data in a two-dimensional space. For example, the code may refer to: p.dimension=2.

[0048] Exemplarily, the target index object can be determined according to the property object. An index object idx can be created, and the property object p can be used to initialize the index object idx to obtain the target index object. For example, the code can be referenced as: idx = index.Index (properties = p).

[0049] Regarding step S1012, specifically, in some examples, each defect point data of the wafer can be collected in a list and can be specified by points; the list can be received by the first function in the index function (i.e., the points are used as the input parameter of the first function), and the index identifier corresponding to each defect point can be obtained.

[0050] Exemplarily, the list may include a target element for each defect point of the wafer, and the target element includes at least: a position coordinate for characterizing each defect point, that is, the x-axis coordinate and the y-axis coordinate of each defect point, and a radius r of the circumscribed circle of the defect corresponding to each defect point. Exemplarily, the target element may be represented by (x, y, r). Exemplary code may refer to: def rtree_init(points). Exemplarily, when traversing to a defect point of the wafer, the defect point may be used to perform an initialization operation on the index function, and the initialized index function may be called. Exemplary code may refer to:

[0051] idx=rtree_init(points=data).

[0052] Exemplarily, a loop may be started to iterate through the target elements of each defect point in the list. For example, the code may refer to: for i, (x, y, r) in enumerate (points); wherein the enumerate function is used to simultaneously obtain the index identifier i of the defect point and the target element (x, y, r). Next, a new entry may be inserted into the target index object: the index identifier i of the defect point, the rectangular area defined by (xr, yr, x+r, y+r), the rectangular area being centered at point (x, y) and having a radius of r; wherein the coordinates of the lower left corner of the rectangular area are (xr), (yr), and the coordinates of the upper right corner are (x+r), (y+r). The exemplary code can refer to: idx.insert(i,(xr,yr,x+r,y+r). Furthermore, the created target index object idx can be returned by return idx. In this way, by initializing the R-tree index and inserting the list into the index, the list includes each defect point defined with a position and a radius. Each defect point corresponds to a rectangular area, so when performing spatial queries, such as finding all points whose distance from a certain point does not exceed a specific value, the R-tree can be used to speed up the query process and improve query efficiency.

[0053] For step S1013, specifically, in some examples, a visited set visited can be initialized, and the exemplary code can refer to: visited = set (); the visited set visited is used to store the index identifiers of the defect points that have been visited, and before traversing each defect point of the wafer, the visited set visited is empty. By setting the visited set visited, it is helpful to determine whether the defect point has been traversed, so that each defect point can be ensured to be processed only once, thereby avoiding repeated processing of the same defect point.

[0054] Exemplarily, when points=data, the index identifier i of the defect point can be obtained. Wherein, i represents the index identifier corresponding to the defect point. Exemplary code can refer to: for iin range(len(data)); further, determine whether the index identifier i is in the visited set. If the index identifier i is in the visited set, it means that the defect point has been traversed and no subsequent operations are required; otherwise, if the index identifier i is not in the visited set, it means that the defect point has not been traversed and further subsequent processing is required. Exemplary code can refer to: if i not in visited.

[0055] It is not difficult to find that in the embodiment of the present application, by obtaining an index function created based on an R-tree, traversing each defect point of the wafer according to the index function, and obtaining the index identifier corresponding to each defect point; determining the defect point that has not been visited according to the index identifier and the access set; wherein the access set is used to store the index identifier of the defect point that has been visited, and provides a specific implementation method for traversing each defect point of the wafer and determining the defect point that has not been visited. In this way, it can be ensured that each defect point is processed only once, thereby achieving the purpose of avoiding repeated processing of the same defect point.

[0056] It is not difficult to find that in the embodiment of the present application, by obtaining an index function created based on the R-tree and a list including each defect point; determining a rectangular area according to the index function and the list; and determining the distance between the first defect point and the second defect point according to the rectangular area, a calculation result is obtained. A specific implementation method for determining the distance between the first defect point and the second defect point for each defect point and obtaining a calculation result is provided, which is conducive to improving the query efficiency of defect points.

[0057] Third embodiment

[0058] The third embodiment of the present application relates to a method for clustering defects of a wafer. The third embodiment is an improvement on the first embodiment, and the specific improvement is: in the third embodiment of the present application, a specific implementation method for determining a target cluster based on the defect points that have not been visited and the preset number of clustering times is provided.

[0059] Specifically, in some embodiments, the target cluster is determined according to the defect points that have not been visited and the preset number of clustering times, that is, step S102 may further include the following steps: Figure 4 As shown:

[0060] Step S1021, determining a first defect point; wherein the first defect point is used to represent a current defect point that is currently being processed and has not been accessed;

[0061] Step S1022, determining a stack according to the index identifier of the first defect point; the stack is used to store a second defect point; wherein the second defect point is used to represent all defect points in a rectangular area constructed with the first defect point as the center;

[0062] Step S1023: determining a target cluster according to the stack and the preset number of clustering times.

[0063] For step S1022, specifically, in some examples, a corresponding stack stack may be created according to the index identifier i of the first defect point. The stack is used to gradually explore the second defect point adjacent to the first defect point. The exemplary code for creating a corresponding stack stack according to the index identifier i of the first defect point can refer to: stack = [i]; it can be understood that, initially, the stack stack only includes the index identifier i.

[0064] Optionally, in some embodiments, the step of determining the target cluster according to the stack and the preset number of clustering times, that is, step S1023, may further include the following steps:

[0065] Step S10231, performing a loop calculation according to the index identifier in the stack; wherein, in the process of performing the loop calculation according to the index identifier in the stack, according to the stack, popping out the index identifier of any defect point included in the second defect point; adding the index identifier to the access set and the cluster list;

[0066] Step S10232: Determine a target cluster according to the cluster list and the preset number of clustering times.

[0067] Regarding step S10231, specifically, in some examples, if the stack contains a value and is not empty, a loop calculation can be performed according to the index identifier in the stack until the stack is empty. If the stack is empty, it means that there are no other second defect points adjacent to the first defect point that need to be processed.

[0068] Further, in the process of performing a loop calculation according to the index identifier in the stack, the method may include: popping an index identifier from the stack, the index identifier being the index identifier of any defect point included in the second defect point, which may be implemented by the exemplary reference code: point = stack.pop(). Further, the index identifier of any defect point included in the popped-up second defect point may be added to the visited set visited, indicating that the defect point corresponding to the aforementioned index identifier has been visited, which may be implemented by the exemplary reference code: visited.add(point). And, the index identifier of any defect point included in the popped-up second defect point may be added to the cluster list, which may be implemented by the exemplary reference code: cluster.append(point). Wherein, before adding the index identifier of any defect point included in the popped-up second defect point to the cluster list, a cluster Cluster may be initialized, and the cluster Cluster is used to store the index identifier of the defect point currently undergoing clustering processing. The exemplary code may refer to: cluster = [], after the initialization is completed, the cluster Cluster is empty.

[0069] Optionally, in some embodiments, the determining of the target cluster according to the cluster list and the preset number of clustering times, that is, step S10232, may further include the following steps:

[0070] Step S102321, detecting the number of aggregations based on the cluster list;

[0071] Step S102322: determining a target cluster according to the number of aggregations based on the cluster list and the preset number of clusterings.

[0072] Specifically, it can be determined whether the number of aggregations is greater than or equal to the preset number of clusterings. If the number of aggregations is greater than or equal to the preset number of clusterings, the loop is exited, and the target cluster is obtained. The exemplary code can be referenced as follows:

[0073] if len(cluster)>=stop_times:break.

[0074] Exemplarily, the obtained target cluster cluster may also be added to the cluster list clusters. For exemplary code, please refer to: clusters.append(cluster).

[0075] Exemplarily, the second position coordinates (x, y) of each second defect point and the second circumscribed circle radius r of the defect corresponding to each second defect point can be further obtained, which can be achieved through the exemplary reference code: x, y, r = data[point].

[0076] Optionally, in some embodiments, the method for determining the rectangular area may include the following steps:

[0077] Step S201, obtaining the first position coordinates of the first defect point, the first circumscribed circle radius of the defect corresponding to the first defect point, and a preset tolerance value;

[0078] Step S202: determining the rectangular area according to the first position coordinates, the first circumscribed circle radius and the preset tolerance value.

[0079] Exemplarily, the preset tolerance value can be represented by tolerance. The diagonal coordinates of the rectangular area can be determined by taking the first position coordinate as the center and considering the preset tolerance value tolerance and the first circumscribed circle radius. The exemplary code can refer to:

[0080] min_coords=np.array([xr-tolerance,yr-tolerance])

[0081] max_coords=np.array([x+r+tolerance,y+r+tolerance])

[0082] Among them, min_coords is used to represent the coordinates of the lower left corner of the rectangular area, and max_coords is used to represent the coordinates of the upper right corner of the rectangular area. In other words, the min_coords and the max_coords together define the diagonal coordinates of the rectangular area.

[0083] Furthermore, the diagonal coordinates of the rectangular area can be used for R-tree query to find all defect points in the rectangular area, that is, the second defect points. That is to say, in an embodiment of the present application, the position coordinates of the first defect point can be used to query the R-tree index to find all second defect points in the rectangular area. Furthermore, the second defect point can be added to the current cluster Cluster, and at the same time, the index identifier of the second defect point is also added to the stack stack for further exploration. The above process will be repeated until the stack stack is empty, indicating that all adjacent defect points in the current cluster Cluster have been found and processed.

[0084] In some examples, after determining the rectangular area, the intersection method of the R-tree index may be used to perform a query to obtain a query result for characterizing all second defect points within the rectangular area; an exemplary reference code is shown below:

[0085] results=list(idx.intersection(tuple(min_coords)+tuple(max_coords))).

[0086] It should be noted that the fifth embodiment of the present application may also be an improvement based on the second embodiment.

[0087] It is not difficult to find that in an embodiment of the present application, by determining a first defect point; wherein the first defect point is used to represent the current unvisited defect point currently being processed; determining a stack based on the index identifier of the first defect point; the stack is used to store a second defect point; wherein the second defect point is used to represent all defect points within a rectangular area constructed based on the first defect point as the center; determining a target cluster based on the stack and the preset number of clustering times, a specific implementation method for determining a target cluster based on the unvisited defect point and the preset number of clustering times is provided.

[0088] Fourth embodiment

[0089] The fourth embodiment of the present application relates to a method for clustering defects of a wafer. The fourth embodiment is an improvement on the third embodiment, and the specific improvement is: in the fourth embodiment of the present application, a specific implementation method for determining a stack according to an index identifier of the first defect point is provided.

[0090] Specifically, in some embodiments, the step of determining the stack according to the index identifier of the first defect point, that is, step S1022, may further include the following steps: Figure 5 As shown:

[0091] Step S10221, storing the index identifier of the second defect point in a cluster list;

[0092] Step S10222, determining the target distance between the first defect point and the second defect point corresponding to each index identifier respectively according to the index identifier in the cluster list;

[0093] Step S10223: If the target distance is less than or equal to the preset tolerance value, the index identifier of the second defect point corresponding to the target distance is added to the stack.

[0094] For step S10221, specifically, in some examples, the second defect point can also be stored in a cluster list clusters. Before using the intersection method of the R-tree index to query and obtain all the second defect points in the rectangular area, a cluster list clusters can be initialized, and the cluster list clusters is used to store different clusters Cluster to represent the final clustering result. The exemplary code can refer to: clusters = []. It can be understood that after the initialization is completed, the value of the cluster list clusters is originally empty.

[0095] For step S10222, specifically, in some examples, the index identifier j in the cluster list clusters may be traversed in a loop. The index identifier j is used to represent the index identifier of any second defect point. For example, the exemplary code may refer to: for j in results.

[0096] Further, the target distance between the first defect point and the second defect point corresponding to each index identifier is respectively; the exemplary code may refer to:

[0097] distance=distance_with_radius(data[point],data[j]).

[0098] In this exemplary code, the first defect point is specified by an index point, and the second defect point is specified by an index identifier j. In the distance, the radius between the first defect point and the second defect point is taken into account.

[0099] In the above example, the auxiliary function distance_with_radius is used.

[0100] In some other examples, the exemplary code may also be:

[0101] def distance_with_radius(point1,point2)

[0102] Wherein, point1=x1, y1, r1; point1 may represent the first defect point, and x1, y1, r1 respectively represent the first position coordinates and the first circumscribed circle radius corresponding to the first defect point;

[0103] Among them, point2=x2, y2, r2; point2 can represent any one of the second defect points, and x2, y2, r2 represent the second position coordinates and the second circumscribed circle radius of the second defect point respectively.

[0104] Exemplarily, the original Euclidean distance between the first defect point and the second defect point may be calculated in the following manner: And return the result: return dist-(r1+r2); that is, subtract the sum of the radii of the circumscribed circles of the first defect point and the second defect point from the original Euclidean distance, so as to obtain the target distance considering the influence of the radius. It can be understood that if the defect corresponding to the first defect point and the edge of the defect corresponding to the second defect point are in contact, then the distance between the two defects is actually the sum of the radii of the circumscribed circles of the first defect point and the second defect point. Therefore, in an embodiment of the present application, in order to calculate the actual proximity of the two defects, the sum of the radii of the circumscribed circles of the first defect point and the second defect point is subtracted from the original Euclidean distance. In this way, if the result is a positive number, it means that the two defects are not in contact; if the result is zero or a negative number, it means that the two defects are in contact.

[0105] For step S10223, specifically, in some examples, it is possible to first check whether the index identifier j has been visited. If the index identifier j has not been visited, it is further determined whether the target distance between the second defect point corresponding to the index identifier j and the first defect point is less than or equal to the preset tolerance value tolerance. The exemplary code can refer to: if j not in visited and distance<=tolerance.

[0106] Furthermore, if the target distance is less than or equal to the preset tolerance value tolerance, the index identifier j is added to the stack, so as to facilitate the subsequent further exploration of other defect points close to the defect point corresponding to the index identifier j. The exemplary code can refer to: stack.append(j). Here, it can be understood that the defect point corresponding to the index identifier j is taken as the first defect point, and the second defect point is searched based on the first defect point.

[0107] It should be noted that the fourth embodiment of the present application may also be an improvement based on the first embodiment and / or the second embodiment.

[0108] It is not difficult to find that in an embodiment of the present application, by storing the index identifier of the second defect point in a cluster list, and determining the target distance between the first defect point and the second defect point corresponding to each index identifier according to the index identifier in the cluster list; if the target distance is less than or equal to the preset tolerance value, the index identifier of the second defect point corresponding to the target distance is added to the stack, providing a specific implementation method for determining the stack according to the index identifier of the first defect point.

[0109] Fifth embodiment

[0110] The fifth embodiment of the present application relates to a method for clustering defects of a wafer. The fifth embodiment is an improvement on the first embodiment, and the specific improvement is: in the fifth embodiment of the present application, a specific implementation method for determining the clustering result according to the target cluster is provided.

[0111] Specifically, in some embodiments, the step of determining the clustering result according to the target cluster, that is, step S103, may further include the following steps: Figure 6 As shown:

[0112] Step S1031, obtaining the minimum number of defect points that can be included in the cluster list;

[0113] Step S1032, determining label information of each target cluster in the clustering result according to the target cluster and the minimum number;

[0114] Step S1033: determining a clustering result according to the label information.

[0115] Exemplarily, the obtained target cluster cluster may also be added to the cluster list clusters. For exemplary code, please refer to: clusters.append(cluster). After the target cluster cluster is added to the cluster list clusters, the label information of the target cluster cluster may be further determined.

[0116] Exemplarily, an array can be created using the NumPy library. The length of the array can be the same as the data length of the defect point data. The label information can be represented by labels. The initial value of the label information can be set to -1. The array is used to store the label information of each defect point in the target cluster. The exemplary code can refer to: labels = np.full (len (data), -1); at the same time, a counter n can also be initialized. The counter n is used to assign a unique label information to each defect point in the target cluster cluster.

[0117] Furthermore, the minimum number of defect points that can be included in the cluster list can be obtained, and the minimum number of defect points that can be included in the cluster list can be represented by min_pts. It can be understood that if the number of defect points in the target cluster is less than the minimum number, the corresponding defect point can be regarded as an outlier; illustratively, the label information of the outlier can be -1.

[0118] Specifically, the target cluster cluster in the cluster list clusters can be looped through; the exemplary code can refer to: for cluster in clusters. Then, determine whether the number of defect points in the target cluster cluster is greater than or equal to the minimum number. If the number of defect points in the target cluster cluster is greater than or equal to the minimum number. The exemplary code can refer to: if len(cluster)>=min_pts; then set the label information of all defect points in the target cluster cluster to n. The exemplary code can refer to: labels[[idx for idx incluster]]=n. In addition, the counter n can be updated to prepare for adding label information to the next target cluster cluster in the cluster list clusters. At this point, the label information of the defect points in each cluster Cluster in the cluster list clusters is obtained. In addition, the function can return the array, which includes the label information of each defect point.

[0119] It should be noted that a second function named rtree_scan may be defined, and the second function is used to receive the target parameter, and the target parameter may include at least one of the following: data, a preset tolerance value tolerance, the minimum number min_pts, and the preset number of clustering times.

[0120] It should be noted that the fifth embodiment of the present application may also be an improvement based on any one or more embodiments from the second embodiment to the fourth embodiment.

[0121] It is not difficult to find that in the embodiment of the present application, the purpose of the entire rtree_scan function is to use the R-tree index to accelerate the spatial clustering algorithm, and by iteratively exploring the neighboring area of ​​each defect point, spatially close defect points are divided into the same cluster until the minimum cluster size min_pts is met or the maximum number of iterations stop_times is reached.

[0122] In summary, the technical solution of this application has at least the following beneficial effects:

[0123] 1. This application can effectively solve the problem of cluster areas being too large or spanning different dies in the defect clustering process by adding an algorithm design based on a preset number of clustering times, thereby meeting the specific business needs of engineers in the factory. The algorithm innovation provided by the embodiments of this application can ensure the accuracy and practicality of the clustering results and improve the control capability and efficiency of the production process.

[0124] 2. This application can flexibly adjust the preset number of clustering times by inputting parameters, which provides convenience for engineers. In this way, engineers can personalize the clustering process according to specific business needs, making the clustering results more in line with the actual application scenario and improving the adaptability and practicality of the clustering algorithm.

[0125] 3. The algorithm design of this application is an improvement based on the DBSCAN algorithm supported by the R-tree. This modification retains the effective clustering capability of the defect two-dimensional shape and maintains the speed of clustering calculation. At the same time, it also realizes the number of clustering as a function parameter, allowing users to flexibly set it according to their needs, thereby improving the efficiency and applicability of the algorithm.

[0126] The step division of the above methods is only for clear description. When implemented, they can be combined into one step or some steps can be split and decomposed into multiple steps. As long as they include the same logical relationship, they are all within the scope of protection of this application; adding insignificant modifications to the algorithm or process or introducing insignificant designs without changing the core design of the algorithm and process are all within the scope of protection of this application.

[0127] In addition, some embodiments of the present application also provide an electronic device. The electronic device may be a digital computer in various forms, such as a laptop computer, a desktop computer, a workbench, a personal digital assistant, a server, a blade server, a mainframe computer, etc. The electronic device may also be a mobile device in various forms, such as a personal digital processing, a cellular phone, a smart phone, a wearable device, and other similar computing devices.

[0128] The electronic device includes: one or more processors; and a memory storing computer program instructions, wherein when the computer program instructions are executed, the processor executes the steps of the method provided in any one or more of the above embodiments. Figure 7 An exemplary structural diagram of the electronic device is disclosed. Figure 7 As shown, the electronic device includes: one or more processors 1101, memory 1102, and interfaces for connecting various components, including high-speed interfaces and low-speed interfaces. The various components are connected to each other using different buses and can be installed on a common mainboard or installed in other ways as needed. The processor can process instructions executed in the electronic device, including instructions stored in or on the memory to display graphical information of the GUI on an external input / output device (such as a display device coupled to the interface). In some other embodiments, if necessary, multiple processors and / or multiple buses can be used together with multiple memories and multiple memories. Similarly, multiple electronic devices can be connected, and each device provides some necessary operations (for example, as a server array, a group of blade servers, or a multi-processor system). Among them, the components shown in this article, their connections and relationships, and their functions are only used as examples, and are not intended to limit the implementation of the present application described and / or required herein.

[0129] The electronic device may further include: an input device 1103 and an output device 1104. The processor 1101, the memory 1102, the input device 1103 and the output device 1104 may be connected via a bus or other means. Figure 7 The example of connecting through bus is taken in the following.

[0130] The input device 1103 can receive input digital or character information, and generate key signal input related to the user settings and function control of the electronic device, such as a touch screen, a keypad, a mouse, a track pad, a touch pad, an indicator rod, one or more mouse buttons, a track ball, a joystick and other input devices. The output device 1104 may include a display device, an auxiliary lighting device (e.g., an LED) and a tactile feedback device (e.g., a vibration motor), etc. The display device may include, but is not limited to, a liquid crystal display (LCD), a light emitting diode (LED) display and a plasma display. In some embodiments, the display device may be a touch screen.

[0131] To provide interaction with a user, the electronic device may be a computer. The computer has: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user; and a keyboard and a pointing device (e.g., a mouse or a trackball), through which the user can provide input to the computer. Other types of devices may also be used to provide interaction with the user; for example, the feedback provided to the user may be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user may be received in any form (including acoustic input, voice input, or tactile input).

[0132] In the embodiments of the present application, a computer program / instruction is stored on a computer-readable medium, and when the computer program / instruction is executed by a processor, the steps of the method provided by any one or more of the above embodiments are implemented. The computer-readable medium may be included in the electronic device described in the above embodiments; or it may exist independently without being assembled into the device. The above computer-readable medium carries one or more computer-readable instructions.

[0133] The memory 1102 can be used as a non-transient computer-readable storage medium, which can be used to store non-transient software programs, non-transient computer executable programs and modules. The processor 1101 executes various functional applications and data processing of the server by running the non-transient software programs, instructions and modules stored in the memory 1102, so as to implement the program instructions / modules corresponding to the method provided by any one or more embodiments in the embodiments of the present application.

[0134] The memory 1102 may include a program storage area and a data storage area, wherein the program storage area may store an operating system, an application required for at least one function; the data storage area may store data created according to the use of the electronic device, etc. In addition, the memory 1102 may include a high-speed random access memory, and may also include a non-transient memory, such as at least one disk storage device, a flash memory device, or other non-transient solid-state storage device. In some embodiments, the memory 1102 may optionally include a memory remotely arranged relative to the processor 1101, and these remote memories may be connected to the electronic device via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.

[0135] It should be noted that the computer-readable medium described in the present application may be a computer-readable signal medium or a computer-readable storage medium or any combination of the above two. The computer-readable medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared or semiconductor system, device or device, or any combination of the above. More specific examples of computer-readable storage media may include, but are not limited to: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In the present application, a computer-readable medium may be any tangible medium containing or storing a program that can be used by or in combination with an instruction execution system, device or device.

[0136] Computer readable media include permanent and non-permanent, removable and non-removable media, and can be implemented by any method or technology to store information. Information can be computer readable instructions, data structures, modules of programs or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, read-only compact disk (CD-ROM), digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic tape disk storage or other magnetic storage devices or any other non-transmission medium that can be used to store information that can be accessed by a computing device.

[0137] Computer program code for performing the operations of the present application may be written in one or more programming languages ​​or a combination thereof, including object-oriented programming languages, such as Java, Smalltalk, C++, and conventional procedural programming languages, such as "C" or similar programming languages. The program code may be executed entirely on the user's computer, partially on the user's computer, as a separate software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving a remote computer, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., via the Internet using an Internet service provider).

[0138] In the above-described embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. For example, it can be implemented by using an application specific integrated circuit (ASIC), a general-purpose computer or any other similar hardware device. In certain embodiments, the software program of the present application can be executed by a processor to implement the above steps or functions. Similarly, the software program of the present application (including relevant data structures) can be stored in a computer-readable recording medium, for example, a RAM memory, a magnetic or optical drive or a floppy disk and similar devices. In addition, some steps or functions of the present application can be implemented by hardware, for example, as a circuit that cooperates with a processor to perform each step or function.

[0139] The computer program product provided in the embodiment of the present application includes one or more computer programs / instructions, and when the computer program / instructions are executed by the processor, the process or function described in the embodiment of the present application is generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions may be stored in a computer-readable storage medium, or transmitted from a computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be transmitted from a website site, a computer, a server or a data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) mode to another website site, computer, server or data center. The computer-readable storage medium may be any available medium that a computer can access or a data storage device such as a server or a data center that includes one or more available media integrations. The available medium may be a magnetic medium, (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state hard disk (SSD)), etc.

[0140] The flow chart or block diagram in the accompanying drawings shows the possible architecture, function and operation of the equipment, method and computer program product according to various embodiments of the present application. In this regard, each box in the flow chart or block diagram can represent a module, a program segment or a part of a code, and the module, the program segment or a part of the code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the box can also occur in a different order from the order marked in the accompanying drawings. For example, two boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flow chart, and the combination of the boxes in the block diagram and / or flow chart can be implemented with a dedicated system for hardware that performs a specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.

[0141] The scope of the present application is defined by the appended claims rather than the above description, and it is intended that all changes that fall within the meaning and scope of the equivalent elements of the claims are included in the present application. Any figure mark in the claims should not be regarded as limiting the claims involved. In addition, it is clear that the word "comprising" does not exclude other units or steps, and the singular does not exclude the plural. Multiple units or devices stated in the device claim may also be implemented by one unit or device through software or hardware. The words "first", "second", etc. are only used to distinguish the description, and do not indicate any particular order, nor can they be understood as indicating or implying relative importance.

[0142] The above is only a specific embodiment of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art can easily mention changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims, and the above embodiments should be regarded as exemplary and non-restrictive.

Claims

1. A method for clustering wafer defects, characterized in that: The method comprises: Traversing each defect point of the wafer to determine a defect point that has not been visited; wherein the defect point is the center point of the circumscribed circle of the corresponding defect; Determine a target cluster according to the defect points that have not been visited and a preset number of clustering times; the preset number of clustering times is used to provide a stop condition for aggregating the defect points that have not been visited; and the target cluster does not have any cross-wafer chips; A clustering result is determined according to the target cluster.

2. The method according to claim 1, characterized in that The traversing each defect point of the wafer to determine the defect point that has not been visited includes: Get the index function created based on the R-tree; According to the index function, traverse each defect point of the wafer, and obtain the index identifier corresponding to each defect point; Determine defect points that have not been visited according to the index identifier and the access set; wherein the access set is used to store the index identifiers of defect points that have been visited.

3. The method according to claim 1, characterized in that The determining of the target cluster according to the unvisited defect points and the preset number of clustering times comprises: Determine a first defect point; wherein the first defect point is used to represent a current defect point that is currently being processed and has not been visited; Determine a stack according to the index identifier of the first defect point; the stack is used to store a second defect point; wherein the second defect point is used to represent all defect points in a rectangular area constructed with the first defect point as the center; A target cluster is determined according to the stack and the preset number of clustering times.

4. The method according to claim 3, characterized in that The determining the stack according to the index identifier of the first defect point comprises: storing the index identifier of the second defect point in a cluster list; Determining, according to the index identifiers in the cluster list, a target distance between the first defect point and a second defect point corresponding to each index identifier; If the target distance is less than or equal to the preset tolerance value, the index identifier of the second defect point corresponding to the target distance is added to the stack.

5. The method according to claim 3, characterized in that: The determining of the target cluster according to the stack and the preset number of clustering times comprises: Execute a loop calculation according to the index identifier in the stack; wherein, in the process of executing the loop calculation according to the index identifier in the stack, according to the stack, pop out the index identifier of any defect point included in the second defect point; add the index identifier to the access set and the cluster list; the access set is used to store the index identifiers of the defect points that have been visited; A target cluster is determined according to the cluster list and the preset number of clustering times.

6. The method according to claim 5, characterized in that The determining the target cluster according to the cluster list and the preset number of clustering times comprises: detecting a number of aggregations based on the cluster list; A target cluster is determined according to the number of aggregations based on the cluster list and the preset number of clusterings.

7. The method according to any one of claims 1 to 6, characterized in that: Determining the clustering result according to the target cluster includes: Get the minimum number of defect points that can be included in the cluster list; Determining label information of each target cluster in the clustering result according to the target cluster and the minimum number; A clustering result is determined according to the label information.

8. An electronic device, characterized in that: The electronic device comprises: one or more processors; and A memory storing computer program instructions, which, when executed, cause the processor to perform the steps of the method as claimed in any one of claims 1 to 7.

9. A computer readable medium having a computer program / instructions stored thereon, characterized in that: When the computer program / instructions are executed by a processor, the steps of the method according to any one of claims 1 to 7 are implemented.

10. A computer program product comprising a computer program / instructions, characterized in that When the computer program / instructions are executed by a processor, the steps of the method according to any one of claims 1 to 7 are implemented.

Citation Information

Cited By

  • Wafer defect analysis method and device, equipment and storage medium

    CN122115456A