0% found this document useful (0 votes)
553 views85 pages

Silv Programming

This document contains Silvaco programming code for extracting key NMOS transistor parameters such as threshold voltage (Vt), slope factor (beta), and drain induced barrier lowering (DIBL) through TCAD simulations. It includes steps for device structure definition, process simulation, electrical simulation with varying gate and drain biases, and parameter extraction using the simulation results. The key parameters extracted include Vt, beta, theta, subthreshold slope, and DIBL. Plots of Id-Vg and Id-Vd curves are generated to aid in the extraction process.

Uploaded by

Aadil Sh
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
Download as docx, pdf, or txt
0% found this document useful (0 votes)
553 views85 pages

Silv Programming

This document contains Silvaco programming code for extracting key NMOS transistor parameters such as threshold voltage (Vt), slope factor (beta), and drain induced barrier lowering (DIBL) through TCAD simulations. It includes steps for device structure definition, process simulation, electrical simulation with varying gate and drain biases, and parameter extraction using the simulation results. The key parameters extracted include Vt, beta, theta, subthreshold slope, and DIBL. Plots of Id-Vg and Id-Vd curves are generated to aid in the extraction process.

Uploaded by

Aadil Sh
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1/ 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

You might also like