Edge detection of image of semiconductor sample

By comparing the generated filter with the image region, combined with machine learning models and iterative processes, the efficiency and accuracy problems of detecting semiconductor sample image edges in existing technologies are solved, achieving efficient detection and reduced physical influence under low signal-to-noise ratio conditions.

CN121883518APending Publication Date: 2026-04-17APPL MATERIALS ISRAEL LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
APPL MATERIALS ISRAEL LTD
Filing Date
2025-10-14
Publication Date
2026-04-17

AI Technical Summary

Technical Problem

Existing technologies struggle to efficiently and accurately detect the edges of structural elements in images of semiconductor samples, especially under submicron features and low signal-to-noise ratio conditions, and also cause significant physical impact on the samples.

Method used

A system and method are employed to determine a set of points to estimate edge locations by comparing a generative filter with an image region. This is combined with a machine learning model and an iterative process to reduce electron beam energy, minimize physical effects, and identify various defects.

Benefits of technology

It enables efficient and accurate edge detection in semiconductor sample images under low signal-to-noise ratio conditions, reduces the physical impact on the sample, and can identify process variations and various defects.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121883518A_ABST
    Figure CN121883518A_ABST
Patent Text Reader

Abstract

Systems and methods are provided that include obtaining an image providing information of at least a portion of at least one structural element of a semiconductor sample, generating one or more filters using the image, performing a comparison between each given region of a plurality of regions of the image and the one or more filters, and determining a set of points of the image based on the comparison, the set providing information of an estimated position of at least one edge of at least one structural element in the image, the set of points for each given row of a plurality of rows of the image or for each given column of a plurality of columns of the image, at least one given point of the given row or the given column of the image is included.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The currently disclosed topics generally relate to the field of sample inspection, and more specifically, to automated sample inspection. Background Technology

[0002] The current demand for high density and performance associated with ultra-large-scale integration of manufactured devices requires submicron features, increased transistor and circuit speeds, and improved reliability. This demand necessitates the formation of device features with high precision and uniformity, which in turn requires careful monitoring of the manufacturing process, including automated device inspection while the device is still in the form of a semiconductor wafer.

[0003] Inspection processes are used at various stages during semiconductor manufacturing to measure the size of samples (metrology) and / or detect and classify defects on samples (e.g., Automated Defect Classification (ADC), Automated Defect Review (ADR), etc.). Summary of the Invention

[0004] According to certain aspects of the currently disclosed subject matter, a system is provided comprising one or more processing circuitry systems configured to: acquire an image providing information on at least a portion of at least one structural element of a semiconductor sample; generate one or more filters using the image; perform comparisons between each given region of a plurality of regions of the image and the one or more filters; and determine, based on the comparisons, a set of points of the image, the set providing information on the estimated location of at least one edge of at least one structural element in the image, the set of points comprising at least one given point of the given row or column of the image for each given row of a plurality of rows or for each given column of a plurality of columns of the image.

[0005] In addition to the features described above, systems of this aspect of the subject matter may include one or more of the features (i) to (xxii) listed below in any technically possible combination or arrangement:

[0006] (i) For each given row or each given column, the comparison indicates the best match for a given point within each given row or each given column;

[0007] (ii) The comparison enables the output of a set of scores, wherein for each given row or for each given column, a given score for a given point is the highest among the scores of the points in each given row or each given column;

[0008] (iii) Use the image to generate one or more filters including the average pixel intensity along the rows or columns of the image;

[0009] (iv) Generating one or more filters using images includes generating one or more filters using machine learning models and images;

[0010] (v) For each given row of a plurality of rows of an image or for each column of a plurality of columns of an image, the system is configured to determine a given distance between a given point belonging to a given row or a given column and a reference line based on the set of points, thereby obtaining a set of distances, generating a corrected image using the image and the set of distances, and using the corrected image to determine another estimate of the location of at least one edge in the image;

[0011] (vi) For each given row of a plurality of rows of an image or for each given column of a plurality of columns of an image, the system is configured to determine a given distance between a given point belonging to the given row or the given column and a reference line based on the set of points, to perform displacement on each given row or each given column using the given distance, wherein the given distance is different between at least two rows or two columns of the image, thereby obtaining a corrected image, and to use the corrected image to determine another estimate of the position of at least one edge in the image;

[0012] (vii) The system is configured to determine at least one point in the set of points located at a distance from the average position of the set of points that is higher than a first threshold;

[0013] (viii) The system is configured to determine at least one point in the set of points located at a distance from the average position of the set of points that is higher than a first threshold;

[0014] (ix). The system is configured to determine at least one point in the set of points located at a distance from the average position of the set of points that differs from the distance of other points in the set of points to the average position by a second threshold.

[0015] (x). Each point in the set of points is associated with a score obtained based on the comparison, wherein the system is configured to identify points in the set of points that are associated with scores of other points in the set or scores that differ from the overall score of the set by a threshold, and to issue an alert providing information about the point or a row or column including the point;

[0016] (xi). The comparison enables the generation of a score set, wherein the system is configured to identify a given row or column of the image, the given row or column being associated with a composite score that provides information on various scores within the given row or column, the composite score being a difference greater than a threshold from the composite scores of other rows or columns of the image, and issuing an alert that provides information on the given row or column.

[0017] (xii). The system is configured to estimate the positions of different edges based on different filters, perform comparisons between the different filters, and use the comparisons to determine whether a defect exists in one or more of the different edges;

[0018] (xiii) The system is configured to obtain an initial image containing multiple edges of one or more structural elements, segment the initial image into multiple images, each image containing different given edges among the multiple edges, and for each given image among the multiple images, generate one or more given filters using the given image, perform comparisons between each given region and one or more filters in multiple regions of the given image, and determine a set of given points of the given image based on the comparisons, the set of given points providing information on the estimated locations of given edges in the given image, the set of given points containing at least one given point of the given row or the given column for each given row or the given column of the given image;

[0019] (xiv). The system is configured to use an image to generate a set of filters, perform comparisons between each given region of a plurality of regions of the image and the set of filters, and use the comparisons to determine a set of points of the image, the set of points providing information on the estimated locations of edges;

[0020] (xv). The system is configured to generate units that provide information on repetitive features of an image, and to use the units to generate a set of filters;

[0021] (xvi). The system is configured to perform comparisons between each corresponding row or column of a given region and a corresponding filter in the filter set;

[0022] (xvii). The system is configured to: (1) perform a comparison between each corresponding row or column of the current region and the corresponding filter in the filter set for the current region among a plurality of regions; (2) repeat (1) for the next region among the plurality of regions that is different from the current region when all rows or all columns of the current region have been compared.

[0023] (xviii). The system is configured to perform a comparison between each given row or column of a given region and a filter in a filter set associated with a row or column of a cell, the position of the filter relative to the cell corresponding to the position of the given row or column relative to the given region;

[0024] (xix). The system is configured to perform a comparison between each given row or column of a given region and: a filter in a filter set associated with the row or column of a cell, the position of the filter relative to the cell corresponding to the position of the given row or column relative to the given region, and at least one other filter in the filter set associated with the row or column of a cell, the position of the filter relative to the cell being different from the position of the given row or column relative to the given region.

[0025] (xx). One or more filters include a set of filters, wherein the system is configured to generate a set of filters using an image, wherein the filters in the set have different sizes;

[0026] (xxi). One or more filters include a filter set, wherein the system is configured to generate the filter set using an image, wherein the filters in the set have different sizes, wherein structural elements are located in a first layer of samples, wherein for at least one filter in the filter set, the size of the at least one filter depends on the position of one or more other structural elements of the samples located in a second layer of samples, which is different from the first layer;

[0027] (xxii). The system is configured to obtain an initial image of a structural element acquired by an inspection tool, and to convert the initial image into an image providing information about at least a portion of the structural element, wherein the image includes a plurality of lines associated with different orientations that provide information about pixel intensity along different axes of the initial image.

[0028] According to certain aspects of the currently disclosed subject matter, a computer-implemented method is provided, the method comprising obtaining an image of a semiconductor sample, wherein the image provides information on at least a portion of at least one structural element of the semiconductor sample; generating one or more filters using the image; comparing each given region of a plurality of regions of the image with the one or more filters; and determining a set of points of the image, the set providing information on the estimated location of at least one edge of the at least one structural element in the image, the set of points comprising at least one given point of the given row or column of the image for each given row of a plurality of rows or for each given column of a plurality of columns of the image, wherein the comparison satisfies a criterion.

[0029] The method may include, with necessary modifications, one or more of the features (i) to (xxii) listed above with respect to the system in any technically possible desired combination or arrangement.

