T-Gate, Electric Field (2D) - full deck

From Flooxs
Revision as of 22:47, 8 February 2014 by David (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

NOTE: The files "GaN Models Simple (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 Simple" file. It is now set such that the "GaN Models Simple" file is in the same directory as this T-Gate script.

source GaN Models Simple (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

The procedures OFFStateField and ONStateField set up the respective conditions for producing a 1D plot of the Electric field in the device ,from left to right, just under the surface of the AlGaN. The peaks produced in the plot correspond to the gate edges, where the field is highest. The procedure is now set to "OFFStateField":

proc OFFStateField {} {
#set Vgs -1.0
set Vgs -5.0
set Vdd 0.0
set Vss 0.0
}
OFFStateField
proc ONStateField {} {
set Vgs -1.0
#set Vgs -5.0
set Vdd 0.0
set Vss 0.0
}
#ONStateField
proc Vds0Field {} {
#set Vgs -1.0
set Vgs -5.0
set Vdd 0.0
set Vss 0.0
}
#Vds0Field
for {set Vdd 0.00} {$Vdd<5.4} {set Vdd [expr $Vdd+1]} {
contact name=D supply=$Vdd
contact name=G supply=$Vgs
contact name=S supply=$Vss

This expression determines the electric field:

sel z=(sqrt(dot(DevPsi,DevPsi)+1.0)) name=Efield
sel z=Efield
plot.1d x.v=0.001
device
}