T-Gate, Electric Field (2D) - full deck
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
}