[0030] According to other aspects of the currently disclosed subject matter, a non-transient computer-readable medium comprising instructions that, when executed by one or more processors, cause the one or more processors to perform operations described with reference to the methods above.

[0031] The proposed solution offers a variety of technical advantages, at least some of which are listed below.

[0032] Based on some examples, the proposed solution enables efficient and accurate detection of the edges of structural elements in images of semiconductor samples. Structural elements can include, for example, wires, contacts, gates, holes, and transistors. This list is not limiting.

[0033] Based on some examples, the proposed solution enables efficient and accurate detection of edges in images of semiconductor samples even with low or very low signal-to-noise ratios (SNR).

[0034] Based on some examples, the proposed solution enables efficient and accurate detection of edges in images that include UV (ultraviolet) layers (e.g., layers made using extreme ultraviolet radiation).

[0035] Based on some examples, the proposed solution enables a reduction in the energy of the electron beam used to acquire images of semiconductor samples. This, in turn, reduces the physical impact of the electron beam on the semiconductor sample.

[0036] Based on some examples, the proposed solutions are invariant to process changes.

[0037] Based on some examples, the proposed solution enables edge detection of structural elements without prior knowledge of the edges and / or structural elements.

[0038] Based on some examples, the proposed solution enables the detection of various defects, such as process variations, rough edges, short circuits, missing features (such as, but not limited to, missing wires), bridging, necking, etc. Brief description of the attached diagram

[0039] To understand this disclosure and how it can be carried out in practice, embodiments will now be described by way of non-limiting example only with reference to the accompanying drawings, in which:

[0040] Figure 1 A general block diagram of an inspection system based on some examples of currently disclosed topics is shown.

[0041] Figure 2A A non-limiting example of an image of the sample is shown.

[0042] Figure 2B It shows from Figure 2ANon-limiting examples of image extraction structural elements.

[0043] Figure 2C It shows from Figure 2A A non-restrictive example of edge extraction from an image.

[0044] Figure 3A A flowchart outlining a method for estimating edge locations in sample images based on some examples of currently disclosed topics is shown.

[0045] Figure 3B A general flowchart is shown, illustrating a method for estimating edge locations in a sample image using an iterative process, based on some examples of currently disclosed topics.

[0046] Figure 3C Corresponding to Figure 3B The specific implementation method.

[0047] Figure 4A A non-limiting example of an image depicting a sample portion, containing the edge of the wire to be detected.

[0048] Figure 4B Depicting based on Figure 4A A non-restricted example of a filter for image generation.

[0049] Figure 5 A non-limiting example is depicted, showing the separation of two edges of an electrical conductor from an image of the conductor.

[0050] Figure 6 Non-limiting examples of different rows of the image in Figure 4 are shown, each row being compared with a filter.

[0051] Figure 7 A non-limiting example of estimating wire edges in a sample image is shown.

[0052] Figure 8 A non-restrictive example of identifying certain points is shown.

[0053] Figure 9 A non-limiting example of determining the distance between the average position of the set of points associated with the highest score in that row for each row is shown.

[0054] Figure 10 A non-limiting example of generating a corrected image is shown.

[0055] Figure 11 A non-limiting example of a corrected image is shown.

[0056] Figure 12AA general flowchart is shown, illustrating a method for estimating the edge positions of structural elements in a sample image using an iterative process, based on some examples of currently disclosed topics.

[0057] Figure 12B A general flowchart is shown, illustrating a method for estimating the edge positions of structural elements in a sample image using an iterative process, based on some examples of currently disclosed topics.

[0058] Figure 13 A general flowchart is shown, illustrating a method for estimating the edge locations of structural elements in a sample image based on multiple filters, according to some examples of currently disclosed topics.

[0059] Figure 14A A general flowchart is shown, illustrating a method for estimating the edge locations of structural elements in a sample image using an iterative process and multiple filters, based on some examples of currently disclosed topics.

[0060] Figure 14B A flowchart summarizing the method for generating multiple filters based on gold cells is shown.

[0061] Figure 15 A non-limiting example of a sample image including multiple layers is shown.

[0062] Figure 16 It shows the basis Figure 15 A non-restricted example of a gold cell generated from an image.

[0063] Figure 17 It shows the basis Figure 16 A non-limiting example of multiple filters generated by the gold unit.

[0064] Figure 18 A non-limiting example of comparing a sample image with multiple filters is shown.

[0065] Figure 19 A non-limiting example of a sample image is shown, in which at least one edge is associated with a process variation.

[0066] Figure 20 A flowchart outlining a method for comparing a sample image with multiple filters, based on some examples of currently disclosed topics, is shown.

[0067] Figure 21 It shows Figure 20 Examples of methods.

[0068] Figure 22 A general flowchart of a method for generating multiple filters of different sizes is shown, based on some examples of currently disclosed topics.

[0069] Figure 23 It shows Figure 22 Examples of methods.

[0070] Figure 24 A general flowchart of a method for generating one or more filters based on some examples of currently disclosed topics is shown.

[0071] Figure 25 A flowchart outlining a method for identifying rows or columns associated with defects, based on some examples of currently disclosed topics, is shown.

[0072] Figure 26 A flowchart outlining another method for identifying rows or columns associated with defects, based on some examples of currently disclosed topics, is shown.

[0073] Figure 27A A flowchart outlining a method for identifying defects in an edge by comparing the composite score associated with this edge with the composite scores of other edges is shown.

[0074] Figure 27B It shows Figure 27A Non-restrictive examples of methods.

[0075] Figure 28 A flowchart outlining a method for identifying defects in an edge by comparing a filter used to determine the location of this edge with other filters used to determine the location of other edges is shown.

[0076] Figure 29 A general flowchart illustrating a method for estimating the position of element contours (edges) of any shape that can be used for contours, based on some examples of currently disclosed topics.

[0077] Figure 30 A non-limiting example of an image of an element with an elliptical outline is shown.

[0078] Figure 31 It shows that Figure 30 The image is converted into a matrix representation.

[0079] Figure 32 A general flowchart illustrating a method for converting an image of an element into a matrix representation, based on some examples of currently disclosed topics, is shown. Detailed Implementation

[0080] Semiconductor samples include various structural elements, such as (but not limited to) electrical connectors / wiring, contacts, gates, holes, and transistors. The aim is to detect the edges of these structural elements in a sample image, such as a scanning electron microscope image. At least one filter is generated based on the average pixel intensity of the sample image. Note that this filter can be generated using different methods. The filter is compared with one or more regions of the image. This comparison allows for assigning a score to each of multiple points in the image. For example, a high score indicates a match, while a low score indicates a mismatch. For each row of the image, at least one point is identified, corresponding to the point with the highest score in the row. Note that for each row, it is possible to identify a single point (corresponding to the highest score) or multiple points (corresponding to the highest score).

[0081] Obtain a set of points. This set of points constitutes or can be used to estimate the location of the structural elements' edges in the sample. The points in the set form a line, which constitutes a first estimate of the edge location.

[0082] In some examples, the set of points can be used to generate a corrected image, which is used for the initial estimation of the location of sample edges to fine-tune the position. For each row, the distance between the points in the set and a reference line is calculated. Then, each row of the image is translated according to its respective calculated distance value to obtain the corrected image. The method is then repeated using the corrected image. One or more filters are calculated based on the corrected image, and then the corrected image is compared with the original image to identify a new estimated set of points corresponding to the edge locations. The method can be used to estimate the location of various edges in an image.

[0083] Note Figure 1 It shows a functional block diagram of an inspection system 100 based on some examples of the currently disclosed subject matter. Figure 1 The inspection system 100 shown can be used to inspect samples (e.g., wafers and / or components thereof) as part of the sample manufacturing process. The illustrated inspection system 100 includes a computer-based system 103 capable of automatically determining metrological information and / or defect-related information using images acquired during sample manufacturing. System 103 can be operatively connected to one or more inspection tools 101, 102. The inspection tools are configured to capture images and / or review captured images and / or perform or provide measurements associated with the captured images. In some examples, an inspection tool may correspond to one or more inspection tools 101, while an inspection tool may correspond to one or more review tools 102.

