Sei sulla pagina 1di 85

SILVACO PROGRAMMING

NMOS : Id/Vgs and Threshold Voltage Extraction


# (c) Silvaco Inc., 2013
go athena
#
line
line
line
line
#
line
line
line
line
#
init

x
x
x
x

loc=0.0
loc=0.2
loc=0.4
loc=0.6

spac=0.1
spac=0.006
spac=0.006
spac=0.01

y
y
y
y

loc=0.0
loc=0.2
loc=0.5
loc=0.8

spac=0.002
spac=0.005
spac=0.05
spac=0.15

orientation=100 c.phos=1e14 space.mul=2

#pwell formation including masking off of the nwell


#
diffus time=30 temp=1000 dryo2 press=1.00 hcl=3
#
etch oxide thick=0.02
#
#P-well Implant
#
implant boron dose=8e12 energy=100 pears
#
diffus temp=950 time=100 weto2 hcl=3
#
#N-well implant not shown #
# welldrive starts here
diffus time=50 temp=1000 t.rate=4.000 dryo2 press=0.10 hcl=3
#
diffus time=220 temp=1200 nitro press=1
#
diffus time=90 temp=1200 t.rate=-4.444 nitro press=1
#
etch oxide all
#
#sacrificial "cleaning" oxide
diffus time=20 temp=1000 dryo2 press=1 hcl=3
#
etch oxide all
#
#gate oxide grown here:diffus time=11 temp=925 dryo2 press=1.00 hcl=3
#
# Extract a design parameter
extract name="gateox" thickness oxide mat.occno=1 x.val=0.05

SILVACO PROGRAMMING

#
#vt adjust implant
implant boron dose=9.5e11 energy=10 pearson
#
depo poly thick=0.2 divi=10
#
#from now on the situation is 2-D
#
etch poly left p1.x=0.35
#
method fermi compress
diffuse time=3 temp=900 weto2 press=1.0
#
implant phosphor dose=3.0e13 energy=20 pearson
#
depo oxide thick=0.120 divisions=8
#
etch oxide dry thick=0.120
#
implant arsenic dose=5.0e15 energy=50 pearson
#
method fermi compress
diffuse time=1 temp=900 nitro press=1.0
#
# pattern s/d contact metal
etch oxide left p1.x=0.2
deposit alumin thick=0.03 divi=2
etch alumin right p1.x=0.18
# Extract design parameters
# extract final S/D Xj
extract name="nxj" xj silicon mat.occno=1 x.val=0.1 junc.occno=1
# extract the N++ regions sheet resistance
extract name="n++ sheet rho" sheet.res material="Silicon" mat.occno=1
x.val=0.05 region.occno=1
# extract the sheet rho under the spacer, of the LDD region
extract name="ldd sheet rho" sheet.res material="Silicon" \
mat.occno=1 x.val=0.3 region.occno=1
# extract the surface conc under the channel.
extract name="chan surf conc" surf.conc impurity="Net Doping" \
material="Silicon" mat.occno=1 x.val=0.45
# extract a curve of conductance versus bias.
extract start material="Polysilicon" mat.occno=1 \
bias=0.0 bias.step=0.2 bias.stop=2 x.val=0.45

SILVACO PROGRAMMING
extract done name="sheet cond v bias" \
curve(bias,1dn.conduct material="Silicon" mat.occno=1
region.occno=1)\
outfile="extract.dat"
# extract the long chan Vt
extract name="n1dvt" 1dvt ntype vb=0.0 qss=1e10 x.val=0.49
structure mirror right
electrode
electrode
electrode
electrode

name=gate x=0.5 y=0.1


name=source x=0.1
name=drain x=1.1
name=substrate backside

structure outfile=mos1ex01_0.str
# plot the structure
tonyplot mos1ex01_0.str -set mos1ex01_0.set
############# Vt Test : Returns Vt, Beta and Theta ################
go atlas
# set material models
models cvt srh print
contact name=gate n.poly
interface qf=3e10
method newton
solve init
# Bias the drain
solve vdrain=0.1
# Ramp the gate
log outf=mos1ex01_1.log master
solve vgate=0 vstep=0.25 vfinal=3.0 name=gate
save outf=mos1ex01_1.str
# plot results
tonyplot mos1ex01_1.log -set mos1ex01_1_log.set
# extract device parameters
extract name="nvt"
(xintercept(maxslope(curve(abs(v."gate"),abs(i."drain")))) \
- abs(ave(v."drain"))/2.0)
extract name="nbeta"
slope(maxslope(curve(abs(v."gate"),abs(i."drain")))) \
* (1.0/abs(ave(v."drain")))

SILVACO PROGRAMMING
extract name="ntheta" ((max(abs(v."drain")) *
$"nbeta")/max(abs(i."drain"))) \
- (1.0 / (max(abs(v."gate")) - ($"nvt")))
quit
NMOS : Sub-Threshold Slope Extraction
# (c) Silvaco Inc., 2013
go athena
#
line x loc=0 spac=0.1
line x loc=0.2 spac=0.006
line x loc=0.4 spac=0.006
line x loc=0.5 spac=0.01
#
line y loc=0.00 spac=0.002
line y loc=0.2 spac=0.005
line y loc=0.5 spac=0.05
line y loc=0.8 spac=0.15
#
init orientation=100 c.phos=1e14 space.mul=3
#pwell formation including masking off of the nwell
#
diffus time=30 temp=1000 dryo2 press=1.00 hcl=3
#
etch oxide thick=0.02
#
#P-well Implant
#
implant boron dose=8e12 energy=100 pears
#
diffus temp=950 time=100 weto2 hcl=3
#
#N-well implant not shown #
# welldrive starts here
diffus time=50 temp=1000 t.rate=4.000 dryo2 press=0.10 hcl=3
#
diffus time=220 temp=1200 nitro press=1
#
diffus time=90 temp=1200 t.rate=-4.444 nitro press=1
#
etch oxide all
#
#sacrificial "cleaning" oxide
diffus time=20 temp=1000 dryo2 press=1 hcl=3
#
etch oxide all

SILVACO PROGRAMMING
#
#gate oxide grown here:diffus time=11 temp=925 dryo2 press=1.00 hcl=3
#
#
#
#vt adjust implant
implant boron dose=9.5e11 energy=10 pearson
#
depo poly thick=0.2 divi=10
#
#from now on the situation is 2-D
#
etch poly left p1.x=0.35
#
method fermi compress
diffuse time=3 temp=900 weto2 press=1.0
#
implant phosphor dose=3.0e13 energy=20 pearson
#
depo oxide thick=0.120 divisions=8
#
etch oxide dry thick=0.120
#
implant arsenic dose=5.0e15 energy=50 pearson
#
method fermi compress
diffuse time=1 temp=900 nitro press=1.0
#
#
etch oxide left p1.x=0.2
deposit alumin thick=0.03 divi=2
etch alumin right p1.x=0.18
# Extract a design parameter.....
extract name="gateox" thickness oxide mat.occno=1 x.val=0.49
# Extract another design parameters...
# extract final S/D Xj...
extract name="nxj" xj silicon mat.occno=1 x.val=0.1 junc.occno=1
# extract the long chan Vt...
extract name="n1dvt" 1dvt ntype vb=0.0 qss=1e10 x.val=0.49
# extract a curve of conductance versus bias....
extract start material="Polysilicon" mat.occno=1 bias=0.0
bias.step=0.2 bias.stop=2 x.val=0.45
extract done name="sheet cond v bias" curve(bias,1dn.conduct
material="Silicon" mat.occno=1 region.occno=1) outfile="extract.dat"
# extract the N++ regions sheet resistance...

SILVACO PROGRAMMING
extract name="n++ sheet rho" sheet.res material="Silicon" mat.occno=1
x.val=0.05 region.occno=1
# extract the sheet rho under the spacer, of the LDD region...
extract name="ldd sheet rho" sheet.res material="Silicon" mat.occno=1
x.val=0.3 region.occno=1
# extract the surface conc under the channel....
extract name="chan surf conc" surf.conc impurity="Net Doping"
material="Silicon" mat.occno=1 x.val=0.45
structure mirror right
electrode
electrode
electrode
electrode

name=gate x=0.5 y=0.1


name=source x=0.1
name=drain x=0.9
name=substrate backside

structure outfile=mos1ex03_0.str
# plot the structure
tonyplot mos1ex03_0.str -set mos1ex03_0.set

############# SubVt Test : Returns NSubVt Parameter


go atlas

################

# set material models


models cvt srh print
contact name=gate n.poly
interface qf=3e10
# get initial solution
solve init
method newton trap
solve prev
# Bias the drain a bit...
solve vdrain=0.025 vstep=0.025 vfinal=0.1 name=drain
# Ramp the gate to a volt...
log outf=mos1ex03_1.log master
solve vgate=0 vstep=0.1 vfinal=1.0 name=gate
# extract the device parameter SubVt...
extract init inf="mos1ex03_1.log"
extract name="nsubvt"
1.0/slope(maxslope(curve(abs(v."gate"),log10(abs(i."drain")))))

SILVACO PROGRAMMING
tonyplot mos1ex03_1.log -set mos1ex03_1_log.set
quit

NMOS : DIBL Extraction


# (c) Silvaco Inc., 2013
go athena
#
line x loc=0 spac=0.1
line x loc=0.2 spac=0.006
line x loc=0.4 spac=0.006
line x loc=0.5 spac=0.01
#
line y loc=0.00 spac=0.002
line y loc=0.2 spac=0.005
line y loc=0.5 spac=0.05
line y loc=0.8 spac=0.15
#
init orientation=100 c.phos=1e14 space.mul=3
#pwell formation including masking off of the nwell
#
diffus time=30 temp=1000 dryo2 press=1.00 hcl=3
#
etch oxide thick=0.02
#
#P-well Implant
#
implant boron dose=8e12 energy=100 pears
#
diffus temp=950 time=100 weto2 hcl=3
#
#N-well implant not shown #
# welldrive starts here
diffus time=50 temp=1000 t.rate=4.000 dryo2 press=0.10 hcl=3
#
diffus time=220 temp=1200 nitro press=1
#
diffus time=90 temp=1200 t.rate=-4.444 nitro press=1
#
etch oxide all
#
#sacrificial "cleaning" oxide
diffus time=20 temp=1000 dryo2 press=1 hcl=3

SILVACO PROGRAMMING
#
etch oxide all
#
#gate oxide grown here:diffus time=11 temp=925 dryo2 press=1.00 hcl=3
#
#
#
#vt adjust implant
implant boron dose=9.5e11 energy=10 pearson
#
depo poly thick=0.2 divi=10
#
#from now on the situation is 2-D
#
etch poly left p1.x=0.35
#
method fermi compress
diffuse time=3 temp=900 weto2 press=1.0
#
implant phosphor dose=3.0e13 energy=20 pearson
#
depo oxide thick=0.120 divisions=8
#
etch oxide dry thick=0.120
#
implant arsenic dose=5.0e15 energy=50 pearson
#
method fermi compress
diffuse time=1 temp=900 nitro press=1.0
#
#
etch oxide left p1.x=0.2
deposit alumin thick=0.03 divi=2
etch alumin right p1.x=0.18
# Extract a design parameter.....
extract name="gateox" thickness oxide mat.occno=1 x.val=0.49
# Extract another design parameters...
# extract final S/D Xj...
extract name="nxj" xj silicon mat.occno=1 x.val=0.1 junc.occno=1
# extract the long chan Vt...
extract name="n1dvt" 1dvt ntype vb=0.0 qss=1e10 x.val=0.49
# extract a curve of conductance versus bias....
extract start material="Polysilicon" mat.occno=1 bias=0.0
bias.step=0.2 bias.stop=2 x.val=0.45

SILVACO PROGRAMMING
extract done name="sheet cond v bias" curve(bias,1dn.conduct
material="Silicon" mat.occno=1 region.occno=1) outfile="extract.dat"
# extract the N++ regions sheet resistance...
extract name="n++ sheet rho" sheet.res material="Silicon" mat.occno=1
x.val=0.05 region.occno=1
# extract the sheet rho under the spacer, of the LDD region...
extract name="ldd sheet rho" sheet.res material="Silicon" mat.occno=1
x.val=0.3 region.occno=1
# extract the surface conc under the channel....
extract name="chan surf conc" surf.conc impurity="Net Doping"
material="Silicon" mat.occno=1 x.val=0.45
structure mirror right
electrode
electrode
electrode
electrode

name=gate x=0.5 y=0.1


name=source x=0.1
name=drain x=0.9
name=substrate backside

structure outfile=mos1ex04_0.str
# plot the structure
tonyplot mos1ex04_0.str -set mos1ex04_0.set

############# DIBL Test : Returns DIBL Parameter ################


go atlas
# set material models
models cvt srh print
contact name=gate n.poly
interface qf=3e10
# get initial solution
solve init
method newton trap
solve prev
# Bias the drain a bit...
solve vdrain=0.025 vstep=0.025 vfinal=0.1 name=drain
# Ramp the gate
log outf=mos1ex04_1.log master
solve vgate=0 vstep=0.1 vdrain=0.1 vfinal=1.5 name=gate compl=1.1e-7
cname=drain

SILVACO PROGRAMMING

# extract device parameters


extract init inf="mos1ex04_1.log"
extract name="nvt1" x.val from curve(abs(v."gate"),abs(i."drain"))
where y.val=0.1e-6

# now open a dummy log file...


log off
# Now start again and ramp the drain to 3 volts...
solve init
# Bias the drain to 3 volts......slowly at first....
solve vdrain=0.025 vstep=0.025 vfinal=0.1 name=drain
solve vdrain=0.25 vstep=0.25 vfinal=3 name=drain
# Ramp the gate again with another opened logfile...
log outf=mos1ex04_2.log master
solve vgate=0 vstep=0.1 vdrain=3 vfinal=1.5 name=gate compl=1.1e-7
cname=drain
# extract the next device parameter with the drain now at 3 volts....
extract init inf="mos1ex04_2.log"
extract name="nvt2" x.val from curve(abs(v."gate"),abs(i."drain"))
where y.val=0.1e-6

# Calculate a DIBL parameter....in V/V


extract name="ndibl" ($"nvt1"-$"nvt2")/(3.0-0.1)
tonyplot -overlay
mos1ex04_log.set

mos1ex04_1.log

mos1ex04_2.log -set

quit
NMOS : Body Effect Extraction
# (c) Silvaco Inc., 2013
############### Gamma Test for an NMOS transistor ################
go athena
#
line
line
line
line
#

x
x
x
x

loc=0 spac=0.1
loc=0.2 spac=0.006
loc=0.4 spac=0.006
loc=0.5 spac=0.01

SILVACO PROGRAMMING
line
line
line
line
#
init

y
y
y
y

loc=0.00 spac=0.002
loc=0.2 spac=0.005
loc=0.5 spac=0.05
loc=0.8 spac=0.15

orientation=100 c.phos=1e14 space.mul=1

#pwell formation including masking off of the nwell


#
diffus time=30 temp=1000 dryo2 press=1.00 hcl=3
#
etch oxide thick=0.02
#
#P-well Implant
#
implant boron dose=8e12 energy=100 pears
#
method grid.ox=0.02
diffus temp=950 time=100 weto2 hcl=3
#
#N-well implant not shown #
# welldrive starts here
diffus time=50 temp=1000 t.rate=4.000 dryo2 press=0.10 hcl=3
#
diffus time=220 temp=1200 nitro press=1
#
diffus time=90 temp=1200 t.rate=-4.444 nitro press=1
#
etch oxide all
#
#sacrificial "cleaning" oxide
diffus time=20 temp=1000 dryo2 press=1 hcl=3
#
etch oxide all
#
#gate oxide grown here:method grid.ox=0.0025
diffus time=11 temp=925 dryo2 press=1.00 hcl=3
#
#
#
#vt adjust implant
implant boron dose=9.5e11 energy=10 pearson
#
depo poly thick=0.2 divi=10
#
#from now on the situation is 2-D

SILVACO PROGRAMMING
#
etch poly left p1.x=0.35
#
method fermi compress
diffuse time=3 temp=900 weto2 press=1.0
#
implant phosphor dose=3.0e13 energy=20 pearson
#
depo oxide thick=0.120 divisions=8
#
etch oxide dry thick=0.120
#
implant arsenic dose=5.0e15 energy=50 pearson
#
method fermi compress
diffuse time=1 temp=900 nitro press=1.0
#
#
etch oxide left p1.x=0.2
deposit alumin thick=0.03 divi=2
etch alumin right p1.x=0.18
# Extract a design parameter.....
extract name="gateox" thickness oxide mat.occno=1 x.val=0.49
# Extract another design parameters...
# extract final S/D Xj...
extract name="nxj" xj silicon mat.occno=1 x.val=0.1 junc.occno=1
# extract the long chan Vt...
extract name="n1dvt" 1dvt ntype vb=0.0 qss=1e10 x.val=0.49
# extract a curve of conductance versus bias....
extract start material="Polysilicon" mat.occno=1 bias=0.0
bias.step=0.2 bias.stop=2 x.val=0.45
extract done name="sheet cond v bias" curve(bias,1dn.conduct
material="Silicon" mat.occno=1 region.occno=1) outfile="extract.dat"
# extract the N++ regions sheet resistance...
extract name="n++ sheet rho" sheet.res material="Silicon" mat.occno=1
x.val=0.05 region.occno=1
# extract the sheet rho under the spacer, of the LDD region...
extract name="ldd sheet rho" sheet.res material="Silicon" mat.occno=1
x.val=0.3 region.occno=1
# extract the surface conc under the channel....
extract name="chan surf conc" surf.conc impurity="Net Doping"
material="Silicon" mat.occno=1 x.val=0.45
structure mirror right
electrode
electrode
electrode
electrode

name=gate x=0.5 y=0.1


name=source x=0.1
name=drain x=0.9
name=substrate backside

SILVACO PROGRAMMING

