写在前面
昨天忙完开题相关事宜,今天正式开始毕设的实践部分,计划每天写一写今日的任务和进度,属于日记型的个人进度记录,并记录一些思路、困难、解决办法等,若对您有帮助,非常荣幸;若没有帮助,也请勿喷;如果对我的问题等有什么建议,畅所欲言啦!万分感谢。
一、失败的尝试
按照原计划,今天仿真明希的论文《3D 硅像素探测器的研究与制造》中二维硅像素传感器的结构,如图1所示
图1 平面硅探测器单像素剖面图
根据参数比例,估算了器件的大小,在仿真的过程首先遇到了因网格点过多导致的仿真错误
Error: Too many nodes generated.
Change mesh and try again.
中文解释:生成节点太多
解决:改变网格(调疏)重试
修改后进行仿真,由于器件太大,仿真速度很慢,tonyplot生成的器件需要加载很久才能显示,网格结构甚至不能出现。而且对于一些基本的操作还是不熟练,所以,打算先用小器件来熟悉一些工艺和器件仿真的代码,先实现小器件结构和相关特性的仿真,之后再找师兄要具体的器件参数。
二、简单PN结击穿特性仿真
器件结构
参考示例2即diodeex_02
击穿电压图像:
Nb=5e17
Nb=1e18
Nb=5e18
Nb=1e19
Nb=5e19
掺杂浓度 | 击穿电压 |
5.00E+17 | 5 |
1.00E+18 | 3.5 |
5.00E+18 | 2 |
1.00E+19 | 1.85 |
5.00E+19 | 1.63 |
和理论相符,随着掺杂浓度提高,击穿电压降低,但不符合经验公式。
三、深入理解器件仿真和工艺仿真的区别
不能混用
例如 器件仿真(go atlas)时不能使用deposit 等工艺流程
工艺仿真中遇到了一个难题
如何在器件背面进行高浓度离子注入
简单找了手册,教程,例子等,都没有找到背面离子注入的例子
四、继续学习例子
mos工艺仿真(athena)
init orientation=100 c.phos=1e14 space.mul=2
1.初始化的衬底:晶向100;掺入磷,浓度为1e14 ;全局网格间距(spacing)倍数为2(网格变稀疏)
diffus time=30 temp=1000 dryo2 press=1.00 hcl=3
2.扩散:干氧氧化生成SiO2,即栅氧层 :扩散总时间:30min;氛围的温度:1000℃;扩散的气体氛围:干氧氧化;指定气氛的分压:单位是atm,默认值是1
etch oxide thick=0.02
3.刻蚀:刻蚀掉表面0.02um的氧化层
1、3对比:
implant boron dose=8e12 energy=100 pears
4.离子注入 注入硼(P型);注入剂量:8e12;注入离子的能量100,单位KeV,注入后杂质浓度的峰值位置和注入能量有关;离子注入所选择的模型,pears指的是泊松分布。具体区别可仿真离子,如下:
离子注入:高斯分布、泊松分布、SVDP方法分布的区别
分析:感觉峰值处很接近,SVDP拖尾长
diffus temp=950 time=100 weto2 hcl=3
5.扩散:湿氧氧化,温度:950℃;时间100min;湿氧环境:生成速率快,但是致密度没有干氧好,用作隔离;氧化剂气流中HCL的百分比,用于去除Na杂质离子
diffus time=50 temp=1000 t.rate=4.000 dryo2 press=0.10 hcl=3
6.低压扩散:从结果来看是让杂质激活,均匀分布。时间=50min;温度=100℃;t.rate:温度是变温时,设定温度的变化率;扩散的气体氛围是干氧;压力=0.1atm;hcl在气流中占比3%
diffus time=220 temp=1200 nitro press=1
7.扩散:感觉也是杂质激活,在氮气氛围下。时间=220min;温度=1200℃;氮气氛围下;压力=1atm
diffus time=90 temp=1200 t.rate=-4.444 nitro press=1
8.扩散:氮气氛围变温(减少)扩散。 时间=90mn;温度=1200;温度变化率=-4.444;氮气氛围;常压。
etch oxide all
9.刻蚀:刻蚀全部的氧化层 all:指定的材料全部被刻蚀
diffus time=20 temp=1000 dryo2 press=1 hcl=3
10.扩散:干氧氧化,生成栅氧,这是真的。 扩散时间:20min;温度:1000;干氧;常压;HCL占比3%
etch oxide all
11.刻蚀 不明白为什么又要刻蚀掉
diffus time=11 temp=925 dryo2 press=1.00 hcl=3
12.扩散生长栅氧化层 时间=11min;温度=925;干氧氧化;常压;3%
extract name="gateox" thickness oxide mat.occno=1 x.val=0.05
参数提取 栅氧厚度,<QSTRING>:tonyplot中可以显示的量都可以作为该参数,gateox在tonyplot中显示了,但不好人工读取,因此可以提取出。命名为gateox,实时输出行会显示gateox=……;<value_single_line>厚度;材料存在位置是1区,应该指的是硅?;x的值在0.05附近?
结果:
gateox=100.164 angstroms (0.0100164 um) X.val=0.05
implant boron dose=9.5e11 energy=10 pearson
13.离子注入:硼(P型) ;注入剂量:9.5e11;注入能量:10KeV;泊松分布
depo poly thick=0.2 divi=10
14淀积多晶硅 电极材料:多晶硅;淀积厚度:0.2um;divisions 外延层纵向网格点数,默认为10
etch poly left p1.x=0.35
15.刻蚀多晶硅,区域:x=0.35以左全部的多晶硅。被刻蚀的材料:多晶硅;LEFT,RIGHT,ABOVE,BELOW:梯形刻蚀,刻蚀区域需由相应的 P1.X,P1.Y 和P2.X,P2.Y 指定;P1.X,P1.Y,P2.X 和 P2.Y:left/right/above/below 刻蚀的位置(μm),p1 参数不可省;
method fermi compress
diffuse time=3 temp=900 weto2 press=1.0
氧化多晶硅:好像必须得加这个数值分析方法,应该是多晶硅和硅的差别导致的
16、扩散 湿氧氧化。时间3min,温度:900;湿氧环境;常压
implant phosphor dose=3.0e13 energy=20 pearson
17.离子注入磷 (n型) 注入剂量:3e13;能量:20KeV;泊松分布
注入前后对比
depo oxide thick=0.120 divisions=8
18.淀积氧化层,作为隔离用 ,厚度为0.12um;分为8份。
etch oxide dry thick=0.120
19.刻蚀掉厚度为0.120um的氧化层。DRY:刻蚀表面形貌不变,整体下降 THICKNESS 大小,如果 ANGLE 和 UNDERCUT设定了,则表面形貌会受其影响;干法刻蚀的刻蚀厚度
implant arsenic dose=5.0e15 energy=50 pearson
20.离子注入砷 。 注入剂量5e15,能量=20KeV;泊松分布
好像是可以调整阈值电压
method fermi compress
diffuse time=1 temp=900 nitro press=1.0
21.和多晶硅氧化一样,先设置这样的数值方法。扩散(应该是砷粒子的激活特有的格式)时间:1min;温度:900;氮气环境;常压。
前后对比
etch oxide left p1.x=0.2
22.刻蚀x=0.2以左的氧化层,来淀积漏区电极。
前后对比
deposit alumin thick=0.03 divi=2
23.淀积铝。厚度=0.03um,分成两份
前后对比
etch alumin right p1.x=0.18
24.刻蚀金属铝。x=0.18的右侧
对比
提取特性:
extract name="nxj" xj silicon mat.occno=1 x.val=0.1 junc.occno=1
2.提取结深:xj:结深;silicon:材料;材料编号1;给出x轴、y轴的位置;结存在位置
结果:
nxj=0.174286 um from top of first Silicon layer X.val=0.1
nxj=0.101934 um from top of first Silicon layer X.val=0.3
extract name="n++ sheet rho" sheet.res material="Silicon" mat.occno=1 x.val=0.05 region.occno=1
3.提取方块电阻。命名为n++方块电阻;硅材料,材料位置1,x=0.05;区域标号1
n++ sheet rho=29.0936 ohm/square X.val=0.05
x=0.05处,是重掺杂的n+区
extract name="ldd sheet rho" sheet.res material="Silicon" \
mat.occno=1 x.val=0.3 region.occno=1
4.提取方块电阻。和上一条区别在于位置是x=0.3处的
ldd sheet rho=2176.81 ohm/square X.val=0.3 LDD区域 :为减弱热电子效应做的轻掺杂区
x=0.3处电阻明显大于x=0.1,从上图可看出x=0.3处掺杂浓度低
extract name="chan surf conc" surf.conc impurity="Net Doping" \
material="Silicon" mat.occno=1 x.val=0.45
5.提取沟道表面(电子)浓度。net doping x=0.45
chan surf conc=3.7235e+016 atoms/cm3 X.val=0.45
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
outfile="extract.dat"
6.这是提取一个范围的值。材料:多晶硅;偏置步长0.2,从0增加到2;x的位置为0.45;方块电导随多晶硅偏置变化。可见,达到阈值电压后,栅压越大,电导越大。导通后类似电阻
extract name="n1dvt" 1dvt ntype vb=0.0 qss=1e10 x.val=0.49
7.提取一维阈值电压?体电压为0;表面电荷QSS=1e10;x的位置在0.49um
n1dvt=0.610322 V X.val=0.49
structure mirror right
结构操作:可以保存和导入结构,也可以对结构做镜像或上下翻转。结构向右镜像(left,right,top,bottom)上下:flip.y
结构上下反转
找到办法了,可以进行背面掺杂了 得来全不费工夫
electrode name=gate x=0.5 y=0.1
electrode name=source x=0.1
electrode name=drain x=1.1
electrode name=substrate backside
电极定义:栅极:指定一个材料的一个点即可,这样该材料就整个是一个电极,(0.5,0.1)是多晶硅所在位置,因此多晶硅就是栅极;源极;漏极;背面是衬底(体电极?Vb)
注意和go atlas不同,电极定义在最后,而atlas好像是一开始就定义了
structure outfile=mos1ex01_0.str
结构操作 保存当前结构到结构文件
tonyplot mos1ex01_0.str -set mos1ex01_0.set
显示当前结构。一直不太明白 -set .set什么意思
总之就设置显示格式,显示一张图时应该没什么重要性
还得专门复习一下tonyplot,回头写一篇Tonyplot各种”花里胡哨(bu'shi)神奇“的专栏。
刚将-set.set删除重新显示了一下
第一幅图是有net doping的详细显示,第二幅没有,或许这就是区别吧
go atlas
器件仿真
models cvt srh print
物理模型的选取 models和impact都可以进行物理模型的选取,可以调取的模型固定
有无print好像并没有什么区别奥
书上说:相应器件类型的默认模型,由于有 print 参数,所以在 DeckBuild 输出窗口将会列出此仿真模型及其参数。
models mos print
models bipolar prin
ATLAS> models cvt srh print
Mesh
Type: non-cylindrical
Total grid points: 1613
Total triangles : 3034
Obtuse triangles : 78 (2.57086 %)
contact name=gate n.poly
#定义接触 栅极是n型多晶硅,没指出的其他的是欧姆接触,如金属铝与n+
interface qf=3e10
#表面电荷3e10
method newton
#牛顿数值方法
solve init
#计算初始值(电流密度啥的)
# Bias the drain
solve vdrain=0.1
#给个漏极电压Vd=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")))
#提取斜率
extract name="ntheta" ((max(abs(v."drain")) * $"nbeta")/max(abs(i."drain"))) \
- (1.0 / (max(abs(v."gate")) - ($"nvt")))
#提取Ntheta 总之就mos管的重要参数,想知道的话需要复习半导体物理与器件
quit
上述三个提取结果:
报错了
ATLAS> tonyplot mos1ex01_1.log
ATLAS> #-set mos1ex01_1_log.set
ATLAS> # extract device parameters
ATLAS>
EXTRACT> init infile="mos1ex01_1.log"
Can't read file 'mos1ex01_1.log': No such file or directory
EXTRACT> extract name="nvt" (xintercept(maxslope(curve(abs(v."gate"),abs(i."drain")))) - abs(ave(v."drain"))/2.0)
initialization has not been performed
EXTRACT> extract name="nbeta" slope(maxslope(curve(abs(v."gate"),abs(i."drain")))) * (1.0/abs(ave(v."drain")))
initialization has not been performed
EXTRACT> extract name="ntheta" ((max(abs(v."drain")) * $"nbeta")/max(abs(i."drain"))) - (1.0 / (max(abs(v."gate")) - ($"nvt")))
initialization has not been performed
EXTRACT> quit
tonyplot mos1ex01_1.log -set mos1ex01_1_log.set
试一试这句话加不加set的区别
看过了,没有什么区别,一样的曲线
找到了这些设置文件,用记事本打开是这样的:
确实是没找到.log文件
还找到了工艺过程图保存的路径:
就在事例库附近
.log文件的丢失导致的报错就先记录在这里了。这个例子就先结束了
基本上每局都看懂了,但是整体上一些重复步骤的功能啥的还不明白,还有反推的过程是难点,现在一步一步正着来能看懂,但给我器件,让我来做工艺流程,可是个大难点。不过这个能力是一定要慢慢感悟和掌握的,我看许老师和师兄师姐可以利用设计的工艺流程来申请一些专利,还是很有创新空间的。何况本科做的也不好,工艺方面学到的微乎其微,还好没直接到工艺线上,就先拿这仿真软件练手喽,期待以后的流片。
写在最后
以前用word记录每日学习心得,不过还是感觉CSDN的平台更好,有写日记的感觉,还有和人交流的感觉,应该还会有栏目之类的,帮助我分类,日后看起来也方便。
也不用过于追求格式,实时云端更新,不会像word记录,之后可能不怎么翻,写在这上边,还是有仪式感的,想着可能会有人看,有人点赞,会很开心。虽然我基础很差,但熟能生巧,加油鸭!
能够记录一下每日学过的,就像以前复习理论课抄PPT一样,记下来总归不一样,虽花的时间多,但印象很深刻。而且刚开始需要记得多,之后懂得多了就会越来越少!
今天有了点小小的进展,按理说应该是第三部分的内容,但最后才有,就写到这吧。
先不请教别人,我仿真的思路就是大致按照比例,仿真简单的二维单像素PIN传感器结构,遇到的困难是,网格设置不好,而且对于工艺流程还不够熟练,所以贸然进行仿真只会白费力气,心疼我电脑!
所以这时候我想的是缩小器件,不是等比例,而是有点夸张的,就是厚度也缩小到几微米。刚好就能用上examples里边的diodeex_01,但是遇到了一个问题,他是器件仿真(go atlas),更复杂一点的多次淀积、刻蚀的区域实在难画。然后我直接想着用depo语句,结果报错,搜了好久,发现它是工艺仿真的语句,不能和器件仿真混用,同时器件仿真的doping也不能和工艺仿真混用。
然后就果断换了工艺仿真,感觉depo、etch更加灵活一些。但立马遇到了另外一个问题。这些工艺都是在器件表层处理的,那我PIN结构的衬底的N+怎么处理呢?想了半天,找了很久,连连叹气,都没找到解决办法。一度以为是rotation呢,但他其实是注入的角度(没看清楚是谁和谁的夹角)
(后来这个问题就“得来全不费工夫”的被解决啦,开心)
因为这个问题一筹莫展,就想着毕竟现在基础还不扎实,每天除了做课题,还是要学习一些知识,现在就是工艺仿真喽。
这时的思路是继续仿真工艺流程的示例,就开始找了MOS管的一个工艺仿真流程,逐行逐字逐句来看,遇到模块,就去查阅唐龙谷老师的silvaco简明学习教程,受益匪浅,比当初看懂了更多,也能看懂了,比如一些格式,还找到了用户手册,也在网盘下载的资料里,虽然是英文,随着知识知道的越多,应该会更有帮助。唐老师的书可能对一些细碎语法描述的少。
上边是一天的思路和一些碎碎念,下边说一下今天在课题推进方面的进展
目前的代码:(边改边tonyplot,所以代码不完善,后边还没动)
# (c) Silvaco Inc., 2013
go athena
line x loc=0.00 spac=0.5
line x loc=3.00 spac=0.2
line x loc=5.00 spac=0.25
line x loc=7.00 spac=0.25
line x loc=9.00 spac=0.2
line x loc=12.00 spac=0.5
#
line y loc=0.00 spac=0.1
line y loc=1.00 spac=0.1
line y loc=2.00 spac=0.2
line y loc=5.00 spac=0.4
init silicon c.phosph=5e16 orientation=100 space.mul=2 two.d
#diffuse time=10 temp=950 weto2 press=1.00 hcl.pc=3
depo oxide thick=0.56 div=5
etch oxide start x=3 y=0
etch continue x=3 y=-7
etch continue x=9 y=-7
etch done x=9 y=0.0
implant boron dose=1e14 energy=40
#应该还差一个热退火
depo material=aluminium thick=0.7 div=5
etch material=aluminium left p1.x=2.5
etch material=aluminium right p1.x=9.5
tonyplot
#structure flip.y
tonyplot
implant phos dose=1e14 energy=40 pearson tilt=7
save outf=diodeex01_0.str
tonyplot diodeex01_0.str -set diodeex01_0.set
model conmob fldmob srh auger bgn
contact name=anode workf=4.97
solve init
method newton
log outfile=diodeex01.log
solve vanode=0.05 vstep=0.05 vfinal=1 name=anode
tonyplot diodeex01.log -set diodeex01_log.set
quit
自动记录的过程图:
细节还没深究(哪些工艺做几遍,离子注入后的退火等)
总之做到了这里
上下翻转前后!!!开心,激动
反转后注入!终于等到这个结果啦,明天继续,并完善工艺流程的细节!