[0084] Inspection tools 101 and 102 may include at least one of the following: optical inspection tools (such as, but not limited to, the applicant's Enlight). TMTools), electron beam inspection tools (such as SEM), atomic force microscopy (AFM), etc. In some cases, the same inspection tool can provide both low-resolution and high-resolution image data. In some cases, at least one inspection tool can have metrological capabilities.

[0085] System 103 includes a processing circuitry system 104, which comprises one or more processors and one or more memories. The processing circuitry system 104 is configured to provide all the processing required by the operating system 103, as detailed below (see [link to documentation]). Figure 3A , Figure 3B , Figure 3C , Figure 12A , Figure 12B , Figure 13 , Figure 14A , Figure 14B , Figure 20 , Figure 22 , Figure 24 , Figure 25 , Figure 26 , Figure 27A , Figure 28 , Figure 29 and Figure 32 The methods described herein can be performed at least in part by system 103 and / or system 100.

[0086] The processing circuitry 104 is configured to execute functional modules (or be operatively coupled to the processing circuitry 104) based on computer-readable instructions implemented on a non-transient computer-readable memory of the processing circuitry 104. The functional modules include one or more algorithms 112.

[0087] In some examples, algorithm 112 may include a machine learning algorithm. Examples of machine learning algorithms include, for example, decision trees, support vector machines (SVM), artificial neural networks (ANN), regression models, Bayesian networks, and collections / combinations thereof. In some embodiments, the machine learning algorithm may be implemented as a deep neural network (DNN). A DNN may include multiple layers organized according to their respective DNN architectures. By way of non-limiting example, the layers of a DNN may be organized according to a convolutional neural network (CNN) architecture, a recurrent neural network architecture, a generative adversarial network (GAN) architecture, or otherwise. Optionally, at least some layers may be organized as multiple DNN subnetworks. Each layer of a DNN may include multiple basic computational elements (CEs), commonly referred to in the art as dimensions, neurons, or nodes.

[0088] The weights and / or thresholds associated with the core functions (CEs) and their connections in a deep neural network can be initially selected before training and can be further iteratively adjusted or modified during training to achieve the optimal set of weights and / or thresholds in the trained DNN. After each iteration, the difference between the actual output generated by the DNN module and the target output associated with the corresponding training set of data can be determined. This difference can be referred to as the error value. Training can be determined to be complete when the loss / cost function indicating the error value is less than a predetermined value, or when a finite performance change is achieved between iterations. The input dataset used to adjust the weights / thresholds of the deep neural network is called the training set.

[0089] System 103 is configured to receive input data. The input data may include data (and / or derivatives thereof and / or associated metadata) generated by inspection tools 101, 102, and / or data generated based on the output of the inspection tools. Note that the input data may include at least one of the following: images (e.g., captured images, images derived from captured images, simulated images, synthetic images, etc.), and associated numerical data (e.g., metadata, handwritten attributes, etc.). Further note that image data may include data related to the layer of interest and / or one or more other layers of the sample. Note that image data may be received and processed together with metadata (e.g., pixel size, textual description of defect types, parameters of the image capture process, etc.).

[0090] System 103 can send instructions to any of the inspection tools 101, 102, store the results (such as data providing information on defect locations) in storage system 107, and present the results via a computer-based graphical user interface (GUI) 108, and / or to an external system 109 and / or a production management system (YMS) 110. The production management system (YMS) is a data management, analysis, and tooling system that collects data from the wafer fab, particularly during manufacturing acceleration, to improve throughput.

[0091] Those skilled in the art will readily understand that the teachings of the currently disclosed subject matter are not subject to Figure 1 Constraints of the system shown: Equivalent and / or modified functions may be combined or divided in another manner and may be implemented in any appropriate combination of software, firmware and / or hardware.

[0092] It is noted that Figure 1 The inspection system shown can be implemented in a distributed computing environment, where Figure 1The functional modules described above can be distributed across multiple local and / or remote devices and can be linked via a communication network. It is further noted that in some embodiments, at least some of the inspection tools 101 and / or 102, storage system 107, external system 109, GUI 108, and YMS 110 may be outside of inspection system 100 and communicate data with system 103. System 103 can be implemented as a stand-alone computer used in conjunction with the inspection tools. Alternatively, the corresponding functions of the system can be at least partially integrated with one or more inspection tools.

[0093] Now note Figure 2, which depicts a non-limiting example of image 200 of the sample.

[0094] The sample includes multiple structural elements. In this non-limiting example, the structural elements include electrical connectors 210, 220, and 230 (also referred to as wires). In this example, electrical connectors 210 and 220 extend along the vertical axis (column axis) of the image, while electrical connector 230 extends along the horizontal direction (row axis). Each electrical connector includes two edges: see the left and right edges 2101 and 2102 of connector 210, the left and right edges 2201 and 2202 of connector 220, and the top and bottom edges 2301 and 2302 of connector 230.

[0095] The sample includes additional structural elements, schematically depicted as squares 240, 250, each square including corresponding edges 2401, 2402, 2403, 2404, 2501, 2502, 2503 and 2504.

[0096] Various methods are provided below that enable the determination of the location of one or more edges of a sample based on a sample image acquired by an inspection tool (see non-limiting examples of edges in Figure 2). In the description, "image" refers to image processing. This image broadly comprises a set of pixels, each associated with at least one pixel intensity. This image may correspond to an image acquired by the inspection tool and / or an image derived from an image acquired by the inspection tool. Specifically, the image processed in the various methods described below may correspond to an image acquired by the inspection tool after one or more preprocessing operations. In some examples (see...) Figures 29 to 32 In the image, the image corresponds to a matrix representation obtained from an initial image acquired by an inspection tool, in which the pixels of the initial image are rearranged such that the edges of the elements are contained within the vertical bands (strips) of the image.

[0097] One or more edges may be associated with process variations (see, for example, edges 2201 and 2502). As explained later, based on some examples, data providing information about process variations (also known as edge roughness) can be obtained.

[0098] Now note Figure 3A , Figure 3B and Figure 3C These figures depict methods that enable the determination of the location of one or more edges in a sample image. Figure 3B The method corresponds to Figure 3A The method involves performing an iterative process to determine the location of the edge. Figure 3C The method corresponds to Figure 3B The specific implementation of the method.

[0099] Figures 3A to 3C The method includes obtaining (operation 300) at least one image of a semiconductor sample. The image has been examined by an inspection tool (see...). Figure 1 (101, 102) are obtained, such as by electron beam inspection tools (SEM), or have already been generated based on images obtained by inspection tools.

[0100] The image contains at least a portion of at least one structural element of the semiconductor sample. In some examples, the image of the sample is acquired by an inspection tool and processed to contain a single structural element or a single edge of a single structural element. This can be performed using one or more existing edge detection algorithms. In other words, each edge to be detected can be isolated in a different image and processed using various methods described below.

[0101] Note that for each edge of the sample to be detected, the same process can be performed to generate an image containing a single structural element (or a single edge) for each structural element (or each edge), which is then processed according to the various methods described below to determine the location of the edge.

[0102] exist Figure 2B A non-limiting example is provided, in which image 260 has been generated based on image 200 and contains only structural element 210. Figure 2C Another non-limiting example is provided, in which image 270 has been generated based on image 200 and contains only the left edge 2101 of structural element 210. Figure 5 Another non-limiting example is provided, in which an image 570 of an electrical conductor 580 (also referred to as a wire) is segmented into a first image 590 containing only the left edge 581 of the electrical conductor 580, and a second image 595 containing only the right edge 582 of the electrical conductor 580.

[0103] Figures 3A to 3CThe method further includes generating one or more filters using (operation 310) an image. The image comprises multiple pixels, each associated with a pixel intensity (also known as grayscale intensity). In some examples, the filter can be generated by averaging the pixel intensities of multiple pixels. In some other examples, machine learning algorithm 112 can be used to generate filters based on the image.

[0104] exist Figure 3C In this method, this includes averaging the pixel intensity of the image along an axis (such as the vertical axis (or horizontal axis)) (operation 3101). This averaging is performed along the vertical axis when it is necessary to detect edges that primarily extend along the vertical axis. Similarly, it is performed along the horizontal axis when it is necessary to detect edges that primarily extend along the horizontal axis.

[0105] exist Figure 4A and Figure 4B The document provides a non-restrictive example of operation 3101. Figure 4A A non-limiting example of an image 460 depicting a portion of the sample, containing the edge 450 to be detected. The horizontal axis is labeled 400, and the vertical axis is labeled 410.

[0106] Figure 4B The projection of pixel intensity of image 460 along vertical axis 410 is depicted. This projection is performed by averaging the pixel intensity of image 460 along vertical axis 410. Signal 520 is obtained. Axis 500 of the graph corresponds to horizontal axis 400 of the image, while axis 510 of the graph corresponds to pixel intensity. Figure 4B As can be seen, the peak 530 of signal 520 along the horizontal axis (400 or 500) coincides with the position of edge 450 along the horizontal axis.

[0107] Note that an electrical conductor (also called a wire) can have two edges. For example (see...) Figure 5 Assume that the electrical conductor 510 extends along the vertical axis of the image. In this case, the electrical conductor 510 includes a left edge 520 and a right edge 530. Figure 5 As shown, a first image 550 including a left edge 520 (but excluding the right edge 530) and a second image 560 including a right edge 530 (but excluding the left edge 520) may be generated based on an image 500 of an electrical conductor 510. In this case, a first filter is generated for the first image 550 including the left edge 520, and a second filter is generated for the second image 560 including the right edge 530.

[0108] Figure 3A and Figure 3BThe method further includes performing a comparison (operation 320) between each given region in multiple regions of the image and one or more filters. This comparison indicates the degree to which the pixel intensity distribution of each given region matches the pixel intensity distribution of one or more filters. Various methods can be used to perform this comparison, such as (but not limited to) cross-correlation, normalized cross-correlation, least squares method, etc.

[0109] exist Figure 3C In this method, each row of the image is compared with a filter (operation 3201). This comparison includes comparing the pixel intensity distribution along the row with the pixel intensity distribution of the filter (see example...). Figure 5 Pixel intensity distribution in 520). Figure 6 Non-limiting examples of different rows 600, 610 and 620 of the image are shown, each of which is compared with filter 520.