structure outfile=mos1ex05_0.str
# plot the structure
tonyplot mos1ex05_0.str -set mos1ex05_0.set

############# Body Effect Test : Returns N-channel Gamma


################
go atlas
# set material models
models cvt srh print
# Define the worksunction and the Qss....
contact name=gate n.poly
interface qf=3e10
# get initial solution
solve init
method newton
solve prev
# Bias the drain a bit...
solve vdrain=0.025 vstep=0.025 vfinal=0.1 name=drain
# Ramp the gate
log outf=mos1ex05_1.log master
solve vgate=0 vstep=0.1 vdrain=0.1 vfinal=2 name=gate \
compl=1.0e-7 cname=drain
# extract device parameters
extract init inf="mos1ex05_1.log"
extract name="nvt1" x.val from curve(abs(v."gate"),abs(i."drain"))
where y.val=0.1e-6

# now open a dummy log file...


log off
# Now start again but with a substrate back-bias of a volt....
solve init
# Bias the substrate to -1 volt.....
solve vdrain=0.05 vstep=0.05 vfinal=0.1 name=drain
solve vdrain=0.1 vsubstrate=-0.25 vstep=-0.25 vfinal=-1 name=substrate
# Ramp the gate again with another opened logfile...

SILVACO PROGRAMMING
log outf=mos1ex05_2.log master
solve vgate=0 vstep=0.1 vdrain=0.1 vsubstrate=-1 \
vfinal=2 name=gate compl=1.0e-7 cname=drain
extract init inf="mos1ex05_2.log"
extract name="nvt2" x.val from curve(abs(v."gate"),abs(i."drain"))
where y.val=0.1e-6

# Calculate the parameter Gamma .... with phi = 0.6 eV....


extract name="ngamma" ($"nvt2"-$"nvt1")/((sqrt(1+0.6))-sqrt(0.6))
tonyplot -overlay

mos1ex05_1.log mos1ex05_2.log -set mos1ex05_log.set

quit
NMOS : Substrate and Gate Current Extraction
# (c) Silvaco Inc., 2013
go athena
line
line
line
#
line
line
line
line
#
init

x loc=0 spac=0.1
x loc=0.2 spac=0.01
x loc=0.5 spac=0.01
y
y
y
y

loc=0.00 spac=0.01
loc=0.2 spac=0.01
loc=0.5 spac=0.05
loc=0.8 spac=0.15

orientation=100 c.phos=1e14 space.mul=3

#pwell formation including masking off of the nwell


#
diffus time=30 temp=1000 dryo2 press=1.00 hcl=3
#
etch oxide thick=0.02
#
#P-well Implant
#
implant boron dose=8e12 energy=100 pears
#
diffus temp=950 time=100 weto2 hcl=3
#
#N-well implant not shown #
# welldrive starts here
diffus time=50 temp=1000 t.rate=4.000 dryo2 press=0.10 hcl=3
#

SILVACO PROGRAMMING
diffus time=220 temp=1200 nitro press=1
#
diffus time=90 temp=1200 t.rate=-4.444 nitro press=1
#
etch oxide all
#
#sacrificial "cleaning" oxide
diffus time=20 temp=1000 dryo2 press=1 hcl=3
#
etch oxide all
#
#gate oxide grown here:diffus time=11 temp=925 dryo2 press=1.00 hcl=3
#
#
#
#vt adjust implant
implant boron dose=9.5e11 energy=10 pearson
#
depo poly thick=0.2 divi=10
#
#from now on the situation is 2-D
#
etch poly left p1.x=0.35
#
method fermi compress
diffuse time=3 temp=900 weto2 press=1.0
#
implant phosphor dose=3.0e13 energy=20 pearson
#
depo oxide thick=0.120 divisions=8
#
etch oxide dry thick=0.120
#
implant arsenic dose=5.0e15 energy=50 pearson
#
method fermi compress
diffuse time=1 temp=900 nitro press=1.0
#
#
etch oxide left p1.x=0.2
deposit alumin thick=0.03 divi=2
etch alumin right p1.x=0.18
# Extract a design parameter.....
extract name="gateox" thickness oxide mat.occno=1 x.val=0.49
# Extract another design parameters...
# extract final S/D Xj...
extract name="nxj" xj silicon mat.occno=1 x.val=0.1 junc.occno=1
# extract the long chan Vt...

SILVACO PROGRAMMING
extract name="n1dvt" 1dvt ntype vb=0.0 qss=1e10 x.val=0.49
# extract a curve of conductance versus bias....
extract start material="Polysilicon" mat.occno=1 bias=0.0
bias.step=0.2 bias.stop=2 x.val=0.45
extract done name="sheet cond v bias" curve(bias,1dn.conduct
material="Silicon" mat.occno=1 region.occno=1) outfile="extract.dat"
# extract the N++ regions sheet resistance...
extract name="n++ sheet rho" sheet.res material="Silicon" mat.occno=1
x.val=0.05 region.occno=1
# extract the sheet rho under the spacer, of the LDD region...
extract name="ldd sheet rho" sheet.res material="Silicon" mat.occno=1
x.val=0.3 region.occno=1
# extract the surface conc under the channel....
extract name="chan surf conc" surf.conc impurity="Net Doping"
material="Silicon" mat.occno=1 x.val=0.45
structure mirror right
electrode
electrode
electrode
electrode

name=gate x=0.5 y=0.1


name=source x=0.1
name=drain x=0.9
name=substrate backside

go devedit
# Set Meshing Parameters
#
base.mesh height=0.1 width=0.1
#
bound.cond !apply max.slope=28 max.ratio=300 rnd.unit=0.001
line.straightening=1 align.points when=automatic
#
imp.refine imp="NetDoping" sensitivity=1
imp.refine min.spacing=0.02
#
constr.mesh max.angle=90 max.ratio=300 max.height=1 \
max.width=1 min.height=0.0001 min.width=0.0001
#
# Perform mesh operations
#
Mesh Mode=MeshBuild
structure outf=mos1ex06_0x.str
refine
refine
refine
refine
refine
refine

mode=y x1=0.34 y1=0.22 x2=0.65 y2=0.24


mode=y x1=0.35 y1=0.22 x2=0.67 y2=0.23
mode=both x1=0.65 y1=0.26 x2=0.82 y2=0.34
mode=y x1=0 y1=0.40 x2=1.0 y2=0.57
mode=y x1=0 y1=0.40 x2=1.0 y2=0.53
mode=y x1=0.80 y1=0.34 x2=1.0 y2=0.38

structure outf=mos1ex06_0.str

SILVACO PROGRAMMING
tonyplot

mos1ex06_0.str -set mos1ex06_0.set

go atlas
models

cvt srh print hcte.el hei nearflg

impact selb length.rel


contact name=gate n.poly
interface qf=3e10

lrel.el=0.02

material taun0=1e-7 taup0=1e-7


material taurel.el=0.2e-12 taumob.el=0.2e-12
solve init
method newton trap temp.tol=1.e-4
solve vdrain=0.1 vstep=0.1 vfinal=3.3 name=drain
log outf=mos1ex06.log master
method newton trap temp.tol=1.e-4
solve vgate=0.025 vstep=0.025 vfinal=0.4 name=gate
solve vgate=0.5 vstep=0.1 vfinal=5 name=gate
tonyplot

mos1ex06.log -set mos1ex06_log.set

# Extract Substrate current peak value parameter....


extract init inf="mos1ex06.log"
extract name="nmax_isub_vd3.3"
max(curve(abs(v."gate"),abs(i."substrate")))
# Extract gate voltage at the peak substrate current point....
extract init inf="mos1ex06.log"
extract name="nVgate_at_isubmax_vd3.3" x.val from
curve(abs(v."gate"),abs(i."substrate")) where y.val=$"nmax_isub_vd3.3"
# Extract Gate current peak value parameter....
extract init inf="mos1ex06.log"
extract name="nmax_igate_vd3.3"
(max(curve(abs(v."gate"),abs(i."gate"))))
# Extract gate voltage at the peak gate current point....
extract init inf="mos1ex06.log"
extract name="nVgate_at_isubmax_vd3.3" x.val from
curve(abs(v."gate"),abs(i."gate")) where y.val=$"nmax_igate_vd3.3"

SILVACO PROGRAMMING
quit

NMOS : Breakdown Voltage Extraction


# (c) Silvaco Inc., 2013
go athena
#
line
line
line
#
line
line
line
line
#
init

x loc=0 spac=0.1
x loc=0.2 spac=0.01
x loc=0.5 spac=0.01
y
y
y
y

loc=0.00 spac=0.01
loc=0.2 spac=0.01
loc=0.5 spac=0.05
loc=0.8 spac=0.15

orientation=100 c.phos=1e14 space.mul=3

#pwell formation including masking off of the nwell


#
diffus time=30 temp=1000 dryo2 press=1.00 hcl=3
#
etch oxide thick=0.02
#
#P-well Implant
#
implant boron dose=8e12 energy=100 pears
#
diffus temp=950 time=100 weto2 hcl=3
#
#N-well implant not shown #
# welldrive starts here
diffus time=50 temp=1000 t.rate=4.000 dryo2 press=0.10 hcl=3
#
diffus time=220 temp=1200 nitro press=1
#
diffus time=90 temp=1200 t.rate=-4.444 nitro press=1
#
etch oxide all
#
#sacrificial "cleaning" oxide
diffus time=20 temp=1000 dryo2 press=1 hcl=3
#
etch oxide all
#
#gate oxide grown here:diffus time=11 temp=925 dryo2 press=1.00 hcl=3
#

SILVACO PROGRAMMING
#
#
#vt adjust implant
implant boron dose=9.5e11 energy=10 pearson
#
depo poly thick=0.2 divi=10
#
#from now on the situation is 2-D
#
etch poly left p1.x=0.35
#
method fermi compress
diffuse time=3 temp=900 weto2 press=1.0
#
implant phosphor dose=3.0e13 energy=20 pearson
#
depo oxide thick=0.120 divisions=8
#
etch oxide dry thick=0.120
#
implant arsenic dose=5.0e15 energy=50 pearson
#
method fermi compress
diffuse time=1 temp=900 nitro press=1.0
#
#
etch oxide left p1.x=0.2
deposit alumin thick=0.03 divi=2
etch alumin right p1.x=0.18
# Extract a design parameter.....
extract name="gateox" thickness oxide mat.occno=1 x.val=0.49
# Extract another design parameters...
# extract final S/D Xj...
extract name="nxj" xj silicon mat.occno=1 x.val=0.1 junc.occno=1
# extract the long chan Vt...
extract name="n1dvt" 1dvt ntype vb=0.0 qss=1e10 x.val=0.49
# extract a curve of conductance versus bias....
extract start material="Polysilicon" mat.occno=1 bias=0.0
bias.step=0.2 bias.stop=2 x.val=0.45
extract done name="sheet cond v bias" curve(bias,1dn.conduct
material="Silicon" mat.occno=1 region.occno=1) outfile="extract.dat"
# extract the N++ regions sheet resistance...
extract name="n++ sheet rho" sheet.res material="Silicon" mat.occno=1
x.val=0.05 region.occno=1
# extract the sheet rho under the spacer, of the LDD region...
extract name="ldd sheet rho" sheet.res material="Silicon" mat.occno=1
x.val=0.3 region.occno=1
# extract the surface conc under the channel....

SILVACO PROGRAMMING
extract name="chan surf conc" surf.conc impurity="Net Doping"
material="Silicon" mat.occno=1 x.val=0.45
structure mirror right
electrode
electrode
electrode
electrode

name=gate x=0.5 y=0.1


name=source x=0.1
name=drain x=0.9
name=substrate backside

go devedit
# Set Meshing Parameters
#
base.mesh height=1000000 width=1000000
#
bound.cond !apply max.slope=28 max.ratio=300 rnd.unit=0.001
line.straightening=1 align.points when=automatic
#
imp.refine imp="NetDoping" sensitivity=1
imp.refine min.spacing=0.02
#
constr.mesh max.angle=90 max.ratio=300 max.height=1 \
max.width=1 min.height=0.0001 min.width=0.0001
#
# Perform mesh operations
#
Mesh Mode=MeshBuild
refine mode=y x1=0.34 y1=0.22 x2=0.65 y2=0.24
refine mode=y x1=0.35 y1=0.22 x2=0.67 y2=0.23
refine mode=both x1=0.65 y1=0.26 x2=0.82 y2=0.34
refine mode=y x1=0 y1=0.40 x2=1.0 y2=0.57
refine mode=y x1=0 y1=0.40 x2=1.0 y2=0.53
refine mode=y x1=0.80 y1=0.34 x2=1.0 y2=0.38
structure outf=mos1ex07_0.str
tonyplot

mos1ex07_0.str -set

mos1ex07_0.set

go atlas
# Set workfunction for poly gate and interface charge
contact name=gate n.polysilicon
interf qf=3E10
# Set models
models print cvt consrh

SILVACO PROGRAMMING
impact selb
method

newton trap climit=1e-4

# open log file


log outf=mos1ex07.log
solve
solve
solve
solve

vdrain=0.025
vdrain=0.05
vdrain=0.1
vdrain=0.5

solve vstep=0.25 vfinal=12 name=drain compl=5e-9 cname=drain


save outf=mos1ex07_1.str
# Extract the design parameter, Vbd
extract name="NVbd" x.val from curve(abs(v."drain"),abs(i."drain"))
where y.val=1e-9
tonyplot
tonyplot

mos1ex07.log -set mos1ex07_log.set


mos1ex07_1.str -set mos1ex07_1.set

quit
PMOS : Id/Vgs and Threshold Voltage Extraction
# (c) Silvaco Inc., 2013
go athena
#
# Set up a mesh suitable for a single MOSFET device....
line x loc=0 spac=0.1
line x loc=0.35 spac=0.02
line x loc=0.6 spac=0.1
#
line y loc=0.00 spac=0.005
line y loc=0.3 spac=0.015
line y loc=0.5 spac=0.02
line y loc=2 spac=0.2
line y loc=5 spac=1
#
# Start off by defining silicon with 1e14 phos doping...
# Decrease the folowing space.mult parameter for a denser
# mesh and more accuracy...
init orientation=100 c.phos=1e14 space.mult=2
#
#pwell formation including masking off of the nwell
#
diffus time=30 temp=1000 dryo2 press=1.00 hcl=3
#
etch oxide thick=0.02

SILVACO PROGRAMMING
#
#N-well Implant
implant amorphous phos dose=9e12 energy=100 pears
#
diffus temp=950 time=100 weto2 hcl=3
#
#N-well implant amorphous not shown #
# welldrive
diffus time=220 temp=1200 nitro press=1
#
etch oxide all
#
#sacrificial "cleaning" oxide
diffus time=20 temp=1000 dryo2 press=1 hcl=3
#
etch oxide all
#
#gate oxide grown here:set partial_press=1.0
diffus time=10 temp=800 nitrogen hcl=3
diffus time=2 temp=900 dryo2 press=$partial_press
diffus time=13 temp=900 dryo2 press=$partial_press hcl=3
diffus time=10 temp=900 nitrogen hcl=3
diffus time=10 temp=800 t.final=800 nit hcl=3
#
# Extract a design parameter.....
extract name="gateox" thickness oxide mat.occno=1 x.val=0.005
#
#vt adjust implant amorphous
implant amorphous bf2 dose=1.20e12 energy=25 pearson
#
depo poly thick=0.250 div=3
#
etch poly left p1.x=0.35
#
# Relax the mesh below the 0.5um plane, for speed....
relax y.min=0.5
#
method fermi compress
diffuse time=5 temp=900 weto2 press=0.8
#
# PLDD implant amorphous
implant amorphous bf2 dose=2.0e14 energy=50 pearson
#
# This is a good way of defining the spacer.....define a variable
# first with the 'set' command....
set spacer=0.15
depo oxide thick=$"spacer" divisions=5
etch oxide dry thick=$"spacer"+0.005
#
# P++ Implant

SILVACO PROGRAMMING
implant amorphous bf2 dose=1.50e15 energy=60 pearson
#
#
# Final anneal.
method fermi compress
diffuse time=5 temp=900 nitro press=1.0
#

# Extract other design parameters...


# extract final S/D Xj...
extract name="pxj" xj silicon mat.occno=1 x.val=0.1 junc.occno=1
# extract the long chan Vt...
extract name="p1dvt" 1dvt ptype vb=0.0 qss=1e10 x.val=0.49
# extract a curve of conductance versus bias....
extract start material="Polysilicon" mat.occno=1 bias=0.0
bias.step=0.2 bias.stop=2 x.val=0.45
extract done name="sheet cond v bias" curve(bias,1dn.conduct
material="Silicon" mat.occno=1 region.occno=1) outfile="extract.dat"
# extract the P++ regions sheet resistance...
extract name="p++ sheet rho" sheet.res material="Silicon" mat.occno=1
x.val=0.05 region.occno=1
# extract the sheet rho under the spacer, of the LDD region...
extract name="pldd sheet rho" sheet.res material="Silicon" mat.occno=1
x.val=0.3 region.occno=1
# extract the surface conc under the channel....
extract name="pchan surf conc" surf.conc impurity="Net Doping"
material="Silicon" mat.occno=1 x.val=0.45
# Etch contact cuts and place the aluminium where electrodes are
required.....
etch oxide left p1.x=0.15
deposit alumin thick=0.03 div=2
etch alumin right p1.x=0.16
# mirror the structure.....
structure mirror right

# Name the electrodes...


electrode name=gate x=0.5
electrode name=source x=0
electrode name=drain x=1.1
electrode name=substrate backside
# output the structure
structure outfile=mos1ex08_0.str

SILVACO PROGRAMMING
# plot it
tonyplot mos1ex08_0.str -set

mos1ex08_0.set

############# PVt Test : Returns PVt, PBeta and PTheta


