Specific Process Knowledge/Lithography/EBeamLithography/JEOLJobPreparation
Introduction
In order to write a pattern with the e-beam system you will have to generate a set of job files. These files are essentially a set of instructions which tell the system what pattern to write, where to place each pattern along with specific writing conditions, exposure dose, alignment conditions and calibration conditions. Apart from this you will naturally also have to generate the pattern you wish to expose.
The JEOL system uses the proprietary EXPRESS (EXposure PREparation System for Scheduling) system for job (schedule) definition. This system uses a compiled architecture in which all files must be prepared in advance and in turn be compiled into an executable job that can then be executed during an exposure session. From a user perspective this means that there is a significant amount of work to be done up front before any exposure can take place. It also means that the learning curve is fairly steep as users have to learn a significant amount about job file preparation in order to carry out even simple exposures. The benefit is however that at runtime, execution is relatively simple with a high likelihood of success, provided that all the preparatory work has been done correctly. At DTU Nanolab it is a strict requirement that all job files are prepared ahead of an exposure session. The JEOL 9500 system is a valuable resource and users must always show up well prepared not to waste tool time on file preparation. Users who squander valuable tool time away due to poor preparation will lose access to the tool.
JEOL 9500 file types and generalized flow
In order to execute pattern writing the job must be defined in a Schedule file (SDF) and at least one Jobdeck file (JDF). Both are text files. A pattern file defining the layout is naturally also necessary.
The SDF file contains high level job information and references a Jobdeck file (JDF) for further job information. The SDF file should contain the following information:
- Substrate cassette to use for the exposure
- Beam current and calibration parameter file to use
- Alignment type, if applicable
- Exposure dose
- Beam pitch
- Reference to Jobdeck file (JDF) with pattern placement information
The SDF will reference one or more JDF and each of these should contain the following information:
- Substrate slot ID to expose
- Initial and cyclic calibration path
- Pattern array definition, i.e. number of pattern instances and position
- Alignment mark information if alignment is used
- Reference to pattern file(s) (.V30)
- Dose modulation table if applicable
In this way the SDF is the governing file that calls a number of JDF that in turn will call and specify a pattern or sets of patterns. In order to execute the job the files must be compiled into a magazine file, this is done using the SCHD command in the command prompt on the EBL computer. After compilation the resulting magazine file should be visually validated to some degree to ensure the pattern and placement appears to be correct, this is done with the ACHK program of the system. Finally the job can be executed to expose the substrate(s).
Bear in mind that this is a generalized job flow intended to illustrate the flow with a minimum of complexity. There are several exceptions to the above and several job parameters are interchangeable between SDF and JDF.
The system is extremely syntax intolerant. The smallest syntax error will result in a compilation error and no magazine file will be generated. The error messages provided by the compiler can be hard to understand and thus it can sometimes be time consuming and frustrating to compile a working magazine file. This is another reason while a working set of job files should always be generated ahead of an actual exposure session. Remember, an exposure session is simply execution of a well prepared job.
In the following we will discuss details of the most commonly used commands in the SDF and JDF and provide example files for various types of jobs. We will start with a simple exposure without pattern alignment, i.e. a first print exposure. In JEOL terminology this is called “mask exposure mode” whereas exposure with alignment is refered to as “direct exposure mode”.
First print / mask exposure mode
Schedule File
A simple example of a SDF is shown below. It has a single sequence and hence it will expose a single substrate. A detailed description of the commands is given below. Comments can be added using semicolon, as illustrated in the first line.
;thope220101.sdf example file MAGAZIN 'MYWAFER' #8 %4A JDF 'thope220101',1 ACC 100 CALPRM '2na_ap4' DEFMODE 2 RESIST 240 SHOT A,16 OFFSET(-5000,1000) END 8
The SDF has a three sections; a header section, a sequence section and a footer section. The job information is found in the sequence sections and there can be multiple sequences defined. Usually one sequence will be used per substrate or per beam current for multi current jobs.
SDF header section
MAGAZIN ['name’]
The SDF starts with specifying the name of the job. The name must be uppercase alphanumeric and limited to 9 characters. First character must be a letter. The name will appear in the exposure job list upon execution, but it is hardly important what it is. We recommend using your initials. In the example above the job will be named “MYWAFER”.
SDF sequence section
#[cassette number]
Specification of the cassette number to expose, i.e. from which slot of the autoloader the cassette is loaded from. This must naturally be the cassette your substrate is loaded into. In the above example the exposure will be carried out on the cassette from autoloader slot number 8.
%[slot ID]
Some cassettes have multiple substrate slots. This designates which slot of the cassette to expose. 6” and 8" cassettes only have a single slot but one must still designate that slot. In the example slot 4A will be exposed. This is slot A of a 4” wafer cassette.
JDF [‘name’],[layer number]
This specifies the name of the JDF for the exposure and the layer number of the JDF to use. The JDF can be set up to have multiple layers typically used to specify different beam currents to various designs. Please note this “layer” has nothing to do with layers of the pattern file. We advise users to name their JDF with user initials followed by exposure date. In the example the JDF called is “thope220101.jdf” using layer 1.
ACC [acceleration voltage]
This designates the acceleration voltage to be used, unit is kV. While the system can in principle run at other acceleration voltages the stabilization time is prohibitively long and thus the system is only used at 100 kV. This must always be stated as ACC 100 as in the example.
CALPRM [‘calibration file name’]
The calibration parameter command designates which calibration file to use for the exposure. This sets the exposure current and aperture used. In the example exposure will be done at 2 nA using aperture 4. It is important to stress that one cannot simply choose another beam current by writing another number here. The command references a pre-defined calibration file on the system and only a selected set of calibration files exist. These can be found and listed in the CALIB window on the system.
DEFMODE [number]
This parameter determines if the system writes in 2 deflector mode or 1 deflector mode. In 2 deflector mode the primary deflector positions the beam within the main writing field with the subdeflector positions the beam with each 4 x 4 µm subfield. Writing speed is significantly higher in 2 deflector mode and the system should always be used in mode 2.
RESIST [dose]
This determines the exposure dose in units of µC/cm2. The beam dwell time is automatically adjusted to achieve this area dose based on the latest beam current measurement. In the example a dose of 240 µC/cm2 is used. In many cases it can be necessary to perform a dose test to get the optimum result. A dose test can be set up in several ways, please consult with the dose testing section in Labadviser.
SHOT A,[number]
The SHOT A command determines the beam pitch, i.e. the distance between beam positions when filling in a pattern. The beam pitch grid is 0.25 nm and hence the number stated here signifies the beam pitch in units of 0.25 nm. In the example a beam pitch of 16 units will result in a beam pitch of 4 nm.
OFFSET[x,y]
The OFFSET command can be used to shift the position of the entire content of the referenced JDF, unit is µm. In the example the pattern specified in the JDF is shifted 5000 µm left and 1000 µm up. For first print (unaligned) exposures one can use the offset command to move patterns as wanted. For exposure with alignment this is however not the case, for aligned exposures the offset command must be used to state the offset of the pattern from the substrate center as determined by the optical pre-aligner.
END [number]
The END command serves two purposes. First of all it tells the software that this is the end of the job. Secondly, the number after the END command determines which cassette to load from the autoloader to the stage after job execution. In the example a pattern is written on cassette 8 and since the END command also ends with 8, no cassette change is made. If it had terminated with END 1, cassette 8 would be transferred out and cassette 1 would be transferred in after pattern writing. If the job terminates with an END command without a number, the current cassette will be unloaded and the stage left empty. This is not allowed since the stage will loose position tracking after extended time without a cassette on stage. Always either leave the current cassette on stage or transfer another cassette.
If there is any uncertainty about the job executing correctly, always use the END command followed by the cassette used during the exposure. If execution of a sequence fails the software will consider the sequence as executed and move on to the next part of the SDF file. If this is an END command that changes to another cassette the cassettte will simply be exchanged without giving the user a chance to correct the error and try again.
Job Deck File
One or more Jobdeck files (.jdf) is needed for an exposure. As a minimum the JDF file must contain information of what pattern to write and where to write it. It can also be used to specify alignment information. The filename is limited to 24 characters, no capital letters and no spaces. The JDF file has a common block and one or more layer blocks. The layer blocks can be used to define several patterns and several writing conditions in a single file. A simple example of a JDF with a single layer block is given below.
;thope220101.jdf example file JOB/W 'MYWAFER', 4 PATH DRF5M ARRAY (-750,3,500)/(250,2,750) ASSIGN P(1) -> (*,*) SKIP (2,2) AEND PEND LAYER 1 P(1) 'template1.v30'(0,0) STDCUR 2.2 END
JDF common block
JOB [/W] [‘name’], d1 [, d2]
The common block starts with a JOB command. The /W switch indicates a round wafer slot, if omitted the system expects a square mask slot. Almost all cassettes at DTU Nanolab are wafer cassettes and thus require the /W switch for the pattern to be exposed at the correct slot coordinates. The name is optional and limited to 9 alphanumeric characters in uppercase. Following the optional name is the slot size designation d1, unit is inches. In the example it is a 4” wafer. A second dimension d2 can be added to constrain chip placement from the ARRAY command within that dimension, see below for an example of this.
Be aware that the chip cassettes at DTU Nanolab are converted 3” wafer cassettes and hence the correct header for an exposure on these will be JOB /W ‘name’, 3.
PATH [‘name’]
The PATH command defines the start of a writing path and defines the initial calibration routine carried out before pattern exposure as well as the cyclic calibration routine carried out during exposure. The PATH name refers to the exact name of the PATH as it exists on the system, the full list of available paths is available here.
DRF5M: INITIAL: CURRNT,HEIMAP CYCLIC: CURRNT,DRIFT CYCLE: 5M,F
Calibration routines under the “INITIAL” part of the path will be carried out prior to exposure. Normally a number of pre calibration routines are carried out manually by the operator. This makes it possible for the operator to gauge the result and act if something is out of the ordinary. In principle all of these routines can be run automatically if placed under the “INITIAL” part of a path. If the system encounters an error during this the entire sequence is however aborted. Please consult with the E-beam staff if you have specific requests in this regard.
Calibration routines under the “CYCLIC” part of the path are executed during pattern writing at the interval indicated in the path. Normally only beam current (CURRNT) and stage drift (DRIFT) is monitored during pattern writing. As an example of a path definition let us look at ‘DRF5M’.
During initial calibration only beam current and substrate height is measured. Thus all other initial calibration routines should be carried out manually with this path. During exposure beam current and stage drift is monitored and corrected every five minutes. The ‘F’ switch indicate that cyclic calibration will interrupt the current chip exposure upon completion of the current exposure field at the interval mark. If the ‘F’ switch is omitted cyclic calibration will wait for completion of the entire current chip before cyclic calibration is carried out.
PEND
The PEND command is required and is used to designate the end of a PATH.
ARRAY (x, nx, dx)/(y, ny, dy)
Every pattern must be part of an array to be exposed. Even in the simplest case where a single instance is to be written in the center of a substrate it must be defined with the ARRAY command. The ARRAY command essentially defines array points, i.e. points where pattern elements can be assigned to. Hence it works in conjunction with the ASSIGN command. The ARRAY command has six variables where x and y are the center coordinate of element (1,1) in µm, nx and ny are the number of array elements in x and y and dx and dy are the x- and y-axis pitches in µm. Notice that element (1,1) is the top left element of the array, additional x-axis elements are placed to the right of it and additional y-axis elements are placed below it. The JDF example above defines a 3 x 2 array with element (1,1) centered at (-750,250), x-axis pitch is 500 µm and y-axis pitch is 750 µm, as illustrated in Figure 3.
Visualization of the array defined using the ARRAY, ASSIGN and SKIP commands in the example JDF. Illustration: Thomas Pedersen. |
ASSIGN P(i) -> ((j,k),t)
The ASSIGN command is used to assign patterns to array points. It assigns the pattern element “P(i)” on the left side of the arrow to the array elements listed on the right hand side “(j,k)”. It also allows designation of a dose modulation table “t” to be used. In the example pattern P(1) is assigned to all elements of the array in both axis using the “*” character. No modulation table is referenced and hence the pattern is written without dose modulation. Notice that a ranges of elements can be assigned by writing a range in the assignment parenthesis. For instance, ASSIGN P(1) -> (3-5,*) will asign pattern 1 to all rows if columns 3, 4 and 5.
Also notice that if an array element is assigned several times, it is the last assignment that will be used.
The ASSIGN command can be used to build arrays of arrays to a depth of 9 sub arrays. For examples of sub arrays please refer to our specific page on the ASSIGN command.
SKIP (j,k)
The skip command can be used to unassign an array element if it is to be left blank. In the example element (2,2) is unassigned and hence no pattern will be placed in this array element.
AEND
Array definition must end with an AEND command.
PEND
Path definition must end with a PEND command.
LAYER [number]
The layer command allows the user to define different writing conditions to different patterns by dividing them into different layers. Please notice that this “layer” has nothing to do with the layers in the user GDS pattern file. Each layer is called from the SDF using the JDF command. In the example here, LAYER 1 is defined in the JDF and in the SDF this is called by the command “JDF ‘thope220101’,1”, where the last number defines the JDF layer reference. In many cases users will just have a single layer. It is however possible to define several layers with different exposure conditions such as dose or current.
P(i) [‘patternfile.v30’][(dx,dy)]
In the layer section the P(i) command is used to define a pattern reference to a specific V30 pattern file to be written. Multiple patterns can be defined in a single layer. The pattern file must be placed in /home/eb0/jeoleb/pattern/danchipv30 to be read by the system and must be a V30 file. A position shift can be applied by specifying dx and dy, unit is µm. It is best practice to offset patterns in the ARRAY definition in the JDF or using the OFFSET command in SDF but it is possible to offset individual patterns in the P(i) definition. In the example P(1) is defined to be “template1.v30” with zero shift applied. If no pattern shift is applied the parenthesis can be omitted.
STDCUR [beam current]
Definition of beam current in nA for writing time estimation and dwell/shot time calculation. It has no effect on the actual exposure. Actual exposure beam current is controlled with the CALPRM command in SDF. It is however still important to use the STDCUR command correctly. The system has a 100 MHz scanner and thus the minimum shot time is 10 ns. During file compilation the system will calculate the minimum shot time based on the current defined in STDCUR. If STDCUR is set lower than the actual beam current measured during exposure there is a risk of violating the 10 ns limit and hence exposure will fail. Good practice is to set STDCUR to the expected beam current (based on selected CALPRM) and add 10% as a safety buffer. In the example it is expected that the beam current is 2 nA (from CALPRM 2na_ap4) and hence STDCUR is defined as 2.2 nA.
END
The JDF is terminated with a END command.
Alignment exposure
Schedule file
Jobdeck file
Beam pitch, beam current and exposure dose relationship
A sample is exposed at a user selected beam current to provide a user defined exposure dose. The system will calculate the shot time (dwell time) of the beam to provide the requested dose. It is clear that high doses will require long dwell times whereas low doses will require short dwell times. There is however another important parameter to the dwell time calculation and that is the beam/shot pitch, i.e. how far beam shots are placed from each other. The beam scanner on the JEOL 9500 system is 100 MHz, thus the temporal resolution is 10 ns and it is not possible to have a beam shot (or dwell time) less than 10 ns. This, in combination with selected beam current and exposure dose will set a lower limit on the beam pitch.
The relation might not be obvious at first and is illustrated below. The two identical features are filled with beam shots at two different pitches. the right version has a lower beam pitch (half of the other) and thus there are simply many more beam shots. Consequently, to provide the same area exposure dose the shot time for the right side feature will be much shorter. At half the pitch there will be four times the number of beam shots and thus the shot time will be 1/4 the shot time of the left feature.
Example feature filled with beam shots at one times beam diameter (left) and half beam diameter (right). Illustration: Thomas Pedersen. |
The shot time can be calculated as t = D·p2/I, where D is the dose in µC/cm2, p is beam pitch and I is current. As a practical example let us consider an exposure at 2 nA beam current and a desired dose of 250 µC/cm2. At 4 nm beam pitch the shot time will come out to 20 ns, while at 2 nm beam pitch it will come out at 5 ns and thus violate the hardware limitation of 10 ns. In order to expose the pattern with 2 nm shot pitch one would have to choose a lower beam current at the expense of increased writing time.
The shot time is in fact such an important number that the system will specifically display the minimum shot time for each sequence at the end of job file compilation as illustrated below. In this case the exposure consists of five sequences with a few different doses and beam currents and the shot pitch (scanstep) has been adjusted to make sure all shot times are below 10 ns. Bear in mind the shot pitch (scanstep) is in units of 0.25 nm, thus sequence 1 is written at 4 nm shot pitch.
Start estimation writing time ----- Shot counting start ----- thopeQU23008a.v30 at 11-MAR-2023 14:53:40 Shot counting end ----- Seq. writing time shottime[nsec] resist[uC/cm2] stdcur[nA] scanstep 1 0:52:27 16.000 200.000 2.000 16 2 0:13:46 13.500 200.000 12.000 36 3 0:11:15 12.000 100.000 12.000 48 4 0:12:10 13.500 200.000 12.000 36 5 0:11:14 12.000 100.000 12.000 48 Total : 1:40:51 Estimation result file : thopeQU23008a.csv End estimation writing making time -----