[0110] Note that in some other examples, the filter is generated by projecting pixel intensities along the row axis (horizontal axis). In this case, each column of the image is compared with the filter.

[0111] Figure 3A and Figure 3B The method further includes using one or more outputs of (operation 330) comparison to identify a set of points in the image.

[0112] For each given row in each given column, identify at least one given point, against which comparisons indicate a match. Matches can be evaluated according to criteria. In some examples, a given point can be identified as the point that best matches within a given row (or given column).

[0113] The comparison allows for the assignment of scores to each of the multiple pixels in the image. Note that scores can be assigned to one or more sub-pixels (points located between pixels) of the image by interpolating the scores of adjacent pixels and / or by using a parabola. This results in a score map. Each score indicates the level of match between the pixel intensity at that location and the corresponding pixel intensity of the filter. For example, a high score indicates a high level of match, while a low score indicates a low level of match.

[0114] like Figure 3C As described in operation 3301, for each given row of an image, at least one given point can be identified based on the score map. Specifically, for each given row, a given point can be selected as the pixel (or sub-pixel) with the highest score in that row. As mentioned above, comparisons can be performed between the columns of the image and the filter. In this case, the point is identified along the column axis.

[0115] Set of points (see example) Figure 7The points (reference 700) in the image constitute the first estimate of the edge positions of the structural elements present in the image.

[0116] Note that this method can be used to estimate the location of curved edges or edges with various different shapes. This will also refer to... Figure 29 and Figure 32 discuss.

[0117] In some examples, it may be possible to identify certain points in the set that have a certain probability of being inaccurate or irrelevant (these points are also called "outliers").

[0118] A set of points can be identified at a distance where the average position of the set of points is above a first threshold. Similarly, points can be identified at distances where the average position of the set of points is significantly different from the average position of other points (e.g., by a second threshold, which may be the same as or different from the first threshold).

[0119] These outliers can be excluded from the point set and / or ignored during further processing of the point set, as they may correspond to invalid points.

[0120] Figure 8 The diagram shows a non-restrictive example where points 810 and 820 are excluded from the set of points because their distances to the average location of point 800 are significantly higher than those of other points. These points are considered outliers.

[0121] In some examples, a given point can be ignored if, for a given row (or column), the point associated with the highest score (for that given row or column) has a score significantly lower than any other point in the set (belonging to another row or column). For example, suppose the scores in the score graph range from -1 to +1. Suppose most points (corresponding to the highest score in each row or column) have scores between 0.8 and +1. Suppose that, for a given row, the given point with the highest score has a score equal to +0.2. This given point can be ignored and will not be part of the set of points.

[0122] As explained later, in some examples, a corrected image is generated based on a set of points and an image. Identified sets of points (either because of their low scores relative to other points or because of their varying distances from the average position of the set of points) can be ignored when generating the corrected image. The corrected image can be generated based on a finite subset of the points in the set of points, where the subset does not include one or more points to be ignored. As explained later, to generate the corrected image, each row can be translated by a distance depending on the distance between the points belonging to that row and the average position of the set of points. Rows containing points to be ignored are not translated. The same process can be performed along columns (rather than along rows).

[0123] In some examples, several iterations may be performed. In each iteration, the estimate of the edge position is fine-tuned relative to the previous iteration. The iterative process... Figure 3B and Figure 3C The process is described in the text. Examples of further iterative processes are provided later. Figure 12A and Figure 12B Further details are provided below.