################
go atlas
# set material models
models cvt srh print
contact name=gate n.poly
interface qf=3e10
# get initial solution
solve init
method newton trap
solve prev
# Bias the drain a bit...
solve vdrain=-0.1 name=drain
# Ramp the gate
log outf=mos1ex08_1.log master
solve vgate=0 vstep=-0.25 vfinal=-3.0 vdrain=-0.1 name=gate
save outf=mos1ex08_1.str
# extract device parameters......
extract init inf="mos1ex08_1.log"
extract name="pvt"
(xintercept(maxslope(curve(abs(v."gate"),abs(i."drain")))) abs(ave(v."drain"))/2.0)
extract init inf="mos1ex08_1.log"
extract name="pbeta"
((slope(maxslope(curve(abs(v."gate"),abs(i."drain")))) *
(1.0/abs(ave(v."drain")))))
extract init inf="mos1ex08_1.log"
extract name="ptheta" ((max(abs(v."drain")) *
$"pbeta")/max(abs(i."drain"))) - (1.0 / (max(abs(v."gate")) ($"pvt")))

# plot results
tonyplot
mos1ex08_1.log -set mos1ex08_1_log.set
quit

SILVACO PROGRAMMING
PMOS : Sub-Threshold Slope Extraction
#
#
#
#

(c) Silvaco Inc., 2013


This is a simple input deck representing a Process flow and a device
text. All lines begining with a '#' sign may be treated as directive
comments.....

# Start the Athena Process simulator running...


go athena
#
# Set up a mesh suitable for a single MOSFET device....
line x loc=0 spac=0.1
line x loc=0.35 spac=0.02
line x loc=0.5 spac=0.1
#
line y loc=0.00 spac=0.005
line y loc=0.3 spac=0.015
line y loc=0.5 spac=0.02
line y loc=2 spac=0.2
line y loc=5 spac=1
#
# Start off by defining silicon with 1e14 phos doping...
# Decrease the folowing space.mult parameter for a denser
# mesh and more accuracy...
init orientation=100 c.phos=1e14 space.mult=2
#
#pwell formation including masking off of the nwell
#
diffus time=30 temp=1000 dryo2 press=1.00 hcl=3
#
etch oxide thick=0.02
#
#N-well Implant
implant amorphous phos dose=9e12 energy=100 pears
#
diffus temp=950 time=100 weto2 hcl=3
#
#N-well implant amorphous not shown #
# welldrive
diffus time=220 temp=1200 nitro press=1
#
etch oxide all
#
#sacrificial "cleaning" oxide
diffus time=20 temp=1000 dryo2 press=1 hcl=3
#
etch oxide all
#
#gate oxide grown here:set partial_press=1.0
diffus time=10 temp=800 nitrogen hcl=3

SILVACO PROGRAMMING
diffus time=2 temp=900 dryo2 press=$partial_press
diffus time=11 temp=900 dryo2 press=$partial_press hcl=3
diffus time=10 temp=900 nitrogen hcl=3
diffus time=10 temp=800 t.final=800 nit hcl=3
#
# Extract a design parameter.....
extract name="gateox" thickness oxide mat.occno=1 x.val=0.005
#
#vt adjust implant amorphous
implant amorphous bf2 dose=1.20e12 energy=25 pearson
#
depo poly thick=0.250 div=3
#
etch poly left p1.x=0.35
#
# Relax the mesh below the 0.5um plane, for speed....
relax y.min=0.5
#
method fermi compress
diffuse time=5 temp=900 weto2 press=0.8
#
# PLDD implant amorphous
implant amorphous bf2 dose=2.0e14 energy=50 pearson
#
# This is a good way of defining the spacer.....define a variable
# first with the 'set' command....
set spacer=0.15
depo oxide thick=$"spacer" divisions=5
etch oxide dry thick=$"spacer"+0.005
#
# P++ Implant
implant amorphous bf2 dose=1.50e15 energy=60 pearson
#
#
# Final anneal.
method fermi compress
diffuse time=5 temp=900 nitro press=1.0
#

# Extract other design parameters...


# extract final S/D Xj...
extract name="pxj" xj silicon mat.occno=1 x.val=0.1 junc.occno=1
# extract the long chan Vt...
extract name="p1dvt" 1dvt ptype vb=0.0 qss=1e10 x.val=0.49
# extract a curve of conductance versus bias....
extract start material="Polysilicon" mat.occno=1 bias=0.0
bias.step=0.2 bias.stop=2 x.val=0.45
extract done name="sheet cond v bias" curve(bias,1dn.conduct
material="Silicon" mat.occno=1 region.occno=1) outfile="extract.dat"

SILVACO PROGRAMMING
# extract the P++ regions sheet resistance...
extract name="p++ sheet rho" sheet.res material="Silicon" mat.occno=1
x.val=0.05 region.occno=1
# extract the sheet rho under the spacer, of the LDD region...
extract name="pldd sheet rho" sheet.res material="Silicon" mat.occno=1
x.val=0.3 region.occno=1
# extract the surface conc under the channel....
extract name="pchan surf conc" surf.conc impurity="Net Doping"
material="Silicon" mat.occno=1 x.val=0.45
# Etch contact cuts and place the aluminium where electrodes are
required.....
etch oxide left p1.x=0.15
deposit alumin thick=0.03 div=2
etch alumin right p1.x=0.16
# mirror the structure.....
structure mirror right

# Name the electrodes...


electrode name=gate x=0.5
electrode name=source x=0
electrode name=drain x=0.9
electrode name=substrate backside
# output the structure
structure outfile=mos1ex10_0.str
# plot it
tonyplot mos1ex10_0.str -set mos1ex10_0.set

############# SubVt Test : Returns PSubVt Parameter


go atlas
# set material models
models cvt srh print
contact name=gate n.poly
interface qf=1e10
# get initial solution
solve init
method newton trap
solve prev

################

SILVACO PROGRAMMING

# Bias the drain a bit...


solve vdrain=-0.025 vstep=-0.025 vfinal=-0.1 name=drain
# Ramp the gate to a volt...
log outf=mos1ex10_1.log master
solve vgate=0 vstep=-0.1 vfinal=-1.0 name=gate
# extract the device parameter SubVt...
extract init inf="mos1ex10_1.log"
extract name="psubvt"
1.0/slope(maxslope(curve(abs(v."gate"),log10(abs(i."drain")))))
tonyplot mos1ex10_1.log -set mos1ex10_1_log.set
quit
PMOS : DIBL Extraction
#
#
#
#

(c) Silvaco Inc., 2013


This is a simple input deck representing a Process flow and a device
text. All lines begining with a '#' sign may be treated as directive
comments.....

# Start the Athena Process simulator running...


go athena
#
# Set up a mesh suitable for a single MOSFET device....
line x loc=0 spac=0.1
line x loc=0.35 spac=0.02
line x loc=0.5 spac=0.1
#
line y loc=0.00 spac=0.005
line y loc=0.3 spac=0.015
line y loc=0.5 spac=0.02
line y loc=2 spac=0.2
line y loc=5 spac=1
#
# Start off by defining silicon with 1e14 phos doping...
# Decrease the folowing space.mult parameter for a denser
# mesh and more accuracy...
init orientation=100 c.phos=1e14 space.mult=2
#
#pwell formation including masking off of the nwell
#
diffus time=30 temp=1000 dryo2 press=1.00 hcl=3
#
etch oxide thick=0.02
#
#N-well Implant
implant amorphous phos dose=1e13 energy=100 pears

SILVACO PROGRAMMING
#
diffus temp=950 time=100 weto2 hcl=3
#
#N-well implant amorphous not shown #
# welldrive
diffus time=220 temp=1200 nitro press=1
#
etch oxide all
#
#sacrificial "cleaning" oxide
diffus time=20 temp=1000 dryo2 press=1 hcl=3
#
etch oxide all
#
#gate oxide grown here:set partial_press=1.0
diffus time=10 temp=800 nitrogen hcl=3
diffus time=2 temp=900 dryo2 press=$partial_press
diffus time=11 temp=900 dryo2 press=$partial_press hcl=3
diffus time=10 temp=900 nitrogen hcl=3
diffus time=10 temp=800 t.final=800 nit hcl=3
#
# Extract a design parameter.....
extract name="gateox" thickness oxide mat.occno=1 x.val=0.005
#
#vt adjust implant amorphous
implant amorphous bf2 dose=1.10e12 energy=25 pearson
#
depo poly thick=0.250 div=3
#
etch poly left p1.x=0.35
#
# Relax the mesh below the 0.5um plane, for speed....
relax y.min=0.5
#
method fermi compress
diffuse time=5 temp=900 weto2 press=0.8
#
# PLDD implant amorphous
implant amorphous bf2 dose=5e13 energy=40 pearson
#
# This is a good way of defining the spacer.....define a variable
# first with the 'set' command....
set spacer=0.15
depo oxide thick=$"spacer" divisions=5
etch oxide dry thick=$"spacer"+0.005
#
# P++ Implant
implant amorphous bf2 dose=1.50e15 energy=45 pearson
#
#

SILVACO PROGRAMMING
# Final anneal.
method fermi compress
diffuse time=5 temp=900 nitro press=1.0
#

# Extract other design parameters...


# extract final S/D Xj...
extract name="pxj" xj silicon mat.occno=1 x.val=0.1 junc.occno=1
# extract the long chan Vt...
extract name="p1dvt" 1dvt ptype vb=0.0 qss=1e10 x.val=0.49
# extract a curve of conductance versus bias....
extract start material="Polysilicon" mat.occno=1 bias=0.0
bias.step=0.2 bias.stop=2 x.val=0.45
extract done name="sheet cond v bias" curve(bias,1dn.conduct
material="Silicon" mat.occno=1 region.occno=1) outfile="extract.dat"
# extract the P++ regions sheet resistance...
extract name="p++ sheet rho" sheet.res material="Silicon" mat.occno=1
x.val=0.05 region.occno=1
# extract the sheet rho under the spacer, of the LDD region...
extract name="pldd sheet rho" sheet.res material="Silicon" mat.occno=1
x.val=0.3 region.occno=1
# extract the surface conc under the channel....
extract name="pchan surf conc" surf.conc impurity="Net Doping"
material="Silicon" mat.occno=1 x.val=0.45
# Etch contact cuts and place the aluminium where electrodes are
required.....
etch oxide left p1.x=0.15
deposit alumin thick=0.03 div=2
etch alumin right p1.x=0.16
# mirror the structure.....
structure mirror right

# Name the electrodes...


electrode name=gate x=0.5
electrode name=source x=0
electrode name=drain x=0.9
electrode name=substrate backside
# output the structure
structure outfile=mos1ex11_0.str
# plot it
tonyplot mos1ex11_0.str -set mos1ex11_0.set

SILVACO PROGRAMMING

######### P-channel DIBL Test : Returns Vt with 0.1 and 3 volts Vd


##########
########################## and a DIBL Parameter
#############################
go atlas
# set material models
models cvt srh print
contact name=gate n.poly
interface qf=3e10
# get initial solution
solve init
method newton trap maxtraps=8 autonr itlimit=30
solve prev
# Bias the drain a bit...
solve vdrain=-0.025 vstep=-0.025 vfinal=-0.1 name=drain
# Ramp the gate
log outf=mos1ex11_1.log master
solve vgate=0 vstep=-0.1 vdrain=-0.1 vfinal=-1.5 \
name=gate compl=1.1e-7 cname=drain
# extract device parameters
extract init inf="mos1ex11_1.log"
extract name="pvt1" x.val from curve(abs(v."gate"),abs(i."drain"))
where y.val=0.1e-6

# now open a dummy log file...


log off
# Now start again and ramp the drain to 3 volts...
solve init
# Bias the drain to 3 volts......slowly at first....
solve vdrain=-0.025 vstep=-0.025 vfinal=-0.1 name=drain
solve vdrain=-0.25 vstep=-0.25 vfinal=-3 name=drain
# Ramp the gate again with another opened logfile...
log outf=mos1ex11_2.log master
solve vgate=0 vstep=-0.1 vdrain=-3 vfinal=-1.5 name=gate \
compl=1.1e-7 cname=drain

SILVACO PROGRAMMING

# extract the next device parameter wuth the drain now at 3 volts....
extract init inf="mos1ex11_2.log"
extract name="pvt2" x.val from curve(abs(v."gate"),abs(i."drain"))
where y.val=0.1e-6

# Calculate a DIBL parameter....in V/V


extract name="pdibl" ($"pvt1"-$"pvt2")/(3.0-0.1)
tonyplot -overlay

mos1ex11_1.log mos1ex11_2.log -set mos1ex11_log.set

quit

Hot Electron Reliability


# (c) Silvaco Inc., 2013
go atlas
#
# MESH DEFINITION
mesh
x.m loc=0.0
x.m loc=0.5
x.m loc=0.65
x.m loc=0.75
x.m loc=0.9
x.m loc=1.2
x.m loc=1.5
y.m
y.m
y.m
y.m
y.m
y.m
y.m

spacing=0.1
spacing=0.1
spacing=0.025
spacing=0.025
spacing=0.005
spacing=0.1
spacing=0.1

loc=-0.02 spacing=0.005
loc=0.0
spacing=0.001
loc=0.1 spacing=0.025
loc=0.2 spacing=0.05
loc=0.4
spacing=0.05
loc=1.0
spacing=0.2
loc=2.0
spacing=0.5

# REGIONS AND ELECTRODES


region num=1 y.min=0 silicon
region num=2 y.max=0.0 oxide
elect num=1 name=gate x.min=0.5 length=0.5 y.min=-0.02 y.max=-0.02
elect num=2 name=source left
length=0.2 y.min=0.0 y.max=0.0
elect num=3 name=drain right
length=0.2 y.min=0.0 y.max=0.0
elect num=4 name=substrate substrate
# DEVICE DOPING
doping uniform p.type conc=2.e16
doping gauss p.type conc=1.e17 char=0.1

SILVACO PROGRAMMING
doping gauss n.type conc=1.e20 x.right=0.5 junc=0.2 ratio=0.6
doping gauss n.type conc=1.e20 x.left=1.0 junc=0.2 ratio=0.6
save outfile=mos2ex02_0.str
### PRE-STRESSED TEST
go atlas
# IMPORT THE MESH
mesh inf=mos2ex02_0.str master.in
# MATERIAL CONTACT INTERFACE AND MODELS
contact num=1 n.polysilicon
interf qf=5.e10
models temp=300 print srh auger cvt
# SOLUTIONS
solve init
save outf=mos2ex02_1.str
tonyplot mos2ex02_1.str -set mos2ex02_1.set
method newton trap carr=1 electron
solve prev
solve vdrain=0.1
log outf=mos2ex02_2.log
solve vgate=0.5 vstep=0.25 name=gate vfinal=6.
### DEVICE STRESSING
go atlas
# IMPORT DEVICE STRUCURE
mesh inf=mos2ex02_0.str master.in
# MATERIAL CONTACT INTERFACE AND MODELS
contact num=1 n.polysilicon
interf qf=5.e10
models temp=300 print srh cvt hei hcte.el devdeg.e nearflg
ig.elinf=9.4e-7
#impact selb
degradation f.nta=mos2ex02_devdeg.nta sigmae=1.e-15 sigmah=1.e-17
# SOLUTIONS
solve init
method newton trap carr=1
solve
solve vgate=1.5
solve vdrain=0.1
solve vdrain=0.2
solve vdrain=0.5 vstep=0.5 name=drain vfinal=3
solve vdrain=3.3
method newton trap quasistatic climit=1e-5 carr=2 dt.max=1000
log outf=mos2ex02_3.log
output devdeg
solve tstep=1e-5 tstop=0.01

SILVACO PROGRAMMING
save outf=mos2ex02_0_01s.str
solve tstep=1e-3 tstop=0.1
save outf=mos2ex02_0_1s.str
solve tstep=1e-2 tstop=1
save outf=mos2ex02_1s.str
solve tstep=1e-2 tstop=1000
save outf=mos2ex02_1000s.str
solve tstep=1e3 tstop=10000
save outf=mos2ex02_10000s.str
### STRESSED TEST AT 0.01 s
go atlas
# IMPORT MESH
mesh inf=mos2ex02_0_01s.str master.in
# MATERIAL CONTACT INTERFACE AND MODELS
contact num=1 n.polysilicon
interf qf=5.e10
models temp=300 print srh auger cvt
# SOLUTIONS
load infile=mos2ex02_0_01s.str master
solve init
method newton trap carr=1 electron
solve
solve vdrain=0.1
log outf=mos2ex02_0_01s.log
solve vgate=0.5 vstep=0.25 name=gate vfinal=6.
### STRESSED TEST AT 0.1 s
go atlas
# IMPORT MESH
mesh inf=mos2ex02_0_1s.str master.in
# MATERIAL CONTACT INTERFACE AND MODELS
contact num=1 n.polysilicon
interf qf=5.e10
models temp=300 print srh auger cvt
# SOLUTIONS
load infile=mos2ex02_0_1s.str master
solve init
method newton trap carr=1 electron
solve
solve vdrain=0.1
log outf=mos2ex02_0_1s.log
solve vgate=0.5 vstep=0.25 name=gate vfinal=6.
### STRESSED TEST AT 1 s
go atlas

SILVACO PROGRAMMING
# IMPORT MESH
mesh inf=mos2ex02_1s.str master.in
# MATERIAL CONTACT INTERFACE AND MODELS
contact num=1 n.polysilicon
interf qf=5.e10
models temp=300 print srh auger cvt
# SOLUTIONS
load infile=mos2ex02_1s.str master
solve init
method newton trap carr=1 electron
solve
solve vdrain=0.1
log outf=mos2ex02_1s.log
solve vgate=0.5 vstep=0.25 name=gate vfinal=6.
### STRESSED TEST AT 1000 s
go atlas
# IMPORT MESH
mesh inf=mos2ex02_1000s.str master.in
# MATERIAL CONTACT INTERFACE AND MODELS
contact num=1 n.polysilicon
interf qf=5.e10
models temp=300 print srh auger cvt
# SOLUTIONS
load infile=mos2ex02_1000s.str master
solve init
method newton trap carr=1 electron
solve
solve vdrain=0.1
log outf=mos2ex02_1000s.log
solve vgate=0.5 vstep=0.25 name=gate vfinal=6.
### STRESSED TEST AT 10000 s
go atlas
# IMPORT MESH
mesh inf=mos2ex02_10000s.str master.in
# MATERIAL CONTACT INTERFACE AND MODELS
contact num=1 n.polysilicon
interf qf=5.e10
models temp=300 print srh auger cvt
# SOLUTIONS
load infile=mos2ex02_10000s.str master
solve init
method newton trap carr=1 electron

