Jump to content

Specific Process Knowledge/Lithography/EBeamLithography/Dose Testing: Difference between revisions

Thope (talk | contribs)
Thope (talk | contribs)
No edit summary
 
(11 intermediate revisions by the same user not shown)
Line 1: Line 1:
'''Feedback to this page''': '''[mailto:labadviser@nanolab.dtu.dk?Subject=Feed%20back%20from%20page%20http://labadviser.nanolab.dtu.dk/index.php/Specific_Process_Knowledge/Lithography/EBeamLithography/Dose Testing click here]'''
Content and illustration by Thomas Pedersen, DTU Nanolab unless otherwise noted.
=Introduction=
=Introduction=
In E-beam lithography it is often necesarry to do a dose test in order to get the required result. In a dose test one will expose critical parts of a pattern with various doses and determine the best dose by SEM analysis of the final pattern. There are several ways to set up a dose test array on the JEOL system, in this section we will describe four different setups, each with their own benefits and drawbacks.
In E-beam lithography it is often necesarry to do a dose test in order to get the required result. In a dose test one will expose critical parts of a pattern with various doses and determine the best dose by SEM analysis of the final pattern. There are several ways to set up a dose test array on the JEOL system, in this section we will describe four different setups, each with their own benefits and drawbacks.
Line 147: Line 151:
|-  
|-  
| colspan="1" style="text-align: center;|
| colspan="1" style="text-align: center;|
Example frome ChipPlace definine a 10 x 2 element dose matrix with relative doses from 1 to 2, ready for export to V30. Image: Thomas Pedersen.
Example frome ChipPlace definine a 10 x 2 element dose matrix with relative doses from 1 to 2, ready for export to V30.  
|}
|}


=Scripted expansion of a PEC modulation table=
=Scripted expansion of a PEC modulation table=
The last method is basically the same as the second method above but with support for PEC modulation. This is achieved by expanding the dose modulation table into a set of tables, one for each dose of the dose test. Each modulation table is a scaled version of the initial modulation table, scaled simply by the dose test scaling between each dose. The scaling is done through a Matlab script which can be found here. Since Labadviser does not allow upload of .m files, simply copy the script from below and save as a .m file.
The last method is basically the same as the second method above but with support for PEC modulation. This is achieved by expanding the dose modulation table into a set of tables, one for each dose of the dose test. Each modulation table is a scaled version of the initial modulation table, scaled simply by the dose test scaling between each dose. The scaling is done through a Matlab script which can be found below. Since Labadviser does not allow upload of .m files, simply copy the script from below and save as a .m file.
 
Benefits:
*Supports PEC modulation
*Faster execution since it is a single SDF sequence
*Works with large V30 files
 
Drawbacks:
*A bit tricky for first time use
 