[0124] Figure 3B and Figure 3C The method further includes ( Figure 3B Operation 340 and Figure 3C In operation 3401 of the image, for each given row (or each column) of a given image, a given distance is determined between a given point belonging to a set of points in the given row (or given column) and a reference line based on the set of points. This makes it possible to obtain a set of distances (one per row, or one per column).

[0125] Figure 9 The image depicts a non-limiting example, illustrating a set of points 900 and a reference line 910 corresponding to the average position of points 900 along the horizontal axis of the image. For each row, the distance between the points in that row and the reference line 910 is calculated. For example, for row 915, the distance 930 between point 920 and the reference line 910 is calculated. For row 950, the distance 960 between point 970 and the reference line 910 is calculated.

[0126] Figure 3B and Figure 3C The method further includes using ( Figure 3B Operation 350 and Figure 3C Operation 3501) generates a corrected image from a set of images and distances. Specifically, each row can be translated by using distances from the set of distances calculated for that row. Note that this can be done similarly for columns.

[0127] Figure 10 The following provides a non-limiting example. Assume that image 1000 comprises rows 1010 of pixels. Assume that at operation 340 or 3401, it has been determined that the distance between the points of this row 1010 and the average position of the set of points is equal to the length of arrow 1020. Then, the pixels of the entire row 1010 are translated by the translation vector corresponding to arrow 1020.

[0128] Suppose that image 1000 also includes another row of pixels 1030. Suppose that at operation 340 or 3401 it has been determined that the distance between the points of this row 1030 and the average position of the set of points is equal to the length of arrow 1040. Then the pixels of the entire row 1030 are translated by the translation vector corresponding to arrow 1040.

[0129] In the corrected image, the set of points is basically aligned along a line. Figure 11 The document provides a non-limiting example depicting a corrected image 1100 and a point set 1110.

[0130] Figure 3B and Figure 3C The method further includes ( Figure 3B Operations in 360 and Figure 3C Operation 3601 uses the corrected image to estimate the edge locations of structural elements in the sample within the image. The set of points (obtained at operation 330 or 3301) corresponds to a first estimate of the edge locations. The corrected image is used to fine-tune this first estimate, yielding a second estimate of the edge locations (operations 360 and 3601). Note that the second estimate can be further fine-tuned (by performing N iterations of the method, where N ≥ 1). This is in Figure 12A and Figure 12B Described in the text. Note that, Figure 3B and Figure 3C This method can be used to estimate the location of curved edges or edges with various shapes. This will also refer to... Figure 28 and Figure 29 discuss.

[0131] Figure 12A The above has been referenced Figure 3A and Figure 3B Operations 300 to 350 are described. At operation 350, a corrected image is generated. Then, the process returns to operation 310, in which one or more filters (new filters, different from those generated in previous iterations) are generated. At this iteration of operation 310, the corrected image is used to generate one or more filters, instead of the original image of the samples used in the first iteration of operation 310 to generate the first filter. Operation 320 is then repeated, in which the original image of the samples is compared with one or more (new) filters. This comparison identifies a (new) set of points (operation 330). This (new) set of points corresponds to a second estimate of the edge positions of the structural elements of the samples in the image.

[0132] If necessary, the method can be repeated. In this case, the method also includes repeating operation 340, which involves determining the distance between a point in each row of the image and a reference line formed by the set of points (operation 340), and moving the rows of the original image to generate a new corrected image (operation 350). As mentioned above, this can be performed on columns in the same manner. The method then returns to operation 310, where one or more new filters can be generated based on the new corrected image.

[0133] The method can be repeated until a criterion is met. Different criteria can be used. In some examples, the method is repeated until a certain number of iterations have been reached. In some examples, the method is repeated until the filter generated at the Nth iteration matches the filter generated at the (N-1)th iteration. Two filters can be considered matched when the matching criterion is met. The matching between two filters can be evaluated using any suitable method, such as comparison methods, cross-correlation methods, etc. In some examples, the method is repeated until the difference between the positions of the point set at the Nth iteration of the method and the positions of the point set at the (N-1)th iteration of the method is below a threshold. These examples are not limiting and other criteria can be used.

[0134] Figure 12B An iterative method is also described, which is Figure 12A A variant of the method. Figure 12A The methods include those already referenced above. Figure 3C Operations 300 to 3501 are described. At operation 3501, a corrected image is generated. It then returns to operation 3101, where a filter (a new filter) is generated. In this iteration, the corrected image is used to generate the new filter, instead of the original image of the samples already used to generate the first filter at the first iteration of operation 3101. Operation 3201 is then repeated, where each row of the original image of the samples is compared with the new filter. This enables the generation of a fractional map, which is used to identify a new set of points (operation 3301). This new set of points corresponds to a second estimate of the edge positions of the structural elements of the samples in the image. If necessary, the method can be repeated again by determining the distance between the points in each row of the image and the reference line formed by the set of points (operation 3401), and shifting the rows of the original image to generate a new corrected image (operation 3501). The method then returns to operation 3101, where a new filter can be generated based on the new corrected image. The method can be repeated until a criterion is met. An example of the criterion has been provided above and can be used herein.

[0135] Now notice Figure 13 It describes another method based on using multiple filters to estimate the location of one or more edges in an image of a sample.

[0136] Figure 13 The method includes obtaining (operation 1300) at least one image of a semiconductor sample. The image contains at least portions of the sample's structural elements associated with edges to be detected. The image has been inspected by an inspection tool (see...). Figure 1Images are obtained from sources such as electron beam inspection tools (SEM), such as 101 and 102. In some examples, the image is generated by isolating the edges to be detected from the image obtained by the inspection tool.

[0137] Figure 13 The method further includes generating a set of filters using (operation 1310) the image, including multiple filters. In some examples, and as... Figure 14B As described, this may include generating (operation 1400) units (hereinafter referred to as gold units) representing the image. A gold unit may correspond to the average pixel intensity of a representative feature of the image. The representative feature may correspond to a repeating feature of the image. For each given row (or given column) of the gold units, a given filter is generated, resulting in a filter set. Each corresponding filter may correspond to the evolution of the pixel intensity distribution along the row axis (or the corresponding column along the column axis) of the gold units.

[0138] Non-restrictive examples of generating gold units are in Figure 15 and Figure 16 Provided by China. Figure 15 Image 1500 depicts the sample. The sample comprises at least two layers: the upper layer includes electrical conductors 1510, each electrical conductor including two side edges 15101, 15102 to be detected, and the lower layer includes repeating structural elements 1520 (generating a repeating pattern in image 1500). Figure 13 The method can be used to detect edges in sample images containing multiple layers, such as, but not limited to, Figure 15 The sample. Note that, Figure 13 The method can also be used to detect edges in sample images containing a single layer.

[0139] Figure 16 Depicting based on Figure 15 The image 1500 depicting the sample generates the gold unit 1600. (Example) Figure 16 As can be seen, the gold unit 1600 contains samples that provide information about repeating features present in image 1500. It can be generated by averaging the pixel intensity distribution of repeating features present in the sample image.

[0140] Figure 17 A set of filters generated based on the gold cell 1600 is depicted. The first filter in the set corresponds to the pixel intensity distribution of the first row 1700 of the gold cell 1600, the second filter in the set corresponds to the pixel intensity distribution of the second row 1710 of the gold cell 1600, and so on.

[0141] In some examples, a set of filters can be generated by feeding sample images into a machine learning model (such as machine learning model 113), which has been trained using supervised learning to generate the set of filters based on the sample input images. During training, training images of samples are fed into the machine learning model. Each training image is associated with a label, which corresponds to a set of filters associated with the training image.

[0142] Figure 13 The method further includes performing comparisons (operation 1320) between each given region and a set of filters in multiple regions of the image. This comparison may include, for each given region: comparing the first row of the given region with the first filter of the set, comparing the second row of the given region with the second filter of the set, and so on. In other words, for a given region containing N rows R1 to R... N Given a region, and containing N filters F1 to F N The filter set, row number R i With filter F i The comparison is performed, where I ranges from 1 to N.

[0143] In this scenario, each row (or column) of a given region is compared with a filter set associated with a row (or column) whose position relative to the gold cell corresponds to the position of that row or column relative to the given region. For example, the first row of a given region can be compared with a filter generated based on the first row of gold cells. Note that this is not limiting, and additional and / or different comparisons can be performed between each given region and the filter set.

[0144] Once each row of a given region has been compared with the corresponding filter in the set, the next given region will be compared with the filter set. The next given region can correspond to a region located below (or above) the previous given region along the vertical axis of the image. However, this is not restrictive. The size of each given region can be chosen to match the size of the gold cell.

[0145] The comparison indicates how well the pixel intensity distribution of each given region matches the pixel intensity distribution of the filter set. Various methods can be used to perform this comparison, such as (but not limited to) cross-correlation, normalized cross-correlation, least squares, etc.

[0146] Figure 18The diagram illustrates a non-limiting example where a first region 1800 of the image is compared with a filter set 1850. Specifically, the first row 18101 of the first region 1800 is compared with the first filter 18501 (generated based on the first row of gold units), the second row 18102 of the first region 1800 is compared with the second filter 18502 (generated based on the second row of gold units), the third row 18103 of the first region 1800 is compared with the third filter 18503 (generated based on the third row of gold units), and so on. Once all rows of the first region 1800 have been compared with the filter set 1850, the next region (the second region 1820) is processed. Specifically, the first row 18201 of the second region 1820 is compared with the first filter 18501, the second row 18202 of the second region 1820 is compared with the second filter 18502, the third row 18203 of the second region 1820 is compared with the third filter 18503, and so on.

[0147] Note that in some other examples, the filter set has been generated by projecting the pixel intensity of the gold cells along the row axis (horizontal axis). In this case, each column of a given region is compared with the corresponding filter.

[0148] Figure 13 The method further includes using one or more outputs of (operation 1330) comparison to identify a set of points in the image.

[0149] The comparison allows for the assignment of scores to each of the multiple pixels in the image. Note that scores can be assigned to one or more sub-pixels (points located between pixels) of the image by interpolating the scores of adjacent pixels or by using a parabola. This results in a score map. Each score indicates the level of match between the pixel intensity at that location and the corresponding pixel intensity of the filter. For example, a high score indicates a high level of match, while a low score indicates a low level of match.

[0150] At least one given point can be identified based on the score map. Specifically, for each given row, the given point can be selected as the pixel (or sub-pixel) with the highest score in that row. Thus, a set of points is obtained. As mentioned above, comparisons can be performed between the columns of the image and the filters. In this case, points are identified along the column axis.

[0151] The points in the set constitute a first estimate of the edge locations of the structural elements of the samples present in the image.

[0152] In some examples, certain points may be ignored. Points located at distances above a threshold from the average position of the set of points, and / or points at distances significantly different from the average position of the set of points, may be ignored. This has already been referenced above. Figure 8 describe.

[0153] In some examples, a given point associated with the highest score in a given row can be ignored if its score is significantly lower than the scores of other points in the set. For example, suppose the scores in the score graph range between -1 and +1. Suppose most points (corresponding to the highest score in each row or column) have scores between 0.8 and +1. Suppose a given point has a score of +0.2. This given point can be ignored and will not be part of the set of points.

[0154] Note that this method can be used to estimate the location of curved edges or edges with various shapes. This will also refer to... Figure 28 and Figure 29 discuss.

[0155] Now notice Figure 14A It depicts Figure 13 A variant of the method, in which an iterative process is used to estimate the location of the edge.

[0156] Figure 14A The methods include those already referenced Figure 13 The described operation is from 1300 to 1330.

[0157] Figure 14A The method further includes (operation 1440) determining, for each given row of a plurality of rows of an image, a given distance between a set of points belonging to the given row and a reference line based on the set of points. The reference line may correspond to the average position of the set of points along the row axis. This makes it possible to obtain a set of distances (one per row or one per column). Operation 1440 is similar to operations 340 and 3401 described above.

[0158] Figure 14A The method further includes generating a corrected image using an image and a distance set (operation 1450). Specifically, each row can be translated based on the distances in the distance set calculated for that row. Operation 1450 is similar to operations 350 and 3501 described above.

[0159] In the corrected image, the set of points is essentially aligned along a line, as in the reference. Figure 11 As explained.

[0160] Then, the process returns to operation 1310, where a new filter set is generated. At this iteration, the corrected image is used to generate the gold unit and the new filter set, instead of the original image of the sample (which was already used to generate the first filter set during the first execution of operation 1310). Operation 1320 is then repeated, where each region in multiple regions of the original image of the sample is compared to the filter set. This comparison allows for the identification of a (new) set of points (operation 1330). This new set of points corresponds to a second estimate of the edge positions of the structural elements of the sample in the image. If necessary, the method can be repeated again by determining the distance between the points in each row of the image and the reference line formed by the new set of points (operation 1340), and by shifting the rows of the original image to generate a new corrected image (operation 1350). The method then returns to operation 1310, where one or more filters can be generated based on the new corrected image.

[0161] The method can be repeated until a criterion is met. Different criteria can be used. In some examples, the method repeats until a certain number of iterations has been reached. In some examples, the method repeats until the filter generated at iteration N matches the filter generated at iteration N-1. Two filters can be considered matched when the matching criterion is met. The match between two filters can be evaluated using any suitable method, such as comparison methods, cross-correlation methods, etc. In some examples, the method repeats until the difference between the point position at iteration N and the point position at iteration N-1 is below a threshold. These examples are not restrictive and other criteria can be used.

[0162] Note that this method can be used to estimate the location of curved edges or edges with various shapes. This will also refer to... Figure 28 and Figure 29 Let's have a discussion.

[0163] Now notice Figure 19 .

[0164] One or more edges of the sample may be associated with process variation (PV). Figure 19 A non-limiting example is shown, where edge 1900 is associated with process variation 1910. In this case, the corresponding filter generated based on the gold unit is not expected to match the image at this location. Various methods are presented below that can be used to overcome this problem. These methods can also be used for other purposes, even without process variation.

[0165] Now notice Figure 20 .

[0166] Suppose a given region must be compared with a set of filters generated based on the gold cell (or using other techniques, such as by using a machine learning model). In some examples, rows of a given region can be compared not only with filters generated based on the corresponding rows in the gold cell (Operation 2000), but also with one or more filters generated based on other rows in the gold cell (Operation 2010).

[0167] For example, suppose a given region includes N rows R1 to R N The gold unit consists of N rows R'1 to R' N N filters F1 to F2 have been generated from this. N .

[0168] Given the row R of the region i Not only can it be used with filter F i Comparisons can also be made with other filters Fj (j is different from i). For example, row R i Can be used with filter F i It can be compared, and can also be compared with the next filter F. i+1 And the previous filter F i-1 Compare them.

[0169] In some examples, row Ri corresponds to different filters F in the filter set. j (j is different from i) Comparisons are made. The output of the comparison indicating the best match (out of all comparisons performed on this row) is used to generate the pixel score for this row and stored in the score graph. In some examples, the comparison stops when the score obtained at the current comparison is higher than the score obtained at the previous comparison (which indicates that a better match has been found).

[0170] Figure 21 The diagram illustrates a non-limiting example where the third row 21203 of a given region 2120 of an image is compared not only with the filter generated based on the third row 21503 of the gold unit 2150, but also with the filter generated based on the first row 21501 of the gold unit 2150, the filter generated based on the second row 21502 of the gold unit 2150, and the filter generated based on the fourth row 21504 of the gold unit 2150. Note that this is merely an example, and comparisons can be based on different filters in the set, and / or on different numbers of filters in the set.

[0171] Now notice Figure 22 This describes another method for generating filter sets.

[0172] In this method, the filter set is generated such that one or more sizes of the filters in the set are not constant, but vary within the filter set (operation 2200). In other words, if the filter set includes filters F1 to F... N Each filter F i The size of the filter F is related to one or more other filters in the set. j (j differs from i) In some examples, the size of the filter set is not constant along the row axis (horizontal axis). The filters of the set can be generated based on gold units, as explained above. However, the size of the filters varies. Then, each given region in multiple regions of the image is compared with the filter set (operation 2210), as explained above.

[0173] In some examples, the size of the filter along the row axis (or along the column axis) depends on the location of one or more structural elements of the sample.

[0174] Assume the sample contains at least two layers: the first layer (top layer) comprises one or more edges of the target (one or more first structural elements), and the second layer (bottom layer, located below the first layer) comprises one or more second structural elements. At each row, the filter is sized such that it terminates at the edge of a second structural element in the second layer. Specifically, at each row, the filter is sized such that it extends to the end of a second structural element in the second layer.

[0175] Because the edges of the second structural element do not have a column axis along the image (the vertical axis of the image – see example) Figure 15 The filter's size along the row axis is not constant within the set because its position is constant. Figure 23 Non-limiting examples are provided. For row 2300, a filter with dimensions along the row axis of reference 2301 is used. For row 2310, a filter with dimensions along the row axis of reference 2311 is used, whose dimensions along the row axis are longer than those of filter 2301. For row 2320, a filter with dimensions along the row axis of reference 2323 is used, whose dimensions are smaller than those of filter 2301 and smaller than those of filter 2311.

[0176] Now notice Figure 24 It describes a method for generating filters using machine learning model 113.

[0177] As mentioned in the various methods above, one or more filters are generated based on the pixel intensity of at least one image of the sample.

[0178] The method includes obtaining (operation 2400) at least one image of a sample. The method further includes feeding (operation 2410) the image to a machine learning model 113 to generate one or more filters.

[0179] In some examples, machine learning model 113 has been trained to generate a single filter that feeds the entire image into machine learning model 113. This can be used, for example, for... Figure 3B In the method.

[0180] In some examples, machine learning model 113 has been trained to generate multiple filters for a given image. This can be used, for example, in... Figure 14A In the method.

[0181] Training the machine learning model 113 may include feeding the machine learning model 113 a training set of training images, each training image providing partial information including samples of one or more edges of structural elements (wires, gates, transistors, etc.). In the training set, each training image is associated with a label, which corresponds to one or more filters.

[0182] In some examples, the filters stored in the labels correspond to the average pixel intensity along the rows or columns of the training image.

[0183] In some other examples, gold units are generated based on training images, each corresponding to a unit that provides information about repetitive features in the training images. As mentioned above, this unit can be obtained by averaging the pixel intensities of repetitive features in the training images. Each row (or column) of gold units is used to generate a different filter, corresponding to, for example, the pixel intensity distribution of the row (or column).

[0184] In some examples, the filters stored in the labels have been generated using simulated and / or experimental data.

[0185] Now notice Figure 25 .

[0186] As illustrated by the various methods described above, a score map can be generated indicating the level of matching between the pixel intensity of each pixel (or subpixel) and the corresponding pixel intensity of the filter. For each row or column, one or more points can be identified that are associated with the highest score in that row.

[0187] In other words, each row (or column) R i The highest score S corresponding to the score graph i (Inside a row or in a column) Related.

[0188] exist Figure 25 The method can identify a given row Rk The highest score S k The highest score is significantly different from the highest score in other rows (operation 2500). This may indicate that in a given row R... k A defect exists in the given row. In response to this identification, an alarm (operation 2510) can be issued, indicating that a defect exists or may exist in this given row. The defect may correspond to, for example, a short circuit, bridging, missing wire, or other defects. The alarm may also include the given row R k The quantity and / or location.

[0189] In some examples, an alert can be issued when the difference between the highest score of a given row and the highest score of one or more other rows exceeds a threshold. The threshold can be set in advance and / or can be set or modified by the system operator. In some examples, an alert can be issued when the difference between the highest score of a given row and the average highest score of all rows exceeds a threshold.

[0190] Now notice Figure 26 .

[0191] For each row of the fraction graph R i (Or for each column), the composite score AS can be calculated. i For example, the composite score corresponds to the average score along each row (or each column).

[0192] Figure 26 The method further includes identifying a given row R k Is the composite score AS significantly different from the highest score in other rows? k Related (Operation 2600). This may indicate a given row R k An anomaly exists in the given row. In response to this identification, an alarm (operation 2610) can be issued, indicating that an anomaly exists or may exist in this given row. The anomaly may correspond to, for example, a short circuit, a missing connection, or other abnormalities. The alarm may also include the given row R k The quantity and / or location.

[0193] In some examples, when given a line R k The composite score AS k An alarm can be triggered when the difference between the composite score and the composite score of one or more other rows exceeds a threshold. The threshold can be set in advance and / or can be set or modified by the system operator.

[0194] Now notice Figure 27A .

[0195] Assume that the sample includes multiple edges belonging to different structural elements and / or the same structural element of the sample.

[0196] The various methods described in this paper can be used to detect the location of these edges. As mentioned above, detecting each edge involves determining a set of points, each point associated with a score (e.g., the highest score per row or column). The set of points is an estimate of the edge location.

[0197] In some examples, for each edge, data providing a composite score can be calculated based on the scores of different points in the set (Operation 2700). For example, for each edge, the average score of the set of points is calculated. If the composite score of a given edge differs from the composite scores of other edges (the difference is higher than a threshold), an alert can be issued, indicating a potential defect in the given edge (Operation 2710).

[0198] Figure 27B A non-limiting example is shown. Multiple composite scores are calculated: composite score 27101 for the left edge 27001 of wire 2700, composite score 27202 for the right edge 27002 of wire 2700, composite score 27301 for the left edge 27201 of wire 2720, and composite score 27302 for the right edge 27202 of wire 2720. If one of the composite scores differs significantly from the others, this may indicate a defect in the corresponding edge.

[0199] In other examples, the distribution of scores for the distinct points of each edge's set is calculated. If the distribution associated with a given edge differs from the distributions associated with other edges (the difference is above a threshold), an alert can be issued, indicating a potential defect in the given edge. This could include comparing values ​​such as variance, median, and mean between different distributions.

[0200] Now notice Figure 28 .

[0201] Assume the sample includes multiple edges, which belong to different structural elements and / or the same structural elements of the sample.

[0202] The various methods described in this paper can be used to detect the locations of these edges. As mentioned above, detecting each edge involves determining one or more filters. It is assumed that one or more filters have already been generated for each edge. If an iterative method has already been used to determine the location of each edge (see example...), Figure 3B , Figure 3C , Figure 12A , Figure 12B , Figure 14A If ), then one or more filters can correspond to one or more filters obtained at the last iteration of the method. Figure 28 The method includes obtaining a corresponding filter for each edge (Operation 2800).

[0203] Figure 28The method involves performing a comparison (operation 2810) between different filters obtained for different edges of the image. The comparison may rely on cross-correlation or other comparison methods.

[0204] Figure 28 The method further includes using (operation 2820) this comparison to determine whether a defect exists in one or more distinct edges. If, for a given edge, the corresponding filter is substantially different from the filters of other edges, an alert can be issued, providing information about a suspected defect in that given edge. The alert may include the location of the given edge.

[0205] Among the various methods described above, the locations of multiple edges may be determined. These methods can be used to detect edges with different profiles. In some examples, these methods can be used to determine the locations of substantially straight edges (including possible defects such as process variations). These methods can also be used to determine the locations of curved or rounded edges (such as the edges of contacts), or edges with other profiles corresponding to any shape.

[0206] In some examples, preprocessing operations can be performed on component images acquired by inspection tools to convert the component images into a matrix representation (also known as a strip matrix). In this matrix representation, each represented line provides information about the location of different points along the component's contour (or equivalent edge). The representation contains multiple lines associated with different orientations, providing information about the pixel intensity in the image along multiple axes of the structural component, as shown in the reference. Figure 31 Further discussion.

[0207] This method is in Figure 29 The diagram illustrates and includes the transformation (operation 2900) of an image of a component into a matrix representation. Once this matrix representation is obtained, it can be processed according to one or more of the various methods described above (operation 2910), which makes it possible to estimate the positions of the set of points belonging to the component contour. Once the positions of the set of points have been determined in the reference of the matrix representation, these positions can be transformed (operation 2920) back to the reference of the image. Thus, an estimate of the position of the component contour (or equivalent edge) in the image is obtained.

[0208] Figure 30 An example of an image 3001 of element 3000 is shown, the element being associated with the contour 3010 of the edge constituting element 3000. According to... Figure 29 The method involves converting the outline 3010 of component 3000 into a matrix representation 3100, as follows: Figure 31 As can be seen in the image, point set 3110 corresponds to contour 3010. This transformation can be seen in the reference. Figure 32The process is described in section 3200. The approximate location of the centroid 3040 of element 3000 is determined, for example, based on CAD data. Then, multiple axes with different angular orientations (see 3020, 3021, etc.) are traced from the centroid 3040 in 360 degrees (operation 3210). Each axis contains points of the contour (single points). Matrix representation 3100 corresponds to synthesizing the different axes into a single representation (transformation from shape to matrix representation), where each line of matrix representation 3100 corresponds to one of the multiple axes (operation 3220). Matrix representation 3100 is then processed according to the various methods described above. This enables the determination of the location of point set 3110. An inverse transformation (transformation from matrix representation to shape) is performed on point set 3110 to obtain an estimate of the location of the contour (edge) in the image reference.

[0209] In the detailed description, numerous specific details have been set forth to provide a thorough understanding of the disclosure. However, those skilled in the art will understand that the subject matter disclosed herein can be practiced without requiring these specific details. In other instances, well-known methods, procedures, components, and circuits have not been described in detail to avoid obscuring the subject matter currently disclosed.

[0210] Unless otherwise specifically stated, it will be apparent from the discussion mentioned above that throughout the discussion of this specification, the use of terms such as “obtain,” “perform,” “compare,” “determine,” “use,” “output,” “train,” “feed,” “generate,” etc., refers to computer operations and / or processes for converting data into other data, which are represented as physical (such as electronic) quantities and / or represent physical objects.

[0211] The term "computer" or "computer-based system" should be broadly interpreted to include any kind of hardware-based electronic device having a data processing circuitry system (e.g., digital signal processor (DSP), GPU, TPU, field-programmable gate array (FPGA), application-specific integrated circuit (ASIC), microcontroller, microprocessor, etc.), including by way of non-limiting example. Figure 1The computer-based system 103 and its corresponding portions disclosed herein. A data processing circuit system (also called a processing circuit system) may include, for example, one or more processors operatively connected to computer memory, loaded with executable instructions for performing operations, as further described below. The data processing circuit system comprises a single processor or multiple processors, which may be located in the same geographical area, or at least partially in different areas, and may be able to communicate together. One or more processors may represent one or more general-purpose processing devices, such as microprocessors, central processing units, etc. More specifically, a given processor may be one of the following: a Complex Instruction Set Computing (CISC) microprocessor, a Reduced Instruction Set Computing (RISC) microprocessor, a Very Long Instruction Word (VLIW) microprocessor, a processor implementing other instruction sets, or a processor implementing a combination of instruction sets. One or more processors may also be one or more special-purpose processing devices, such as application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), digital signal processors (DSPs), network processors, etc. One or more processors are configured to execute instructions to perform the operations and steps discussed herein.