SILVACO PROGRAMMING
solve
solve vdrain=0.1
log outf=mos2ex02_10000s.log
solve vgate=0.5 vstep=0.25 name=gate vfinal=6.
tonyplot -overlay mos2ex02_10000s.log mos2ex02_1000s.log
mos2ex02_1s.log mos2ex02_0_1s.log mos2ex02_0_01s.log mos2ex02_2.log
-set mos2ex02_log.set
quit
BSIM3 SPICE Model Extraction (Salicide process)
# (c) Silvaco Inc., 2013
go athena
#
#

Salicided N-MOSFET Full IV Curve Application


============================================

# Define a global grid density multiplier....make this value


# bigger to speed up the simulation for demos etc....
set grid_density=1
#
line x loc=0
spac=0.1
line x loc=0.2
spac=0.05
line x loc=0.32 spac=0.05
line x loc=0.4
spac=0.05
line x loc=0.5
spac=0.05
line x loc=0.6
spac=0.05
line x loc=0.8
spac=0.1
line x loc=1
spac=0.15
#
line y loc=0.00 spac=0.01
line y loc=0.15 spac=0.005
line y loc=0.17 spac=0.005
line y loc=0.25 spac=0.05
line y loc=2.5
spac=0.15
line y loc=5.0
spac=0.5
#
init c.phos=1.0e14 space.mult=$grid_density
#
#pwell formation including masking off of the nwell
diffus time=30 temp=900 dryo2 press=1.00 hcl=3
#
etch oxide thick=0.025
#
#P-well Implant
#
implant boron dose=1.5e13 energy=100 pears

SILVACO PROGRAMMING
#
diffus temp=925 time=100 weto2 hcl=3
#
#N-well implant not shown #
# welldrive starts here
set welldrive_temp=1200
diffus time=50 temp=1000 t.rate=4.000 dryo2 press=0.10 hcl=3
diffus time=120 temp=$welldrive_temp nitro
diffus time=90 temp=$welldrive_temp t.rate=-4.444 nitro
#
# Experimentally: Dip off the oxide and measure the peak conc.....
extract name="peak conc" max.conc boron silicon mat.occno=1
etch oxide all
#
#sacrificial "cleaning" oxide
diffus time=20 temp=900 dryo2 press=1 hcl=3
extract thickness oxide mat.occno=1 name="sacox"
#
etch oxide all
#
# gate oxide grown here:# make sure it has a couple of grid points....
# Set a partial pressure variable for use as a calibration
parameter....
# note, the grid density has been adjusted during growth to improve
accuracy...
set ppress=1
set gate_temp=875
method grid.ox=0.005
diffus time=10 temp=800 t.final=$gate_temp nit press=$ppress
diffus time=5 temp=$gate_temp nitrogen press=$ppress hcl=3
diffus time=28 temp=$gate_temp dryo2 press=$ppress hcl=3
diffus time=25 temp=$gate_temp nitrogen press=$ppress hcl=3
diffus time=20 temp=$gate_temp t.final=800 dryo2 press=$ppress hcl=3
# Extract the gateoxide for use later in the Spice Model extraction...
extract thickness oxide mat.occno=1 name="tox"
# Reset the grid during oxide growth, back to default...
method grid.ox=0.1
#
#convert tox to metres for utmost
extract name="utmost_tox" ($tox * 1.0e-10)
#
#vt adjust implant
implant boron dose=1.4e12 energy=20 pearson
#
depo poly thick=0.3 spaces=8
#example converts to 2D following this step
etch poly left p1.x=0.5
# Relax the mesh below the active device area
relax y.min=0.3

SILVACO PROGRAMMING
relax y.min=0.4
relax y.min=0.5
#
method full.cpl compress
diffuse time=10 temp=875 dry press=1.0
#
implant phosphor dose=1.0e13 energy=35 pear
#
#Spacer Formation - setup a variable as a spacer thickness....
set spacer_width=0.175
depo oxide thick=$spacer_width divisions=8
etch oxide dry thick=$"spacer_width"+0.025
#
# SD Implant
implant arsenic dose=5.0e15 energy=45 pear
#
# RTA dopant activation
diffuse temp=1000 time=0.1667 nitrogen
structure outf=activate.str
#
# Create the salicide areas
deposit titan thick=0.1 divi=3
diffuse temp=800 time=0.5 nitrogen
etch titanium all

#
######################################################################
#######
################### Extract Design parameters
###############################
######################################################################
#######
# Extract some design parameters for use with Utmost model extraction
later....
# Extract a first order approximation for NSUB as the average of the
# surface and peak channel conc values......
#
extract name="chan_peak_conc" max.conc impurity="Net Doping"
material="Silicon" mat.occno=1 x.val=0.5
#
extract name="chan_surf_conc" surf.conc impurity="Net Doping"
material="Silicon" mat.occno=1 x.val=0.5
extract name="nsub" ($"chan_peak_conc"+$"chan_surf_conc")/2
# Reflect the structure....

SILVACO PROGRAMMING
structure mirror right
# Extract the poly Ld at this point.....
extract name="ld" thick poly y.val=0
extract name="utmost_ld" ($ld * 1.0e-4)

######################################################################
###
############### SET UP ELECTRODE NAMES
##################################
######################################################################
###
# Name the eletrodes for Atlas....in the correct order of use.....
# Note the gate has been named before, as we do not want a voltage
# drop running down through the poly from the overlying TiSix....
electrode name=substrate backside
electrode name=source x=0.1
electrode name=drain x=1.9
electrode name=gate x=0.55
structure outfile=mos2ex06.str
tonyplot mos2ex06.str -set mos2ex06_0.set
######################################################################
####
############# SET UP ATLAS TEST VARIABLES
###############################
######################################################################
####
# These variables are set to enable simple modification of the
# MOS level 3 test.
#
# setup ATLAS runs
# general
set polarity=1
set vdd=$polarity*5.0
#idvg
set vdslin=$polarity*0.1
set vdslinhalf=$polarity*0.05
set vgstep=$polarity*0.2
set vbsmax=-1*$vdd
set vbshalf=$vbsmax/2
#idvd
#

can't change vgcurves w/o syntax change later

SILVACO PROGRAMMING
set
set
set
set
set

vdstep=$polarity*0.2
vgmin=$polarity*2.0
vgcurves=3
vghalf=($vdd+$vgmin)/($vgcurves-1)
vbs=0.0

##################### START ATLAS SIMULATION #######################


go atlas
models cvt srh print
contact name=gate n.poly
interface qf=3e10
solve init
save outf=init.str master
method newton autonr trap
solve prev
solve vdrain=$vdslinhalf
solve vdrain=$vdslin
solve vsubstrate=0 outf=solve_tmp0
solve vsubstrate=$vbshalf outf=solve_tmp1
solve vsubstrate=$vbsmax outf=solve_tmp2
################# Create the IdVg-Vb IV matrix ######################
load infile=solve_tmp0
log outf=mos2ex06_IdVg-Vb.log
solve name=gate vgate=0 vfinal=$vdd vstep=$vgstep
load infile=solve_tmp1
solve name=gate vgate=0 vfinal=$vdd vstep=$vgstep
load infile=solve_tmp2
solve name=gate vgate=0 vfinal=$vdd vstep=$vgstep
######################################################################
###
go atlas
models cvt srh print
contact name=gate n.poly

SILVACO PROGRAMMING
interface qf=3e10
solve init

method newton autonr trap


solve prev
solve vsubstrate=$vbs
#solve vgate=$vgmin outf=solve_tmp0
#solve vgate=$vghalf outf=solve_tmp1
#solve vgate=$vdd outf=solve_tmp2
solve vgate=1 vstep=0.25 vfinal=1.5 name=gate outf=solve_tmp0 onefile
solve vgate=1.75 vstep=0.25 vfinal=3 name=gate outf=solve_tmp1 onefile
solve vgate=3.25 vstep=0.25 vfinal=4.5 name=gate outf=solve_tmp2
onefile
##################### Create the IdVd-Vg IV matrix
#######################
load infile=solve_tmp0
log outf=mos2ex06_IdVd-Vg.log
solve name=drain vdrain=0 vfinal=$vdd vstep=$vdstep
load infile=solve_tmp1
solve name=drain vdrain=0 vfinal=$vdd vstep=$vdstep
load infile=solve_tmp2
solve name=drain vdrain=0 vfinal=$vdd vstep=$vdstep

################# START UTMOST SIMULATION ###################


go utmost
# THE NEXT TWO SET STATEMENTS ARE ONLY HERE
# FOR DEMO PURPOSES- IT SAVES RE-RUNNING PROCESS/DEVICE
# THEY ARE DEFINED EARLIER
set utmost_tox=1e-8
set utmost_ld=1e-6
utmost type = mos
# load the Utmost setup file, this file is the Utmost Setup file
created by an

SILVACO PROGRAMMING
# interactive Utmost session and stored in $SILVACO/var/utmost
model MOS_vwf_bsim3_n

.....

# set value for gate oxide thickness


device TOX = $utmost_tox
# define device specifications
setup NRS=0.04 NRD=0.04 width=1.0 length=$utmost_ld*1e6 polarity=N
# load Atlas log files
init inf=mos2ex06_IdVg-Vb.log master
init inf=mos2ex06_IdVd-Vg.log master append
# select required characteristics for device
deselect ID/VG-VB all
select ID/VG-VB device 1
deselect ID/VD-VG all
select ID/VD-VG device 1
output ID/VD-VG
# set up output log file for measured ATLAS data in uniform steps
# required by UTMOST
log outf=mos2ex06_data.log measured
# set up ouput log file for interactive UTMOST usage
log outf=mos2ex06_ut.log utmost
# set up output log file for simulated data created by UTMOST
log outf=mos2ex06_sim.log simulated
# perform simulation
localopt ID/VG-VB
localopt ID/VD-VG
# output Utmost parameters for extraction
save outf=mos2ex06.ssf
################## Extract UTMOST parameters ################
# load output parameter file from UTMOST
extract init infile="mos2ex06.ssf"
# extract UTMOST parameters required for VWF
extract
extract
extract
extract
extract
extract
extract

name="N-VTH0" param="VTH0"
name="N-K1" param="K1"
name="N-K2" param="K2"
name="N-K3" param="K3"
name="N-W0" param="W0"
name="N-NLX" param="NLX"
name="N-DVT0" param="DVT0"

SILVACO PROGRAMMING
extract name="N-DVT1" param="DVT1"
extract name="N-DL" param="DL"
extract name="N-DW" param="DW"
extract name="N-UA" param="UA"
extract name="N-UB" param="UB"
extract name="N-UC" param="UC"
extract name="N-VSAT" param="VSAT"
extract name="N-A0" param="A0"
extract name="N-KETA" param="KETA"
extract name="N-A1" param="A1"
extract name="N-A2" param="A2"
extract name="N-RDSW" param="RDSW"
extract name="N-VOFF" param="VOFF"
extract name="N-NFACTOR" param="NFACTOR"
extract name="N-CDSC" param="CDSC"
extract name="N-ETA0" param="ETA0"
extract name="N-ETAB" param="ETAB"
extract name="N-DSUB" param="DSUB"
extract name="N-PCLM" param="PCLM"
extract name="N-PDIBLC1" param="PDIBLC1"
extract name="N-PDIBLC2" param="PDIBLC2"
extract name="N-DROUT" param="DROUT"
extract name="N-PSCBE1" param="PSCBE1"
extract name="N-PSCBE2" param="PSCBE2"
extract name="N-TOX" param="TOX"
extract name="N-XJ" param="XJ"
extract name="N-PEAK" param="NPEAK"
extract name="N-SUB" param="NSUB"
#extract name="N-SUBTHMOD" param="SUBTHMOD"
#extract name="N-SATMOD" param="SATMOD"
#extract name="N-BULKMOD" param="BULKMOD"
extract name="N-U0" param="U0"
create library=mos2ex06.lib
quit

NMOS Second Breakdown Simulation


# (c) Silvaco Inc., 2013
go athena
line
line
line
line
line

x
x
x
x
x

loc=0
loc=0.15
loc=0.2
loc=0.35
loc=0.5

spac=0.1
spac=0.05
spac=0.05
spac=0.01
spac=0.02

line y loc=0 spac=0.01


line y loc=0.22 spac=0.01

SILVACO PROGRAMMING
line y loc=0.8 spac=0.1
init orientation=100 c.phos=1e14
moments STD_TABLES
#
#pwell formation including masking off of the nwell
#
diffus time=30 temp=1000 dryo2 press=1.00 hcl=3
#
etch oxide thick=0.02
#
#P-well Implant
#
implant boron dose=8e12 energy=100 pears amorphous
diffus temp=950 time=100 weto2 hcl=3
#
#N-well implant not shown #
# welldrive starts here
diffus time=50 temp=1000 t.rate=4.000 dryo2 press=0.10 hcl=3
#
diffus time=220 temp=1200 nitro press=1
#
diffus time=90 temp=1200 t.rate=-4.444 nitro press=1
#
etch oxide all
#
#sacrificial "cleaning" oxide
diffus time=20 temp=1000 dryo2 press=1 hcl=3
#
etch oxide all
#
#gate oxide grown here:diffus time=11 temp=925 dryo2 press=1.00 hcl=3
extract thickness name="gateox" oxide mat.occno=1
#vt adjust implant
implant boron dose=9.5e11 energy=10 pearson amorphous
#
depo poly thick=0.2 divi=10
#
#from now on the situation is 2-D
#
etch poly left p1.x=0.35
#
method fermi compress
diffuse time=3 temp=900 weto2 press=1.0
#
implant phosphor dose=3.0e13 energy=20 pearson amorphous

SILVACO PROGRAMMING
#
depo oxide thick=0.120 divisions=8
#
etch oxide dry thick=0.120
#
implant arsenic dose=5.0e15 energy=50 pearson amorphous
#
method fermi compress
diffuse time=1 temp=900 nitro press=1.0
etch oxide left p1.x=0.2
deposit alumin thick=0.03 divi=2
etch alumin right p1.x=0.15
structure mirror right
electrode
electrode
electrode
electrode

name=gate x=0.5 y=0.1


name=source x=0.1
name=drain x=0.9
name=substrate backside

structure outfile=mos2ex08_0.str
tonyplot mos2ex08_0.str -set mos2ex08_0.set
go atlas
mesh infile=mos2ex08_0.str
# Set workfunction for poly gate and interface charge
contact name=gate n.polysilicon
interf qf=3E10
material taurel.el=0.2e-12 taumob.el=0.4e-12
material material=aluminum tcon.poly \
tc.a=0.03 tc.b=0.00156 tc.c=1.65e-06 \
hc.a=1.97 hc.b=0.00036 hc.d=-3.7e+4
# Set models
models print cvt srh bgn lat.temp hcte.el
impact selb length.rel lrel.el=0.02
thermcontact num=1 x.min=0 x.max=1 y.min=0.799 y.max=0.802 alpha=3000
solve init
method climit=1e-4
curvetrace end.val=1.3e-3 contr.name=drain curr.cont \
mincur=1e-13 nextst.ratio=1.2 step.init=6.e-2 mindl=0.04
solve vgate=0.025
solve vgate=0.1
solve vgate=0.5 vstep=0.25 vfinal=1 name=gate

SILVACO PROGRAMMING
# open log file
log outf=mos2ex08.log master
solve curvetrace
save outf=mos2ex08_1.str
tonyplot mos2ex08.log -set

mos2ex08_log.set

quit
Effect of Poly Depletion on C-V curves
# (c) Silvaco Inc., 2013
go atlas
mesh
x.mesh loc=-0.01 spac=0.01
x.mesh loc=0.01 spac=0.01
y.mesh loc=-0.04 spac=0.001
y.mesh loc=0.02 spac=0.001
region number=1 x.min=-0.01
material=aluminum
region number=2 x.min=-0.01
material=poly
region number=3 x.min=-0.01
material=oxide
region number=4 x.min=-0.01
material=silicon

x.max=0.01 y.min=-0.04 y.max=-0.03

x.max=0.01 y.min=-0.03 y.max=-0.005 \


x.max=0.01 y.min=-0.005 y.max=0.0

x.max=0.01 y.min=0.0 y.max=0.02

electrode x.min=-0.01 x.max=0.01 y.min=-0.04 y.max=-0.03 name=gate


electrode bottom name=substrate
doping region=2 p.type concentration=1e19 uniform
doping region=4 p.type concentration=1e17 uniform
solve init
solve vgate=-1.5
solve vgate=-3
save outfile=mos2ex15-3V19.str
# tonyplot mos2ex15-3V19.str -set mos2ex15_BD.set
log outfile=mos2ex15_CV19.log
solve vgate=-2.8 vstep=0.2 vfinal=3.0 name=gate ac freq=1e6 previous
tonyplot mos2ex15_CV19.log -set mos2ex15_CV.set
go atlas

SILVACO PROGRAMMING

mesh
x.mesh loc=-0.01 spac=0.01
x.mesh loc=0.01 spac=0.01
y.mesh loc=-0.04 spac=0.001
y.mesh loc=0.02 spac=0.001
region number=1 x.min=-0.01
material=aluminum
region number=2 x.min=-0.01
material=poly
region number=3 x.min=-0.01
material=oxide
region number=4 x.min=-0.01
material=silicon

x.max=0.01 y.min=-0.04 y.max=-0.03

x.max=0.01 y.min=-0.03 y.max=-0.005 \