{| class = "collapsible" width=65% style = "border-radius: 10px; border: 1px solid #CE002D;"
{| class = "collapsible" width=65% style = "border-radius: 10px; border: 1px solid #CE002D;"
! width=100% | Example JDI file after PEC
! width=100% | Matlab script for modulation table expansion
|-
|-
|
|
<pre>
<pre>
clearvars
%Modulation table modding for dose test of PEC'ed V30's, see Labadviser for further information
%Modulation table modding for dose test of PEC'ed V30's, see Labadviser for further information
%https://labadviser.nanolab.dtu.dk/index.php?title=Specific_Process_Knowledge/Lithography/EBeamLithography/Dose_Testing
%https://labadviser.nanolab.dtu.dk/index.php?title=Specific_Process_Knowledge/Lithography/EBeamLithography/Dose_Testing
%THOPE 2023-11-06
%THOPE 2023-11-13
clearvars


%Input variables for modulation table
%Input variables for modulation table
inputJDI = 'C:\Users\thope\Desktop\MODMOD\acmossingle.jdi';
inputJDI = 'C:\Users\thope\Desktop\thope231113\withcross.jdi';
outputJDI = 'acmosexpanded.jdi';
outputJDI = 'C:\Users\thope\Desktop\thope231113\thope231113.jdi';
m = 9; %number of doses
m = 9; %number of doses
modulation = 10; %modulation between instances in percent, must be positive
modulation = 5; %modulation between instances in percent, must be positive
 
%shot time calculation
Base = 220; %Base dose, only for indication, not used for modulation
I = 2e-9; %beam current
pitch = 12; %steps of 0.25 nm
dp = pitch*0.25*1e-9; %beam step in m
 
%Base dose calculation
Doses = (0:1:m-1);
Doses = (Doses*modulation/100+1)*Base;


%Read file
%Read file
Line 192: Line 215:
     [class(i),D(1,i)] = readMOD(A,k1(i),k2(i));
     [class(i),D(1,i)] = readMOD(A,k1(i),k2(i));
end
end


%Calculate tables
%Calculate tables
D(1,:) = 1 + D(1,:)./100 ; %convert from MOD to percent
D(1,:) = 1 + D(1,:)./100 ; %convert from MOD to percent
for i = 2:n
for i = 2:m
     D(i,:) = D(1,:)*(1+modulation*(i-1)/100);
     D(i,:) = D(1,:)*(1+modulation*(i-1)/100);
end
end
D = round(D,3); %round to 1 decimal
D = round(D,3); %round to 1 decimal
for i = 1:n
for i = 1:m
     D(i,:) = 100*(D(i,:)-1); %convert to MOD from percent
     D(i,:) = 100*(D(i,:)-1); %convert to MOD from percent
end
end


%Write modulated tables to file
%Write modulated tables to file
Line 223: Line 248:
end
end
fclose(fileID);
fclose(fileID);
%Modulation table range
range = zeros(m,2);
for i = 1:m
    range(i,1) = D(i,1); %minimum dose
    range(i,2) = D(i,end); %maximum dose
end
range = (range/100+1)*Base;
%Frequency range
F = zeros(m,2);
for i = 1:m
    F(i,1) = I./(range(i,1)*dp^2); %minimum dose
    F(i,2) = I./(range(i,2)*dp^2); %maximum dose
end
F = F/1e4;
%Display output
disp(newline)
disp('Modulation table | Base dose [µC/cm2] | Modulation range [µC/cm2] | Frequency range [MHz]')
for i = 1:m
    disp(['MOD' num2str(i) ' | ' num2str(Doses(i)) ' | ' num2str(range(i,1),'%.0f')...
        ' - ' num2str(range(i,2),'%.0f') ' | ' num2str(F(i,1),'%.0f') ' - ' num2str(F(i,2),'%.0f')])
end


function [a,b] = readMOD(str,k1,k2)
function [a,b] = readMOD(str,k1,k2)
Line 238: Line 287:


The number of doses for dose testing is controlled by the parameter '''m''' while the increase in dose between doses is defined by '''modulation''', it is a percentwise change relative to the base dose. For instance, if one wants to do a dose test with 200 µC/cm<sup>2</sup> as base dose in steps of 10 µC/cm<sup>2</sup> one would set '''modulation = 5'''.
The number of doses for dose testing is controlled by the parameter '''m''' while the increase in dose between doses is defined by '''modulation''', it is a percentwise change relative to the base dose. For instance, if one wants to do a dose test with 200 µC/cm<sup>2</sup> as base dose in steps of 10 µC/cm<sup>2</sup> one would set '''modulation = 5'''.
The output is a single JDI file containing all modulation tables named '''MODx''', where x is a running number from 1 to '''m'''. The array and reference to each modulation table can then be set up in the JDF file as seen below. It is convenient to use the include command '''@''' to reference the JDI file itself rather than copy-paste the tables into the JDF.
{| class = "collapsible" width=65% style = "border-radius: 10px; border: 1px solid #CE002D;"
! width=100% | Example JDF with a dose test setup defined by the '''ARRAY''' command and reference to individual modulation tables.
|-
|
<pre>
JOB/W  'THOPE',4
PATH DRF5M                                     
ARRAY (-4000,5,2000)/(0,1,0)
ASSIGN P(1) -> ((1,1),MOD1)
ASSIGN P(1) -> ((2,1),MOD2)
ASSIGN P(1) -> ((3,1),MOD3)
ASSIGN P(1) -> ((4,1),MOD4)
ASSIGN P(1) -> ((5,1),MOD5)
AEND
PEND
LAYER  1                                 
P(1)  'mypattern.v30'       
SPPRM 4.0,,,,1.0,1                         
STDCUR  2.0 ;nA                           
@'thopeExpanded.jdi'
       
END                                     
</pre>
|-
|}
{| class = "collapsible" width=65% style = "border-radius: 10px; border: 1px solid #CE002D;"
! width=100% | Example JDI file as output by the Matlab script.
|-
|
<pre>
MOD1: MODULAT (( 0, -23.6  ) , ( 1, -22.8 ) , ( 2, -22 )
-      , ( 3, -21.2 ) , ( 4, -20.5 ) , ( 5, -19.7 )
-      , ( 6, -18.9 ) , ( 7, -18 ) , ( 8, -17.2 )
-      , ( 9, -16.4 ) , ( 10, -15.6 ) , ( 11, -14.7 )
-      , ( 12, -13.9 ) , ( 13, -13 ) , ( 14, -12.1 )
-      , ( 15, -11.3 ) , ( 16, -10.4 ) , ( 17, -9.5 )
-      , ( 18, -8.6 ) , ( 19, -7.7 ) , ( 20, -6.7 )
-      , ( 21, -5.8 ) , ( 22, -4.8 ) , ( 23, -3.9 )
-      , ( 24, -2.9 ) , ( 25, -2 ) , ( 26, -1 )
-      , ( 27, 0 ) , ( 28, 1 ) , ( 29, 2 )
-      , ( 30, 3 ) , ( 31, 4.1 ) , ( 32, 5.1 )
-      , ( 33, 6.2 ) , ( 34, 7.2 ) , ( 35, 8.3 )
-      , ( 36, 9.4 ) , ( 37, 10.5 ) , ( 38, 11.6 )
-      , ( 39, 12.7 ) , ( 40, 13.8 ) , ( 41, 14.9 )
-      , ( 42, 16.1 ) , ( 43, 17.3 ) , ( 44, 18.4 )
-      , ( 45, 19.6 ) , ( 46, 20.8 ) , ( 47, 22 )
-      , ( 48, 23.2 ) , ( 49, 24.5 ) , ( 50, 25.7 )
-      , ( 51, 27 ) , ( 52, 28.2 ) , ( 53, 29.5 )
-      , ( 54, 30.8 ) , ( 55, 32.1 ) , ( 56, 33.5 )
-      , ( 57, 34.8 ) , ( 58, 36.1 ) , ( 59, 37.5 )
-      , ( 60, 38.9 ) , ( 61, 40.3 ) , ( 62, 41.7 )
-      , ( 63, 43.1 ) , ( 64, 44.5 ) , ( 65, 46 )
-      , ( 66, 47.4 ) , ( 67, 48.9 ) , ( 68, 50.4 )
-    )
MOD2: MODULAT (( 0, -16  ) , ( 1, -15.1 ) , ( 2, -14.2 )
-      , ( 3, -13.3 ) , ( 4, -12.5 ) , ( 5, -11.7 )
-      , ( 6, -10.8 ) , ( 7, -9.8 ) , ( 8, -8.9 )
-      , ( 9, -8 ) , ( 10, -7.2 ) , ( 11, -6.2 )
-      , ( 12, -5.3 ) , ( 13, -4.3 ) , ( 14, -3.3 )
-      , ( 15, -2.4 ) , ( 16, -1.4 ) , ( 17, -0.4 )
-      , ( 18, 0.5 ) , ( 19, 1.5 ) , ( 20, 2.6 )
-      , ( 21, 3.6 ) , ( 22, 4.7 ) , ( 23, 5.7 )
-      , ( 24, 6.8 ) , ( 25, 7.8 ) , ( 26, 8.9 )
-      , ( 27, 10 ) , ( 28, 11.1 ) , ( 29, 12.2 )
-      , ( 30, 13.3 ) , ( 31, 14.5 ) , ( 32, 15.6 )
-      , ( 33, 16.8 ) , ( 34, 17.9 ) , ( 35, 19.1 )
-      , ( 36, 20.3 ) , ( 37, 21.6 ) , ( 38, 22.8 )
-      , ( 39, 24 ) , ( 40, 25.2 ) , ( 41, 26.4 )
-      , ( 42, 27.7 ) , ( 43, 29 ) , ( 44, 30.2 )
-      , ( 45, 31.6 ) , ( 46, 32.9 ) , ( 47, 34.2 )
-      , ( 48, 35.5 ) , ( 49, 37 ) , ( 50, 38.3 )
-      , ( 51, 39.7 ) , ( 52, 41 ) , ( 53, 42.5 )
-      , ( 54, 43.9 ) , ( 55, 45.3 ) , ( 56, 46.9 )
-      , ( 57, 48.3 ) , ( 58, 49.7 ) , ( 59, 51.3 )
-      , ( 60, 52.8 ) , ( 61, 54.3 ) , ( 62, 55.9 )
-      , ( 63, 57.4 ) , ( 64, 59 ) , ( 65, 60.6 )
-      , ( 66, 62.1 ) , ( 67, 63.8 ) , ( 68, 65.4 )
-    )
MOD3: MODULAT (( 0, -8.3  ) , ( 1, -7.4 ) , ( 2, -6.4 )
-      , ( 3, -5.4 ) , ( 4, -4.6 ) , ( 5, -3.6 )
-      , ( 6, -2.7 ) , ( 7, -1.6 ) , ( 8, -0.6 )
-      , ( 9, 0.3 ) , ( 10, 1.3 ) , ( 11, 2.4 )
-      , ( 12, 3.3 ) , ( 13, 4.4 ) , ( 14, 5.5 )
-      , ( 15, 6.4 ) , ( 16, 7.5 ) , ( 17, 8.6 )
-      , ( 18, 9.7 ) , ( 19, 10.8 ) , ( 20, 12 )
-      , ( 21, 13 ) , ( 22, 14.2 ) , ( 23, 15.3 )
-      , ( 24, 16.5 ) , ( 25, 17.6 ) , ( 26, 18.8 )
-      , ( 27, 20 ) , ( 28, 21.2 ) , ( 29, 22.4 )
-      , ( 30, 23.6 ) , ( 31, 24.9 ) , ( 32, 26.1 )
-      , ( 33, 27.4 ) , ( 34, 28.6 ) , ( 35, 30 )
-      , ( 36, 31.3 ) , ( 37, 32.6 ) , ( 38, 33.9 )
-      , ( 39, 35.2 ) , ( 40, 36.6 ) , ( 41, 37.9 )
-      , ( 42, 39.3 ) , ( 43, 40.8 ) , ( 44, 42.1 )
-      , ( 45, 43.5 ) , ( 46, 45 ) , ( 47, 46.4 )
-      , ( 48, 47.8 ) , ( 49, 49.4 ) , ( 50, 50.8 )
-      , ( 51, 52.4 ) , ( 52, 53.8 ) , ( 53, 55.4 )
-      , ( 54, 57 ) , ( 55, 58.5 ) , ( 56, 60.2 )
-      , ( 57, 61.8 ) , ( 58, 63.3 ) , ( 59, 65 )
-      , ( 60, 66.7 ) , ( 61, 68.4 ) , ( 62, 70 )
-      , ( 63, 71.7 ) , ( 64, 73.4 ) , ( 65, 75.2 )
-      , ( 66, 76.9 ) , ( 67, 78.7 ) , ( 68, 80.5 )
-    )
MOD4: MODULAT (( 0, -0.7  ) , ( 1, 0.4 ) , ( 2, 1.4 )
-      , ( 3, 2.4 ) , ( 4, 3.4 ) , ( 5, 4.4 )
-      , ( 6, 5.4 ) , ( 7, 6.6 ) , ( 8, 7.6 )
-      , ( 9, 8.7 ) , ( 10, 9.7 ) , ( 11, 10.9 )
-      , ( 12, 11.9 ) , ( 13, 13.1 ) , ( 14, 14.3 )
-      , ( 15, 15.3 ) , ( 16, 16.5 ) , ( 17, 17.7 )
-      , ( 18, 18.8 ) , ( 19, 20 ) , ( 20, 21.3 )
-      , ( 21, 22.5 ) , ( 22, 23.8 ) , ( 23, 24.9 )
-      , ( 24, 26.2 ) , ( 25, 27.4 ) , ( 26, 28.7 )
-      , ( 27, 30 ) , ( 28, 31.3 ) , ( 29, 32.6 )
-      , ( 30, 33.9 ) , ( 31, 35.3 ) , ( 32, 36.6 )
-      , ( 33, 38.1 ) , ( 34, 39.4 ) , ( 35, 40.8 )
-      , ( 36, 42.2 ) , ( 37, 43.7 ) , ( 38, 45.1 )
-      , ( 39, 46.5 ) , ( 40, 47.9 ) , ( 41, 49.4 )
-      , ( 42, 50.9 ) , ( 43, 52.5 ) , ( 44, 53.9 )
-      , ( 45, 55.5 ) , ( 46, 57 ) , ( 47, 58.6 )
-      , ( 48, 60.2 ) , ( 49, 61.9 ) , ( 50, 63.4 )
-      , ( 51, 65.1 ) , ( 52, 66.7 ) , ( 53, 68.4 )
-      , ( 54, 70 ) , ( 55, 71.7 ) , ( 56, 73.6 )
-      , ( 57, 75.2 ) , ( 58, 76.9 ) , ( 59, 78.8 )
-      , ( 60, 80.6 ) , ( 61, 82.4 ) , ( 62, 84.2 )
-      , ( 63, 86 ) , ( 64, 87.9 ) , ( 65, 89.8 )
-      , ( 66, 91.6 ) , ( 67, 93.6 ) , ( 68, 95.5 )
-    )
MOD5: MODULAT (( 0, 7  ) , ( 1, 8.1 ) , ( 2, 9.2 )
-      , ( 3, 10.3 ) , ( 4, 11.3 ) , ( 5, 12.4 )
-      , ( 6, 13.5 ) , ( 7, 14.8 ) , ( 8, 15.9 )
-      , ( 9, 17 ) , ( 10, 18.2 ) , ( 11, 19.4 )
-      , ( 12, 20.5 ) , ( 13, 21.8 ) , ( 14, 23.1 )
-      , ( 15, 24.2 ) , ( 16, 25.4 ) , ( 17, 26.7 )
-      , ( 18, 28 ) , ( 19, 29.2 ) , ( 20, 30.6 )
-      , ( 21, 31.9 ) , ( 22, 33.3 ) , ( 23, 34.5 )
-      , ( 24, 35.9 ) , ( 25, 37.2 ) , ( 26, 38.6 )
-      , ( 27, 40 ) , ( 28, 41.4 ) , ( 29, 42.8 )
-      , ( 30, 44.2 ) , ( 31, 45.7 ) , ( 32, 47.1 )
-      , ( 33, 48.7 ) , ( 34, 50.1 ) , ( 35, 51.6 )
-      , ( 36, 53.2 ) , ( 37, 54.7 ) , ( 38, 56.2 )
-      , ( 39, 57.8 ) , ( 40, 59.3 ) , ( 41, 60.9 )
-      , ( 42, 62.5 ) , ( 43, 64.2 ) , ( 44, 65.8 )
-      , ( 45, 67.4 ) , ( 46, 69.1 ) , ( 47, 70.8 )
-      , ( 48, 72.5 ) , ( 49, 74.3 ) , ( 50, 76 )
-      , ( 51, 77.8 ) , ( 52, 79.5 ) , ( 53, 81.3 )
-      , ( 54, 83.1 ) , ( 55, 84.9 ) , ( 56, 86.9 )
-      , ( 57, 88.7 ) , ( 58, 90.5 ) , ( 59, 92.5 )
-      , ( 60, 94.5 ) , ( 61, 96.4 ) , ( 62, 98.4 )
-      , ( 63, 100.3 ) , ( 64, 102.3 ) , ( 65, 104.4 )
-      , ( 66, 106.4 ) , ( 67, 108.5 ) , ( 68, 110.6 )
-    )
</pre>
|-
|}