#some set stuff option quiet mode one.dim #the vertical definition line x loc = 0 spacing = 0.02 tag = top line x loc = 1.50 spacing = 0.05 line x loc = 5.0 spacing = 0.5 line x loc = 28.0 tag=bottom #the silicon wafer region silicon xlo = top xhi = bottom #set up the exposed surfaces bound exposed xlo = top xhi = top bound backsid xlo = bottom xhi = bottom #calculate the mesh init #the pad oxide deposit oxide thick=0.02 #the diffusion card method init=1.0e-3 two.d #set up some integration variables %define otim 0.0 %define oldfci 1.0 %define oldbci 1.0 %define tfci 0.0 %define tbci 0.0 %diffuse time=240 temp=1100 dry movie=" select z=(inter/ci.star); %define newfci zfn(0.0,sil@oxi(0.0)+1.0e-6) %define newbci zfn(0.0,27.9) %define tfci ${tfci}+0.5*(${time}-${otim})*(${-newfci}+${oldfci}) %define tbci ${tbci}+0.5*(${time}-${otim})*(${-newbci}+${oldbci}) %define den ${time}+1.0e-6 printf Data ${time}/60.0 (${tfci}/${den})(${tbci}/${den}) %define otim ${time} %define oldfci ${newfci} %define oldbci ${newbci}" #save the data structure out=oed.strThis example is very similar to Example 2. It starts by instructing SUPREM-IV.GS to be relatively quiet about the progress of computation. The y line section is somewhat different. In this example, we wish to calculate the oxidation enhanced diffusion resulting from a growing oxide. Therefore, the vertical specification needs to be different.
#the vertical definition line x loc = 0 spacing = 0.02 tag = top line x loc = 1.50 spacing = 0.05 line x loc = 5.0 spacing = 0.5 line x loc = 28.0 tag=bottomThis is similar to the last example. The backside is placed at the membrane thickness so that we can compute the interstitials at this interface.
The next series of commands define the region, boundary, and initialize the wafer. The are only two differences between this example and the previous one. First is the specification of a backside interface. This will allow the specification of boundary conditions for the defects. Second, no boron implant is performed. This will speed the simulation. A starting oxide is deposited next. The method command specifies the defects should be solved and sets a small initial time step.
The next set of commands initialize some variables that will be used in the diffuse statement.
#set up some integration variables %define otim 0.0 %define oldfci 1.0 %define oldbci 1.0 %define tfci 0.0 %define tbci 0.0In this diffusion, the time average value of the interstitial concentration will be calculated and printed. The variable otim is the old time, oldcfi is the old scaled interstitial concentration at the front, oldbci is the old interstitial concentration at the back, and tfci and tbci are the time averaged values of the scaled interstitial concentration at the front and back respectively.
The diffuse command contains the directive to simulate the 30 minute, 1100C, dry oxygen drive in and anneal.
#the diffusion card %diffuse time=30 temp=1100 dry movie="In this example, the movie parameter is used to compute the time average of the interstitial concentration at the front and backside. The entire quoted string for the movie parameter is treated as SUPREM-IV.GS input at the end of every time step. This allows a time history to be developed.
select z=(inter/ci.star); %define newfci zfn(0.0,sil@oxi(0.0)+1.0e-6) %define newbci zfn(0.0,27.99) %define tfci ${tfci}+0.5*(${time}-${otim})*(${newfci}+${oldfci}) %define tbci ${tbci}+0.5*(${time}-${otim})*(${newbci}+${oldbci}) %define den ${time}+1.0e-6 printf Data ${time}/60.0 (${tfci}/${den})(${tbci}/${den}) %define otim ${time} %define oldfci ${newfci} %define oldbci ${newbci}"The first command in the movie line is to select the scaled interstitial concentration, CI / C*I as the plot variable. The next line defines the variable newfci to be equal to the value of the z value interpolated at x = 0.0 microns and y = 1 Angstrom below the silicon / silicon dioxide interface. This effectively is the surface value of the scaled interstitial concentration. The next line sets newbci to the back side interstitial concentration. The integrated time value at the front and back sides are computed and assigned to the variables totfci and totbci. This time integration uses the trapezoidal rule to compute the values. The time is adjusted by one microsecond in the computation of the average to avoid divide by zero errors. The printf command prints the current time in the diffusion and the front and back side time averaged values. Finally, the variables representing the previous time step values are updated.
The diffuse command should produce output of the form:
estimated first time step 8.740542e-10 Data 0 0 0 Solving 0 + 0.001 = 0.001, 100%, np 73 Data 1.66667e-05 1.14116 0.999001 Solving 0.001 + 0.0021718 = 0.0031718, 217.181%, np 73 Data 5.28635e-05 1.23489 0.999685 Solving 0.0031718 + 0.0105442 = 0.013716, 485.503%, np 73 Data 0.0002286 1.26412 0.999927 Solving 0.013716 + 0.0857607 = 0.0994767, 813.344%, np 73 Data 0.00165794 1.27887 0.99999 Solving 0.0994767 + 0.380333 = 0.47981, 443.482%, np 73 Data 0.00799683 1.31034 0.999998 Solving 0.47981 + 1.11267 = 1.59248, 292.553%, np 73 Data 0.0265413 1.39119 1 Solving 1.59248 + 2.71156 = 4.30404, 243.697%, np 73 Data 0.071734 1.5448 1 Solving 4.30404 + 7.50309 = 11.8071, 276.707%, np 73 Data 0.196785 1.81401 1 Solving 11.8071 + 23.0711 = 34.8782, 307.488%, np 73 Data 0.581303 2.21682 1 Solving 34.8782 + 52.5225 = 87.4007, 227.655%, np 73 Data 1.45668 2.59747 1 Solving 87.4007 + 116.309 = 203.71, 221.446%, np 73 Data 3.39517 2.8976 1 Solving 203.71 + 264.827 = 468.537, 227.693%, np 73 Data 7.80895 3.09822 1.00005 Solving 468.537 + 629.713 = 1098.25, 237.783%, np 73 Data 18.3042 3.19492 1.00143 Solving 1098.25 + 1476.13 = 2574.38, 234.413%, np 72 Data 42.9063 3.19724 1.02452 Solving 2574.38 + 1786.28 = 4360.66, 121.011%, np 71 Data 72.6777 3.13466 1.09187 Solving 4360.66 + 2319.41 = 6680.07, 129.846%, np 71 Data 94.745 3.07212 1.16452 Solving 5684.7 + 2813.18 = 8497.88, 212.469%, np 71 Data 141.631 2.96848 1.34316 Solving 8497.88 + 3114.92 = 11612.8, 110.726%, np 70 Data 193.547 2.89165 1.53193 Solving 11612.8 + 2787.21 = 14400, 89.4793%, np 69 Data 240 2.83454 1.67415The lines starting Data show the time in minutes and the front and back side time averaged interstitial concentration. The interstitial concentration ramps up and then levels off. As the simulation continues, the interstitial concentration falls off due to the decreased oxidation rate. The output can be redirected to a file and then plotted using any number of x-y plot programs.