Program’s designation/objectives

The program is intended to allow simulation of resist exposure in electron-beam lithography and to apply correction into beam control instructions. These corrections should result in more accurate reproduction of desired structures on resist. Program allows to use different mask data and varying electron-beam system parameters in simulations, and allows to store simulation results for subsequent processing and analysis.

System requirements

Program can be run on any machine with Windows XP/Vista OS and .NET framework (version 3.5) installed.

Program’s input data

Program allows to load as input data the test layouts (as raster images, vector XML-based or vector CSV-based data) and data on electron beams used for exposure of these layouts.

Interpreting the input data

Layout/mask data

The test mask data include the mask element descriptions and the exposure area size. After loading these data from input files the simulation program generates raster image of test mask.
In case of using bitmap file as mask data source, the program takes bitmap size in pixels (width and height) as dimensions for simulated area, and pixel values as mask data (white pixels will need to be exposed, and non-white must remain unexposed). Here is an example of bitmap-formatted mask file:
Bitmap mask file

Img 1. Mask structure read from BMP test file
XML- and CSV-based layout files describe sets of axis-aligned rectangles forming the masks, for example, XML file
XML mask file
gives mask configuration shown below:
Img 2. Mask structure read from XML test file
Parameter grid_step is used only in layout visualization, simulation algorithm doesn’t use it. Each element node in XML file contains coordinates of opposite vertices of rectangle.
CSV-based layout file doesn’t contain simulation area size, therefore, this size is determined as 110% of width and height of the largest coordinates found in file, for example, file
CSV mask file
with contents
40;20;115;100;
155;20;105;5;
260;20;55;180;
40;125;210;85;
250;205;150;5;
325;20;5;185;
395;195;5;5;
395;185;5;5;
395;175;5;5;
395;165;5;5;
330;155;70;5;
330;20;70;5;
395;30;5;5;
395;40;5;5;
395;50;5;5;
395;60;5;5;
330;70;70;5;
will cause the simulation area to be set to width 440 and height 231 and gives mask configuration shown below:

Img. 3. Mask structure read from CSV test file
Neither XML nor CSV files currently support negative coordinate values, and upon encountering such values the mask data processing will abort.

Electron-beam system data

Electron-beam system parameters that are loaded from input file include:

  1. Beam radius
  2. Raster line step (the program uses a raster with fixed-step horizontal lines that the beam draws one at a time)
  3. Initial displacement (the vertical displacement of first line of raster from beginning of coordinates)
  4. Distribution parameters which define the electron stream density on the surface of resist (the program uses a beam model which defines the density as a weighed sum of several Gaussian distributions with different sigma parameters and scale coefficients).
Example of beam data file follows:
XML beam data file
Parameters line_step and initial_displacement determine, respectively, vertical step between raster lines (in pixels) and displacement of first raster line from upper boundary of simulation area.
Img.4 below shows an electron density distribution from this file (it uses 2 Gaussian distributions, first one with k=1,5, sigma=1 and the second one with k = 0,6, sigma=2,5).

Img.4. Electron stream density distribution in beam
The corresponding crossection of a beam shows it’s effect on layout during exposure (see img.5). The brighter the tile is on img.5, the greater is the density of electron stream in the corresponding area.

Img.5. Crossection of electron beam (brightness of a tile is proportional to electron stream density in a corresponding area).
After loading beam data from input file the program generates a two-dimensional numerical array of electron stream densities which is used in simulations for calculating exposure doses.
The program uses XML processing capabilities of .NET framework for interpreting data from input files and translating the data into format appropriate for processing.

Simulation results

Example of simulation results for mask data shown from img. 3 and beam data from img. 4 is shown in img. 6 below. The brighter the pixel is in img. 6, the higher is exposure level for corresponding area of mask.

Img. 6. Exposure simulation results – beam paths generated using simple incidency check.
Img 6 shows exposure simulation results obtained for beam path which is generated using simple incidency check. It means that beam path is generated by simple rule – if beam center is on a mask pixel which should get exposure, the beam is turned on for this position. As can be seen on img. 6, such algorithm causes thin lines to degrade in quality (for example, thin space between two large blocks in the left of the image). However, this algorithm ensures that small elements which should get exposure will get it – for example, thin exposed lines and small squares on the right of img. 6.
As an alternative, beam path can be generated by algorithm which turns on the beam at some distance from mask element’s edge. Two examples of such algorithm results are shown on img. 7 and img. 8.

Img. 7. Exposure simulation results – algorithm with beam radius check.


Img. 8. Exposure simulation results – algorithm with beam radius check.
Img. 7 shows results for algorithm which turns beam on at a distance of 0.15*radius from element’s edge. It can be seen on image that thin spaces between elements are better formed, but thin or small elements are less developed.
Img. 8 shows results for the same algorithm, but with 0,35*radius threshold. It can be seen that small elements have completely vanished due to excessive filtering in beam path generation.