Professional Documents
Culture Documents
1. Background
See:
Step 2. Markers
Create lift-off or etch markers on the substrate. Gold or platina lift-off marker can much more
easy to found then chromium etch in markers. (The chromium makers can only be used at
50kV, because they cannot to found with a deflected beam)
Create 8 markers. 4 markers on height level A and 4 on a height level B. A marker consists
of a 100µm square and on a distance of 200µm a square of 10um. It is even better to make
Release 1.0 1
on 100um square at one corner a small mouse bite of 4µm then small marker is easier to
found. The 100µm square is needed to find small squares, on these actual height will be
measurement.
The markers can be written with a beam of 2nA_200um at 100kV and if the top of the lens is
on the same height as the calibration marker then it can be written on a work level of high.
Step 3. Pattern
Concentric circle on a lens.
A bash program can create a TXL file which contents concentric circle. For each circle, the
radius and the height will calculate and if the height of circle get in a new height zone then
layer command will be added to TXL file. The added circles will be in that new layer.
The height of circle will be calculate with Pythagoras and where top the lens zero height is.
2
height =radiu scurvature −√(radiu s curvature )2−¿ ¿ ¿
The following bash program will make circles in different height layers. Fill-in the first
parameters, linewidth, pitch, lens radius, etc. The second variables are to run the program.
bash program:
#!/bin/bash
#####################################################################
# This program create a TXL file which contents circles in different
# height zones. The height will calculate for a lens / sphere and
# divides over layers.
#
# Auteur : Bas Ketelaars, Raith B.V.
#####################################################################
#program variable
Height=0
Height_layer=0
Radius=0
Xpos=0
Ypos=0
Rstart=0
Rend=360
Segment=360
#header
echo "TEXTLIB 9.0.0" > ${filename}
echo "UNIT MICRON" >> ${filename}
echo "RESOLVE 0.001" >> ${filename}
echo "BEGLIB" >> ${filename}
Release 1.0 2
echo "" >> ${filename}
echo " Layer: ${Height_layer} Radius: ${Radius} till ${Rpattern} Height: ${Height} "
done
If you coping the program text make sure that there are the wright double quotes!!
Output :
View in beamer
Release 1.0 3
Step 4. Fracturing
Fracturing in beamer
Import module
Select the TXL file which generated in step 3.
Loop module
Check how many layers in the TXL file.
And press generate values to create a list from 0 till highest layer
number. Add a column header name to %heightzone%
Extract module
At Layer(s) fill-in %heightzone%
Export Module:
The last part at File name must
be %heightzone%.gpf. Then ever
height zone / layer will save in a
separated gpf file.
Release 1.0 4
When it run correctly, then it generate in the export folder many gpf files and each filename is
ending with a layer number. Copy the gpf files to the EBPG system in pattern folder.
Go to calibration markers under 7 deg and select one, focus and reset coordination system
and make a note to find this marker back in the EBPG. Go to the top of the lens and make it
in focus and write the coordinates done. If you have a laser height meter measure the height.
Search for the marker 100um and small markers. Write done the coordinates X,Y and if
possible the measure the Z. If not possible to measure Z then calculate later the Z value with
the following formula.
To write on lens with a height difference more than 200um then the machine has to operate
in working LOW. To write such kind of lens the focus point will be place 10mm lower in the
machine, by lower in the focus point the field will rotated 7deg. Recalculate of X,Y value for
worklevel low. This can be done with command high2low <Xvalue>,<Yvalue> and will results
with low coordinates.
Move to the reverence marker, which one is use in step first part. And save or make a note of
the position
>revmark=`mpg tab`
Set the zholdercentre value to the height which 100um marker we want to find, mps
zholdercentre <Zvalue>.
Do a relative move to the marker, use the recalculate X, Y values or calculating position with
follow line.
Search in the SEM mode to marker and make it in focus. There for use zpos (mps zpos
<value>), be aware when the stage is moves in X or Y then the zvalue will go back to
zholdercentre value. So when the marker is in focus then write it down or save it with mps
zholdercentre `mpg ztab`
Release 1.0 5
When the 100um marker is found and in focus then go to the small marker 10x10um and do
a marker search and write down the position.
Measure the height of the marker and corrected the height with the z-stage
If the height small value then write the Z value ( mpg zpos ) down. Now you have X,Y and Z
coordinates of the 10um marker.
Do this at least 4 markers and one of the markers must be on a different Z value.
Create the follow layout. Cell value and formula are no imported yet.
Fill in the on the yellow cells, the 3 founded marker position X, Y, Z and radius of the lens (curvature
radius). Place the following formula’s
Cell B9 =(G$6-B5)^2+(H$6-C5)^2+(I$6-D5)^2-E$5^2
Cell B10 =(G$6-B6)^2+(H$6-C6)^2+(I$6-D6)^2-E$5^2
Cell B11 =(G$6-B7)^2+(H$6-C7)^2+(I$6-D7)^2-E$5^2
Go to in the menu to data. Click on Solver (add Analyse) And a window with solver parameters will
popup
Release 1.0 6
Fill in follow in
“Set Objective” $B$11
Check “Value Of :” 0
“By Changing Variable Cells” $G$6:$I$6
Release 1.0 7
The solver will change centre position Xo,Yo and Zo, so that all three equations are 0 or almost 0.
In this case there 2 solutions. Because the 3 point have almost on the same height therefor the centre
can be above or below the 3 points (markers). To make sure the solver take the wright one, the one
below the 3 points. We will force it with the function $I$6<$D$5 so centre of the sphere is below the 3
markers.
Finally, add radius to the Z centre point and you get the X, Y and Z of top of the lens.
Matrix determinant
Needed 4 point where one on a different height. All 4 point cannot lie on the same plane!!
Use c-program calc_shere4pointscentre.c. It can run on the system ( see appendix ) .
Place the following script in the folder scripts or jobs. Change the following items:
Top and centre position of the lens posXC, posYC and posZC. (Not the centre of the sphere!)
Heightzone pitch.
Pattern base name, the starting and last layer
Spot and dose which are required
#!/bin/bash
set x+
# Variable
posXC=86600 #105000 um centre of the lens top
posYC=146911 #105000 um
posZC=-30 #um ]
pitch_height=20 #um
patternname="cc_lr5_cr12p9_z20_0p5um_"
layer_start=0 # 0 will be
layer_end=50 # hoogste nummer
spot="5na_300um.beam_100_low" #48
dose=550
Release 1.0 8
#echo "select holder"
#pg select holder $houder
mvm
#pg set wl low
pg set hgtinv 0
pg set calinv 0
for ((zlayer=${layer_start};zlayer<=${layer_end};zlayer++))
do
posZ=$(echo "scale=9; ${posZC} - ${zlayer} * ${pitch_height} " | bc )
pg layout clear
pg layout rectangle 26000,26000 1,1 ${posXC},${posYC}
pg select pattern "${patternname}${zlayer}.gpf"
pg information layout
done #z
pg set hgtinv 1
Step 8. Result
The SEM image below (showing the top of the lens) shows the result of a “circular grating” exposure
on a spherical lens with a radius of 15.5 mm (diameter 18 mm) @ 100 kV, 100 μm main field size, 20
μm height zone (143 zones in total).
The exposure conditions were: 200 μm final aperture, 8 nA beam current, 10 nm beam step size and
600 μC/cm2 (PMMA).
Release 1.0 9
The txl file is clipped and merge in beamer and fractured in to gpf files.
Release 1.0 10
Appendix I Program calc_shere4pointscentre.c
Place this program in bin folder of your environment (at EBPG) . Copy Makefile in the same
folder and comply with commando make calc_sphere4pointscentre.c
Program is based on “Equation of a Sphere from 4 Points on the Surface”. Written by Paul
Bourke June 2002. ( http://paulbourke.net/geometry/circlesphere/ )
calc_sphere4pointscentre.c
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include <time.h>
/*
Demonstration code to illustrate and check the solution
to finding the center and radius of a sphere given 4 points
on the sphere.
A sphere center and radius are chosen randomly, then four
random points on that sphere are generated, the original
center and radius are then computed from the 4 points.
*/
typedef struct {
double x,y,z;
} XYZ;
double Determinant(double **,int);
}
/* Check input data reprint values */
for (i=0;i<4;i++) {
fprintf(stderr,"Controle Marker %i: (%g, %g, %g)\n",i+1,p[i].x,p[i].y,p[i].z);
}
Release 1.0 11
/* Malloc the array for the minor arrays */
a = malloc(4*sizeof(double *));
for (i=0;i<4;i++)
a[i] = malloc(4*sizeof(double));
fprintf(stderr,"Determinants: %g %g %g %g %g\n",m11,m12,m13,m14,m15);
if (m11 == 0) {
fprintf(stderr,"The points don't define a sphere!\n");
exit(-1);
}
for (i=0;i<4;i++)
free(a[i]);
free(a);
exit(0);
}
/*
Recursive definition of determinate using expansion by minors.
*/
double Determinant(double **a,int n)
{
int i,j,j1,j2;
double det = 0;
Release 1.0 12
double **m = NULL;
if (n < 1) { /* Error */
Makefile
################################################################################
# #
# Makefile for the Beams Applications #
# #
################################################################################
# This variable points to the directory containing the X and Motif includes.
INCDIR = /usr/include
BEAMS_LIBS = \
$(LIBS) \
-L$(BEAMS_LIB) \
-lbeams \
-lCAENVME
Release 1.0 13
# This rule generates the executable using the object files and libraries
Release 1.0 14