The description herein relates to the field of image inspection apparatus, and more particularly to defect detection for inspection samples based on machine learning models.
An image inspection apparatus (e.g., a charged-particle beam apparatus or an optical beam apparatus) is able to produce a two-dimensional (2D) image of a wafer substrate by detecting particles (e.g., photons, secondary electrons, backscattered electrons, mirror electrons, or other kinds of electrons) from a surface of a wafer substrate upon impingement by a beam (e.g., a charged-particle beam or an optical beam) generated by a source associated with the inspection apparatus. Various image inspection apparatuses are used on semiconductor wafers in semiconductor industry for various purposes such as wafer processing (e.g., e-beam direct write lithography system), process monitoring (e.g., critical dimension scanning electron microscope (CD-SEM)), wafer inspection (e.g., e-beam inspection system), or defect analysis (e.g., defect review SEM, or say DR-SEM and Focused Ion Beam system, or say FIB).
To control quality of a manufactured structures on the wafer substrate, the 2D image of the wafer substrate may be analyzed to detect potential defects in the wafer substrate. In some applications, a 2D image of a die of the wafer substrate may be compared with a 2D image of another die (e.g., a neighboring die) of the wafer substrate for defect detection, which may be referred to as a die-to-die (“D2D”) inspection. In some applications, a 2D image of a die of the wafer substrate may be compared with a 2D rendered image of a design layout of the die (e.g., a graphic design system or “GDS” layout) for defect detection, which may be referred to as a die-to-database (“D2DB”) inspection. In some applications, a 2D image of a die of the wafer substrate may be compared with a simulation image of the die. The simulation image may be generated by a simulation technique configured to simulate an image measured by the image inspection apparatus, using the design layout of the die as input. The sensitivity to noise of the defect inspection methods may be an important factor for both performance, cost, and accuracy of those applications.
Embodiments of the present disclosure provide systems and methods of training a machine learning model for defect detection, systems and methods of training a plurality of machine learning models for defect detection, and systems and methods of defect detection. In some embodiments, a non-transitory computer-readable medium may store a set of instructions that is executable by at least one processor of an apparatus to cause the apparatus to perform a method. The method may include obtaining training data including an inspection image of a fabricated integrated circuit (IC) and design layout data of the IC. The method may also include training a machine learning model using the training data. The machine learning model may include a first autoencoder and a second autoencoder. The first autoencoder may include a first encoder and a first decoder. The second autoencoder may include a second encoder and a second decoder. The second decoder may be configured to obtain a first code outputted by the first encoder. The first decoder may be configured to obtain a second code outputted by the second encoder.
In some embodiments, a non-transitory computer-readable medium may store a set of instructions that is executable by at least one processor of an apparatus to cause the apparatus to perform a method. The method may include obtaining first data including a first inspection image of a fabricated first integrated circuit (IC) and first design layout data of the first IC. The method may also include training a first machine learning model using the first data. The method may further include obtaining second data including a second inspection image of a fabricated second IC and second design layout data of the second IC. The method may further include generating adjusted design layout data by adjusting a polygon of the second design layout data. The method may further include training a second machine learning model using the second inspection image and the adjusted design layout data.
In some embodiments, a non-transitory computer-readable medium may store a set of instructions that is executable by at least one processor of an apparatus to cause the apparatus to perform a method. The method may include obtaining an inspection image of a fabricated integrated circuit (IC) and design layout data of the IC. The method may also include inputting the inspection image and the design layout data to a trained machine learning model to generate a defect map, wherein the trained machine learning model includes a first cross autoencoder, and the first cross autoencoder includes a first autoencoder configured to obtain the inspection image as input and a second autoencoder configured to obtain the design layout data as input. The method may further include detecting a potential defect in the inspection image based on the defect map.
In some embodiments, a system may include an image inspection apparatus configured to scan a sample and generate an inspection image of an integrated circuit (IC) fabricated on the sample, and a controller including circuitry. The controller may be configured to obtain training data including the inspection image of the IC and design layout data of the IC. The controller may be further configured to train a machine learning model using the training data. The machine learning model may include a first autoencoder and a second autoencoder. The first autoencoder may include a first encoder and a first decoder. The second autoencoder may include a second encoder and a second decoder. The second decoder may be configured to obtain a first code outputted by the first encoder. The first decoder may be configured to obtain a second code outputted by the second encoder.
In some embodiments, a system may include an image inspection apparatus configured to scan a sample and generate an inspection image of an integrated circuit (IC) fabricated on the sample, and a controller including circuitry. The controller may be configured to obtain first data including a first inspection image of a fabricated first IC and first design layout data of the first IC. The controller may also be configured to train a first machine learning model using the first data. The controller may further be configured to obtain second data including a second inspection image of a fabricated second IC and second design layout data of the second IC. The controller may further be configured to generate adjusted design layout data by adjusting a polygon of the second design layout data. The controller may further be configured to train a second machine learning model using the second inspection image and the adjusted design layout data.
In some embodiments, a system may include an image inspection apparatus configured to scan a sample and generate an inspection image of an integrated circuit (IC) fabricated on the sample, and a controller including circuitry. The controller may be configured to obtain the inspection image of the IC and design layout data of the IC. The controller may also be configured to input the inspection image and the design layout data to a trained machine learning model to generate a defect map, wherein the trained machine learning model includes a first cross autoencoder, and the first cross autoencoder includes a first autoencoder configured to obtain the inspection image as input and a second autoencoder configured to obtain the design layout data as input. The controller may further be configured to detect a potential defect in the inspection image based on the defect map.
In some embodiments, a computer-implemented method of training a machine learning model for defect detection may include obtaining training data including an inspection image of a fabricated integrated circuit (IC) and design layout data of the IC. The method may also include training a machine learning model using the training data. The machine learning model may include a first autoencoder and a second autoencoder. The first autoencoder may include a first encoder and a first decoder. The second autoencoder may include a second encoder and a second decoder. The second decoder may be configured to obtain a first code outputted by the first encoder. The first decoder may be configured to obtain a second code outputted by the second encoder.
In some embodiments, a computer-implemented method of training a plurality of machine learning models for defect detection may include obtaining first data including a first inspection image of a fabricated first integrated circuit (IC) and first design layout data of the first IC. The method may also include training a first machine learning model using the first data. The method may further include obtaining second data including a second inspection image of a fabricated second IC and second design layout data of the second IC. The method may further include generating adjusted design layout data by adjusting a polygon of the second design layout data. The method may further include training a second machine learning model using the second inspection image and the adjusted design layout data.
In some embodiments, a computer-implemented method of defect detection may include obtaining an inspection image of a fabricated integrated circuit (IC) and design layout data of the IC.
The method may also include inputting the inspection image and the design layout data to a trained machine learning model to generate a defect map, wherein the trained machine learning model includes a first cross autoencoder, and the first cross autoencoder includes a first autoencoder configured to obtain the inspection image as input and a second autoencoder configured to obtain the design layout data as input. The method may further include detecting a potential defect in the inspection image based on the defect map.
Reference will now be made in detail to example embodiments, examples of which are illustrated in the accompanying drawings. The following description refers to the accompanying drawings in which the same numbers in different drawings represent the same or similar elements unless otherwise represented. The implementations set forth in the following description of example embodiments do not represent all implementations consistent with the disclosure. Instead, they are merely examples of apparatuses and methods consistent with aspects related to the subject matter recited in the appended claims. Without limiting the scope of the present disclosure, some embodiments may be described in the context of providing detection systems and detection methods in systems utilizing electron beams (“e-beams”). However, the disclosure is not so limited. Other types of charged-particle beams (e.g., including protons, ions, muons, or any other particle carrying electric charges) may be similarly applied. Furthermore, systems and methods for detection may be used in other imaging systems, such as optical imaging, photon detection, x-ray detection, ion detection, or the like.
Electronic devices are constructed of circuits formed on a piece of semiconductor material called a substrate. The semiconductor material may include, for example, silicon, gallium arsenide, indium phosphide, or silicon germanium, or the like. Many circuits may be formed together on the same piece of silicon and are called integrated circuits or ICs. The size of these circuits has decreased dramatically so that many more of them may be fit on the substrate. For example, an IC chip in a smartphone may be as small as a thumbnail and yet may include over 2 billion transistors, the size of each transistor being less than 1/1000th the size of a human hair.
Making these ICs with extremely small structures or components is a complex, time-consuming, and expensive process, often involving hundreds of individual steps. Errors in even one step have the potential to result in defects in the finished IC, rendering it useless. Thus, one goal of the manufacturing process is to avoid such defects to maximize the number of functional ICs made in the process; that is, to improve the overall yield of the process.
One component of improving yield is monitoring the chip-making process to ensure that it is producing a sufficient number of functional integrated circuits. One way to monitor the process is to inspect the chip circuit structures at various stages of their formation. Inspection may be carried out using a scanning charged-particle microscope (“SCPM”). For example, an SCPM may be a scanning electron microscope (SEM). A SCPM may be used to image these extremely small structures, in effect, taking a “picture” of the structures of the wafer. The image may be used to determine if the structure was formed properly in the proper location. If the structure is defective, then the process may be adjusted, so the defect is less likely to recur.
The working principle of a SCPM (e.g., a SEM) is similar to a camera. A camera takes a picture by receiving and recording intensity of light reflected or emitted from people or objects. An SCPM takes a “picture” by receiving and recording energies or quantities of charged particles (e.g., electrons) reflected or emitted from the structures of the wafer. Typically, the structures are made on a substrate (e.g., a silicon substrate) that is placed on a platform, referred to as a stage, for imaging. Before taking such a “picture,” a charged-particle beam may be projected onto the structures, and when the charged particles are reflected or emitted (“exiting”) from the structures (e.g., from the wafer surface, from the structures underneath the wafer surface, or both), a detector of the SCPM may receive and record the energies or quantities of those charged particles to generate an inspection image. To take such a “picture,” the charged-particle beam may scan through the wafer (e.g., in a line-by-line or zig-zag manner), and the detector may receive exiting charged particles coming from a region under charged particle-beam projection (referred to as a “beam spot”). The detector may receive and record exiting charged particles from each beam spot one at a time and join the information recorded for all the beam spots to generate the inspection image. Some SCPMs use a single charged-particle beam (referred to as a “single-beam SCPM,” such as a single-beam SEM) to take a single “picture” to generate the inspection image, while some SCPMs use multiple charged-particle beams (referred to as a “multi-beam SCPM,” such as a multi-beam SEM) to take multiple “sub-pictures” of the wafer in parallel and stitch them together to generate the inspection image. By using multiple charged-particle beams, the SEM may provide more charged-particle beams onto the structures for obtaining these multiple “sub-pictures,” resulting in more charged particles exiting from the structures. Accordingly, the detector may receive more exiting charged particles simultaneously and generate inspection images of the structures of the wafer with higher efficiency and faster speed.
Wafer defect detection is a critical step for semiconductor volume production and process development in research and development phase. A wafer may include one or more dies. A die, as used herein, refers to a portion or block of wafer on which an integrated circuit may be fabricated. Typically, integrated circuits of the same design may be fabricated in batches on a single wafer of semiconductor, and then the wafer may be cut (or referred to as “diced”) into pieces, each piece including one copy of the integrated circuits and being referred to as a die. Several conventional techniques exist for wafer defect detection, including die-to-die (“D2D”) inspection technique, die-to-database (“D2DB”) inspection technique, and simulation-based inspection technique.
In the D2D inspection technique, for each of the dies on the wafer, an inspection image of the die (referred to as a “die inspection image”) may be generated. For example, the die inspection image may be an actually measured SEM image. The die inspection images may be compared and analyzed against each other for defect detection. For example, each pixel of a first die inspection image of a first die may be compared with each corresponding pixel of a second die inspection image of a second die to determine a difference in their gray-level values. Potential defects may be identified based on the pixel-wise gray-level value differences. For example, if one or more of the differences exceed a predetermined threshold, the pixels in at least one of the first die inspection image or the second die inspection image corresponding to the one of more of the differences may represent a part of a potential defect. In some embodiments, the die inspection images under comparison (e.g., the first die inspection image or the second die inspection image) may be associated with neighboring dies (e.g., the first die and the second die are randomly selected from dies being separated by less than four dies). In some embodiments, the die inspection images under comparison (e.g., the first die inspection image or the second die inspection image) may be associated with shifted-period dies (e.g., the first die and the second die are selected from dies being separated by a fixed number of dies).
In the D2DB inspection technique, a die inspection image of a die on the wafer may be compared with a rendered image generated from a design layout file (e.g., a GDS layout file) of the same die. The design layout file may include non-visual description of the integrated circuit in the die, and the rendering of the design layout file may refer to visualization (e.g., a 2D image) of the non-visual description. For example, the die inspection image may be compared with the rendered image to determine a difference in one or more of their corresponding features, such as, for example, pixel-wise gray-level values, gray-level intensity inside a polygon, or a distance between corresponding patterns. Potential defects may be identified based on the differences. For example, if one or more of the differences exceed a predetermined threshold, the pixels in the die inspection image corresponding to the one of more of the differences may represent a part of a potential defect.
In the simulation-based inspection technique, a die inspection image may be compared with a simulation image (e.g., a simulated SEM image) corresponding to the inspection image. In some embodiments, the simulation image may be generated by a machine learning model (e.g., a generative adversarial network or “GAN”) for simulating graphical representations of inspection images measured by the image inspection apparatus. The simulation image may be used as a reference to be compared with the die inspection image. For example, each pixel of the die inspection image may be compared with each corresponding pixel of the simulation image to determine a difference in their gray-level values. Potential defects may be identified based on the pixel-wise gray-level value differences. For example, if one or more of the differences exceed a predetermined threshold, the pixels in the die inspection image corresponding to the one of more of the differences may represent a part of a potential defect.
However, the existing techniques for wafer defect detection may face some challenges. For example, the pixel-wise gray-level value comparison in the D2D inspection technique may be sensitive to various factors, such as, for example, image noise, physical effects (e.g., charging effects) incurred in image generation, or image distortion. Also, the D2D inspection technique cannot be applied to a wafer that includes a single die because there can be only one die inspection image generated and no other die inspection image for the comparison. As another example, the comparison in the D2DB inspection technique may be sensitive to alignment accuracy between the die inspection image and the rendered image (or referred to as “image-to-GDS alignment accuracy”). In another example, differences between the die inspection image and the simulation image in the simulation-based inspection technique may be larger than those in the D2D inspection technique and the D2DB inspection technique, in terms of image noise level, image noise distribution, gray-level histogram, or local charging. Such larger differences may introduce high nuisance rate in the pixel-wise gray-level value comparison in the simulation-based inspection technique. Alternatively, to reduce the above-described nuisance rate in the simulation-based inspection technique, the simulation-based inspection technique may consume more computation resources than the D2D inspection technique and the D2DB inspection technique.
Embodiments of the present disclosure may provide methods, apparatuses, and systems for defect detection using a trained machine learning model that uses die inspection images and their corresponding rendered images (e.g., generated based on design layout files) as input. The trained machine learning model may include one or more paired autoencoder models (each model pair being referred to as a “cross autoencoder model,” “cross autoencoder,” or “XAE” herein). In some disclosed embodiments, a cross autoencoder may include a first autoencoder and a second autoencoder and may be trained using corresponding die inspection images (e.g., inputted to the first autoencoder) and rendered images (e.g., inputted to the second autoencoder). The cross autoencoder may include a loss function that may include a component representing a difference between a first code outputted by a first encoder of the first autoencoder and a second code outputted by a second encoder of the second autoencoder. In some embodiments, the machine learning model may include multiple cross autoencoders, each cross autoencoder including a pair of autoencoders. The multiple cross autoencoders may be trained independently using different sets of corresponding die inspection images and rendered images. In some embodiments, for defect detection, an inspection image of a fabricated integrated circuit and its corresponding design layout data may be inputted to the trained machine learning model that includes one or more cross autoencoders to generate a defect map. A potential defect in the inspection image may be detected based on the defect map.
Compared with existing techniques for wafer defect detection, the disclosed technical solutions herein provide various technical benefits. For example, by using cross autoencoders in the trained machine learning model, feature extraction and feature comparison may be conducted in a single step for both inspection images and corresponding rendered images generated from design layout data, which may enable generating a defect map for defect detection with higher accuracy and higher efficiency. Also, the cross autoencoders may be trained using either supervised or unsupervised learning, in which the unsupervised learning training may reduce the time and costs for labeling reference data compared with supervised learning, and the supervised learning training may amplify sensitivity of defect-of-interest for the trained cross encoders. Further, when the machine learning model may include multiple cross autoencoders, each of the cross autoencoders may be trained to tackle a specific nuisance-causing problem, and the same inspection image and its corresponding design layout data may be inputted to each of the trained cross autoencoders to generate different output data that may be combined to generate a defect map with lower noise and higher sensitivity to defects. Moreover, the trained machine learning model does not use any simulation image (e.g., as in the above-described simulation-based technique) for defect detection, which may reduce computational resources, costs, and time.
Relative dimensions of components in drawings may be exaggerated for clarity. Within the following description of drawings, the same or like reference numbers refer to the same or like components or entities, and only the differences with respect to the individual embodiments are described.
As used herein, unless specifically stated otherwise, the term “or” encompasses all possible combinations, except where infeasible. For example, if it is stated that a component may include A or B, then, unless specifically stated otherwise or infeasible, the component may include A, or B, or A and B. As a second example, if it is stated that a component may include A, B, or C, then, unless specifically stated otherwise or infeasible, the component may include A, or B, or C, or A and B, or A and C, or B and C, or A and B and C.
One or more robotic arms (not shown) in EFEM 106 may transport the wafers to load/lock chamber 102. Load/lock chamber 102 is connected to a load/lock vacuum pump system (not shown) which removes gas molecules in load/lock chamber 102 to reach a first pressure below the atmospheric pressure. After reaching the first pressure, one or more robotic arms (not shown) may transport the wafer from load/lock chamber 102 to main chamber 101. Main chamber 101 is connected to a main chamber vacuum pump system (not shown) which removes gas molecules in main chamber 101 to reach a second pressure below the first pressure. After reaching the second pressure, the wafer is subject to inspection by beam tool 104. Beam tool 104 may be a single-beam system or a multi-beam system.
A controller 109 is electronically connected to beam tool 104. Controller 109 may be a computer that may execute various controls of CPBI system 100. While controller 109 is shown in
In some embodiments, controller 109 may include one or more processors (not shown). A processor may be a generic or specific electronic device capable of manipulating or processing information. For example, the processor may include any combination of any number of a central processing unit (or “CPU”), a graphics processing unit (or “GPU”), an optical processor, a programmable logic controllers, a microcontroller, a microprocessor, a digital signal processor, an intellectual property (IP) core, a Programmable Logic Array (PLA), a Programmable Array Logic (PAL), a Generic Array Logic (GAL), a Complex Programmable Logic Device (CPLD), a Field-Programmable Gate Array (FPGA), a System On Chip (SoC), an Application-Specific Integrated Circuit (ASIC), and any type circuit capable of data processing. The processor may also be a virtual processor that includes one or more processors distributed across multiple machines or devices coupled via a network.
In some embodiments, controller 109 may further include one or more memories (not shown). A memory may be a generic or specific electronic device capable of storing codes and data accessible by the processor (e.g., via a bus). For example, the memory may include any combination of any number of a random-access memory (RAM), a read-only memory (ROM), an optical disc, a magnetic disk, a hard drive, a solid-state drive, a flash drive, a security digital (SD) card, a memory stick, a compact flash (CF) card, or any type of storage device. The codes may include an operating system (OS) and one or more application programs (or “apps”) for specific tasks. The memory may also be a virtual memory that includes one or more memories distributed across multiple machines or devices coupled via a network.
A primary charged-particle beam 220 (or simply “primary beam 220”), such as an electron beam, is emitted from cathode 218 by applying an acceleration voltage between anode 216 and cathode 218. Primary beam 220 passes through gun aperture 214 and beam limit aperture 212, both of which may determine the size of charged-particle beam entering condenser lens 210, which resides below beam limit aperture 212. Condenser lens 210 focuses primary beam 220 before the beam enters objective aperture 208 to set the size of the charged-particle beam before entering objective lens assembly 204. Deflector 204c deflects primary beam 220 to facilitate beam scanning on the wafer. For example, in a scanning process, deflector 204c may be controlled to deflect primary beam 220 sequentially onto different locations of top surface of wafer 203 at different time points, to provide data for image reconstruction for different parts of wafer 203. Moreover, deflector 204c may also be controlled to deflect primary beam 220 onto different sides of wafer 203 at a particular location, at different time points, to provide data for stereo image reconstruction of the wafer structure at that location. Further, in some embodiments, anode 216 and cathode 218 may generate multiple primary beams 220, and beam tool 104 may include a plurality of deflectors 204c to project the multiple primary beams 220 to different parts/sides of the wafer at the same time, to provide data for image reconstruction for different parts of wafer 203.
Exciting coil 204d and pole piece 204a generate a magnetic field that begins at one end of pole piece 204a and terminates at the other end of pole piece 204a. A part of wafer 203 being scanned by primary beam 220 may be immersed in the magnetic field and may be electrically charged, which, in turn, creates an electric field. The electric field reduces the energy of impinging primary beam 220 near the surface of wafer 203 before it collides with wafer 203. Control electrode 204b, being electrically isolated from pole piece 204a, controls an electric field on wafer 203 to prevent micro-arching of wafer 203 and to ensure proper beam focus.
A secondary charged-particle beam 222 (or “secondary beam 222”), such as secondary electron beams, may be emitted from the part of wafer 203 upon receiving primary beam 220. Secondary beam 222 may form a beam spot on sensor surfaces 206a and 206b of charged-particle detector 206. Charged-particle detector 206 may generate a signal (e.g., a voltage, a current, or the like.) that represents an intensity of the beam spot and provide the signal to an image processing system 250. The intensity of secondary beam 222, and the resultant beam spot, may vary according to the external or internal structure of wafer 203. Moreover, as discussed above, primary beam 220 may be projected onto different locations of the top surface of the wafer or different sides of the wafer at a particular location, to generate secondary beams 222 (and the resultant beam spot) of different intensities. Therefore, by mapping the intensities of the beam spots with the locations of wafer 203, the processing system may reconstruct an image that reflects the internal or surface structures of wafer 203.
Imaging system 200 may be used for inspecting a wafer 203 on motorized sample stage 201 and includes beam tool 104, as discussed above. Imaging system 200 may also include an image processing system 250 that includes an image acquirer 260, storage 270, and controller 109. Image acquirer 260 may include one or more processors. For example, image acquirer 260 may include a computer, server, mainframe host, terminals, personal computer, any kind of mobile computing devices, and the like, or a combination thereof. Image acquirer 260 may connect with a detector 206 of beam tool 104 through a medium such as an electrical conductor, optical fiber cable, portable storage media, IR, Bluetooth, internet, wireless network, wireless radio, or a combination thereof. Image acquirer 260 may receive a signal from detector 206 and may construct an image. Image acquirer 260 may thus acquire images of wafer 203. Image acquirer 260 may also perform various post-processing functions, such as generating contours, superimposing indicators on an acquired image, and the like. Image acquirer 260 may perform adjustments of brightness and contrast, or the like. of acquired images. Storage 270 may be a storage medium such as a hard disk, cloud storage, random access memory (RAM), other types of computer readable memory, and the like. Storage 270 may be coupled with image acquirer 260 and may be used for saving scanned raw image data as original images, post-processed images, or other images assisting of the processing. Image acquirer 260 and storage 270 may be connected to controller 109. In some embodiments, image acquirer 260, storage 270, and controller 109 may be integrated together as one control unit.
In some embodiments, image acquirer 260 may acquire one or more images of a sample based on an imaging signal received from detector 206. An imaging signal may correspond to a scanning operation for conducting charged particle imaging. An acquired image may be a single image including a plurality of imaging areas. The single image may be stored in storage 270. The single image may be an original image that may be divided into a plurality of regions. Each of the regions may include one imaging area containing a feature of wafer 203.
Consistent with some embodiments of this disclosure, a computer-implemented method of training a machine learning model for defect detection may include obtaining training data that includes an inspection image of a fabricated integrated circuit (IC) and design layout data of the IC. The obtaining operation, as used herein, may refer to accepting, taking in, admitting, gaining, acquiring, retrieving, receiving, reading, accessing, collecting, or any operation for inputting data. An inspection image, as used herein, may refer to an image generated as a result of an inspection process performed by a charged-particle inspection apparatus (e.g., system 100 of
In some embodiments, the design layout data of the IC may include an image (e.g., the rendered image) rendered based on GDS clip data of the IC. GDS clip data of an IC, as used herein, may refer to design layout data of the IC that is to be fabricated in a die, which is of the GDS format. In some embodiments, the design layout data of the IC may include only a design layout file (e.g., the GDS clip data) of the IC. In some embodiments, the design layout data of the IC may include only the rendered image of the IC. In some embodiments, the design layout data of the IC may include only a golden image of the IC. In some embodiments, the design layout data may include any combination of the design layout file, the golden image, and the rendered image of the IC.
Consistent with some embodiments of this disclosure, the computer-implemented method of training a machine learning model for defect detection may also include training a machine learning model using the obtained training data. In some embodiments, the machine learning model may include an autoencoder. An autoencoder in this disclosure may refer to a type of a neural network model (or simply a “neural network”).
A neural network, as used herein, may refer to a computing model for analyzing underlying relationships in a set of input data by way of mimicking human brains. Similar to a biological neural network, the neural network may include a set of connected units or nodes (referred to as “neurons”), structured as different layers, where each connection (also referred to as an “edge”) may obtain and send a signal between neurons of neighboring layers in a way similar to a synapse in a biological brain. The signal may be any type of data (e.g., a real number). Each neuron may obtain one or more signals as an input and output another signal by applying a non-linear function to the inputted signals. Neurons and edges may typically be weighted by corresponding weights to represent the knowledge the neural network has acquired. During a training process (similar to a learning process of a biological brain), the weights may be adjusted (e.g., by increasing or decreasing their values) to change the strengths of the signals between the neurons to improve the performance accuracy of the neural network. Neurons may apply a thresholding function (referred to as an “activation function”) to its output values of the non-linear function such that a signal is outputted only when an aggregated value (e.g., a weighted sum) of the output values of the non-linear function exceeds a threshold determined by the thresholding function. Different layers of neurons may transform their input signals in different manners (e.g., by applying different non-linear functions or activation functions). The output of the last layer (referred to as an “output layer”) may output the analysis result of the neural network, such as, for example, a categorization of the set of input data (e.g., as in image recognition cases), a numerical result, or any type of output data for obtaining an analytical result from the input data.
Training of the neural network, as used herein, may refer to a process of improving the accuracy of the output of the neural network. Typically, the training may be categorized into three types: supervised training, unsupervised training, and reinforcement training. In the supervised training, a set of target output data (also referred to as “labels” or “ground truth”) may be generated based on a set of input data using a method other than the neural network. The neural network may then be fed with the set of input data to generate a set of output data that is typically different from the target output data. Based on the difference between the output data and the target output data, the weights of the neural network may be adjusted in accordance with a rule. If such adjustments are successful, the neural network may generate another set of output data more similar to the target output data in a next iteration using the same input data. If such adjustments are not successful, the weights of the neural network may be adjusted again. After a sufficient number of iterations, the training process may be terminated in accordance with one or more predetermined criteria (e.g., the difference between the final output data and the target output data is below a predetermined threshold, or the number of iterations reaches a predetermined threshold). The trained neural network may be applied to analyze other input data.
In the unsupervised training, the neural network is trained without any external gauge (e.g., labels) to identify patterns in the input data rather than generating labels for them. Typically, the neural network may analyze shared attributes (e.g., similarities and differences) and relationships among the elements of the input data in accordance with one or more predetermined rules or algorithms (e.g., principal component analysis, clustering, anomaly detection, or latent variable identification). The trained neural network may extrapolate the identified relationships to other input data.
In the reinforcement learning, the neural network is trained without any external gauge (e.g., labels) in a trial-and-error manner to maximize benefits in decision making. The input data sets of the neural network may be different in the reinforcement training. For example, a reward value or a penalty value may be determined for the output of the neural network in accordance with one or more rules during training, and the weights of the neural network may be adjusted to maximize the reward values (or to minimize the penalty values). The trained neural network may apply its learned decision-making knowledge to other input data.
During the training of a neural network, a loss function (or referred to as a “cost function”) may be used to evaluate the output data. The loss function, as used herein, may map output data of a machine learning model (e.g., the neural network) onto a real number (referred to as a “loss” or a “cost”) that intuitively represents a loss or an error (e.g., representing a difference between the output data and target output data) associated with the output data. The training of the neural network may seek to maximize or minimize the loss function (e.g., by pushing the loss towards a local maximum or a local minimum in a loss curve). For example, one or more parameters of the neural network may be adjusted or updated purporting to maximize or minimize the loss function. After adjusting or updating the one or more parameters, the neural network may obtain new input data in a next iteration of its training. When the loss function is maximized or minimized, the training of the neural network may be terminated.
By way of example,
Input layer 320 may include one or more nodes, including node 320-1, node 320-2, . . . , node 320-a (a being an integer). A node (also referred to as a “machine perception” or a “neuron”) may model the functioning of a biological neuron. Each node may apply an activation function to received inputs (e.g., one or more of input 310-1, . . . , input 310-m). An activation function may include a Heaviside step function, a Gaussian function, a multiquadratic function, an inverse multiquadratic function, a sigmoidal function, a rectified linear unit (ReLU) function (e.g., a ReLU6 function or a Leaky ReLU function), a hyperbolic tangent (“tanh”) function, or any non-linear function. The output of the activation function may be weighted by a weight associated with the node. A weight may include a positive value between 0 and 1, or any numerical value that may scale outputs of some nodes in a layer more or less than outputs of other nodes in the same layer.
As further depicted in
As further depicted in
Although nodes of each hidden layer of neural network 300 are depicted in
Moreover, although the inputs and outputs of the layers of neural network 300 are depicted as propagating in a forward direction (e.g., being fed from input layer 320 to output layer 340, referred to as a “feedforward network”) in
An autoencoder in this disclosure may include an encoder sub-model (or simply “encoder”) and a decoder sub-model (or simply “decoder”), in which both the encoder and the decoder are symmetric neural networks. The encoder of the autoencoder may obtain input data and output a compressed representation (also referred to as a “code” herein) of the input data. The code of the input data may include extracted features of the input data. For example, the code may include a feature vector, a feature map, a feature matrix, a pixelated feature image, or any form of data representing the extracted features of the input data. During training, the decoder of the autoencoder may obtain the code outputted by the encoder and output decoded data. The goal of training the autoencoder may be to minimize the difference between the input data and the decoded data. After the training is completed, in an application of the trained autoencoder (referred to as an “inference stage”), input data may be fed to the encoder to generate a code, and the decoder of the autoencoder is not used. The code may be used as purposed output data or as feature-extracted data for other applications (e.g., for training a different machine learning model).
By way of example,
As depicted in
As depicted in
In some embodiments, the machine learning model being trained using the obtained training data may include a first autoencoder and a second autoencoder. For example, the machine learning model may be a cross autoencoder. A cross autoencoder (or “XAE”), as used herein, refers to a machine learning model that includes a first autoencoder and a second autoencoder, in which the first autoencoder includes a first encoder and a first decoder, the second autoencoder includes a second encoder and a second decoder, the second decoder is configured to obtain a first code outputted by the first encoder, and the first decoder is configured to obtain a second code outputted by the second encoder.
By way of example,
As depicted in
As depicted in
Consistent with some embodiments of this disclosure, the computer-implemented method of training a machine learning model for defect detection may further include inputting the inspection image to the first encoder to output the first code, in which the first code may represent a first pixelated image. The method may further include inputting the design layout data to the second encoder to output the second code, in which the second code may represent a second pixelated image. The method may further include determining a pixelated difference image, in which each pixel of the pixelated difference image may represent a difference between a first value associated with a first pixel in the first pixelated image and a second value associated with a second pixel in the second pixelated image.
By way of example, with reference to
Being co-located, as described herein, may refer to two objects having the same relative position in a coordinate system with the same definition of origin. For example, the first pixel in the first feature image may be positioned at a first coordinate (x1, y1) with respect to a first origin (0, 0) in the first image (e.g., the first origin being a top-left corner, a top-right corner, a bottom-left corner, a bottom-right corner, a center, or any position of the first image). The second pixel in the second feature image may be positioned at a second coordinate (x2, y2) with respect to a second origin (0, 0) in the second image, in which the second origin shares the same definition as the first origin. For example, the second origin may be a top-left corner of the second image if the first origin is a top-left corner of the first image, a top-right corner of the second image if the first origin is a top-right corner of the first image, a bottom-left corner of the second image if the first origin is a bottom-left corner of the first image, a bottom-right corner of the second image if the first origin is a bottom-right corner of the first image, or a center of the second image if the first origin is a center of the first image. In such cases, if x1 and x2 have the same value, and y1 and y2 have the same value, the first pixel in the first feature image and the second pixel in the second feature image may be referred to as “co-located.”
Consistent with some embodiments of this disclosure, the computer-implemented method of training a machine learning model for defect detection may further include inputting the first code to the second decoder to output the decoded inspection image. The method may also include inputting the second code to the first decoder to output the decoded design layout data.
By way of example, with reference to
In some embodiments, a loss function for training the machine learning model (e.g., cross autoencoder 500) may include a first component representing a difference between a first code outputted by the first encoder and a second code outputted by the second encoder. By way of example, with reference to
In some embodiments, the first component of the loss function may be generated based on the difference between the first code and the second code. By way of example, with reference to
In Eq. (1), P(x,y)CD represents a value associated with a pixel located at coordinate (x, y) in code difference 511. P(x,y)A represents a value (e.g., a grayscale-level value, an RGB value, or the like) associated with a pixel located at coordinate (x, y) in first code 510. P(x,y)B represents a value (e.g., a grayscale-level value, an RGB value, or the like) associated with a pixel located at coordinate (x, y) in second code 512. P(x,y)A and P(x,y)B may be of the same type of values. As shown in Eq. (1), P(x,y)CD is an MSE determined based on P(x,y)A and P(x,y)B.
With reference to in Eq. (2):
In some embodiments, besides the first component (e.g., loss 530), the loss function for training the machine learning model (e.g., cross autoencoder 500) may further include a second component representing a difference between the inspection image and a decoded inspection image outputted by the first decoder, and a third component representing a difference between the design layout data and decoded design layout data outputted by the second decoder.
By way of example, with reference to
In such an example, first data difference 522 may be a pixelated image having the same size as the inspection image or the decoded inspection image. Each pixel of first data difference 522 may have a value (e.g., a difference value, an absolute value of the difference value, a square of the absolute value, or the like) representing a difference between a first value (e.g., a grayscale-level value, an RGB value, or the like) associated with a first pixel in the inspection image and a second value (e.g., a grayscale-level value, an RGB value, or the like) associated with a second pixel in the decoded inspection image, in which the first pixel and the second pixel are co-located. Similarly, second data difference 524 may be a pixelated image having the same size as the rendered image or the decoded rendered image. Each pixel of second data difference 524 may have a value (e.g., a difference value, an absolute value of the difference value, a square of the absolute value, or the like) representing a difference between a third value (e.g., a grayscale-level value, an RGB value, or the like) associated with a third pixel in the rendered image and a fourth value (e.g., a grayscale-level value, an RGB value, or the like) associated with a fourth pixel in the decoded rendered image, in which the third pixel and the fourth pixel are co-located.
In some embodiments, the second component of the loss function may be generated based on the difference between the inspection image and the decoded inspection image, and the third component of the loss function may be generated based on the difference between the rendered image and the decoded rendered image. By way of example, with reference to
In Eq. (3), P(m,n)D1 represents a value associated with a pixel located at coordinate (m, n) in first data difference 522. P(m,n)I represents a value (e.g., a grayscale-level value, an RGB value, or the like) associated with a pixel located at coordinate (m, n) in the inspection image (e.g., represented by first input data 502). P(m,n)I′ represents a value (e.g., a grayscale-level value, an RGB value, or the like) associated with a pixel located at coordinate (m, n) in the decoded inspection image (e.g., represented by first decoded data 518). P(m,n)I and P(m,n)I′ may be of the same type of values. As shown in Eq. (3), P(m,n)D1 is an MSE determined based on P(m,n)I and P(m,n)I′.
In Eq. (4), P(m,n)D2 represents a value associated with a pixel located at coordinate (p, q) in second data difference 524. P(m,n)R represents a value (e.g., a grayscale-level value, an RGB value, or the like) associated with a pixel located at coordinate (p, q) in the rendered image (e.g., represented by second input data 504). P(m,n)R′ represents a value (e.g., a grayscale-level value, an RGB value, or the like) associated with a pixel located at coordinate (p, q) in the decoded rendered image (e.g., represented by second decoded data 520). P(m,n)R and P(m,n)R′ may be of the same type of values. As shown in Eq. (4), P(m,n)D2 is an MSE determined based on P(m,n)R and P(m,n)R′.
In some embodiments, the loss function for training the machine learning model (e.g., cross autoencoder 500) may be a sum of the first component, the second component, and the third component. By way of example, with reference to
With reference to in Eq. (5) and
in Eq. (6), respectively:
With reference to Eqs. (2), (5), and (6), by way of example, total loss 532 may be represented as in Eq. (7):
By way of example, with reference to in Eq. (7)). For example, first input data 502 may include N (N being an integer) entries, and second input data 504 may also include N entries. Each entry of first input data 502 may be paired with one entry of second input data 504, forming N pairs of corresponding data entries. In a current training iteration, the first autoencoder of cross autoencoder 500 may receive first input data 502 (e.g., by first encoder 506) and output first decoded data 518 (e.g., by first decoder 514), and the second autoencoder of cross autoencoder 500 may receive second input data 504 (e.g., by second encoder 508) and output second decoded data 520 (e.g., by second decoder 516). Code difference 511, first data difference 522, and second data difference 524 may be determined as described in association with
Consistent with some embodiments of this disclosure, the first component of the loss function may further include a parameter. In response to the parameter being of a first value (e.g., a negative value), the machine learning model may be trained using a supervised learning technique. In response to the parameter being of a second value (e.g., a non-negative value) different from the first value, the machine learning model may be trained using an unsupervised learning technique.
By way of example, the first component may be loss 530 of in Eq. (8):
In Eq. (8), W(x,y) represents a parameter value associated with a pixel located at coordinate (x, y) in code difference 511. In some embodiments, with reference to Eqs. (1) and (8), assuming first input data 502 represents the inspection image and second input data 504 represents the rendered image, if a pixel of first code 510 located at (x, y) ({x, y}={0, 1}) is linked to a known defect pattern in the inspection image, W(x,y) may be set to be a negative value (e.g., -1). If a pixel of first code 510 located at (x, y) ({x, y}={0, 1}) is linked to none of known defect patterns in the inspection image, W(x,y) may be set to be a positive value (e.g., +1). When W(x,y) has a negative value, the training of cross autoencoder 500 may be conducted using a supervised learning technique, in which a pixel of second code 512 located at (x, y) ({x, y}={0, 1}) may be used as reference, and in Eq. (8) may be used to maximize code difference 511. When W(x,y) has a positive value, the training of cross autoencoder 500 may be conducted using an unsupervised learning technique, in which
in Eq. (8) may be used to minimize code difference 511.
It should be noted that the manners of assigning values to W(x,y) may be various and are not limited to the examples described herein. For example, if a pixel of first code 510 located at (x, y) ({x, y}={0, 1}) is linked to a known defect pattern in the inspection image, W(x,y) may be set to be a positive value (e.g., +3). If a pixel of first code 510 located at (x, y) ({x, y}={0, 1}) is linked to none of known defect patterns in the inspection image, W(x,y) may be set to be a negative value (e.g., -2).
By use of the parameter to control the training mode (e.g., supervised learning or unsupervised learning), the training of the machine learning model may be more flexible. For example, when the machine learning model is trained using the supervised learning technique, the resulting trained machine learning model can be effectively more sensitive to identify known defect patters or defects of interest.
Consistent with some embodiments of this disclosure, when the design layout data of the IC includes the rendered image rendered based on the GDS clip data of the IC, the computer-implemented method of training a machine learning model for defect detection may further include aligning the inspection image and the rendered image. By way of example, corresponding pixel locations may be identified in both the inspection image and the rendered image, and the corresponding pixel locations of the inspection image and the rendered image may be adjusted to have the same coordinates in a common coordinate system by moving (e.g., translating or rotating) at least one of the inspection image or the rendered image in the common coordinate system.
By way of example,
At step 602, the controller may obtain training data including an inspection image of a fabricated integrated circuit (IC) and design layout data of the IC. In some embodiments, the design layout data may include a golden image or an image rendered based on graphic design system (GDS) clip data of the IC. For example, the inspection image may be represented by first input data 502 in
At step 604, the controller may train a machine learning model (e.g., cross autoencoder 500 of
In some embodiments, to train the machine learning model at step 604, the controller may input the inspection image to the first encoder to output the first code that represents a first pixelated image. The controller may also input the design layout data to the second encoder to output the second code that represents a second pixelated image. The controller may then determine a pixelated difference image (e.g., code difference 511 of
In some embodiments, a loss function (e.g., total loss 532 in in Eq. (2)) representing a difference between the first code outputted by the first encoder and the second code outputted by the second encoder. In some embodiments, the loss function may further include a second component (e.g., loss 526 or
in Eq. (5)) representing a difference between the inspection image and a decoded inspection image outputted by the first decoder, and a third component (e.g., loss 582 or
in Eq. (6)) representing a difference between the design layout data and decoded design layout data outputted by the second decoder. In some embodiments, the loss function (e.g.,
in Eq. (7)) may be a sum of the first component, the second component, and the third component.
In some embodiments, to train the machine learning model at step 604, the controller may input the first code to the second decoder to output the decoded design layout data. The controller may also input the second code to the first decoder to output the decoded inspection image.
In some embodiments, the first component (e.g., loss 530 or in Eq. (2)) may further include a parameter (e.g., W(x,y) in Eq. (8)). To train the machine learning model at step 604, the controller may train the machine learning model using a supervised learning technique in response to the parameter being of a first value (e.g., +1). The controller may also train the machine learning model using an unsupervised learning technique in response to the parameter being of a second value (e.g., -1) different from the first value.
The technical solutions of this disclosure also provides a method for training multiple machine learning models separately. The separately trained machine learning model may be combined to use for defect detection. Each of the multiple machine learning models may apply different data augmentation strategies for training. For example, a first machine learning model may be trained using regular inspection images and their corresponding design layout data. For tackling nuisance caused by random shifts of polygons between inspection images and their corresponding design layout data, a second machine learning model may be trained using the regular inspection images and adjusted design layout data that applies random shifts to one or more of its polygons. The trained second machine learning model may have higher sensitivity in detecting defects caused by random shifts. For tackling nuisance caused by random scaling of polygons between inspection images and their corresponding design layout data, a third machine learning model may be trained using the regular inspection images and adjusted design layout data that applies random resizing to one or more of its polygons. The trained third machine learning model may have higher sensitivity in detecting defects caused by random scaling. The trained first, second, and third machine learning models may be combined to use in a reference stage for more accurate and more efficient defect detection.
Consistent with some embodiments of this disclosure, this disclosure provides a computer-implemented method of training a plurality of machine learning models for defect detection. The method may include obtaining first data including a first inspection image of a fabricated first integrated circuit (IC) and first design layout data of the first IC. The method may also include training a first machine learning model using the first data. The method may further include obtaining second data including a second inspection image of a fabricated second IC and second design layout data of the second IC. The method may further include generating adjusted design layout data by adjusting a polygon of the second design layout data. The method may further include training a second machine learning model using the second inspection image and adjusted design layout data. In some embodiments, the first machine learning model may include a first cross autoencoder (e.g., structurally similar to cross autoencoder 500 of
By way of example,
In some embodiments, the first design layout data (e.g., first design layout data 706) may include a first image rendered based on first graphic design system (GDS) clip data of the first IC. The second design layout data (e.g., second design layout data 714) may include a second image rendered based on second GDS clip data of the second IC. In some embodiments, before training the first machine learning model and the second machine learning model, the method may further include aligning the first inspection image and the first rendered image and aligning the second inspection image and the second rendered image.
In some embodiments, to adjust the polygon of the second design layout data, the method may further include at least one of randomly moving the polygon in the second design layout data or randomly resizing the polygon in the second design layout data. For example, if the second design layout data includes a second rendered image that includes the polygon, the polygon may be moved to a random position in the second rendered image. As another example, the polygon may be resized to a random size in the second rendered image.
In some embodiments, the first IC may be the same as the second IC. The first inspection image may be the same as the second inspection image. The first design layout data may be the same as the second design layout data. By way of example, with reference to
In some embodiments, the first IC may be different from the second IC. The first inspection image may be different from the second inspection image. The first design layout data may be different from the second design layout data. By way of example, with reference to
In some embodiments, the first data may include a first set of inspection images of fabricated ICs and a first set of design layout data of the fabricated ICs, in which each piece of the first set of design layout data may correspond to (e.g., paired with) one of the first set of inspection images. The second data may include a second set of inspection images of fabricated ICs and a second set of design layout data of the fabricated ICs, in which each piece of the second set of design layout data may correspond to (e.g., paired with) one of the second set of inspection images. By way of example, with reference to
In some embodiments, when the first data includes the first set of inspection images and the first set of design layout data, and when the second data includes the second set of inspection images and the second set of design layout data, the first data may be the same as the second data. The first set of inspection images may be the same as the second set of inspection images. The first set of design layout data may be the same as the second set of design layout data. In such cases, in some embodiments, to generate the adjusted design layout data, a polygon of at least one piece of the second set of design layout data may be adjusted. The at least one piece of the second set of design layout data may include the second design layout data.
By way of example,
At step 802, the controller may obtain first data (e.g., first data 702 of
At step 804, the controller may train a first machine learning model (e.g., first machine learning model 708 of
At step 806, the controller may obtain second data (e.g., second data 710 of
In some embodiments, the first IC may be the same as the second IC. The first inspection image may be the same as the second inspection image. The first design layout data may be the same as the second design layout data.
In some embodiments, when the first data includes the first set of inspection images and the first set of design layout data, and when the second data includes the second set of inspection images and the second set of design layout data, the first data may be the same as the second data. The first set of inspection images may be the same as the second set of inspection images. The first set of design layout data may be the same as the second set of design layout data.
At step 808, the controller may generate adjusted design layout data by adjusting a polygon of the second design layout data. In some embodiments, to adjust the polygon of the second design layout data, the controller may perform at least one of randomly moving the polygon in the second design layout data, or randomly resizing the polygon in the second design layout data. In some embodiments, if the second design layout data includes the second rendered image, before generating the adjusted design layout data, the controller may align the second inspection image and the second rendered image.
In some embodiments, when the second data includes the second set of inspection images and the second set of design layout data, to generate the adjusted design layout data, the controller may adjust a polygon of at least one piece of the second set of design layout data. The at least one piece of the second set of design layout data may include the second design layout data.
At step 810, the controller may train a second machine learning model (e.g., second machine learning model 718 of
Consistent with some embodiments of this disclosure, this disclosure provides a computer-implemented method of defect detection using a trained machine learning model. The method may include obtaining an inspection image of a fabricated integrated circuit (IC) and design layout data of the IC. In some embodiments, the design layout data comprises an image rendered based on graphic design system (GDS) clip data of the IC.
Consistent with some embodiments of this disclosure, the method may also include inputting the inspection image and the design layout data to a trained machine learning model (e.g., including one or more cross autoencoders) to generate a defect map. The trained machine learning model may include a first cross autoencoder. The first cross autoencoder may include a first autoencoder configured to obtain the inspection image as input and a second autoencoder configured to obtain the design layout data as input.
By way of example, with reference to
In some embodiments, to generate the defect map, the method may include inputting the inspection image to the first autoencoder to output a first code that represents a first pixelated image. The method may also include inputting the design layout data to the second autoencoder to output a second code that represents a second pixelated image. The method may further include determining the defect map as a pixelated image, in which each pixel of the defect map may represent a difference between a first value associated with a first pixel in the first pixelated image and a second value associated with a second pixel in the second pixelated image. The first pixel and the second pixel may be co-located.
By way of example, with reference to
Consistent with some embodiments of this disclosure, the method may further include detecting a potential defect in the inspection image based on the defect map. For example, the defect map may include one or more flagged locations indicative of potential defects. The flagged locations may include pixels having values exceeding a predetermined threshold (e.g., grayscale difference values exceeding a predetermined threshold). The locations in the inspection image corresponding to the flagged locations of the defect map may be inputted to a defect detection application for further defect analysis. The defect detection application may determine whether the flagged locations do include potential defects.
By way of example,
In
In some embodiments, the trained machine learning model may further include a second cross autoencoder different from the first cross autoencoder. The second cross autoencoder model may include a third autoencoder configured to obtain the inspection image as input and a fourth autoencoder configured to obtain the design layout data as input.
By way of example,
As depicted in
In some embodiments, when the trained machine learning model includes the second cross autoencoder, to generate the defect map, the method may include inputting the inspection image to the first autoencoder to output a first code that represents a first pixelated image. The method may also include inputting the design layout data to the second autoencoder to output a second code that represents a second pixelated image. The method may further include determining a first pixelated image, in which each pixel of the first pixelated image represents a difference value between a first value associated with a first pixel in the first pixelated image and a second value associated with a second pixel in the second pixelated image. The first pixel and the second pixel may be co-located. The method may further include inputting the inspection image to the third autoencoder to output a third code that represents a third pixelated image. The method may further include inputting the design layout data to the fourth autoencoder to output a fourth code that represents a fourth pixelated image. The method may further include determining a second pixelated image, in which each pixel of the second pixelated image represents a difference value between a third value associated with a third pixel in the third pixelated image and a fourth value associated with a fourth pixel in the fourth pixelated image. The third pixel and the fourth pixel may be co-located. The method may further include determining the defect map as a combined image, in which each pixel of the combined image has a value generated based on a product of a difference value associated with a pixel in the first pixelated image multiplied by a difference value associated with a pixel in the second pixelated image.
By way of example, with reference to
Similarly, second XAE 1010 may include a third autoencoder and a fourth autoencoder. Second XAE 1010 may include a third autoencoder and a fourth encoder. Inspection image 1004 may be inputted to the third autoencoder of second XAE 1010 to generate the third code, and design layout data 1006 may be inputted to the fourth autoencoder of second XAE 1010 to generate the fourth code. Based on the third code and the fourth code, second code difference 1011 may be generated and may be represented as the second pixelated image, such as in a manner described in association with
The defect map may be determined as a combined image generated based on the first pixelated image and the second pixelated image. By way of example, with reference to Eq. (1) and assuming both the first pixelated image and the second pixelated image have 2×2 pixels, pixels of the combined image may be represented as P(x,y)DM in Eq. (11):
In Eq. (9), P(x,y)α represents a value associated with a pixel located at coordinate (x, y) in first code difference 1009. P(x,y)A represents a value (e.g., a grayscale-level value, an RGB value, or the like) associated with a pixel located at coordinate (x, y) in the first code. P(x,y)B represents a value (e.g., a grayscale-level value, an RGB value, or the like) associated with a pixel located at coordinate (x, y) in the second code. P(x,y)A and P(x,y)B may be of the same type of values. As shown in Eq. (9), P(x,y)α is an MSE determined based on P(x,y)A and P(x,y)B.
In Eq. (10), P(x,y)β represents a value associated with a pixel located at coordinate (x, y) in second code difference 1011. P(x,y)C represents a value (e.g., a grayscale-level value, an RGB value, or the like) associated with a pixel located at coordinate (x, y) in the third code. P(x,y)D represents a value (e.g., a grayscale-level value, an RGB value, or the like) associated with a pixel located at coordinate (x, y) in the fourth code. P(x,y)C and P(x,y)D may be of the same type of values. As shown in Eq. (10), P(x,y)β is an MSE determined based on P(x,y)C and P(x,y)D.
In Eq. (11), P(x,y)DM represents a value associated with a pixel located at coordinate (x, y) in the combined image (i.e., the outputted defect map). As shown in Eq. (11), P(x,y)DM is generated based on a product of P(x,y)α and P(x,y)β. In some embodiments, P(x,y)DM may be determined as the product of P(x,y)α and P(x,y)β (i.e., P(x,y)DM=P(x,y)α·P(x,y)α). In some embodiments, P(x,y)DM may be determined as a weighted product of P(x,y)α and P(x,y)β (i.e., P(x,y)DM=w(x,y)·P(x,y)α·P(x,y)β where w(x,y) represents a weight associated with a pixel located at coordinate (x, y) in the combined image). It should be noted that the manner of determining P(x,y)DM based on P(x,y)α·P(x,y)β may be various and are not limited to the examples described herein.
By way of example,
At step 1102, the controller may obtain an inspection image (e.g., inspection image 1004 of
At step 1104, the controller may input the inspection image and the design layout data to a trained machine learning model (e.g., trained machine learning model 1002 of
In some embodiments, to generate the defect map, the controller may input the inspection image to the first autoencoder to output a first code that represents a first pixelated image. The controller may also input the design layout data to the second autoencoder to output a second code that represents a second pixelated image. The controller may further determine the defect map as a pixelated image (e.g., first code difference 1009). Each pixel of the defect map may represent a difference between a first value associated with a first pixel in the first pixelated image and a second value associated with a second pixel in the second pixelated image. The first pixel and the second pixel may be co-located.
At step 1106, the controller may detect a potential defect in the inspection image based on the defect map.
In some embodiments, the trained machine learning model of method 1100 may further include a second cross autoencoder (e.g., second XAE 1010 or third XAE 1012 of
When the trained machine learning model includes the first cross autoencoder and the second autoencoder, to generate the defect map, the controller may input the inspection image to the first autoencoder to output a first code that represents a first pixelated image. The controller may also input the design layout data to the second autoencoder to output a second code that represents a second pixelated image. The controller may further determine a first pixelated image (e.g., first code difference 1009). Each pixel of the first pixelated image may represent a difference value (e.g., an MSE value P(x,y)α of Eq. (9)) between a first value (e.g., P(x,y)A of Eq. (9)) associated with a first pixel in the first pixelated image and a second value (e.g., P(x,y)B of Eq. (9)) associated with a second pixel in the second pixelated image. The first pixel and the second pixel may be co-located. The controller may further input the inspection image to the third autoencoder to output a third code that represents a third pixelated image. The controller may further input the design layout data to the fourth autoencoder to output a fourth code that represents a fourth pixelated image. The controller may then determine a second pixelated image. Each pixel of the second pixelated image may represent a difference value (e.g., an MSE value P(x,y)β of Eq. (10)) between a third value (e.g., P(x,y)C of Eq. (10)) associated with a third pixel in the third pixelated image and a fourth value (e.g., P(x,y)D of Eq. (10)) associated with a fourth pixel in the fourth pixelated image. The controller may then determine the defect map as a combine image. Each pixel of the combined image may have a value (e.g., P(x,y)DM of Eq. (11)) generated based on a product (e.g., P(x,y)α·P(x,y)β of Eq. (11)) of a difference value (e.g., P(x,y)α of Eq. (11)) associated with a pixel in the first pixelated image multiplied by a difference value (e.g., P(x,y)β of Eq. (11)) associated with a pixel in the second pixelated image.
A non-transitory computer readable medium may be provided that stores instructions for a processor (for example, processor of controller 109 of
The embodiments can further be described using the following clauses:
1. A non-transitory computer-readable medium that stores a set of instructions that is executable by at least one processor of an apparatus to cause the apparatus to perform a method, the method comprising:
The block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer hardware or software products according to various example embodiments of the present disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code, which includes one or more executable instructions for implementing the specified logical functions. It should be understood that in some alternative implementations, functions indicated in a block may occur out of order noted in the figures. For example, two blocks shown in succession may be executed or implemented substantially concurrently, or two blocks may sometimes be executed in reverse order, depending upon the functionality involved. Some blocks may also be omitted. It should also be understood that each block of the block diagrams, and combination of the blocks, may be implemented by special purpose hardware-based systems that perform the specified functions or acts, or by combinations of special purpose hardware and computer instructions.
It will be appreciated that the embodiments of the present disclosure are not limited to the exact construction that has been described above and illustrated in the accompanying drawings, and that various modifications and changes may be made without departing from the scope thereof.
This application claims priority of U.S. application 63/290,601 which was filed on 16 Dec. 2021 and which is incorporated herein in its entirety by reference.
| Filing Document | Filing Date | Country | Kind |
|---|---|---|---|
| PCT/EP2022/082360 | 11/18/2022 | WO |
| Number | Date | Country | |
|---|---|---|---|
| 63290601 | Dec 2021 | US |