哈喽爱吾瑞巴蒂!今天来和大家分享习经验之使用工艺仿真Process Simulation来设计器件~~会涉及到many Silvaco的技巧喔。emm关于在做好的器件上做性能分析,下次在分享吧,内容有点多多
在做工艺仿真前,打开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的使用技巧:
工艺步骤
工艺步骤一共有七个,都可以从Dialogs中直接生成代码
蚀刻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
关于注入
注入的默认值是default tilt=7, rotation=30;tilt=0才是垂直注入
定义电极
可以利用dialogs进行设置;athena认识的名称:drain,source,bulk(主体),substrate(基底),emitter,collector,base,anode,cathode,nsource,psource,ndrain,pdrain,vdd,vss,vee,vbbvcc
Athena使用操作
关于运行:
Op1.将光标定位在某一行,设置停止位,点击 ;或者可以右击行号,选择set a stop,这样,程序就可以执行到此停止,然后再次点击 会继续向下执行。
Op2.单步执行按钮
Op3.又一种执行方式run to line,就是执行到设有此标志的行,光标定位到此行,点击 ,然后执行程序,就会在标记的行处停止,标记行不会被执行!!
关于图形Plot
Op1. plot工具中同时对多张图同步操作, 可以将所有图片同时选中,但是不能取消全选,慎用。
Op2.查看掺杂情况,右击图片,选择显示
可以选择自己需要在图中显示的内容。其中等高线图可以大概看出杂质分布情况。
Op3.使用cut line 的方式看图中掺杂情况,在plot中,选择工具tools->切割线cut line,有纵向切、横向切、斜线切、任意切、点切和输入起始点切。进行切后就会出现杂质分布曲线。注意,切线后产生的杂质分布曲线是和你切线的起末点一致的。
Op4.将三幅曲线图合并到一张图上,操作方法是:将需要操作的曲线图选中,然后编辑Edit->做覆盖图make overlay就可以了。但是,我不知道怎么选中多幅图(但如果不全选的话)!老师说用滑鼠中键???俺不会呜呜呜
Op5.查看氧化层厚度,方式1:通过萃取extract;方式2:通过plot的工具栏有标尺ruler
Okay,that’s all.感谢浏览!