T-Gate, OFF state, Strain Contours & IV plot (2D) - full deck: Difference between revisions

From Flooxs
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
NOTE: The files '''"GaN Models Source File (2D)"''' and '''"TgateDimensions"''' must be saved and included in the same directory as this "T-Gate" file, or have paths pointing to these files, in order to run this T-Gate script. These two previously mentioned files are sourced within this T-Gate script to define material characteristics and to define the gate size in the grid.
NOTE: The files '''"GaN Models Source File (2D)"''' and '''"TgateDimensions"''' must be saved and included in the same directory as this "T-Gate" file, or have paths pointing to these files, in order to run this T-Gate script. These two previously mentioned files are sourced within this T-Gate script to define material characteristics and to define the gate size in the grid. Links to these files are provided.
 


   
   

Revision as of 14:59, 5 February 2014

NOTE: The files "GaN Models Source File (2D)" and "TgateDimensions" must be saved and included in the same directory as this "T-Gate" file, or have paths pointing to these files, in order to run this T-Gate script. These two previously mentioned files are sourced within this T-Gate script to define material characteristics and to define the gate size in the grid. Links to these files are provided.


DevicePackage
pdbSetDouble Math iterLimit 800
pdbSetDouble Math rhsLimit 1.0e-15
pdbSetDouble Math updateLimit 1.0e-6
math device dim=2 col umf none scale

This command sources the "GaN Models source file". It is now set such that the "GaN Models source file" is in the same directory as this T-Gate script.

source GaN Models Source file (2D) - full deck
#source GaN_ETemp
mater add name=Metal
mater add name=OxPhase
mater add name=Nitride
#Set up solution for displacement 
solution name = displacement add solve dim continuous negative
solution name = Temp add solve 
math diffuse dim=2 umf none col !scale 
pdbSetBoolean GaN displacement Negative 1 
pdbSetBoolean ReflectLeft displacement Negative 1 
pdbSetDouble GaN displacement Abs.Error 1.0e-8 
pdbSetDouble ReflectLeft displacement Abs.Error 1.0e-8 
pdbSetBoolean AlGaN displacement Negative 1 
pdbSetBoolean ReflectLeft displacement Negative 1 
pdbSetDouble AlGaN displacement Abs.Error 1.0e-8 
pdbSetDouble ReflectLeft displacement Abs.Error 1.0e-8
pdbSetBoolean Nitride displacement Negative 1 
pdbSetBoolean ReflectLeft displacement Negative 1 
pdbSetDouble Nitride displacement Abs.Error 1.0e-8 
pdbSetDouble ReflectLeft displacement Abs.Error 1.0e-8
pdbSetBoolean OxPhase displacement Negative 1 
pdbSetBoolean ReflectLeft displacement Negative 1 
pdbSetDouble OxPhase displacement Abs.Error 1.0e-8 
pdbSetDouble ReflectLeft displacement Abs.Error 1.0e-8
pdbSetBoolean ReflectRight displacement Negative 1 
pdbSetDouble ReflectRight displacement Abs.Error 1.0e-8
#Fix base 
pdbSetBoolean ReflectBottom displacement Fixed 1 
pdbSetString ReflectBottom displacement Equation "displacement" 

#Fix sides 
pdbSetBoolean ReflectLeft displacement Fixed 1 
pdbSetString ReflectLeft displacement Equation "displacement" 
pdbSetBoolean ReflectRight displacement Fixed 1 
pdbSetString ReflectRight displacement Equation "displacement" 
pdbSetString GaN displacement Equation "elastic(displacement)" 
pdbSetString AlGaN displacement Equation "elastic(displacement)-BodyStrain(0.004)+IPZ(DevPsi)" 
#pdbSetString AlGaN displacement Equation "elastic(displacement)+BodyStrain(0.004)
pdbSetString OxPhase displacement Equation "elastic(displacement)" 
pdbSetString Nitride displacement Equation "elastic(displacement)+BodyStrain(0.00005)" 

