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 11: Line 11:
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.
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)
  source [[GaN Models Source file (2D) - full deck]]
  #source GaN_ETemp
  #source GaN_ETemp


Line 66: Line 66:
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.  
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 TgateDimensions
  source [[T-Gate Dimensions file (2D) - full deck]]


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

Revision as of 14:56, 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.


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