correlation alignment


Correlation alignment for weird marks

Back to the list of tips


Short version



If you have weird alignment marks - not rectangles or crosses - then it is still possible to use them as ebpg alignment marks. The trick is to correlate an image of the mark with a model image of that mark.

Correlation alignment requires high contrast. It will not work for low-contrast marks made of thin metal or shallow pits. Low contrast marks require a completely different solution, such as the "align_weak" script. Actually, the best solution is to start over, but let's not get into that discussion.

YOU would never design strange alignment marks, of course. But sometimes people make silly mistakes, or your collaborators thought it would be cute to use a Christmas tree or a circular grating. Now you can save the day with correlation alignment!

The ebpg mark type "correlate" points to the script ./correlate.py in the current directory. Start by making a copy of /public/correlate.py and then editing this little python script.

If you are not at Yale then you have to start by getting a copy of correlate.py from the ebpg funpak, then defining the mark type "correlate," using

pg marker create joy ./correlate.py correlate

Next, you (Yalies or otherwise) must follow the detailed instructions for preparing the "model" image, which are given at the top of correlate.py. Basically, you start with a GDS drawing of the "mark" and then convert it to a bitmap.

WARNING: The Raith manual describes a simpler way of setting up correlation alignment. It sounds very nice, but that procedure often does not work. It results in a lot of mysterious, indecipherable error messages. So, follow the instructions in correlate.py if you want to keep your sanity.

The accuracy of correlation alignment will NOT be as good as that of the normal edge-detection alignment routine. Standard marks types like "p20" will produce better results. But you'll have to read on if you want more information about accuracy.

End of short version.



Too much information


Long ago, ebeamers thought that correlation alignment could be used for low-contrast marks, and we thought it would be more accurate than the edge-detection used for square marks. For example, see

  1. V. Boegli and D.P. Kern, J. Vac Sci Technol B 8 (6) 1994 (1990)
  2. E. H. Anderson et al, Microelectron. Eng. 73-74 (2004) 74-79
  3. K. Docherty, thesis, 2010, Un. Glasgow, https://theses.gla.ac.uk/1663/

In theory the idea was fabulous, but in practice it was a disappointment.

The first impracticality is that simple mark shapes, such as squares, often generate alignment offsets. If the model does not match the actual mark, then the correlation will shift to one corner. Here is an example, showing the overlay of a "model" mark (white line) on top of an image of the scanned mark (in green):



It would help a lot to have more edges, so that correlation would find the correct maximum. IBM used more complex marks, like this:



Glasgow used extremely complex Penrose patterns:



Unfortunately we never have the luxury to use ideal marks. We are always trying to recover from some idiot's mistake, like using the letter "Y" instead of a square.

Here's another problem: mark images are limited to 1024x1024 pixels on the ebpg, which puts a severe limit on alignment resolution. If we want 5nm accuracy then the size of the image can be no bigger than 1024*5 = 5.12 um. So your "mark" needs some complex edgy feature smaller than 5 um. Not likely. It's more likely that regular edge-detection will be far more accurate.


Way too much information



We should really measure the accuracy, not just guess. Indeed, we ran a comparison of alignment noise (that is, reproducibility of alignment) using small 4 um squares. We aligned to each mark twice, with standard edge detection, and then subtracted the results of the two measurements. Here is a histogram of alignment noise using 100 different gold marks.



Each mark measured with two edge-detection scans:



Next we ran a similar test, aligning first with edge detection and then with correlation, using the same set of 100 gold marks, and using a 6 nm pixel spacing. The two measurements were subtracted. If correlation alignment were as good as edge detection, then we should get the same histogram as above.



Each mark measured with edge-detection, then with correlation:



You can see that the standard deviations and offsets are larger than those from standard mark detection. Now you might be thinking that this offset could have come from the edge-detection alignment. No it did not. We know this from the test of alignment accuracy in the factory acceptance tests. Here are the overlay errors from aligning a pattern of gold marks to a previously patterned layer of gold marks.



Overlay of layer B to layer A using standard edge-detection, 500x500 um pattern, 100 sets

The offsets here are smaller than those of the correlation alignment test. Note that the offsets are impressively small.




Back to the list of tips