This command sources the "TgateDimensions" file. It is now set such that the "TgateDimensions" file is in the same directory as this T-Gate script. The AlGaN is now set to a 25nm thickness and gate length at the bottom is 0.3um.

source T-Gate Dimensions file (2D) - full deck

These lines create the device structure and define the grid sizing:

   line x loc=-0.2 spac=0.01 tag=Gwt
   line x loc=-0.1 spac=0.01 tag=Gwb
   line x loc=-0.005 spac=0.001 tag=Ox
   line x loc=0.0 spac=0.001 tag=AlGaNTop
   line x loc=$Althick spac=0.005 tag=AlGaNBottom
   line x loc=1.0 spac=0.1 tag=BBottom
   line y loc=-1.0 spac=0.05 tag=Left
   line y loc=$Gtl spac=0.02 tag=sidewL
   line y loc=$Gbl spac=0.02 tag=sidenL
   line y loc=$Gbr spac=0.02 tag=sidenR
   line y loc=$Gtr spac=0.02 tag=sidewR
   line y loc=1.0 spac=0.05 tag=Right
   #Bulk
   region GaN xlo=AlGaNBottom xhi=BBottom ylo=Left yhi=Right
   #AlGaN under gate
   region AlGaN xlo=AlGaNTop xhi=AlGaNBottom ylo=Left yhi=Right
   
  #Metal alloy for T-gate
   region Metal xlo=Gwt xhi=Gwb ylo=sidewL yhi=sidewR
   region Metal xlo=Gwb xhi=Ox ylo=sidenL yhi=sidenR
  #Nitride cap layer 
   region Nitride xlo=Gwt xhi=Gwb ylo=Left yhi=sidewL
   region Nitride xlo=Gwt xhi=Gwb ylo=sidewR yhi=Right
   region Nitride xlo=Gwb xhi=Ox ylo=Left yhi=sidenL
   region Nitride xlo=Gwb xhi=Ox ylo=sidenR yhi=Right
   #Created Oxide layer
   region OxPhase xlo=Ox xhi=AlGaNTop ylo=Left yhi=Right
   init 
   #Contacts
   contact name=G Metal xlo=-0.195 xhi=-0.002 ylo=[expr {$Gtl-$buf}] yhi=[expr {$Gtr+$buf}] add depth=1.0 width=1.0
   contact name=B GaN xlo=0.9 xhi=1.1 ylo=-1.0 yhi=1.0 add depth=1.0 width=1.0
   contact name=S AlGaN ylo=-1.0 yhi=-0.9 xlo=-0.7 xhi=0.0005 add depth=1.0 width=1.0
   contact name=D AlGaN ylo=0.9 yhi=1.0 xlo=-0.7 xhi=0.0005 add depth=1.0 width=1.0
   contact name=G current=(Hole_AlGaN-Elec_AlGaN) voltage supply=0.0
   contact name=B current=(Hole_GaN-Elec_GaN) voltage supply=0.0
   contact name=D current=(Hole_GaN-Elec_GaN) voltage supply=0.0
   contact name=S current=(Hole_GaN-Elec_GaN) voltage supply=0.0
     
  #doping definition-will use method from pfmos_qf deck for simplicity
   #GaN Doping-from Dessis file from Heller-acceptor-p-type
   sel z=-6.5e16*Mater(GaN) name=GaN_Doping
   
   #AlGaN Doping-from Dessis file from Heller-he puts equivalent donor and acceptor doping in region to signify traps
   sel z=1e12 name=AlGaN_Doping
   #sel z=1e12*Mater(OxPhase) name=OxPhase_Doping
   #sel z=1e20*Mater(Metal)*(x>=-0.2)*(x<=-0.002)*(y>$Gtl)*(y<$Gtr) name=Metal_Doping
   sel z=1e20*(x>=-0.2)*(x<=-0.002)*(y>$Gtl)*(y<$Gtr) name=Metal_Doping
  
   #Source and Drain contact doping-from contact to 2DEG like Heller-just to make contacts ohmic
   sel z=(1e19*(y>0.75)+(y<=0.75)*1.0e19*exp(-(y-0.75)*(y-0.75)/(0.75*0.02*0.02)))*(exp(-(x*x)/(2.0*0.03*0.03)))*(x>=0.0) name=Drain_Doping
   sel z=(1e19*(y<-0.75)+(y>=-0.75)*1.0e19*exp(-(y+0.75)*(y+0.75)/(0.75*0.02*0.02)))*(exp(-(x*x)/(2.0*0.03*0.03)))*(x>=0.0) name=Source_Doping
    #Total doping
   #sel z=GaN_Doping+AlGaN_Doping+Drain_Doping+Source_Doping+Metal_Doping+OxPhase_Doping name=Doping
   sel z=GaN_Doping+AlGaN_Doping+Drain_Doping+Source_Doping+Metal_Doping name=Doping
   sel z=0.26 name=AlN_Ratio

