Silvaco TCAD仿真学习Lesson2——Athena仿真

哈喽爱吾瑞巴蒂!今天来和大家分享习经验之使用工艺仿真Process Simulation来设计器件~~会涉及到many Silvaco的技巧喔。emm关于在做好的器件上做性能分析,下次在分享吧,内容有点多多

Athena工艺仿真的操作流程

  1. 几何初始化 initial geometry
    仿真网格、基底初始化
  2. 保存与加载 save & load
    保存仿真结构、载入仿真结构并进行工艺仿真
  3. 工艺步骤 Process Simulation
    沉积deposition、离子注入ion implantation、蚀刻etching、扩散diffusing、
    Photo process、外延层生长Epitaxial
  4. 电极 Electrode
    电极定义 electrode define
  5. 结果分析 Result Analysis
    参数萃取 extract、图像显示Tony Plot

在做工艺仿真前,打开DeckBild,要设置一下,保存工艺过程中每一步的结果,这样的话,就可以查看每一个工艺所产生的结构图,非常利于初学者!!!操作方法是:Edit -> Preference -> History Settings 勾选Athena前的enable,并将length值设置为999,应用确认就可以了。
今天的案例是用Athena做工艺仿真,生成器件,这真的狠狠狠吃器件物理的功底唉。就以解读代码的方式,一起学习吧~废话不多说,直接上代码:
go athena #就是执行Athena编辑器呗
#接下来和上章一样,先画网格,不过为了和atlas区分,把关键词mesh改成line哦,画网格必须的两步:画网线切割、材料初始化。为了减少工艺时间,对称器件只需要做一半,然后通过对称操作补全另一半即可!~

#几何初始化 画横线
line x loc=0.0 spac=0.05
line x loc=0.1 spac=0.02
line x loc=0.35 spac=0.01
line x loc=0.6 spac=0.1
#画竖线
line y loc=0.0 spac=0.002
line y loc=10 spac=1
#网格材料Si初始化、掺杂硼原子初始化、晶向100、2D
init silicon c.boron=1.0e17 orientation=100 two.d #history001

#以上完成了几何初始化操作
#下面在这个几何结构上做一系列的工艺操作,从而制作出nMOS

#sacrificial "cleaning"oxide 制作氧化层做保护层
diffus time=20 temp=1000 dryo2 #扩散干氧 #history002

#vt adjust 电压调节 implant 注入硼
implant boron dose=1e11 energy=30 tilt=0 rotation=0 #history003

strip oxide #把oxide 全部吃掉 #history004

#gate oxide grown here:做栅极氧化增长:
diffus time=10 temp=945 dryo2 #氧化 #history005

#Extract a design parameter #萃取器件参数
extract name=“gateox” thickness oxide mat.occno=1 x.val=0.05 #萃取栅极氧化层厚度

depo poly thick=0.2 divi=10 #沉积生长多晶硅 #history006

#from now on the situation is 2-D #开始以二维操作
etch poly left p1.x=0.35 #吃掉0.35以左的多晶硅 #history007

diffuse time=3 temp=900 weto2 #湿氧氧化 #history008

implant phosphor dose=2e14 energy=11 tilt=0 rotation=0 #注入磷原子 #history009

depo oxide thick=0.120 divisions=8 #沉积氧化层 #history010

etch oxide dry thick=0.120 #干蚀刻 氧化层 #history011

implant arsenic dose=4.0e15 energy=28 tilt=0 rotation=0 #注入砷原子 #history012

diffuse time=1 temp=900 inert #注入惰性物 #history013

#pattern s/d contact metal 漏源极
etch oxide left p1.x=0.1 #吃掉x=0.1以左的氧化层 #history014
etch oxide start x=0.357 y=-0.15 #吃掉一个矩形,把栅极多晶硅上面的氧化层吃掉
etch cont x=0.6 y=-0.15
etch cont x=0.6 y=-0.3
etch done x=0.357 y=-0.3 #history015
#上面四行代码从start 到 done 是一条语句,蚀刻掉了(0.357,-0.15)->(0.6,-0.15)->(0.6,-0.3)->(0.357,-0.3)区域内的氧化层。

deposit alumin thick=0.1 div=20 #沉积铝 #history016
etch alumin start x=0.35 y=0.1 #吃掉一个矩形区域的铝
etch cont x=0.1 y=0.1
etch cont x=0.1 y=-0.4
etch done x=0.35 y=-0.4 #history017
#上面四行代码从start 到 done 是一条语句,蚀刻掉了(0.35,0.1)->(0.1,0.1)->(0.1,-0.4)->(0.35,0.4)区域内的铝。

#以上时工艺操作,下面是结果分析之萃取,查看器件特性

#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
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

#以上萃取语句不需要刻意记忆,可以用Dialog生成。方法与上一章的器件模拟方法不同,工艺仿真方式中的方法是:commands->syntax dialogs ->extract diags->process extract.