x.max=0.01 y.min=-0.005 y.max=0.0

x.max=0.01 y.min=0.0 y.max=0.02

electrode x.min=-0.01 x.max=0.01 y.min=-0.04 y.max=-0.03 name=gate


electrode bottom name=substrate
doping region=2 p.type concentration=1e20 uniform
doping region=4 p.type concentration=1e17 uniform
solve init
solve vgate=-1.5
solve vgate=-3
save outfile=mos2ex15-3V20.str
# tonyplot mos2ex15-3V20.str -set mos2ex15_BD.set
log outfile=mos2ex15_CV20.log
solve vgate=-2.8 vstep=0.2 vfinal=3.0 name=gate ac freq=1e6 previous
go atlas
mesh
x.mesh loc=-0.01 spac=0.01
x.mesh loc=0.01 spac=0.01
y.mesh loc=-0.04 spac=0.001
y.mesh loc=0.02 spac=0.001
region number=1 x.min=-0.01
material=aluminum
region number=2 x.min=-0.01
material=poly
region number=3 x.min=-0.01
material=oxide
region number=4 x.min=-0.01

x.max=0.01 y.min=-0.04 y.max=-0.03

x.max=0.01 y.min=-0.03 y.max=-0.005 \


x.max=0.01 y.min=-0.005 y.max=0.0

x.max=0.01 y.min=0.0 y.max=0.02

SILVACO PROGRAMMING
material=silicon
electrode x.min=-0.01 x.max=0.01 y.min=-0.04 y.max=-0.03 name=gate
electrode bottom name=substrate
doping region=2 p.type concentration=1e21 uniform
doping region=4 p.type concentration=1e17 uniform
solve init
solve vgate=-1.5
solve vgate=-3
save outfile=mos2ex15-3V21.str
# tonyplot mos2ex15-3V21.str -set mos2ex15_BD.set
log outfile=mos2ex15_CV21.log
solve vgate=-2.8 vstep=0.2 vfinal=3.0 name=gate ac freq=1e6 previous
tonyplot -overlay mos2ex15_CV21.log mos2ex15_CV20.log
mos2ex15_CV19.log -set mos2ex15_CV.set
quit
Effect of Poly Doping on Threshold Voltage
# (c) Silvaco Inc., 2013
go atlas
mesh
x.mesh
x.mesh
x.mesh
x.mesh
x.mesh
x.mesh

loc=-0.20
loc=-0.15
loc=-0.05
loc=0.05
loc=0.15
loc=0.20

spac=0.025
spac=0.025
spac=0.010
spac=0.010
spac=0.025
spac=0.025

y.mesh
y.mesh
y.mesh
y.mesh
y.mesh
y.mesh

loc=-0.04
loc=-0.03
loc=-0.005
loc=0.0
loc=0.01
loc=0.10

spac=0.005
spac=0.005
spac=0.0025
spac=0.0005
spac=0.002
spac=0.02

region number=1 x.min=-0.20


material=oxide
region number=2 x.min=-0.20
material=silicon
region number=3 x.min=-0.05
material=poly
region number=4 x.min=-0.05
material=aluminum

x.max=0.20 y.min=-0.04 y.max=0.0

x.max=0.20 y.min=0.0 y.max=0.10

x.max=0.05 y.min=-0.03 y.max=-0.005 \


x.max=0.05 y.min=-0.04 y.max=-0.03

SILVACO PROGRAMMING
region number=5 x.min=-0.20 x.max=-0.15 y.min=-0.04 y.max=0.0
material=aluminum
region number=5 x.min=0.15 x.max=0.20 y.min=-0.04 y.max=0.0
material=aluminum
electrode
electrode
electrode
electrode

\
\

x.min=-0.20 x.max=-0.15 y.min=-0.04 y.max=0.0


name=source
x.min=-0.05 x.max=0.05 y.min=-0.04 y.max=-0.03 name=gate
x.min=0.15 x.max=0.20 y.min=-0.04 y.max=0.0
name=drain
bottom name=substrate

doping region=2 p.type concentration=1e18 uniform


doping region=3 n.type concentration=1e19 uniform
doping x.min=-0.2 x.max=-0.05 y.min=0.0 y.max=0.01
concentration=1e20 \
n.type uniform
doping x.min=0.05 x.max=0.2
y.min=0.0 y.max=0.01
concentration=1e20 \
n.type uniform
models cvt srh
solve init
solve vdrain=0.005
solve vdrain=0.05
solve vgate=0.05
log outfile=mos2ex16_19.log
solve vgate=0.4 vstep=0.05 vfinal=1.0 name=gate
extract name="nVt" x.val from curve(v."gate",i."drain") where
y.val=0.5e-8/0.1
save outfile=mos2ex16.str
tonyplot mos2ex16.str
go atlas
mesh
x.mesh
x.mesh
x.mesh
x.mesh
x.mesh
x.mesh

loc=-0.20
loc=-0.15
loc=-0.05
loc=0.05
loc=0.15
loc=0.20

spac=0.025
spac=0.025
spac=0.010
spac=0.010
spac=0.025
spac=0.025

y.mesh
y.mesh
y.mesh
y.mesh
y.mesh
y.mesh

loc=-0.04
loc=-0.03
loc=-0.005
loc=0.0
loc=0.01
loc=0.10

spac=0.005
spac=0.005
spac=0.0025
spac=0.0005
spac=0.002
spac=0.02

SILVACO PROGRAMMING
region number=1 x.min=-0.20
material=oxide
region number=2 x.min=-0.20
material=silicon
region number=3 x.min=-0.05
material=poly
region number=4 x.min=-0.05
material=aluminum
region number=5 x.min=-0.20
material=aluminum
region number=5 x.min=0.15
material=aluminum
electrode
electrode
electrode
electrode

x.max=0.20 y.min=-0.04 y.max=0.0

x.max=0.20 y.min=0.0 y.max=0.10

x.max=0.05 y.min=-0.03 y.max=-0.005 \


x.max=0.05 y.min=-0.04 y.max=-0.03

x.max=-0.15 y.min=-0.04 y.max=0.0

x.max=0.20

y.min=-0.04 y.max=0.0

x.min=-0.20 x.max=-0.15 y.min=-0.04 y.max=0.0


name=source
x.min=-0.05 x.max=0.05 y.min=-0.04 y.max=-0.03 name=gate
x.min=0.15 x.max=0.20 y.min=-0.04 y.max=0.0
name=drain
bottom name=substrate

doping region=2 p.type concentration=1e18 uniform


doping region=3 n.type concentration=1e20 uniform
doping x.min=-0.2 x.max=-0.05 y.min=0.0 y.max=0.01
concentration=1e20 \
n.type uniform
doping x.min=0.05 x.max=0.2
y.min=0.0 y.max=0.01
concentration=1e20 \
n.type uniform
models cvt srh
solve init
solve vdrain=0.005
solve vdrain=0.05
solve vgate=0.05
log outfile=mos2ex16_20.log
solve vgate=0.4 vstep=0.05 vfinal=1.0 name=gate
extract name="nVt" x.val from curve(v."gate",i."drain") where
y.val=0.5e-8/0.1
go atlas
mesh
x.mesh
x.mesh
x.mesh
x.mesh
x.mesh
x.mesh

loc=-0.20
loc=-0.15
loc=-0.05
loc=0.05
loc=0.15
loc=0.20

spac=0.025
spac=0.025
spac=0.010
spac=0.010
spac=0.025
spac=0.025

y.mesh loc=-0.04
y.mesh loc=-0.03

spac=0.005
spac=0.005

SILVACO PROGRAMMING
y.mesh
y.mesh
y.mesh
y.mesh

loc=-0.005
loc=0.0
loc=0.01
loc=0.10

spac=0.0025
spac=0.0005
spac=0.002
spac=0.02

region number=1 x.min=-0.20


material=oxide
region number=2 x.min=-0.20
material=silicon
region number=3 x.min=-0.05
material=poly
region number=4 x.min=-0.05
material=aluminum
region number=5 x.min=-0.20
material=aluminum
region number=5 x.min=0.15
material=aluminum
electrode
electrode
electrode
electrode

x.max=0.20 y.min=-0.04 y.max=0.0

x.max=0.20 y.min=0.0 y.max=0.10

x.max=0.05 y.min=-0.03 y.max=-0.005 \


x.max=0.05 y.min=-0.04 y.max=-0.03

x.max=-0.15 y.min=-0.04 y.max=0.0

x.max=0.20

y.min=-0.04 y.max=0.0

x.min=-0.20 x.max=-0.15 y.min=-0.04 y.max=0.0


name=source
x.min=-0.05 x.max=0.05 y.min=-0.04 y.max=-0.03 name=gate
x.min=0.15 x.max=0.20 y.min=-0.04 y.max=0.0
name=drain
bottom name=substrate

doping region=2 p.type concentration=1e18 uniform


doping region=3 n.type concentration=1e21 uniform
doping x.min=-0.2 x.max=-0.05 y.min=0.0 y.max=0.01
concentration=1e20 \
n.type uniform
doping x.min=0.05 x.max=0.2
y.min=0.0 y.max=0.01
concentration=1e20 \
n.type uniform
models cvt srh
solve init
solve vdrain=0.005
solve vdrain=0.05
solve vgate=0.05
log outfile=mos2ex16_21.log
solve vgate=0.4 vstep=0.05 vfinal=1.0 name=gate
extract name="nVt" x.val from curve(v."gate",i."drain") where
y.val=0.5e-8/0.1
tonyplot -overlay mos2ex16_21.log mos2ex16_20.log mos2ex16_19.log
quit
Partially Depleted SOI - Vt and Subthreshold Slope
# (c) Silvaco Inc., 2013
go atlas
TITLE SOI device simulation

SILVACO PROGRAMMING
#
# 0.2um of silicon on 0.4um oxide substrate
#
mesh
space.mult=1.0
#
x.mesh loc=0.00
spac=0.50
x.mesh loc=1.15
spac=0.02
x.mesh loc=1.5
spac=0.1
x.mesh loc=1.85
spac=0.02
x.mesh loc=3
spac=0.5
#
y.mesh loc=-0.017 spac=0.02
y.mesh loc=0.00
spac=0.005
y.mesh loc=0.1
spac=0.02
y.mesh loc=0.2
spac=0.01
y.mesh loc=0.6
spac=0.25
#
region
num=1 y.max=0 oxide
region
num=2 y.min=0 y.max=0.2 silicon
region
num=3 y.min=0.2 oxide
#
#*********** define the electrodes ************
# #1-GATE #2-SOURCE #3-DRAIN #4-SUBSTRATE(below oxide)
#
electrode
name=gate
x.min=1 x.max=2 y.min=-0.017 y.max=-0.017
electrode
name=source x.max=0.5 y.min=0 y.max=0
electrode
name=drain x.min=2.5 y.min=0 y.max=0
electrode
substrate
#
#*********** define the doping concentrations *****
#
doping
uniform conc=2e17 p.type reg=2
doping
gauss n.type conc=1e20 char=0.2 lat.char=0.05 reg=2
x.r=1.0
doping
gauss n.type conc=1e20 char=0.2 lat.char=0.05 reg=2
x.l=2.0
save
outf=soiex01_0.str
tonyplot
soiex01_0.str -set soiex01_0.set
#
# set interface charge separately on front and back oxide interfaces
interf
qf=3e10 y.max=0.1
interf
qf=1e11 y.min=0.1
#
# set workfunction of gate
contact
name=gate n.poly
#
# select models
models
conmob srh auger bgn fldmob print
#
solve init
#
# do IDVG characteristic

SILVACO PROGRAMMING
#
method
newton
trap
solve
prev
solve
vgate=-0.2
solve
vdrain=0.05
solve
vdrain=0.1
#
# ramp gate voltage
log
outf=soiex01_1.log master
solve
vgate=0.1 vstep=0.1 name=gate vfinal=1.5
#
# plot resultant IDVG threshold voltage curve
tonyplot
soiex01_1.log -set soiex01_1.set
#
# plot resultant IDVG subthreshold slope curve
tonyplot
soiex01_1.log -set soiex01_2.set
#
#
extract name="subvt" \
1.0/slope(maxslope(curve(v."gate",log10(abs(i."drain")))))
#
#
extract name="vt"
(xintercept(maxslope(curve(v."gate",abs(i."drain")))) \
- abs(ave(v."drain"))/2.0)
#
quit

Fully Depleted SOI - Vt and Subthreshold Slope


# (c) Silvaco Inc., 2013
go atlas
TITLE SOI device simulation
#
# 0.1um of silicon on 0.4um oxide substrate
#
mesh
space.mult=1.0
#
x.mesh loc=0.00
spac=0.50
x.mesh loc=1.15
spac=0.02
x.mesh loc=1.5
spac=0.1
x.mesh loc=1.85
spac=0.02
x.mesh loc=3
spac=0.5
#
y.mesh loc=-0.017 spac=0.02
y.mesh loc=0.00
spac=0.005
y.mesh loc=0.05
spac=0.02
y.mesh loc=0.1
spac=0.01
y.mesh loc=0.5
spac=0.25

SILVACO PROGRAMMING
#
region
num=1 y.max=0
oxide
region
num=2 y.min=0
y.max=0.1 silicon
region
num=3 y.min=0.1 oxide
#
#*********** define the electrodes ************
# #1-GATE #2-SOURCE #3-DRAIN #4-SUBSTRATE(below oxide)
#
electrode
name=gate
x.min=1 x.max=2 y.min=-0.017 y.max=-0.017
electrode
name=source x.max=0.5 y.min=0 y.max=0
electrode
name=drain x.min=2.5 y.min=0 y.max=0
electrode
substrate
#
#*********** define the doping concentrations *****
#
doping
uniform conc=1e17 p.type reg=2
doping
gauss n.type conc=1e20 char=0.2 lat.char=0.05 reg=2
x.r=1.0
doping
gauss n.type conc=1e20 char=0.2 lat.char=0.05 reg=2
x.l=2.0
save
outf=soiex02_0.str
tonyplot
soiex02_0.str -set soiex02_0.set
#
# set interface charge separately on front and back oxide interfaces
interf
qf=3e10 y.max=0.05
interf
qf=1e11 y.min=0.05
#
# set workfunction of gate
contact
name=gate n.poly
#
# select models
models
conmob srh auger bgn fldmob print
#
solve init
#
# do IDVG characteristic
#
method
newton
trap
solve
prev
solve
vgate=-0.2
solve
vdrain=0.05
solve
vdrain=0.1
#
# ramp gate voltage
log
outf=soiex02_1.log master
solve
vgate=0.1 vstep=0.1 name=gate vfinal=1.5
#
# plot resultant IDVG threshold voltage curve
tonyplot
soiex02_1.log -set soiex02_1.set
#
# plot resultant IDVG subthreshold slope curve
tonyplot
soiex02_1.log -set soiex02_2.set

SILVACO PROGRAMMING
#
#
extract name="subvt" \
1.0/slope(maxslope(curve(v."gate",log10(abs(i."drain")))))
#
#
extract name="vt"
(xintercept(maxslope(curve(v."gate",abs(i."drain")))) \
- abs(ave(v."drain"))/2.0)
#
quit

Partially vs Fully Depleted SOI - Leakage Current Analysis


# (c) Silvaco Inc., 2013
go atlas
#
# Define deckbuild variables
set simid=0.2
set sibot=0.4
set oxbot=1.0
#
TITLE SOI device simulation
#
# 0.4um of silicon on 0.6um oxide substrate
#
mesh space.mult=1.5
#
x.mesh loc=0.00
spac=0.250
x.mesh loc=1.15
spac=0.02
x.mesh loc=1.5
spac=0.05
x.mesh loc=1.85
spac=0.02
x.mesh loc=3
spac=0.25
#
y.mesh loc=-0.017 spac=0.25
y.mesh loc=0.00
spac=0.0025
y.mesh loc=$simid spac=0.02
y.mesh loc=$sibot spac=0.005
y.mesh loc=$oxbot spac=0.1
#
region
num=1 y.max=0 oxide
region
num=2 y.min=0 y.max=$sibot silicon
region
num=3 y.min=$sibot oxide
#
#*********** define the electrodes ************
# #1-GATE #2-SOURCE #3-DRAIN #4-SUBSTRATE(below oxide)
#
electrode
name=gate
x.min=1 x.max=2 y.min=-0.017 y.max=-0.017
electrode
name=source x.max=0.5 y.min=0 y.max=0

SILVACO PROGRAMMING
electrode
name=drain x.min=2.5 y.min=0 y.max=0
electrode
substrate
#
#*********** define the doping concentrations *****
#
doping
uniform conc=1.75e17 p.type reg=2
doping
gauss n.type conc=1e20 char=0.2 lat.char=0.05 reg=2
x.r=1.0
doping
gauss n.type conc=1e20 char=0.2 lat.char=0.05 reg=2
x.l=2.0
save
outf=soiex03_0.str
tonyplot
soiex03_0.str -set soiex03_0.set
#
# set interface charge separately on front and back oxide interfaces
interf
qf=3e10 y.max=$simid
interf
qf=1e11 y.min=$simid
#
# set workfunction of gate
contact
name=gate n.poly
#
# select models
models
conmob srh bgn fldmob print hcte
impact
selb
#
solve init
#
method
newton autonr trap maxtrap=10
#
# Perform leakage current analysis
log
outf=soiex03_1.log
solve
prev
solve
vdrain=0.05
solve
vdrain=0.1 vfinal=3.3 vstep=0.1 name=drain
#
extract name="ids_leakage" max(abs(i."drain"))
#
# plot resultant IDVD leakage current curve
tonyplot
soiex03_1.log -set soiex03_1.set
#
quit
The "Kink" Effect in Partially Depleted SOI MOSFETs
# (c) Silvaco Inc., 2013
go atlas
TITLE SOI device simulation
#
# 0.2um of silicon on 0.4um oxide substrate
#
mesh
space.mult=1.0
#
x.mesh loc=0.00 spac=0.50

