Specific Process Knowledge/Lithography/EBeamLithography/JEOL JBX-9500FSZ/SDFJDFIntro: Difference between revisions
(13 intermediate revisions by the same user not shown) | |||
Line 35: | Line 35: | ||
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. | 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”. | |||
== Schedule File - no alignment == | |||
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 ";". | |||
<pre> | |||
;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 | |||
</pre> | |||
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]''' | |||
Most cassettes have multiple substrate slots. This designates which slot of the cassette to expose. 6” 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 each addressing its own pattern file if needed. 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. 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 Labmanager. | |||
'''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. | |||
===SDF footer section=== | |||
'''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. | |||
== Job Deck File – no alignment == | |||
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 is given below. | |||
<pre> | |||
;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 | |||
</pre> | |||
===JDF header 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, 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. Please refer to Figure 2 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”. | |||
Figure 2: Example of a 10 x 10 chip array on a 4" wafer using a 3.6" circular cutout. Notice that chips must fall completely outside the boundary to be omitted. Pre exposure pattern placement visualization is done with the ACHK program. | |||
'''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 [LINK]. | |||
<pre> | |||
DRF5M: INITIAL: CURRNT,HEIMAP | |||
CYCLIC: CURRNT,DRIFT | |||
CYCLE: 5M,F | |||
</pre> | |||
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. | |||
Figure 3: Visualization of the array defined using the ARRAY, ASSIGN and SKIP commands in the example JDF. | |||
'''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. |
Latest revision as of 14:58, 24 January 2023
Job file preparation for JEOL 9500
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”.
Schedule File - no alignment
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 ";".
;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]
Most cassettes have multiple substrate slots. This designates which slot of the cassette to expose. 6” 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 each addressing its own pattern file if needed. 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. 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 Labmanager.
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.
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.
Job Deck File – no alignment
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 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 header 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, 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. Please refer to Figure 2 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”.
Figure 2: Example of a 10 x 10 chip array on a 4" wafer using a 3.6" circular cutout. Notice that chips must fall completely outside the boundary to be omitted. Pre exposure pattern placement visualization is done with the ACHK program.
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 [LINK].
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.
Figure 3: Visualization of the array defined using the ARRAY, ASSIGN and SKIP commands in the example JDF.
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.