#以上时萃取物理特性,下面是镜像和电极定义

structure mirror right #镜像对称
structure outfile=mirror.str #保存镜像结构,完整的nMOS

electrode name=gate x=0.5 y=-0.2 #history018
electrode name=source x=0.05 y=0 #history019
electrode name=drain x=1.15 y=0 #history020
electrode name=substrate backside #history021

structure outfile=nMOS_athena.str #工艺仿真器件制作完成,保存
quit

至此,已经通过工艺仿真,制备出了nMOS,此后可以在这个器件上进行一系列物理特性分析。
源代码呈上:

go athena
#
line x loc=0.0 spac=0.05
line x loc=0.1 spac=0.02
line x loc=0.35 spac=0.01
line x loc=0.6 spac=0.1
#
line y loc=0.0 spac=0.002
line y loc=10 spac=1
#
init silicon c.boron=1.0e17 orientation=100 two.d

#sacrificial "cleaning"oxide
diffus time=20 temp=1000 dryo2
#
#vt adjust implant
implant boron dose=1e11 energy=30 tilt=0 rotation=0

strip oxide

#gate oxide grown here:-
diffus time=10 temp=945 dryo2
#
#Extract a design parameter
extract name="gateox" thickness oxide mat.occno=1 x.val=0.05
#
depo poly thick=0.2 divi=10
#
#from now on the situation is 2-D
etch poly left p1.x=0.35
#
diffuse time=3 temp=900 weto2
#
implant phosphor dose=2e14 energy=11 tilt=0 rotation=0
#
depo oxide thick=0.120 divisions=8
#
etch oxide dry thick=0.120
#
implant arsenic dose=4.0e15 energy=28 tilt=0 rotation=0
#
diffuse time=1 temp=900 inert

#pattern s/d contact metal
etch oxide left p1.x=0.1
etch oxide start x=0.357 y=-0.15
etch cont x=0.6 y=-0.15
etch cont x=0.6 y=-0.3
etch done x=0.357 y=-0.3

deposit alumin thick=0.1 div=20
etch alumin start x=0.35 y=0.1
etch cont x=0.1 y=0.1
etch cont x=0.1 y=-0.4
etch done x=0.35 y=-0.4

#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
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
structure outfile=mirror.str

electrode name=gate x=0.5 y=-0.2
electrode name=source x=0.05 y=0
electrode name=drain x=1.15 y=0
electrode name=substrate backside

structure outfile=nMOS_athena.str
quit

下面是一些在器件上做物理特性分析

######IdVd @Vg=1,2,3 Vd=0~5V 栅压为1V,2V,3V时,漏电流与漏电压的关系:(上章解释过的语句都没有在本章加注释)
go atlas simflags="-P 3"
mesh inf=nMOS_athena.str

models mos
interface qf=3e10

method newton itlimit=25 maxtrap=4

output con.band val.band charge #我不懂这句

solve init
#下面三行 分别在器件结构上设置栅压为 1v 2v 3v 分别存档,以备下面使用
solve vgate=1 outf=tempVg1
solve vgate=2 outf=tempVg2
solve vgate=3 outf=tempVg3
#使用栅压为1v的器件结构文档
load inf=tempVg1
log outf=IdVd_Vg1.log
solve vdrain=0 vstep=0.05 vfinal=5 name=drain
log off
save outf=IdVd_V1.str
#使用栅压为2v的器件结构文档
load inf=tempVg2
log outf=IdVd_Vg2.log
solve vdrain=0 vstep=0.05 vfinal=5 name=drain
log off
save outf=IdVd_V3.str
#使用栅压为3v的器件结构文档
load inf=tempVg3
log outf=IdVd_Vg3.log
solve vdrain=0 vstep=0.05 vfinal=5 name=drain
save outf=IdVd_Vg3_Vd5.str
quit

#######BVoff 计算击穿电压
go atlas simflags="-P 3"
mesh inf=nMOS_athena.str

models mos
impact selb

interface qf=3e10

method newton itlimit=25 maxtrap=4

output con.band val.band charge flowlines #(啥玩意儿啊这是,我不理解)

solve init

log outf=BVoff.log
solve vdrain=0 vstep=0.1 vfinal=1 name=drain
solve vstep=0.5 vfinal=20 name=drain compl=1e-11 cname=drain
#我觉着上面这两句意思是,在0~1v上每次增长0.1v;然后在电流达到1e-11前,漏压每次增加0.5v
save outf=BVoff_Id1e-11.str

solve vstep=0.1 vfinal=20 name=drain compl=1e-9 cname=drain
#我jio着就是在漏电流达到1e-9前,漏压每次增长0.1v
save outf=BVoff_Id1e-9.str

contact name=drain current
solve imult istep=2 ifinal=1e-6 name=drain #(救命啊,我不理解)哦对了,可以看文档!!
log off
save outf=BVoff_Id1e-6.str