SILVACO PROGRAMMING
x.mesh loc=1.15 spac=0.02
x.mesh loc=1.5 spac=0.1
x.mesh loc=1.85 spac=0.01
x.mesh loc=3
spac=0.5
#
y.mesh loc=-0.017 spac=0.02
y.mesh loc=0.00
spac=0.005
y.mesh loc=0.15
spac=0.02
y.mesh loc=0.3
spac=0.01
y.mesh loc=0.7
spac=0.25
#
region
num=1 y.max=0 oxide
region
num=2 y.min=0 y.max=0.3 silicon
region
num=3 y.min=0.3 oxide
#
#*********** define the electrodes ************
# #1-GATE #2-SOURCE #3-DRAIN #4-SUBSTRATE(below oxide)
#
electrode
name=gate
x.min=1 x.max=2 y.min=-0.017 y.max=-0.017
electrode
name=source x.max=0.5 y.min=0 y.max=0
electrode
name=drain x.min=2.5 y.min=0 y.max=0
electrode
substrate
#
#*********** define the doping concentrations *****
#
doping
uniform conc=1e17 p.type reg=2
doping
gauss n.type conc=1e20 char=0.2 lat.char=0.05 reg=2
x.r=1.0
doping
gauss n.type conc=1e20 char=0.2 lat.char=0.05 reg=2
x.l=2.0
save
outf=soiex04_0.str
tonyplot
soiex04_0.str -set soiex04_0.set
#
# set interface charge separately on front and back oxide interfaces
interf
qf=3e10 y.max=0.1
interf
qf=1e11 y.min=0.1
#
# set workfunction of gate
contact
name=gate n.poly
#
# select models
models
cvt srh bgn print
#
impact
selb
solve
init
#
# do IDVG characteristic
#
method
newton trap maxtrap=10
solve
prev
solve
vdrain=0.05
solve
vdrain=0.1

SILVACO PROGRAMMING
#
# ramp gate voltage to 1, 2 and
solve
vgate=0.2 vstep=0.2
save
outf=soiex04_1.str
solve
vgate=0.2 vstep=0.2
save
outf=soiex04_2.str
solve
vgate=0.2 vstep=0.2
save
outf=soiex04_3.str
#
# Now do ID/VDS characteristic
load
infile=soiex04_1.str
solve
prev
log
outf=soiex04_1.log
solve
vfinal=3.3 vstep=0.1
log
outf=tmp
#
load
infile=soiex04_2.str
solve
prev
log
outf=soiex04_2.log
solve
vfinal=3.3 vstep=0.1
log
outf=tmp
#
load
infile=soiex04_3.str
solve
prev
log
outf=soiex04_3.log
solve
vfinal=3.3 vstep=0.1
#
tonyplot -overlay soiex04_1.log
soiex04_1.set
quit

3V
name=gate vfinal=1
name=gate vfinal=2
name=gate vfinal=3

master
name=drain
master
name=drain
master
name=drain
soiex04_2.log soiex04_3.log -set

Breakdown in SOI MOSFETs - Effect of Lattice Heating


# (c) Silvaco Inc., 2013
go atlas
TITLE Ultra-Thin SOI simulation with Energy Balance and Nonisothermal
Energy Balance Models
mesh
#
x.mesh
x.mesh
x.mesh
x.mesh
x.mesh
#
y.mesh
y.mesh

space.mult=1.0
loc=0.00
loc=1.15
loc=1.5
loc=1.85
loc=3

spac=0.250
spac=0.02
spac=0.05
spac=0.02
spac=0.25

loc=-0.012 spac=0.25
loc=0.00
spac=0.0025

SILVACO PROGRAMMING
y.mesh loc=0.025 spac=0.02
y.mesh loc=0.05
spac=0.005
y.mesh loc=0.5
spac=0.1
#
region
num=1 y.max=0 oxide
region
num=2 y.min=0 y.max=0.05 silicon
region
num=3 y.min=0.05 oxide
#
#*********** define the electrodes ************
# #1-GATE #2-SOURCE #3-DRAIN #4-SUBSTRATE(below oxide)
#
electrode
name=gate
x.min=1 x.max=2 y.min=-0.012 y.max=-0.012
electrode
name=source x.max=0.5 y.min=0 y.max=0
electrode
name=drain x.min=2.5 y.min=0 y.max=0
electrode
substrate
#
#*********** define the doping concentrations *****
#
doping
uniform conc=1.75e17 p.type reg=2
doping
gauss n.type conc=1e20 char=0.2 lat.char=0.05 reg=2
x.r=1.0
doping
gauss n.type conc=1e20 char=0.2 lat.char=0.05 reg=2
x.l=2.0
#
material
taurel.el=0.2e-12 taumob.el=0.2e-12
models
conmob bgn fldmob hcte.el consrh auger print
#
impact
selb length.rel lrel.el=0.02
#
contact
number=2 n.polysilicon
#
solve
init
save
outf=soiex06_0.str
tonyplot
soiex06_0.str -set soiex06_0.set
#
method
newton maxtrap=6 temp.tol=1.e-4 trap
#
# Id-Vd calculations EB model
solve
vgate=1
solve
vgate=2
solve
vgate=4
#
log
outf=soiex06_eb.log master
#
solve
vdrain=0.00625
solve
vdrain=0.0125
solve
vdrain=0.025
solve
vdrain=0.05
#
method
newton maxtrap=6 temp.tol=1.e-4 trap
#
solve
vdrain=0.1 vstep=0.025 vfinal=2 electr=3

SILVACO PROGRAMMING
#
solve
vdrain=2.2 vstep=0.2 electr=3 vfinal=4.5
save
outf=soiex06_eb.str
#
go atlas
#
mesh
space.mult=1.0
#
x.mesh loc=0.00
spac=0.250
x.mesh loc=1.15
spac=0.02
x.mesh loc=1.5
spac=0.05
x.mesh loc=1.85
spac=0.02
x.mesh loc=3
spac=0.25
#
y.mesh loc=-0.012 spac=0.25
y.mesh loc=0.00
spac=0.0025
y.mesh loc=0.025 spac=0.02
y.mesh loc=0.05
spac=0.005
y.mesh loc=0.5
spac=0.1
#
region
num=1 y.max=0 oxide
region
num=2 y.min=0 y.max=0.05 silicon
region
num=3 y.min=0.05 oxide
#
#*********** define the electrodes ************
# #1-GATE #2-SOURCE #3-DRAIN #4-SUBSTRATE(below oxide)
#
electrode
name=gate
x.min=1 x.max=2 y.min=-0.012 y.max=-0.012
electrode
name=source x.max=0.5 y.min=0 y.max=0
electrode
name=drain x.min=2.5 y.min=0 y.max=0
electrode
substrate
#
#*********** define the doping concentrations *****
#
doping
uniform conc=1.75e17 p.type reg=2
doping
gauss n.type conc=1e20 char=0.2 lat.char=0.05 reg=2
x.r=1.0
doping
gauss n.type conc=1e20 char=0.2 lat.char=0.05 reg=2
x.l=2.0
#
thermcontact num=1
x.min=0 x.max=6.5 y.min=0.5 y.max=0.5
#
material
taurel.el=0.2e-12 taumob.el=0.2e-12
models
conmob bgn fldmob hcte.el lat.temp consrh auger print
#
impact
selb length.rel lrel.el=0.02
#
contact
number=2 n.polysilicon
#
solve
init
#
method
newton maxtrap=6 temp.tol=1.e-4 trap

SILVACO PROGRAMMING
#
# Id-Vd calculations NEB model
#
solve
vgate=1
solve
vgate=2
solve
vgate=4
#
log
outf=soiex06_neb.log master
#
solve
vdrain=0.00625
solve
vdrain=0.0125
solve
vdrain=0.025
solve
vdrain=0.05
#
method
newton maxtrap=6 temp.tol=1.e-4 trap
#
solve
vdrain=0.1 vstep=0.025 vfinal=2 electr=3
#
solve
vdrain=2.2 vstep=0.2 electr=3 vfinal=4.5
#
save
outf=soiex06_neb.str
#
tonyplot
-overlay soiex06_eb.log soiex06_neb.log -set soiex06.set
#
quit

Epitaxial GaAs MESFET S-Parameters


# (c) Silvaco Inc., 2013
go atlas
Title

MBE Epitaxial GaAs MESFET - S parameters calculation

# Define the mesh


mesh space.mult=1.0
#
x.mesh loc=0.00 spac=0.3
x.mesh loc=2.3 spac=0.02
x.mesh loc=2.7 spac=0.02
x.mesh loc=5 spac=0.3
#
y.mesh loc=0.00 spac=0.01
y.mesh loc=0.04 spac=0.03
y.mesh loc=0.12 spac=0.02
y.mesh loc=6 spac=1.0

SILVACO PROGRAMMING
# Region specification: Defined as two regions for different
properties
region
region

num=1 GaAs x.min=0 x.max=5 y.min=0 y.max=0.12


num=2 GaAs x.min=0 x.max=5 y.min=0.12 y.max=6.12

# Electrode specification
elec
elec
elec

num=1
num=2
num=3

name=source
name=drain
name=gate

x.min=0.0 y.min=0.0 x.max=1.0 y.max=0.0


x.min=4.0 y.min=0.0 x.max=5.0 y.max=0.0
x.min=2.35 length=0.3

# Doping specification
doping region=1 uniform conc=1.0e17 n.type
doping region=2 uniform conc=1.0e15 p.type
# Set models, material and contact parameters
contact num=3 work=4.77
models region=1 print conmob fldmob srh optr
models region=2 srh optr
material region=2
# Solution - use gummel newton for initial then switch to full newton
method gummel newton
solve vgate=0
save outfile=mesfetex02_1.str
tonyplot mesfetex02_1.str -set mesfetex02_0.set
solve vdrain=0.025 vstep=0.025 vfinal=0.1 name=drain
method newton
solve vdrain=0.2 vstep=0.1 vfinal=0.6 name=drain
solve vdrain=0.8 vstep=0.2 vfinal=3 name=drain
# Small signal ac analysis with s-parameter calculation
log outf=mesfetex02_ac.log s.param inport=gate outport=drain width=100
solve ac.analysis direct frequency=1.e9 fstep=2.e9 nfsteps=20
tonyplot
tonyplot

mesfetex02_ac.log -set mesfetex02_1.set


mesfetex02_ac.log -set mesfetex02_2.set

quit

InGaAs/InP HBT DC and High Frequency Characteristics


# (c) Silvaco Inc., 2013
go devedit

SILVACO PROGRAMMING
region reg=1 mat=InGaAs \
points="0,0 0.5,0 0.5,0.15 0,0.15 0,0"
#
impurity id=1 region.id=1 imp="Composition Fraction X" \
x1=0 x2=0 y1=0 y2=0 \
peak.value=0.47 comb.func=Multiply \
rolloff.y=both conc.func.y=Constant \
rolloff.x=both conc.func.x=Constant
#
impurity id=2 region.id=1 imp=Donors \
x1=0 x2=0 y1=0 y2=0 \
peak.value=1e+19 ref.value=1000000000000 comb.func=Multiply \
rolloff.y=both conc.func.y=Constant \
rolloff.x=both conc.func.x=Constant
region reg=2 mat=InP \
points="0,0.15 0.5,0.15 0.5,0.25 0,0.25 0,0.15"
#
impurity id=1 region.id=2 imp=Donors \
x1=0 x2=0 y1=0 y2=0 \
peak.value=2e+18 ref.value=1000000000000 comb.func=Multiply \
rolloff.y=both conc.func.y=Constant \
rolloff.x=both conc.func.x=Constant
region reg=3 mat=InP \
points="0,0.25 0.5,0.25 0.5,0.35 0,0.35 0,0.25"
#
impurity id=1 region.id=3 imp=Donors \
x1=0 x2=0 y1=0 y2=0 \
peak.value=4e+17 ref.value=1000000000000 comb.func=Multiply \
rolloff.y=both conc.func.y=Constant \
rolloff.x=both conc.func.x=Constant
region reg=4 mat=InGaAs \
points="0,0.35 0.5,0.35 1,0.35 2,0.35 2,0.42 0,0.42 0,0.35"
#
impurity id=1 region.id=4 imp=Acceptors \
x1=0 x2=0 y1=0 y2=0 \
peak.value=2e+19 ref.value=1000000000000 comb.func=Multiply \
rolloff.y=both conc.func.y=Constant \
rolloff.x=both conc.func.x=Constant
#
impurity id=2 region.id=4 imp="Composition Fraction X" \
x1=0 x2=0 y1=0 y2=0 \
peak.value=0.47 comb.func=Multiply \
rolloff.y=both conc.func.y=Constant \
rolloff.x=both conc.func.x=Constant
region reg=5 mat=InGaAs \
points="0,0.42 2,0.42 2,1 0,1 0,0.42"
#
impurity id=1 region.id=5 imp="Composition Fraction X" \

SILVACO PROGRAMMING
x1=0 x2=0 y1=0 y2=0 \
peak.value=0.47 comb.func=Multiply \
rolloff.y=both conc.func.y=Constant \
rolloff.x=both conc.func.x=Constant
#
impurity id=2 region.id=5 imp=Donors \
x1=0 x2=0 y1=0 y2=0 \
peak.value=1e+16 ref.value=1000000000000 comb.func=Multiply \
rolloff.y=both conc.func.y=Constant \
rolloff.x=both conc.func.x=Constant
region reg=6 mat=InGaAs \
points="0,1 2,1 2.35,1 3,1 3,1.3 0,1.3 0,1"
#
impurity id=1 region.id=6 imp="Composition Fraction X" \
x1=0 x2=0 y1=0 y2=0 \
peak.value=0.47 comb.func=Multiply \
rolloff.y=both conc.func.y=Constant \
rolloff.x=both conc.func.x=Constant
#
impurity id=2 region.id=6 imp=Donors \
x1=0 x2=0 y1=0 y2=0 \
peak.value=6e+18 ref.value=1000000000000 comb.func=Multiply \
rolloff.y=both conc.func.y=Constant \
rolloff.x=both conc.func.x=Constant
region reg=7 mat=InP \
points="0,1.3 3,1.3 3,1.5 0,1.5 0,1.3"
#
impurity id=1 region.id=7 imp=Donors \
x1=0 x2=0 y1=0 y2=0 \
peak.value=10000000000000 ref.value=1000000000000
comb.func=Multiply \
rolloff.y=both conc.func.y=Constant \
rolloff.x=both conc.func.x=Constant
region reg=8 name=emitter mat=Contact elec.id=1 work.func=0 \
points="0,0 0,-0.05 0.5,-0.05 0.5,0 0,0"
region reg=9 name=base mat=Contact elec.id=2 work.func=0 \
points="1,0.35 1,0.3 2,0.3 2,0.35 1,0.35"
region reg=10 name=collector mat=Contact elec.id=3 work.func=0 \
points="2.35,1 2.35,0.95 3,0.95 3,1 2.35,1"

# Set Meshing Parameters


#
base.mesh height=0.1 width=0.125
#

SILVACO PROGRAMMING
bound.cond max.slope=28 max.ratio=300 rnd.unit=0.001
line.straightening=1 \
align.points when=automatic
#
constr.mesh max.angle=90 max.ratio=200 max.height=1 \
max.width=1 min.height=0.0001 min.width=0.0001
#
constr.mesh x1=0 x2=0.5 y1=-0.05 y2=0.325 max.height=0.04
constr.mesh x1=0 x2=0.5 y1=0.325 y2=0.35 max.height=0.02
constr.mesh x1=0 x2=2.0 y1=0.35 y2=0.5
max.height=0.02
constr.mesh x1=0 x2=2.0 y1=0.5
y2=0.7
max.height=0.04
constr.mesh x1=0 x2=2.0 y1=0.95 y2=1.0
max.height=0.04
constr.mesh x1=0 x2=3.0 y1=1.0
y2=1.05 max.height=0.04
#
# Perform mesh operations
#
mesh
#
structure outf=hbtex06_0.str
tonyplot hbtex06_0.str -set hbtex06_0.set
go atlas
#
title InGaAs/InP HBT simulation
#
# Material and model specification
#
material material=InGaAs align=0.36
material material=InP
align=0.36
#
# Cap1
InGaAs region
material region=1 taun0=5.0e-10 taup0=1.0e-9 vsatn=2.5e7 mun0=4000
mup0=200
#
# Cap2
InP
region
material region=2 taun0=5.0e-9 taup0=5.0e-9 vsatn=2.0e7 mun0=2000
mup0=100
#
# Emitter
InP
region
material region=3 taun0=1.0e-8 taup0=2.0e-8 vsatn=2.0e7 mun0=3000
mup0=160
#
# Base
InGaAs region p-type
material region=4 taun0=3.0e-10 taup0=3.0e-10 vsatn=2.5e7 mun0=5000
mup0=240
#
# Collector
InGaAs region
material region=5 taun0=1.0e-7 taup0=1.0e-7 vsatn=2.5e7 mun0=10000
mup0=400
#
# Subcollector InGaAs region

SILVACO PROGRAMMING
material region=6 taun0=1.0e-9
mup0=200
#
model material=InP
srh optr
fermidirac print
model material=InGaAs srh optr
fermidirac print
#
# Initial solution
output con.band val.band
solve init
#
# Calculate Gummel plot and AC
solve prev
#
# 1 - emitter 2 - base
log outf=hbtex06_1.log
solve v2=0.01
solve v2=0.025
direct
solve v2=0.1
direct
solve v2=0.65
direct
save

taup0=1.0e-9 vsatn=2.5e7

mun0=4000

fldmob evsatmod=1 ecritn=6.e3


fldmob evsatmod=1 ecritn=3.e3

parameters versus Vbe (Vce) at 1 MHz

3 - collector

v3=0.01 ac freq=10 direct


v3=0.025 vstep=0.025 electr=23 nstep=2 ac freq=1e6
v3=0.1

vstep=0.1

