TWO-DIMENSIONAL SCATTER PLOT TECHNIQUE FOR DEFECT INSPECTION

Abstract: A method and associated apparatus for relating a test image with a reference image in an automated image processing system is disclosed. The test and reference images are aligned. A two-dimensional scatter plot is then created by plotting the gray level of a test image pixel against the gray level of a corresponding reference image pixel for each aligned pixel location.

Description: TWO-DIMENSIONAL SCATTER PLOT TECHNIQUE FOR DEFECT INSPECTION Copyright Notice A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever. 37 CFR 1.71(e). Background of the Invention Field of the Invention This invention generally relates to digital image processing and, more particularly, to systems and methods for detecting defects in a semiconductor device using image comparison techniques. Description of the Related Art Image comparison techniques are used to detect defects in a semiconductor wafer. Typically, a test image is acquired and then compared to a reference image. A defect- detection algorithm is then used to detect variations between the images and to determine whether such variations are real defects. In the so-called random-logic inspection mode, an image of a first die is acquired and then compared to the image of a second die in the same wafer. Array-inspection mode is similarly performed except that a section of a die is compared to another section in the same die having an identical structure. Array- inspection mode is used, for example, in testing devices with repeating structures such as memory cells. In lieu of comparing images from a wafer being tested, defects may also be detected by comparing an acquired test image with a known good image from a database. Fig. 1 illustrates a defect-detection method in the prior art. A test image and a reference image of the wafer feature being analyzed are acquired from different sections of the wafer using, for example, conventional electron-beam imaging techniques (step 1 10). Each image comprises a plurality of pixels, with each pixel being defined by its location within the image and its intensity or gray level. The use of gray levels in image processing is known in the art and is described in R. C. Gonzales and R. E. Woods, "Digital Image Processing," Addison- Wesley (1992), e.g. pages 6-7, which is incorporated herein by reference in its entirety. The two images are then aligned pixel-by-pixel such that each feature in the test image matches up with the corresponding feature in the reference image (step 120). A difference image is then generated by subtracting the gray levels of the two images (step 130). Because matching pixels with identical gray levels will be subtracted out, the difference image represents pixel gray level variations between the reference image and the test image. The gray level of each pixel in the difference image is scaled, normalized, and then plotted in a one dimensional histogram such as histogram 200 shown in Fig. 2 (step 140). Histogram 200 plots the number of pixels in the difference image having a specific gray level. For instance, histogram 200 indicates that there are 20,000 pixels in the difference image having a gray level of 50. A pixel from the test image can be different from a corresponding pixel in the reference image even if there are no defects in the two images. Intensity variations can be caused by, for example, differences in the physical layer structures, noise in the image acquisition electronics and signal paths, and varying noise modulation level within a single image across different gray levels. Thus, pixels in the difference image do not necessarily indicate that a defect exists. To differentiate real defects from false or "nuisance" defects, each pixel in the difference image is compared to a threshold window (Fig. 1, step 150). Pixels with a gray level outside the threshold window are declared defects. For example, if the threshold window is ± 50 and a pixel in the difference image has a gray level of 60 (i.e. the gray levels of the test and reference images differ by 60 units), a defect event is declared (Fig. 1, step 160). The defect event is then verified by an operator to ensure that the die is indeed defective before the die is discarded in subsequent processing. Finding the optimum threshold value for a given test image is an important but imprecise task. The threshold value must be chosen such that real defects are detected while differentiating nuisance defects. The narrower the threshold value, the more nuisance defects will be declared. Nuisance defects adversely affect production throughput because each defect event must be checked and verified. On the other hand, widening the threshold window will reduce nuisance defect events at the expense of letting real defects go undetected. Thus, a method for evaluating the effectiveness of a threshold or thresholding scheme is highly desirable. Summary The invention provides for a method and associated apparatus for relating a test image with a reference image. In an embodiment of the invention, the test and reference images are aligned. A two-dimensional scatter plot is then created by plotting the gray level of a test image pixel against the gray level of a corresponding reference image pixel for each aligned pixel location. The invention is applicable to electron-beam, bright-field, dark-field, laser, and atomic-force microscopy ("AFM") inspection systems. Brief Description of the Drawings Fig. 1 shows a defect detection method in the prior art. Fig. 2 shows a one-dimensional histogram plot of gray levels. Fig. 3 shows the steps of an embodiment of the present invention. Figs. 4A-4c show an alignment step in accordance with the present invention. Figs. 5A-5B show a two-dimensional scatter plot in accordance with the present invention. Figs. 6-7 show a test image and a reference image, respectively, taken from a device wafer. Figs. 8-9 show a two-dimensional scatter plot in accordance with the present invention. Detailed Description The present invention provides for a method and associated apparatus for relating the pixel of a test image with the corresponding pixel on a reference image. The invention can be used in determining the effectiveness of a threshold or thresholding scheme. The invention is also useful in other image processing applications such as those disclosed by the same inventor in the related co-pending U.S. Patent Application No. 09/365,583, filed August 2, 1999, "Adaptive Mask Technique For Defect Inspection," which is incorporated herein by reference in its entirety. Other uses for the invention are in electron-beam, bright-field, dark-field, laser, and atomic-force microscopy ("AFM") inspection systems. Fig. 3. illustrates the steps of an embodiment of the present invention. In step 310, a test image and a reference image of, for example, semiconductor structures are acquired using conventional image acquisition techniques. The images can also be acquired using the step-and-image acquisition system disclosed in commonly-owned US Patent Application Serial No. 09/226,967, "Detection of Defects In Patterned Substrates," filed January 8, 1999, which is incorporated herein by reference in its entirety. In step 320, the test and reference images are aligned to match up corresponding pixels between the two images. A variety of alignment techniques can be used with the present invention including the technique disclosed in commonly-owned US Patent Application Serial No. 09/227,747, "Feature-Based Defect Detection," filed January 8, 1999, which is incorporated herein by reference in its entirety. Step 320 is further illustrated in Figs. 4A-4C. Fig. 4A shows a test image 410 comprising pixels 411-416. Each pixel is defined by its gray level and its location on the image. As an example, pixel 413 is on location i=10 and j=30 (i.e. (10,30)). The gray level of pixel 413 is 50 for purposes of this illustration. Table 1 provides the coordinate location and gray level for each pixel of test image 410 while Table 2 provides the same information for pixels 421-426 of reference image 420 (Fig. 4B). Table 1 Table 2 Fig. 4C graphically shows the alignment of test image 410 with reference image 420. Aligned pixel location 431 comprises the pixels 411 and 421, aligned pixel location 432 comprises the pixels 412 and 422, and so on. Once the reference and test images are aligned, the pixel-to-pixel correspondence between the test image and the reference image is known. For each aligned pixel location, the gray level of a pixel from the test image is plotted against the gray level of the corresponding pixel in the reference image (Fig. 3, step 330). Using Fig. 4C as an example, the gray level of pixel 411 is plotted against the gray level of pixel 421, the gray level of pixel 412 is plotted against the gray level of pixel 422, and so on. Using step 330 for locations 431-436 yields the data points shown in Table 3. The resulting two- dimensional scatter plot 500 is shown in Fig. 5A. Table Table 3 shows that locations 434, 435, and 436 have varying gray levels and, thus, indicate the presence of possible defects. Locations 431, 432, and 433 are free of defects because the test image and the reference image have the same gray levels in said locations. Scatter plot 500 (Fig. 5A) provides information as to the presence of possible defects. All aligned pixel locations with the same gray levels can be represented in scatter plot 500 by an imaginary line 501 (Fig. 5 A). The slope of imaginary line 501 is +1 because it represents the aligned pixel locations wherein the gray level of the test image pixel is the same as the gray level of the corresponding pixel in the reference image. All aligned pixel locations with varying gray level values will lie away from imaginary line 501. The further a location is plotted away from line 501, the greater the deviation in gray levels, and the higher the chance that a defect exists in that location. In scatter plot 500, locations 434, 435, and 436 are not on imaginary line 501 and indicate the presence of possible defects. Scatter plot 500 may be used to evaluate the effectiveness of a threshold or thresholding scheme. For example, a threshold window of ± 40 gray level units may be plotted and superimposed on scatter plot 500 as shown by lines 502 and 503 in Fig. 5B. Line 502 represents all aligned pixel locations wherein the gray level of the test image is greater than the gray level of the reference image by 40 units. Similarly, line 503 represents aligned pixel locations wherein the gray level of the reference image is greater than that of the test image by 40 units. Aligned pixel locations outside lines 502 and 503, such as locations 435 and 436, will be declared as defect events. In Fig. 5B, locations 431, 432, 433, and 434 will not trigger a defect event because said locations are within the threshold window. Different threshold windows can be plotted and superimposed on scatter plot 500 to determine which aligned pixel locations will be "captured" and declared as a defect event. Threshold windows may be generated using equations for shapes other than parallel lines. This capability to visualize the extent of a threshold window is particularly useful to the skilled artisan in determining an appropriate threshold during test development. A pseudo code for implementing an embodiment of the invention in computer software is shown below. In the pseudo code, the gray level values are plotted in a memory array variable ("Scatter"). Appendix A lists the source code of a function written in the C programming language. On page 2 of Appendix A, "hist2D8" creates a two- dimensional scatter plot in accordance with the present invention. The code would be executed by a computer or processor which is conventionally coupled to or a part of a defect inspection system. Of course, such a system would typically store this source code and the resulting plots in a computer-readable medium (memory). /* PSEUDO CODE FOR CREATING A 2D SCATTER PLOT */ Acquire Reference Image; Acquire Test Image; Align Test Image to Reference Image; Create a 256x256 Image named Scatter; Initialize Scatter to 0; Do for i = 1 to NumRows { Do for j = 1 to NumCols { pi = Reference (i, j ) ; p2 = Test (i, j) ; Scatter (p2, pi) = 1; } } Plot Scatter as an Image; /* END OF PSEUDO CODE */ Figs. 6-9 pictorially summarize an embodiment of the present invention. Fig. 6 shows a test image 600 acquired conventionally from a wafer having a defect 601. A reference image 700 (Fig. 7) is similarly acquired and then aligned (not shown) with test image 600. Two-dimensional scatter plot 800 is generated by plotting the gray level of the test image pixel against the gray level of the corresponding reference image pixel for each aligned location (Fig. 8). The scatter plot may be generated manually or by using a programmed computer. Aligned pixel locations are plotted as white dots in a dark background. In Fig. 8, line 801 defines the aligned pixel locations wherein the gray level of the test and reference image pixels are identical. For example, if test image 600 was identical to reference image 700, all points in scatter plot 800 would lie on line 801. To determine the extent of a threshold, the equation or parameters defining the threshold are plotted and shown in Fig. 9 as lines 901 and 902. Points outside lines 901 and 902 will be declared as defect events. It is to be understood that the description given above is for purposes of illustration and is not intended to be limiting. Numerous variations are possible without deviating from the scope and spirit of the invention. The invention is set forth in the following claims. APPENDIX A • ********** < ********* •! Copyright (c) Schlumberger Technologies 1999. All rights reserved. No part of this program may be photocopied, reproduced, or translated to another programming language without the prior written consent of Yield Enhancement Systems. \.. ** . * . * ... *** .. ** . ** . * .. * ..... ** . ** .. * . * ... * ...... * . **** .. ******* /* Returns : 0 for success -1 for functional failure -2 if algorithm fails to find acceptable threshold *************** <finclude <stdio.h> ((include <stdlib.h> ((include <string.h> Sinclude <math.h> fiinclude <mp.h> ((include < mage.h> ((include <S Bapi.h> (jinclude <pgm.h> ((include <morphl.h> ((include <scatter2d8.h> ((define SQRT2 1.414213562373 /*sqrt(2)*/ ((define MIN_DIST 1 /*min image difference used as the beginning of ID profiles*/ ((define MVA_SIZE 21 / ♦ size of moving average window*/ ((define MVA RATIO 0.9 / ♦ allowable shrinkage in Id profile wrt its mva*/ ((define MIN_DATA_SIZE 80 /*min (f of data points to use curve fitting*/ ((define MX_SIZE (3 << GRAY_SCA E_BITS) /'size of the data matrix for curve fitting*/ ((define HIST_MORPH_PASSES 1 /•no. of passes for open/close operations*/ ((define SIGMA MAX S /'enable removal of outliers if sigma of fit is bigger than this*/ /*«define MIN_THR 10 /*min thr below which no difference is called a defect*/ ((define EPSILON 0.1 /*min value for det(AtA)*/ ((define ALG FITMASK 1 /*detection alg using cleaned 2D hist as a mask*/ static void hiεt2D8 (unsigned char *a, unsigned long tcolε_a, unsigned char *b, unsigned long tcols_b, unsigned long ncols, unsigned long nrows, unsigned char *table) ■ static OneD dist_profile diεtmax, distmin int Find2DHistoOutliers (OIP_byte_image *pSrcImagel, OIP_byte_image *pSrcImage2, OIP_byte_image *pDstImageResult , PIXE _diff j para PixelDiffPara, unsigned char *hiεt, unεigned char *hiεt2DBitMap, unsigned long FovID, long εhorttest) unsigned char *almagel, *almage2, *aResult; /* ROI pointer */ const long Passes = HIST_MORPH_PASSES; /*l=3x 3 open operation, 2=5x5, etc*/ char name (128) ; APPENDIX A /* check if the ROIs have the same size */ if ( (pSrcImagel->Info.RegWidth != pSrcImage2->Info.RegWidth) (pSrcImagel->Info.RegWidth != pDstImageResult->Info.Reg idth) (pSrcImagel->Info.RegHeight != pSrcImage2->Info.RegHeight) (pSrdmagel->Info.RegHeight != pDstImageResult->Info.RegHeight) ) return -1; /* determine ROI pointers */ almagel = pSrdmagel->BufPtr + pSrcIraagel->Info.RegXO + pSrdmagel->Info.RegYO * pSrdmagel->Info.Width; almage2 = pSrcImage2->BufPtr + pSrcImage2->Info.RegX0 + pSrcImage2->Info.RegY0 * pSrdmage2->Info.Width; aResult = pDstImageResult->BufPtr + pDstImageResult->Info.RegXO + pDstImageResult->Info.RegY0 * pDstImageResult->Info.Width; memεet (hist, 0, GRAY_LEVELS * GRAY_LEVELS * εizeo (unsigned char)) ; hiεt2D8 (almagel, pΞrcImagel-j-Info. idth, almage2, pSrcImage2->Info.Width, pDstlmageResult->Info . RegWidth, pDstlmageResult- >Info . RegHeight, hist) ; if (shorttest) { εprintf (name, " .. /data/2Dhisto_%ld.pg " , FovID) ; printf ("Writing 2Dhiεto to %s\n" , name) ; flush (εtdout) ; re = write_image (name, hiεt, 256, 256); if (re) ERROR_RETURN(rc, "write 2Dhisto failed") ; return 0 ; } / **************** « ******************************************* void hist2D8 (unsigned char *a, unsigned long tcolε_a, unsigned char *b, unsigned long tcols_b, unsigned long ncols, unsigned long nrowε, unsigned char *table) / ************************************************* a,b -- TCL of ROI (images) tcols_a -- image width ncols, nrows -- ROI size table -- scatter table (a 256x256 image) A***********************************************/ { unεigned long i, j ; unsigned long skip_a, skip_b; unsigned long index; εkip_a = tcols_a - ncols; skip_b = tcols_b - ncols; for (i = 0; i < nrows; ++i) { for (j = 0; j < ncols; ++] ) { index= ( < « a++) <<GRAY_SCALE_BITS) + ( *b++) table [index] = 1; a += skip_a; b += skip_b;

Claims: CLAIMS 1. In an image processing system, a method for relating a first image to a second image comprising the acts of: (a) aligning the first image with a second image; and, (b) plotting the gray level of a pixel from the first image against the gray level of a corresponding pixel from the second image for all aligned pixel locations. 2. The method of claim 1 further comprising the act of plotting a threshold window on a plot created in act (b). 3. The method of claim 1 wherein a plot created in act (b) is stored in a memory array variable. 4. The method of claim 1 wherein a plot created in act (b) is displayed on a video monitor. 5. A computer-readable medium storing a program for carrying out the method of claim 1. 6. A computer-readable medium comprising: a plurality of memory locations storing data representing a first image and an associated second image, said first and second images each having a plurality of pixels with each pixel being defined by a location coordinate and a gray level; and, an array comprising a plurality of memory locations storing data representing a plot of the gray levels of pixels from the first image against the gray levels of corresponding pixels from the second image. 7. A defect inspection system comprising: (a) an image acquisition unit being operable to acquire a first image and an associated second image, the first and second images each having a plurality of pixels with each pixel being defined by a location coordinate and a gray level; (b) a plurality of memory locations storing data representing the first image and the second image; and, (c) a processor being operable to plot the gray levels of pixels from the first image against the gray levels of corresponding pixels from the second image.

Inventors: AGHAJAN HAMID K, AGHAJAN, HAMID, K.
Applicants: SCHLUMBERGER TECHNOLOGIES INC, SCHLUMBERGER TECHNOLOGIES, INC.
Application year: 2000
Main classification: G06T7
IPC codes: G06T1, G06T7, H01L21