These procedures set up the options to plot the entire device, "Plot", or just the gate area, "Plotsmall":

proc Plot {} {
plot.2d bound
plot.2d contact=G !cle
plot.2d contact=B !cle
plot.2d contact=S !cle
plot.2d contact=D !cle
plot.2d contact=F1 !cle
plot.2d contact=F2 !cle
}
proc Plotsmall {} {
plot.2d bound min = {-2e-5  -4e-5}  max = {1.5e-5  4e-5} 
plot.2d contact=G !cle
}
proc Plotasy {} {
plot.2d bound min = {-2e-5  -6.5e-5}  max = {1.5e-5  1.5e-5} 
plot.2d contact=G !cle
}
 Initialize
device init

These set the initial Gate, Source and Drain biases (Vgs,Vss avd Vdd). The gate voltage is set to -5V which puts the device in the OFF state:

set Vgs -5.0
#set Vgs -1.0
set Vdd 0.0
set Vss 0.0
set Vbb 0.0

This line creates the window in which the IV curve will be plotted:

set WinA [CreateGraphWindow]

This loop steps the drain voltage up from 0 to 15V in intervals of 0.4V:

for {set Vdd 0.00} {$Vdd<15.4} {set Vdd [expr $Vdd+0.4]} {
contact name=D supply=$Vdd
contact name=G supply=$Vgs
contact name=S supply=$Vss
contact name=B supply=$Vbb
sel z=CompStrain(xx,displacement) name=Xcom
sel z=CompStrain(yy,displacement) name=Ycom
sel z=CompIPZStrain(xx,DevPsi) name=Dfx
sel z=CompIPZStrain(yy,DevPsi) name=Dfy
sel z=sqrt((Xcom*Xcom)+(Ycom*Ycom)) name=Mtotal
sel z=sqrt((Dfx*Dfx)+(Dfy*Dfy)) name=Pztotal
#sel z=Xcom+Dfx name=disp
sel z=Dfx name=disp
sel z=disp name=FullStrain
sel z=FullStrain

These lines create a 2D boundary outline of the device, and plots the contour values of strain as given in the 'contours' procedure below:

Plot
#Plotsmall
#Plotasy
proc contours {} {
contour val=1.0e-4 col=blue
contour val=-1.0e-4 col=red
contour val=-6.5e-4 col=brown
contour val=-8.5e-04 col=purple
contour val=-7.5e-04 col=black
contour val=-1.3e-4 col=green
contour val=-1.0e-3 col=orange
contour val=-2.5e-4 col=magenta
contour val=6.5e-5 col=SteelBlue
contour val=7.5e-5 col=Peru
}
contours
device

This plots the IV curve in the created window named "WinA":

 set cur [expr -1e3*([contact name=D sol=Qfn flux] - [contact name=D sol=Qfp flux])]
 AddtoLine $WinA IV.$Vgs $Vdd $cur
}

This command saves the structure and all variables which were solved for within the device. This file can be read back into FLOOXS, or can be read by a number of plotting programs eg TecPlot, PL Plot etc:

struct outf=OFFVdd15