electr=23 nstep=5 ac freq=1e6

v3=0.65

vstep=0.05

electr=23 nstep=6 ac freq=1e6

outf=hbtex06_2.str

solve v2=0.975 v3=0.975 vstep=0.025 electr=23 nstep=3 ac freq=1e6


#
# Frequency domain AC analysis up to 100 GHz
#
log outf=hbtex06_3.log s.param gains inport=base outport=collector
width=50
load inf=hbtex06_2.str master.in
solve previous ac freq=1 direct
solve ac freq=10 fstep=10 mult.f nfstep=8 direct
solve ac freq=2e9 direct
solve ac freq=5e9 direct
solve ac freq=1e10 direct
solve ac freq=2e10 fstep=2e10 nfstep=5 direct
#
# Extraction of parameters
#
extract init inf="hbtex06_1.log"
#

SILVACO PROGRAMMING
# Maximum cutoff frequency
extract name="Ft_max" max(g."collector""base"/(6.28*c."base""base"))
#
# Base bias at maximum cutoff frequency
extract name="Vbe@Ft_max" x.val from curve (v."base",
g."collector""base"/(6.28*c."base""base" )) where y.val=$"Ft_max"
#
# Input (base) capacitance at maximum cutoff frequency
extract name="Cbb@Ft_max)" y.val from curve (v."base",
abs(c."base""base" )) where x.val=$"Vbe@Ft_max"
#
# Transconductance at maximum cutoff frequency
extract name="Gm@Ft_max)" y.val from curve (v."base",
abs(g."collector""base" )) where x.val=$"Vbe@Ft_max"
#
#
# Gummel plot
tonyplot

hbtex06_1.log -set hbtex06_1_log.set

#
# AC current gain versus frequency
tonyplot hbtex06_3.log -set hbtex06_4_log.set
#
# S12 & S21 polar coordinates
tonyplot hbtex06_3.log -set hbtex06_4_s12.set
#
# S11& S22 Smith chart
tonyplot hbtex06_3.log -set hbtex06_4_s11.set
#
quit
InP/InGaAs/InP Double HBT with varying doping profile
#
#
#
#

(c) Silvaco Inc., 2013


An example of a double hetrostructure bipolar transitor.
The device is built using Atlas and incorporates doping
profiles sepecified by external ASCII files.

go atlas
mesh
x.mesh
x.mesh
x.mesh
x.mesh

loc=0.0
loc=0.3
loc=0.6
loc=1.0

spac=0.05
spac=0.05
spac=0.05
spac=0.05

y.mesh loc=0.0 spac=0.02


y.mesh loc=0.048 spac=0.01
y.mesh loc=0.05 spac=0.01

SILVACO PROGRAMMING
y.mesh
y.mesh
y.mesh
y.mesh
y.mesh
y.mesh
y.mesh
y.mesh
y.mesh
y.mesh
y.mesh
y.mesh
y.mesh
y.mesh
y.mesh
y.mesh
y.mesh
y.mesh
y.mesh
y.mesh
y.mesh
y.mesh
y.mesh
y.mesh
y.mesh
y.mesh

loc=0.052 spac=0.01
loc=0.06 spac=0.01
loc=0.145 spac=0.01
loc=0.15 spac=0.01
loc=0.151 spac=0.005
loc=0.18 spac=0.01
loc=0.19 spac=0.01
loc=0.2 spac=0.01
loc=0.21 spac=0.002
loc=0.2199 spac=0.0001
loc=0.22 spac=0.005
loc=0.2201 spac=0.0001
loc=0.23 spac=0.005
loc=0.26 spac=0.01
loc=0.29 spac=0.005
loc=0.2999 spac=0.0001
loc=0.3 spac=0.05
loc=0.301 spac=0.001
loc=0.31 spac=0.005
loc=0.32 spac=0.005
loc=0.34 spac=0.05
loc=0.7 spac=0.03
loc=0.72 spac=0.005
loc=0.721 spac=0.005
loc=0.725 spac=0.01
loc=1.0 spac=0.07

region num=1
region num=2
x.comp=0.47
region num=3
region num=4
x.comp=0.47
region num=5

material=oxide
material=InGaAs x.min=0.0 x.max=0.3 y.min=0.0 y.max=0.15
material=InP x.min=0.0 x.max=0.3 y.min=0.15 y.max=0.22
material=InGaAs x.min=0.0 x.max=0.6 y.min=0.22 y.max=0.3
material=InP x.min=0.0 x.max=1.0 y.min=0.3 y.max=1.0

electrode num=1 name=emitter x.min=0.0 x.max=0.3 y.min=0.0 y.max=0.0


electrode num=2 name=base x.min=0.45 x.max=0.6 y.min=0.22 y.max=0.22
electrode num=3 name=collector bottom
# ########################
# Here two ASCII files are called to specify the doping properties.
# hbtex08_n will provide n type doping and hbtex08_p will provide
# p type doping. Each file can be viewed by selecting the file
# name i.e. hbtex08_p and then pulling down the tool menu in tonyplot
# and selecting TextEditor whilst the file name is still highlighted.
# By performing a vertical cutline through the structure i.e
hbtex08.str
# the doping profiles can be easily viewed.

SILVACO PROGRAMMING
doping x.min=0.0 x.max=1.0 y.min=0.0 y.max=1.0 n.type ascii
infile=hbtex08_n.dat
doping x.min=0.0 x.max=1.0 y.min=0.0 y.max=1.0 p.type ascii
infile=hbtex08_p.dat
mobility material=InP f.conmun=hbtex08_InP_skr.lib
f.conmup=hbtex08_InP_skr.lib
mobility material=InGaAs f.conmun=hbtex08_InGaAs_skr.lib
f.conmup=hbtex08_InGaAs_skr.lib
model fermi print cubic35
method climit=1e-4
output band.param con.band val.band e.mob h.mob flowlines u.srh
u.auger
solve init
solve previous
save outf=hbtex08.str
tonyplot hbtex08.str -set hbtex08_doping.set
#quit
# NB.
# v3 means a voltage on electrode 3 which is the collector.
# v2 means a voltage on electrode 2 which is the base.
solve
solve
solve
solve
solve

v3=0.0001
v3=0.001
v3=0.01
v3=0.1
v3=2

solve
solve
solve
solve
solve

v2=0.0001
v2=0.001
v2=0.01
v2=0.1
vstep=0.05 vfinal=0.4 electrode=2

log outf=hbtex08_IV.log
solve
solve vstep=0.05 vfinal=1.5 electrode=2
save outfile=hbtex08_IV.str
tonyplot hbtex08_IV.str
tonyplot hbtex08_IV.log -set hbtex08_gummel.set
tonyplot hbtex08_IV.log -set hbtex08_IV_dccurrentgain.set
extract init infile="hbtex08_IV.log"

SILVACO PROGRAMMING
extract name="Ic" y.val from curve(v."base",i."collector") where
x.val=1.5
extract name="Ib" y.val from curve(v."base",i."base") where x.val=1.5
extract name="betamax" $Ic/$Ib
#quit
# Frequency analysis
go atlas
mesh infile=hbtex08.str
mobility material=InP f.conmun=hbtex08_InP_skr.lib
f.conmup=hbtex08_InP_skr.lib
mobility material=InGaAs f.conmun=hbtex08_InGaAs_skr.lib
f.conmup=hbtex08_InGaAs_skr.lib
model fermi print cubic35
method climit=1e-4
output band.param con.band val.band
load infile=hbtex08.str master
solve previous
solve
solve
solve
solve
solve
solve
solve

v3=0.0001
v3=0.001
v3=0.01
v3=0.1
v3=0.5
v3=0.75
v3=1.0

ac
ac
ac
ac
ac
ac
ac

freq=1e6
freq=1e6
freq=1e6
freq=1e6
freq=1e6
freq=1e6
freq=1e6

solve
solve
solve
solve
solve
solve
solve

v2=0.0001
v2=0.001
v2=0.01
v2=0.1
v2=0.5
v2=0.75
v2=1.0

ac
ac
ac
ac
ac
ac
ac

freq=1e6
freq=1e6
freq=1e6
freq=1e6
freq=1e6
freq=1e6
freq=1e6

log outf=hbtex08_freq.log gains inport=base outport=collector width=50


solve

v2=1.0 v3=1.0
freq=1 fstep=10
solve v2=1.0 v3=1.0
solve v2=1.0 v3=1.0
solve v2=1.0 v3=1.0
solve v2=1.0 v3=1.0
solve v2=1.0 v3=1.0
solve v2=1.0 v3=1.0

vstep=0.025 electrode=23
nfstep=7 mult.freq
vstep=0.025 electrode=23
vstep=0.025 electrode=23
vstep=0.025 electrode=23
vstep=0.025 electrode=23
vstep=0.025 electrode=23
vstep=0.025 electrode=23

ac \
ac
ac
ac
ac
ac
ac

freq=2e7
freq=4e7
freq=6e7
freq=1e8
freq=2e8
freq=4e8

SILVACO PROGRAMMING
solve
solve
solve
solve

v2=1.0
v2=1.0
v2=1.0
v2=1.0

v3=1.0
v3=1.0
v3=1.0
v3=1.0

vstep=0.025
vstep=0.025
vstep=0.025
vstep=0.025

electrode=23
electrode=23
electrode=23
electrode=23

ac
ac
ac
ac

freq=1e9
freq=2.5e9
freq=3.5e9
freq=2.2e10

tonyplot hbtex08_freq.log -set hbtex08_freq_accurrentgain.set


tonyplot hbtex08_freq.log -set hbtex08_freq_unilateralpowergain.set
quit
PHEMT High Frequency Analysis
# (c) Silvaco Inc., 2013
go devedit
DevEdit version="2.1" library="1.15"
work.area left=0 top=-0.01 right=4.5 bottom=0.5
# SILVACO Library V1.15
region reg=1 mat=GaAs color=0xffb2 pattern=0x9 \
points="0,0 1,0 1.1,0 1.5,0.05 0,0.05 0,0"
#
impurity id=1 region.id=1 imp=Donors color=0x906000 \
x1=0 x2=0 y1=0 y2=0 \
peak.value=2e+18 ref.value=1000000000000 comb.func=Multiply \
rolloff.y=both conc.func.y=Constant \
rolloff.x=both conc.func.x=Constant
#
constr.mesh region=1 default
region reg=2 mat=GaAs color=0xffb2 pattern=0x9 \
points="2.9,0 3.5,0 4.5,0 4.5,0.05 2.5,0.05 2.9,0"
#
impurity id=1 region.id=2 imp=Donors color=0x906000 \
x1=0 x2=0 y1=0 y2=0 \
peak.value=2e+18 ref.value=1000000000000 comb.func=Multiply \
rolloff.y=both conc.func.y=Constant \
rolloff.x=both conc.func.x=Constant
#
constr.mesh region=2 default
region reg=3 mat=AlGaAs color=0xffff96 pattern=0x9 \
points="4.5,0.05 4.5,0.08 0,0.08 0,0.05 1.5,0.05 1.75,0.05
2.25,0.05 2.5,0.05 4.5,0.05"
#
impurity id=1 region.id=3 imp="Composition Fraction X"
color=0x906000 \
x1=0 x2=0 y1=0 y2=0 \
peak.value=0.22 ref.value=0 comb.func=Multiply \
rolloff.y=both conc.func.y=Constant \

SILVACO PROGRAMMING
rolloff.x=both conc.func.x=Constant
#
impurity id=2 region.id=3 imp=Donors color=0x906000 \
x1=0 x2=0 y1=0 y2=0 \
peak.value=5e+15 ref.value=1000000000000 comb.func=Multiply \
rolloff.y=both conc.func.y=Constant \
rolloff.x=both conc.func.x=Constant
#
constr.mesh region=3 default
region reg=4 name=delta mat=AlGaAs color=0xffff96 pattern=0x9 \
points="4.5,0.08 4.5,0.081 0,0.081 0,0.08 4.5,0.08"
#
impurity id=1 region.id=4 imp="Composition Fraction X"
color=0x906000 \
x1=0 x2=0 y1=0 y2=0 \
peak.value=0.22 ref.value=0 comb.func=Multiply \
rolloff.y=both conc.func.y=Constant \
rolloff.x=both conc.func.x=Constant
#
impurity id=2 region.id=4 imp=Donors color=0x906000 \
x1=0 x2=0 y1=0 y2=0 \
peak.value=8e+18 ref.value=1000000000000 comb.func=Multiply \
rolloff.y=both conc.func.y=Constant \
rolloff.x=both conc.func.x=Constant
#
constr.mesh region=4 default
region reg=5 name=spacer mat=AlGaAs color=0xffff96 pattern=0x9 \
points="0,0.081 4.5,0.081 4.5,0.084 0,0.084 0,0.081"
#
impurity id=1 region.id=5 imp="Composition Fraction X"
color=0x906000 \
x1=0 x2=0 y1=0 y2=0 \
peak.value=0.22 ref.value=0 comb.func=Multiply \
rolloff.y=both conc.func.y=Constant \
rolloff.x=both conc.func.x=Constant
#
impurity id=2 region.id=5 imp=Donors color=0x906000 \
x1=0 x2=0 y1=0 y2=0 \
peak.value=5e+15 ref.value=1000000000000 comb.func=Multiply \
rolloff.y=both conc.func.y=Constant \
rolloff.x=both conc.func.x=Constant
#
constr.mesh region=5 default
region reg=6 mat=InGaAs color=0xffc8c8 pattern=0xa \
points="0,0.084 4.5,0.084 4.5,0.098 0,0.098 0,0.084"
#
impurity id=1 region.id=6 imp="Composition Fraction X"
color=0x906000 \
x1=0 x2=0 y1=0 y2=0 \

SILVACO PROGRAMMING
peak.value=0.78 ref.value=0 comb.func=Multiply \
rolloff.y=both conc.func.y=Constant \
rolloff.x=both conc.func.x=Constant

#
impurity id=2 region.id=6 imp=Donors color=0x906000 \
x1=0 x2=0 y1=0 y2=0 \
peak.value=5e+15 ref.value=1000000000000 comb.func=Multiply \
rolloff.y=both conc.func.y=Constant \
rolloff.x=both conc.func.x=Constant
#
constr.mesh region=6 default
region reg=7 mat=AlGaAs color=0xffff96 pattern=0x9 \
points="0,0.098 4.5,0.098 4.5,0.101 0,0.101 0,0.098"
#
impurity id=1 region.id=7 imp=Acceptors color=0x906000 \
x1=0 x2=0 y1=0 y2=0 \
peak.value=150000000000000 ref.value=1000000000000
comb.func=Multiply \
rolloff.y=both conc.func.y=Constant \
rolloff.x=both conc.func.x=Constant
#
impurity id=2 region.id=7 imp="Composition Fraction X"
color=0x906000 \
x1=0 x2=0 y1=0 y2=0 \
peak.value=0.22 ref.value=0 comb.func=Multiply \
rolloff.y=both conc.func.y=Constant \
rolloff.x=both conc.func.x=Constant
#
constr.mesh region=7 default
region reg=8 mat=AlGaAs color=0xffff96 pattern=0x9 \
points="0,0.101 4.5,0.101 4.5,0.102 0,0.102 0,0.101"
#
impurity id=1 region.id=8 imp="Composition Fraction X"
color=0x906000 \
x1=0 x2=0 y1=0 y2=0 \
peak.value=0.22 ref.value=0 comb.func=Multiply \
rolloff.y=both conc.func.y=Constant \
rolloff.x=both conc.func.x=Constant
#
impurity id=2 region.id=8 imp=Donors color=0x906000 \
x1=0 x2=0 y1=0 y2=0 \
peak.value=2e+18 ref.value=1000000000000 comb.func=Multiply \
rolloff.y=both conc.func.y=Constant \
rolloff.x=both conc.func.x=Constant
#
constr.mesh region=8 default
region reg=9 mat=AlGaAs color=0xffff96 pattern=0x9 \
points="0,0.102 4.5,0.102 4.5,0.14 0,0.14 0,0.102"
#

SILVACO PROGRAMMING
impurity id=1 region.id=9 imp=Acceptors color=0x906000 \
x1=0 x2=0 y1=0 y2=0 \
peak.value=100000000000000 ref.value=1000000000000
comb.func=Multiply \
rolloff.y=both conc.func.y=Constant \
rolloff.x=both conc.func.x=Constant
#
impurity id=2 region.id=9 imp="Composition Fraction X"
color=0x906000 \
x1=0 x2=0 y1=0 y2=0 \
peak.value=0.22 ref.value=0 comb.func=Multiply \
rolloff.y=both conc.func.y=Constant \
rolloff.x=both conc.func.x=Constant
#
constr.mesh region=9 default
region reg=10 name=GaAs mat=AlGaAs color=0xffb2 pattern=0x9 \
points="0,0.14 4.5,0.14 4.5,0.5 0,0.5 0,0.14"
#
impurity id=1 region.id=10 imp=Acceptors color=0x906000 \
x1=0 x2=0 y1=0 y2=0 \
peak.value=100000000000000 ref.value=1000000000000
comb.func=Multiply \
rolloff.y=both conc.func.y=Constant \
rolloff.x=both conc.func.x=Constant
#
constr.mesh region=10 default
region reg=11 name=source mat=Gold elec.id=1 work.func=0 color=0xe5ff
pattern=0xb \
points="0,0 0,-0.01 1,-0.01 1,0 0,0"
#
constr.mesh region=11 default
region reg=12 name=drain mat=Gold elec.id=2 work.func=0 color=0xe5ff
pattern=0xb \
points="3.5,0 3.5,-0.01 4.5,-0.01 4.5,0 3.5,0"
#
constr.mesh region=12 default
region reg=13 name=gate mat=Gold elec.id=3 work.func=0 color=0xe5ff
pattern=0xb \
points="1.75,0.05 1.75,0 2.25,0 2.25,0.05 1.75,0.05"
#
constr.mesh region=13 default
impurity id=1 imp=Donors color=0x906000 \
x1=0 x2=1 y1=0 y2=0.08 \
peak.value=5e+21 ref.value=1e+20 comb.func=Multiply \
rolloff.y=both conc.func.y="Gaussian (Dist)" conc.param.y=0.048 \
rolloff.x=both conc.func.x="Error Function" conc.param.x=0.02