[0212] The memory mentioned in this article may include one or more of the following: internal memory, such as processor registers and cache, main memory, such as read-only memory (ROM), flash memory, dynamic random access memory (DRAM), such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM).

[0213] As used herein, “non-transient memory” and “non-transient storage medium” should be broadly interpreted to encompass any volatile or non-volatile computer memory suitable for the subject matter currently disclosed. These terms should be considered to include a single or multiple media (e.g., a centralized or distributed database and / or associated caches and servers) that store one or more instruction sets. These terms should also be considered to include any medium capable of storing or encoding instruction sets for execution by a computer and enabling the computer to perform any one or more of the contents of this disclosure. Therefore, the terms should be considered to include, but are not limited to, read-only memory (“ROM”), random access memory (“RAM”), disk storage media, optical storage media, flash memory devices, etc.

[0214] It should be noted that while this disclosure relates to a processing circuitry system 104 (or 130) configured to perform various functions and / or operations, these functions / operations can be performed in various ways by one or more processors of the processing circuitry system 104. By way of example, the operations described below can be performed by a specific processor or by a combination of processors. Thus, the operations described below can be performed by corresponding processors (or combinations of processors) in the processing circuitry system 104, and optionally, at least some of these operations can be performed by the same processor. This disclosure should not be limited to being construed as a single processor always performing all operations.

