T-Gate, Electron Temp & Lattice Temp (2D) - full deck

From Flooxs
Revision as of 20:19, 5 February 2014 by David (talk | contribs) (Created page with "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 ...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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 
solution name = ETemp add solve
solution name = Jtherm 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 quad 
   #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
proc Templots {} {
sel z=ETemp
plot.1d x.v=0.026 lab=ETemp
sel z=Temp
plot.1d x.v=0.026 lab=Temp !cle
#sel z=Elec
#plot.1d x.v=0.026 lab=Elec !cle
}
Templots

sel z= {(energy<=VA)
        ? (2*sqrt((2*0.2*9.1e-31)/(1.054e-34*1.054e-34))*sqrt(abs(VA-energy)*1.6e-19)*0.025e-6)*Mater(AlGaN)
        : (0*Mater(AlGaN))} name=gbox
sel z=(1-(energy/(1.5-G)))*(1-(energy/(1.5-G)))*(1-(energy/(1.5-G))) name=INS
sel z=sqrt(INS)*Mater(AlGaN) name=tri3

Note:1e4 factor to convert from cm to m

sel z=0.66*sqrt((2*$Mestar*(1.5-G)*(1.5-G)*(1.5-G)*$q)/(1e4*alph*alph*1.054e-34*1.054e-34))*Mater(AlGaN) name=front
sel z=front*tri3 name=gtri
sel z=(gbox+gtri) name=gtotal

Note: 1e2 factor to convert from m/s to cm/s

sel z=exp(-gtotal) name=TransProb
sel z=Elec
set channel [interpolate GaN x=0.026 y=0.0625]
sel z=1*$channel name=channelElec
sel z=$q*$Vr*1e2*channelElec*TransProb name=Jtunnel
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=ETempandTempVdd15