SILVACO PROGRAMMING
impurity id=2 imp=Donors color=0x906000 \
x1=3.5 x2=4.5 y1=0 y2=0.08 \
peak.value=5e+21 ref.value=1e+20 comb.func=Multiply \
rolloff.y=both conc.func.y="Gaussian (Dist)" conc.param.y=0.048 \
rolloff.x=both conc.func.x="Error Function" conc.param.x=0.02
# Set Meshing Parameters
#
base.mesh height=0.1 width=0.25
#
bound.cond !apply max.slope=28 max.ratio=300 rnd.unit=5e-05
line.straightening=1 align.points when=automatic
#
imp.refine min.spacing=0.02
#
constr.mesh max.angle=90 max.ratio=3000 max.height=1 \
max.width=1 min.height=0.0001 min.width=0.0001
#
constr.mesh type=Semiconductor default
#
constr.mesh type=Insulator default
#
constr.mesh type=Metal default
#
constr.mesh type=Other default
#
constr.mesh region=1 default
#
constr.mesh region=2 default
#
constr.mesh region=3 default
#
constr.mesh region=4 default
#
constr.mesh region=5 default
#
constr.mesh region=6 default
#
constr.mesh region=7 default
#
constr.mesh region=8 default
#
constr.mesh region=9 default
#
constr.mesh region=10 default
#
constr.mesh region=11 default
#
constr.mesh region=12 default
#
constr.mesh region=13 default
#

SILVACO PROGRAMMING
# Perform mesh operations
#
Mesh Mode=MeshBuild
refine mode=y x1=0.068 y1=0.0123 x2=1.48 y2=0.038
refine mode=y x1=2.492 y1=0.0106 x2=4.402 y2=0.044
refine mode=y x1=0.106 y1=0.0089 x2=1.511 y2=0.0414
refine mode=y x1=2.515 y1=0.0046 x2=4.357 y2=0.0405
refine mode=x x1=1.571 y1=0.0568 x2=2.417 y2=0.334
refine mode=x x1=0.084 y1=0.0063 x2=0.891 y2=0.3477
refine mode=x x1=3.602 y1=0.0055 x2=4.41 y2=0.3383
refine mode=y x1=0.038 y1=0.0414 x2=1.563 y2=0.0457
refine mode=y x1=2.454 y1=0.0397 x2=4.448 y2=0.044
refine mode=y x1=0.076 y1=0.0551 x2=4.455 y2=0.2887
refine mode=y x1=0.031 y1=0.0524 x2=4.425 y2=0.074
refine mode=y x1=0.068 y1=0.0516 x2=4.44 y2=0.0761
refine mode=y x1=0.023 y1=0.0768 x2=4.463 y2=0.0787
refine mode=y x1=0.084 y1=0.106 x2=4.47 y2=0.1829
refine mode=y x1=0.061 y1=0.1044 x2=4.47 y2=0.1344
refine mode=y x1=0.046 y1=0.1036 x2=4.433 y2=0.1053
refine mode=y x1=0.061 y1=0.0862 x2=4.433 y2=0.0966
refine mode=y x1=0.038 y1=0.0856 x2=4.433 y2=0.0961
refine mode=x x1=1.556 y1=0.0499 x2=2.462 y2=0.2322
imp.refine min.spacing=0.02
constr.mesh max.angle=90 max.ratio=3000 max.height=1 \
max.width=1 min.height=0.0001 min.width=0.0001
#
constr.mesh type=Semiconductor default
#
constr.mesh type=Insulator default
#
constr.mesh type=Metal default
#
constr.mesh type=Other default
base.mesh height=0.1 width=0.25
bound.cond !apply max.slope=28 max.ratio=300 rnd.unit=5e-05
line.straightening=1 align.Points when=automatic
structure outf=hemtex06_A.str
go atlas
title

GaAs-AlGaAs-InGaAs Pseudomorphic HEMT simulation

# Load the structure generated in DEVEDIT...

SILVACO PROGRAMMING
# While running in the deckbuild after DEVEDIT input deck the
structure is
# transfered automatically: no mesh statement is needed, comment it
out
mesh infile=hemtex06_A.str master.in

# Define the workfunction for the gate contact


contact

name=gate

workfunction=4.55

# Define material parameters on material-by-material basis


material material=GaAs
align=0.6
material material=AlGaAs align=0.6
material material=InGaAs align=0.6 mun0=12000 mup0=2000 vsat=2.e7 \
taun0=1.e-8 taup0=1.e-8
# Define physical models on material-by material basis
models material=GaAs
consrh conmob fldmob print
models material=AlGaAs consrh conmob fldmob print
models material=InGaAs srh
fldmob print
# Include bands potential, and current flowlines into output
output con.band val.band flowlines
# Initial solution
solve
init
save outf=hemtex06_1.str
tonyplot hemtex06_1.str
# Apply a set of biases at the gate and drain
solve vgate = 0
solve vdrain = 0.1
solve vdrain=0.25 vfinal=2.0 vstep=0.25 name=drain
# Frequency domain AC simulation.
log outf=hemtex06_ac.log master gains s.params inport=gate
outport=drain width=50
solve ac freq=10 fstep=10 mult.f nfstep=7
solve ac freq=1e9
solve ac freq=2e9 fstep=2e9 nfstep=3

SILVACO PROGRAMMING
solve ac freq=1e10 fstep=5e9 nfstep=8
# Displaying the results
# Plot S-parameters: S12 & S21 in polar coordinates
tonyplot hemtex06_ac.log -set hemtex06_2.set
# Plot S-parameters: S11 & S22 in the form of the Smith Chart
tonyplot

hemtex06_ac.log -set hemtex06_3.set

quit

Polarization Charge Analysis GANFET


# (c) Silvaco Inc., 2013
#
# This small script allows us to loop on the device thickness to
# extract the channel charge concentration versus device thickness
#
go internal
load inf=ganfetex01_aux.in
sweep parameter=th type=list data="0.005, 0.01, 0.015, 0.02, 0.025"
save type=sdb outf=ganfetex01.dat
tonyplot ganfetex01.dat -set ganfetex01.set

CV Analysis Of Thin Gate Oxide PMOS Capacitor


# (c) Silvaco Inc., 2013
go atlas
mesh
x.m l=0 spac=1
x.m l=1 spac=1
y.m
y.m
y.m
y.m

l=-0.0035 spac=0.001
l=0 spac=0.0001
l=0.1 spac=0.02
l=0.5 spac=0.2

SILVACO PROGRAMMING
region num=1 silicon y.min=0
region num=2 oxide y.max=0
electrode name=gate top
electrode substrate
doping uniform conc=1e17 n.type
save outf=quantumex01.str
go atlas
mesh inf=quantumex01.str
contact name=gate n.poly
models cvt srh print
output con.band val.band t.quantum
method carr=2 maxtrap=10
solve outfile=quantumex01_temp.str master
log outf=quantumex01_1.log
solve vgate=0 vstep=0.1 vfinal=5 name=gate ac freq=1e6 direct
save outf=quantumex01_1.str
log off
load infile=quantumex01_temp.str master
solve
log outf=quantumex01_2.log
solve vgate=0 vstep=-0.2 vfinal=-2 name=gate ac freq=1e6 direct
save outf=quantumex01_2.str
go atlas
mesh inf=quantumex01.str
contact name=gate n.poly
models cvt srh print quantum
output con.band val.band t.quantum
method carr=2 maxtrap=10
solve outfile=quantumex01_temp.str master
log outf=quantumex01_3.log
solve vgate=0 vstep=0.1 vfinal=5 name=gate ac freq=1e6 direct
save outf=quantumex01_3.str
log off
load infile=quantumex01_temp.str master
solve
log outf=quantumex01_4.log
solve prev vgate=0 vstep=-0.1 vfinal=-2 name=gate ac freq=1e6 direct
save outf=quantumex01_4.str

SILVACO PROGRAMMING
tonyplot -overlay quantumex01_1.log quantumex01_2.log
quantumex01_3.log quantumex01_4.log -set quantumex01_1.set
tonyplot -overlay quantumex01_1.str quantumex01_3.str -set
quantumex01_2.set
extract init inf="quantumex01_1.log"
extract name="tox_cl" (3.9*8.85e-10*1.0e-4)/max(c."gate""substrate")
extract init inf="quantumex01_3.log"
extract name="tox_qm" (3.9*8.85e-10*1.0e-4)/max(c."gate""substrate")
quit
Channel Quantization in a PHEMT
# (c) Silvaco Inc., 2013
go atlas
mesh space.mult=1.0
x.m l=0.0 s=0.05
x.m l=0.1 s=0.05
x.m l=0.3 s=0.02
x.m l=0.8 s=0.02
x.m l=1.0 s=0.05
x.m l=1.1 s=0.05
y.m
y.m
y.m
y.m
y.m
y.m
y.m
y.m

l=0.0 s=0.025
l=0.01 s=0.004
l=0.11 s=0.0025
l=0.124 s=0.00025
l=0.125 s=0.00025
l=0.130 s=0.001
l=0.143 s=0.0025
l=0.600 s=0.025

region
region
region
region
region
region
region
region

num=1
num=1
num=2
num=3
num=4
num=5
num=6
num=7

material=GaAs y.max=0.01
material=GaAs y.max=0.11
material=AlGaAs y.min=0.11 y.max=0.124 x.comp=0.20
material=AlGaAs y.min=0.124 y.max=0.125 x.comp=0.20
material=AlGaAs y.min=0.125 y.max=0.130 x.comp=0.20
material=InGaAs y.min=0.130 y.max=0.145 x.comp=0.85
material=GaAs y.min=0.145 y.max=0.600
material=air y.max=0.1 x.min=0.1 x.max=0.9

elec num=1 name=source y.min=0.0 y.max=0.0 x.min=0.0 x.max=0.1


elec num=2 name=drain y.min=0.0 y.max=0.0 x.min=1.0 x.max=1.1
elec num=3 name=gate
y.min=0.0 y.max=0.1 x.min=0.3 x.max=0.80
doping uniform n.type conc=1e14
doping uniform n.type region=4 conc=3e19
doping uniform n.type region=1 conc=2.0e18
contact name=gate workf=5.3

SILVACO PROGRAMMING
material align=0.6
model fldmob conmob srh print quantum
output con.band val.band band.param t.quantum
method maxtrap=8 carr=1 climit=1e-4
solve qfactor=0.0
solve qfactor=0.1
solve qfactor=0.2
solve qfactor=0.3
solve qfactor=0.4
solve qfactor=0.6
solve qfactor=0.8
solve qfactor=1.0
log outf=quantumex03_1.log
solve
save outf=quantumex03_1.str master
tonyplot quantumex03_1.str

-set quantumex03_1.set

solve vdrain=0.01
solve vdrain=0.05
solve vdrain=0.1 vstep=0.1 vfinal=3.0 name=drain
tonyplot quantumex03_1.log

-set quantumex03_2.set

quit
Comparison of transport models for a Double gate MOSFET including quantum
effects.
# (c) Silvaco Inc., 2013
######################################################################
#######
## Double gate Mosfet, comparison between Drift-Diffusion and EnergyBalance
## models. Calculation with Bohm Quantum potential and field
dependent
## mobilities. Energy Balance case first.
######################################################################
#######
go atlas
mesh
x.m l=0.0 s=0.001
x.m l=0.03 s=0.001
y.m
y.m
y.m
y.m

l=-0.0015
l=0.0
l=0.0015
l=0.0030

s=0.0001
s=0.00005
s=0.0001
s=0.00005

SILVACO PROGRAMMING
y.m l=0.0045

s=0.0001

region
region
region

num=1 y.min=0 y.max=0.0030 silicon


num=2 y.max=0 sio2
num=3 y.min=0.0030 sio2

electrode
electrode
electrode
electrode

num=1
num=2
num=3
num=4

name=gate top x.min=0.01 x.max=0.02


name= drain x.max=0 y.min=0.0 y.max=0.003
name=source x.min=0.03 y.min=0.0 y.max=0.003
name=gate2 bottom x.min=0.01 x.max=0.02

doping region=1 p.type uniform conc=1.0E18


doping region=1 x.max=0.01 n.type uniform conc=1.0E20
doping region=1 x.min=0.02 n.type uniform conc=1.0E20
contact name=gate aluminum
contact name=gate2 aluminum common=gate
material region=2 eg300=8.05 affinity=1.0 nc300=2.8e19 nv300=1.04e19
material region=3 eg300=8.05 affinity=1.0 nc300=2.8e19 nv300=1.04e19
models bqp.n bqp.ngamma=1.2 bqp.nalpha=0.5 srh fermi ni.fermi fldmob
hcte.el evsatmod=0
method climit=1.0e-4

block clim.eb=1.0E7 meinr

output band.par con.band val.band t.quantum


solve init
solve vgate=-0.5 nocurrent
solve name=drain vdrain=0 vstep=0.005 vfinal=0.05
log outf=quantumex07_eb.log
solve name=gate vgate=-0.5 vstep=0.02 vfinal=0.5
log off
save outf=quantumex07_eb.str
####################################
### Drift Diffusion Calculation ###
####################################
go atlas
mesh
x.m l=0.0 s=0.001
x.m l=0.03 s=0.001
y.m
y.m
y.m
y.m
y.m

l=-0.0015
l=0.0
l=0.0015
l=0.0030
l=0.0045

s=0.0001
s=0.00005
s=0.0001
s=0.00005
s=0.0001

SILVACO PROGRAMMING

region
region
region

num=1 y.min=0 y.max=0.0030 silicon


num=2 y.max=0 sio2
num=3 y.min=0.0030 sio2

electrode
electrode
electrode
electrode

num=1
num=2
num=3
num=4

name=gate top x.min=0.01 x.max=0.02


name= drain x.max=0 y.min=0.0 y.max=0.003
name=source x.min=0.03 y.min=0.0 y.max=0.003
name=gate2 bottom x.min=0.01 x.max=0.02

doping region=1 p.type uniform conc=1.0E18


doping region=1 x.max=0.01 n.type uniform conc=1.0E20
doping region=1 x.min=0.02 n.type uniform conc=1.0E20
contact name=gate aluminum
contact name=gate2 aluminum common=gate
material region=2 eg300=8.05 affinity=1.0 nc300=2.8e19 nv300=1.04e19
material region=3 eg300=8.05 affinity=1.0 nc300=2.8e19 nv300=1.04e19
models bqp.n bqp.ngamma=1.2 bqp.nalpha=0.5 cvt srh fermi ni.fermi
method block climit=1.0e-4
output band.par con.band val.band t.quantum
solve init
solve vgate=-0.5 nocurrent
solve name=drain vdrain=0 vstep=0.005 vfinal=0.05
log outf=quantumex07_dd.log
solve name=gate vgate=-0.5 vstep=0.025 vfinal=0.5
log off
save outf=quantumex07_dd.str
tonyplot -overlay quantumex07_dd.log quantumex07_eb.log -set
quantumex07.set
tonyplot -overlay quantumex07_dd.str quantumex07_eb.str -set
quantumex07a.set
quit

Band-to-band tunneling at low temperature


# (c) Silvaco Inc., 2013
go internal
load inf=quantumex17_aux.in

SILVACO PROGRAMMING

sweep parameter=doping type=list data="5e18,8e18,1e19,2e19,5e19,8e19"


save type=sdb outfile=quantumex17.dat
tonyplot -overlay quantumex17_8e+19.log quantumex17_5e+19.log
quantumex17_2e+19.log quantumex17_1e+19.log quantumex17_8e+18.log
quantumex17_5e+18.log -set quantumex17_0.set
tonyplot quantumex17.dat -set quantumex17_1.set
tonyplot quantumex17.dat -set quantumex17_2.set
quit
Non-local inelastic trap assisted tunnelling in a MOS-C
# (c) Silvaco Inc., 2013
go atlas
mesh width=1.0e4
x.m loc=0.0 spac=0.5
x.m loc=1.0 spac=0.5
y.m
y.m
y.m
y.m
y.m

loc=-0.005
loc=0.0
loc=0.01
loc=0.1
loc=1.0

spac=0.0005
spac=0.0005
spac=0.001
spac=0.01
spac=0.1

region number=1 y.min=0.0 silicon


region number=2 y.max=0.0 y.min=-0.005 oxide
electrode name=gate top
electrode name=substrate bottom
doping region=1 uniform n.type conc=5.0e17
# Set up traps for Trap Assisted Tunnelling using doping
# statement with tat.trap parameter.
doping region=2 uniform tat.trap conc=1.0e19 acceptor sign=1.0e-13
sigp=1.0e-13 e.level=3.0
contact name=gate n.poly
material material=oxide mc=0.5 mv=0.5 affinity=1.07
material material=silicon nc300=2
.73e19 nv300=1.02e19
models srh fermi ni.fermi itat.sc.el tat.slicepts=51
#tat.nlderivs

SILVACO PROGRAMMING
solve init
solve prev
output con.band val.band traps.ft
save outf=quantumex20_0.str
log outf=quantumex20_0.log j.tun
solve name=gate vstep=0.05 vfinal=2.0
log off
save outf=quantumex20_1.str
method dt.max=1.0e-2
log outf=quantumex20_1.log j.tun j.disp
solve name=gate vgate=0.0 ramptime=1.0e-10 tstep=1.0e-11
log off
save outf=quantumex20_2.str
tonyplot quantumex20_0.log -set quantumex20_0.set
tonyplot quantumex20_1.log -set quantumex20_1.set
tonyplot -overlay quantumex20_0.str quantumex20_1.str
quantumex20_2.str -set quantumex20_2.set

tstop=1.0e-2

Potrebbero piacerti anche