[0215] The term “sample” as used in this specification should be broadly interpreted to encompass any kind of wafer, mask, and other structures, combinations, and / or portions thereof used in the manufacture of semiconductor integrated circuits, magnetic heads, flat panel displays, and other semiconductor articles.

[0216] The term “inspection” as used in this specification should be broadly interpreted to encompass any category of metrology-related operations, as well as operations related to defect detection and / or classification in the sample during its manufacture. Inspection is provided during or after the manufacture of the sample to be inspected using non-destructive inspection tools. By way of non-limiting example, the inspection process may include runtime scanning (in a single or multiple scans), sampling, examination, measurement, classification, and / or other operations provided for the sample or portions thereof using the same or different inspection tools. Similarly, inspection may be provided prior to the manufacture of the sample to be inspected and may include, for example, generating an inspection formulation and / or other setup operations. It should be noted that, unless otherwise specifically stated, the term “inspection” or its derivatives as used in this specification are not limited in terms of the resolution or size of the inspected area. By way of non-limiting example, various non-destructive inspection tools include scanning electron microscopes, atomic force microscopes, optical inspection tools, etc.

[0217] By way of non-limiting example, runtime inspection can employ a two-stage procedure, for example, inspecting a sample and then examining the sampling locations of potential defects. During the first stage, a high-speed and relatively low-resolution inspection of the sample surface is performed. In this first stage, a defect map is generated to show suspicious locations on the sample with a high probability of defects. During the second stage, at least some of the suspicious locations are analyzed more thoroughly at a relatively high resolution. In some cases, both stages can be implemented using the same inspection tool, while in other cases, these two stages are implemented using different inspection tools.

[0218] The term “defect” as used in this specification should be interpreted broadly to encompass any category of anomalies or undesirable features / functions formed on the sample.