extract init inf=“BVoff.log”#
extract name=“bvoff” x.val from curve(abs(v.“drain”),abs(i.“drain”)) where y.val=1.0e-7
quit

上个源码:

###### IdVd @Vg=1,2,3 Vd=0~5V
go atlas simflags="-P 3"
mesh inf=nMOS_athena.str

models mos
interface qf=3e10

method newton itlimit=25 maxtrap=4

output con.band val.band charge

solve init

solve vgate=1 outf=tempVg1
solve vgate=2 outf=tempVg2
solve vgate=3 outf=tempVg3

load inf=tempVg1
log outf=IdVd_Vg1.log
solve vdrain=0 vstep=0.05 vfinal=5 name=drain
log off
save outf=IdVd_V1.str

load inf=tempVg2
log outf=IdVd_Vg2.log
solve vdrain=0 vstep=0.05 vfinal=5 name=drain
log off
save outf=IdVd_V3.str

load inf=tempVg3
log outf=IdVd_Vg3.log
solve vdrain=0 vstep=0.05 vfinal=5 name=drain
save outf=IdVd_Vg3_Vd5.str
quit

###### BVoff
go atlas simflags="-P 3"
mesh inf=nMOS_athena.str

models mos
impact selb

interface qf=3e10

method newton itlimit=25 maxtrap=4

output con.band val.band charge flowlines

solve init

log outf=BVoff.log
solve vdrain=0 vstep=0.1 vfinal=1 name=drain
solve vstep=0.5 vfinal=20 name=drain compl=1e-11 cname=drain
save outf=BVoff_Id1e-11.str

solve vstep=0.1 vfinal=20 name=drain compl=1e-9 cname=drain
save outf=BVoff_Id1e-9.str

contact name=drain current
solve imult istep=2 ifinal=1e-6 name=drain
log off
save outf=BVoff_Id1e-6.str

extract init inf="BVoff.log"#
extract name="bvoff" x.val from curve(abs(v."drain"),abs(i."drain")) where y.val=1.0e-7
quit

下面写一些课程中讲到的关于DeckBuild的使用技巧:

  1. 工艺步骤
    工艺步骤一共有七个,都可以从Dialogs中直接生成代码

  2. 蚀刻etching的不同蚀刻方法
    ①etchall #把某材料全部etch
    ②etchleft p1.x= #左边的某个位置全部etch,如果x positiong刚好不存在,就会在x position附近以左etch , 下同
    ③etchright p1.x=
    ④etchabove p1.y= #上研磨
    ⑤etchbelow p1.y= #基板研磨
    ⑥etchstart x= y=
    etch continue x= y=
    etch continue x= y=
    …………
    etch done x= y= #逆时针有序画“圈”
    ⑦etchdry thick= #把某材料干蚀刻多少um
    # 干蚀刻就是 保留原有形状进行etch

  3. 关于注入
    注入的默认值是default tilt=7, rotation=30;tilt=0才是垂直注入

  4. 定义电极
    可以利用dialogs进行设置;athena认识的名称:drain,source,bulk(主体),substrate(基底),emitter,collector,base,anode,cathode,nsource,psource,ndrain,pdrain,vdd,vss,vee,vbbvcc

  5. Athena使用操作
    关于运行:
    Op1.将光标定位在某一行,设置停止位,点击 停止位;或者可以右击行号,选择set a stop,这样,程序就可以执行到此停止,然后再次点击 在这里插入图片描述会继续向下执行。
    Op2.单步执行按钮 在这里插入图片描述
    Op3.又一种执行方式run to line,就是执行到设有此标志的行,光标定位到此行,点击 在这里插入图片描述,然后执行程序,就会在标记的行处停止,标记行不会被执行!!

  6. 关于图形Plot
    Op1. plot工具中同时对多张图同步操作, 在这里插入图片描述可以将所有图片同时选中,但是不能取消全选,慎用。
    Op2.查看掺杂情况,右击图片,选择显示Silvaco TCAD仿真学习Lesson2——Athena仿真_第1张图片
    可以选择自己需要在图中显示的内容。其中等高线图可以大概看出杂质分布情况。
    Op3.使用cut line 的方式看图中掺杂情况,在plot中,选择工具tools->切割线cut line,有纵向切、横向切、斜线切、任意切、点切和输入起始点切。进行切后就会出现杂质分布曲线。注意,切线后产生的杂质分布曲线是和你切线的起末点一致的。
    Op4.将三幅曲线图合并到一张图上,操作方法是:将需要操作的曲线图选中,然后编辑Edit->做覆盖图make overlay就可以了。但是,我不知道怎么选中多幅图(但如果不全选的话)!老师说用滑鼠中键???俺不会呜呜呜
    Op5.查看氧化层厚度,方式1:通过萃取extract;方式2:通过plot的工具栏有标尺ruler

Okay,that’s all.感谢浏览!

你可能感兴趣的:(github,ide)