[0219] It will be understood that, unless otherwise specifically stated, certain features of the currently disclosed subject matter described in the context of individual embodiments may also be provided in combination in individual embodiments. Conversely, various features of the currently disclosed subject matter described in the context of individual embodiments may also be provided individually or in any suitable sub-combination. Numerous specific details are set forth in the detailed description to provide a thorough understanding of the methods and apparatus.

[0220] In the currently disclosed embodiments of the subject matter, it is possible to perform a comparison Figure 3A , Figure 3B , Figure 3C , Figure 12A , Figure 12B , Figure 13 , Figure 14A , Figure 14B , Figure 20 , Figure 22 , Figure 24 , Figure 25 , Figure 26 , Figure 27A , Figure 28 , Figure 29 and Figure 32 The methods shown may have fewer, more, and / or different stages. In embodiments of the subject matter currently disclosed, Figure 3A , Figure 3B , Figure 3C , Figure 12A , Figure 12B , Figure 13 , Figure 14A , Figure 14B , Figure 20 , Figure 22 , Figure 24 , Figure 25 , Figure 26 , Figure 27A , Figure 28 , Figure 29 and Figure 32 One or more stages shown in the method may be executed in different orders, and / or one or more sets of stages may be executed simultaneously.

[0221] It should be understood that the application of this invention is not limited to the details set forth in the description contained herein or shown in the accompanying drawings.

[0222] It will also be understood that the system according to the invention can be implemented, at least in part, on a suitably programmed computer. Similarly, the invention contemplates a computer-readable computer program for performing the methods of the invention. The invention further contemplates a non-transient computer-readable memory that tangibly embodies a computer-executable instruction program for performing the methods of the invention.

[0223] This invention can have other embodiments and can be practiced and carried out in various ways. Therefore, it should be understood that the wording and terminology used herein are for descriptive purposes and should not be considered limiting. Thus, those skilled in the art will appreciate that the concepts upon which this disclosure is based can readily be used as the basis for designing other structures, methods, and systems for performing some of the purposes of the subject matter currently disclosed.

[0224] Those skilled in the art will readily understand that various modifications and alterations can be applied to the embodiments of the invention as described above without departing from the scope defined by the appended claims.

Claims

1. A system comprising one or more processing circuitry systems configured to: Obtain an image that provides information about at least a portion of at least one structural element of a semiconductor sample. One or more filters are generated using the image. Perform comparisons between the following: Each given region in the multiple regions of the image, and The one or more filters and Based on the comparison, a set of points in the image is determined, the set providing information on the estimated location of at least one edge of the at least one structural element in the image, the set of points containing at least one given point in the given row or column of the image for each given row or column of the image.

2. The system of claim 1, wherein either (i) or (ii): (i) For each given row or each given column, the given point corresponds to the comparison, which indicates the best match within each given row or each given column; (ii) The comparison enables the output of a set of scores, wherein... For each given row or each given column, the given score of the given point is the highest among the scores of the points in each given row or each given column.

3. The system of claim 1, wherein generating the one or more filters using the image comprises at least one of (i) or (ii): (i) Average pixel intensity along rows or columns of the image; (ii) Generate one or more filters using a machine learning model and the image.

4. The system of claim 1, wherein the system is configured to: For each given row in a plurality of rows of the image, or for each column in a plurality of columns of the image, determine a given distance between the following: The given point belonging to the given row or the given column, and Based on the reference line of the aforementioned point set, Thus, the distance set is obtained. A corrected image is generated using the image and the distance set, and Another estimate of the location of the at least one edge in the image is determined using the corrected image.

5. The system of claim 1, wherein the system is configured to: For each given row among multiple rows of the image, or for each given column among multiple columns of the image: Determine a given distance between a given point belonging to the given row or the given column and a reference line based on the set of points. Displacement is performed on each given row or each given column using the given distance, wherein the given distance differs between at least two rows or two columns of the image. Thus, the corrected image is obtained. and Another estimate of the location of the at least one edge in the image is determined using the corrected image.

6. The system of claim 1, wherein the system is configured to perform at least one of (i) or (ii): (i) Determine at least one point in the set of points that is located at a distance from the average position of the set of points that is higher than a first threshold; (ii) Determine at least one point in the set of points located at a distance from the average position of the set of points that differs from the distance of other points in the set of points from the average position by a second threshold.

7. The system of claim 1, wherein each point in the set of points is associated with a score obtained based on the comparison, wherein the system is configured to: Identify points in the set of points that are associated with scores of other points in the set or scores that differ from the overall score of the set by a threshold. and Issue an alert that provides information about the point or a row or column that includes the point.

8. The system of claim 1, wherein the comparison enables the generation of a set of scores, wherein the system is configured to: Identify a given row or column of the image, which is associated with a composite score that provides information on various scores within that given row or column, and whose composite score differs from the composite scores of other rows or columns of the image by more than a threshold. and Issue an alert that provides information about the given row or the given column.

9. The system of claim 1, wherein the system is configured to: Estimate the location of different edges based on different filters. Perform comparisons between the different filters, and This comparison is used to determine whether a defect exists in one or more of the different edges.

10. The system of claim 1, wherein the system is configured to: Obtain an initial image of multiple edges including one or more structural elements. The initial image is segmented into multiple images, each image including different given edges from the multiple edges. For each given image among the plurality of images: Use the given image to generate one or more given filters. Comparisons are performed between each given region in multiple regions of the given image and the one or more filters. Based on the comparison, a set of given points for the given image is determined. The set of given points provides information on the estimated location of the given edge in the given image. The set of given points includes at least one given point in the given row or column of the given image for each of a plurality of rows or for each of a plurality of columns of the given image.

11. The system of claim 1, wherein the system is configured to: The image generation filter set is used. Perform comparisons between the following: Each given region in the multiple regions of the image, and The filter set, and The comparison is used to determine the set of points in the image, which provides information about the estimated location of the edge.

12. The system of claim 11, wherein the system is configured to generate a unit that provides information on repetitive features of the image, and to use the unit to generate the filter set.

13. The system of claim 11, wherein the system is configured to perform a comparison between each corresponding row or each corresponding column of the given region and a corresponding filter in the filter set.

14. The system of claim 11, wherein the system is configured to: (1) For the current region among the plurality of regions, perform a comparison between each corresponding row or column of the current region and the corresponding filter in the filter set. (2) When all rows or all columns of the current region have been compared, repeat (1) for the next region of the plurality of regions that is different from the current region.

15. The system of claim 12, wherein the system is configured to perform a comparison between each given row or each given column of the given region and a filter in the filter set associated with the row or column of the cell, the position of the filter relative to the cell corresponding to the position of the given row or the given column relative to the given region.

16. The system of claim 12, wherein the system is configured to perform a comparison between each given row or each given column of the given region and: The filters in the filter set associated with the row or column of the cell, the position of the filter relative to the cell corresponding to the position of the given row or the given column relative to the given region, and At least one other filter in the filter set associated with the row or column of the cell, the position of the filter relative to the cell being different from the position of the given row or the given column relative to the given region.

17. The system of claim 1, wherein either (i) or (ii): (i) The one or more filters include a filter set, wherein the system is configured to generate the filter set using the image, wherein the filters in the set have different sizes; (ii) The one or more filters include a filter set, wherein the system is configured to generate the filter set using the image, wherein the filters in the set have different sizes, wherein the structural elements are located in a first layer of the sample, wherein for at least one filter in the filter set, the size of the at least one filter depends on the position of one or more other structural elements of the sample located in a second layer of the sample, which is different from the first layer.

18. The system of claim 1, wherein the system is configured to: Obtain initial images of the structural elements acquired by the inspection tool, and The initial image is converted into an image that provides information about at least a portion of the structural elements, wherein the image includes a plurality of lines associated with different orientations that provide information about pixel intensity along different axes of the initial image.

19. A computer-implemented method, the method comprising: Obtain an image that provides information about at least a portion of at least one structural element of a semiconductor sample. One or more filters are generated using the image. Perform comparisons between the following: Each given region in the multiple regions of the image, and The one or more filters and Based on the comparison, a set of points in the image is determined, the set providing information on the estimated location of at least one edge of the at least one structural element in the image, the set of points containing at least one given point in the given row or column of the image for each given row or column of the image.

20. A non-transitory computer-readable medium comprising instructions that, when executed by at least one or more processors, cause the at least one or more processors to perform: Obtain an image of at least a portion of at least one structural element of a semiconductor sample. One or more filters are generated using the image. Perform comparisons between the following: Each given region in the multiple regions of the image, and The one or more filters and Based on the comparison, a set of points in the image is determined, the set providing information on the estimated location of at least one edge of the at least one structural element in the image, the set of points containing at least one given point in the given row or column of the image for each given row or column of the image.