MATLAB刻蚀工艺模拟仿真..doc
《MATLAB刻蚀工艺模拟仿真..doc》由会员分享,可在线阅读,更多相关《MATLAB刻蚀工艺模拟仿真..doc(21页珍藏版)》请在冰豆网上搜索。
目录
第一章课程总目标 1
1.1Si刻蚀的物理·化学基础 1
1.2模拟工艺 1
第二章软件模拟刻蚀工艺设计顺序1 2
2.1顺序1的目标1 2
2.2顺序1的目标2 4
2.2.1‘4+1’反应模型 4
2.2.2发射角的解决办法 4
第三章软件模拟刻蚀工艺设计顺序2 8
3.1入射角度考量 9
第四章软件模拟刻蚀工艺设计顺序3 10
4.1考虑反应系数的刻蚀 11
第五章软件模拟刻蚀工艺设计顺序4 12
4.1反应性离子刻蚀 13
4.2自发脱离反应概率调整 17
结束语:
20
第一章课程总目标
在集成电路工艺飞速发展的现代,半导体工艺过程依然是复杂与昂贵。
作为电子科学与技术专业的研究生依然有必要对半导体工艺有一定的了解与认识。
通过课程的学习,掌握一定的集成电路工艺的原理与过程。
尝试通过计算机模拟的方式,模拟半导体工艺中的刻蚀工艺。
整个课程分五阶段,从简单到复杂,使用Matlab软件进行模拟,越来越接近真实的工艺效果。
在此过程中,对刻蚀工艺认识更深刻。
同时对编程有更深层的认识,更好的完成模拟工作。
1.1Si刻蚀的物理·化学基础
Si的刻蚀原理
化学反应
脱离
Ion溅射
(x=0~4)
Ion刻蚀
(x=1~4)
Ion刻蚀+溅射
(x=0~4)(y=0~4)
【其中:
(S)表示反应表面,(g)表示气体】
整个刻蚀工艺,活性种与硅结合,形成四氯化硅后可能自发脱离,也可能被氯离子撞击脱离,从而完成刻蚀过程。
氯离子具有一定速度,有一定几率直接通过撞击将硅溅射出来。
所以整个刻蚀过程是化学反应与离子刻蚀,离子溅射的多重复合且同时发生的复杂过程。
1.2模拟工艺
我们通过从简单到复杂的方法,把最终目标分割成四个小的问题你,按顺序一步步完成相应的要求,逐渐逼近真实的刻蚀工艺。
第二章软件模拟刻蚀工艺设计顺序1
2.1顺序1的目标1
v掩膜的开口宽度为露出10个Si原子。
v只有活性种入射,且为垂直入射。
v只要活性种到达Si原子处即和该原子结合。
v达到SiCl4,Si原子就脱离表面。
v计算有1000个活性种入射后,衬底表面的图形。
本程序采用显示与数据分离的设计,这样在处理数据时,能较好的与图形显示隔离,便于程序的修改和管理。
数据保存在Si阵列中,图形显示用S_image表示。
Cl发射源为[emission_x,emission_y]其中emission_x=30+rand
(1)*10;表示Cl原子在开口宽度内均匀发射。
主程序如下:
clearall
clc
%%
%定义一个Si原子
Si_class=struct('existflag',true,'CountCl',0);
globalSi;
Si=repmat(Si_class,70,100);%造出70x100的Si阵列
forindex_j=1:
30
forindex_i=1:
70
Si(index_i,index_j).existflag=false;%某一点Si不存在时,existflag标志位将会被置为false
end
end%只有y>=31的时候才有Si存在
%%
%----------------将定义Cl原子的特性-----------------------
globalPxPy;%当前Cl原子所在坐标
globalS_image;
S_image=ones(70,100);
S_image(1:
30,1:
30)=40;%光刻胶
S_image(31:
40,1:
30)=25;%真空颜色
S_image(41:
70,1:
30)=40;%光刻胶
emission_y=1;
S_image(31:
40,emission_y)=60;%CL发射的水平位置红色区
%%
forCl_i=1:
1000
%对Cl原子初始化:
emission_x=30+rand
(1)*10;%发射源为[emission_x,emission_y]
%--------沿y逐行扫描-------------------------
Px=ceil(emission_x);
forPy=31:
99
ifSi(Px,Py).existflag
collisionprocess();%碰撞函数
break;%遇到了Si原子,该Cl消失!
end
end
end
%%
%--------------显示轰击效果图-------------------
J=imrotate(S_image,-90);
a=get(0);
figure('position',a.MonitorPositions);
image(1,1,J),colormap(jet(64));
text_handle=text([100500],[100100],{'MASK','MASK'});
set(text_handle,'fontsize',18,'Color','k');
axisequal,axisoff;
%在设计中将碰撞过程编写为一个碰撞函数,用来模拟所有的碰撞过程,这样做的好处是便于为后续
%的要求铺路,避免总体程序设计太过特殊以至于兼容性太差。
碰撞程序如下:
functioncollisionprocess()
globalSiS_imagePxPy;
Si(Px,Py).CountCl=Si(Px,Py).CountCl+1;%每碰撞一次,Si俘获的Cl的数目加1
Si(Px,Py).existflag=~(4==Si(Px,Py).CountCl);%达到SiCl4就消失
S_image(Px,Py)=25*(~Si(Px,Py).existflag)+Si(Px,Py).existflag;%在映射图上将该Si原子消除
End
---------------------------------------------------------------------------------------
至此顺序1的目标1已经完成,1000次活性种的轰击效果如下:
图形中黄色部分为光刻胶,深蓝色为Si阵列,浅蓝色为真空,就分析来看完全,实现了目标1的要求。
2.2顺序1的目标2
在目标1的基础上,我们再增加两项要求:
v硅在与4个活性种结合后不再脱离,需要再遇到一个氯离子轰击才脱离,且氯离子与活性种数量比例是1:
10
v考虑入射角度问题,假设发射角度在0~180度内均匀分布
2.2.1‘4+1’反应模型
这里碰撞涉及的Cl粒子只有两种:
氯离子与活性种,因此可以与0和1表示。
其数量比例是1:
10。
处理的方式是将数量比例转换成概率。
每次发射一次粒子,粒子种类是氯离子的概率是1/11,活性种的概率是10/11。
species=rand>(10/11);%1为Cl+,0为Cl*,假设活性种出现概率是Cl离子的10倍
硅在与4个活性种结合后不再脱离,需要再遇到一个氯离子轰击才脱离。
这将使得碰撞函数collisionprocess()被改写为:
functioncollisionprocess()
%0为Cl*,1为Cl+
globalSiS_imagespeciesPxPy;
CountCl=Si(Px,Py).CountCl;
clearflag=species*(4==CountCl);%Si俘获四个活性种后再来一个Cl离子,将打掉该点Si
Si(Px,Py).existflag=~clearflag;
S_image(Px,Py)=25*clearflag+~clearflag;
if(CountCl<=3)&&(~species)
Si(Px,Py).CountCl=CountCl+1;%Cl粒子为活性种且Si俘获的Cl粒子数目未达到4个时,Si(Px,Py).CountCl加1
end
End
---------------------------------------------------------------------------------------
2.2.2发射角的解决办法
考虑到Cl粒子发射带有一定角度,发射斜率设为emission_k,本设计采用逐行扫描的办法来确定Cl粒子行进坐标,为了避免忽略Cl粒子与同一层Si原子之间发生斜碰,本设计还设计了一个搜索Cl粒子行进图中与之有接触的Si原子的程序,找出下一个将要被轰击的可能的Si原子,称之为优先级查找程序。
functionP=ReturnNext()
globalemission_xemission_yemission_k...
PxPy;
ifemission_k>0
y=emission_y+emission_k*((Px+0.5)-emission_x);
ify<=(Py+0.5)
P=[Px+1,Py];
else
P=[Px,Py+1];
end
else
y=emission_y+emission_k*((Px-0.5)-emission_x);
ify<=(Py+0.5)
P=[Px-1,Py];
else
P=[Px,Py+1];
end
End
---------------------------------------------------------------------------------------
主程序如下所示:
clearall
clc
%定义一个Si原子
Si_class=struct('existflag',true,'CountCl',0);
globalSi;
Si=repmat(Si_class,70,100);%造出700x1000的Si阵列
forindex_j=1:
30
forindex_i=1:
70
Si(index_i,index_j).existflag=false;
end
end%只有y>=301的时候才有Si存在
%----------------将定义Cl原子的特性-----------------------
globalspeciesemission_xemission_y...
emission_kPxPy;%Px,Py为Cl粒子当前行进坐标
%--------------------------------------------------
globalS_image;
S_image=ones(70,100);
S_image(1:
30,1:
30)=40;%光刻胶
S_image(31:
40,1:
30)=25;%真空颜色
S_image(41:
70,1:
30)=40;%光刻胶
emission_y=1;
S_image(31:
40,emission_y)=60;%CL发射的水平位置红色区
forCl_i=1:
20000
%对Cl原子初始化:
species=rand>(10/11);%1为Cl+,0为Cl*,假设活性种出现概率是Cl离子的10倍
emission_x=30+rand
(1)*10;%发射源为[emission_x,emission_y]
emission_k=tan((rand-0.5)*pi);%发射Cl的直线斜率
ABSK=abs(emission_k);
%--------沿y逐行扫描-------------------------
ifABSK<=0.1
continue;
elseif(ABSK>=200)%相当于无穷大,与垂直入射相同
Px=ceil(emission_x);
fory=31:
99
Py=y;
ifSi(Px,Py).existflag
collisionprocess();
break;%遇到了Si原子,该Cl消失!
end
end
else
x1=(30.5-emission_y)/emission_k+emission_x;%直线方程
if(x1<30||x1>40)%判断是否打在光刻胶上
continue;
else
Px=round(x1);
Py=31;
whiletrue
ifSi(Px,Py).existflag
collisionprocess();
break;%遇到了Si原子,该Cl消失
else
P=ReturnNext();%改写Px,Py后回到while开始出再判断
Px=P
(1);
Py=P
(2);
end
end
end
end
end
J=imrotate(S_image,-90);
a=get(0);
figure('position',a.MonitorPositions);
image(1,1,J),colormap(jet(64));
text_handle=text([100500],[100100],{'MASK','MASK'});
set(text_handle,'fontsize',18,'Color','k');
axisequal,axisoff;
轰击效果如图:
4万个Cl粒子轰击效果图
2万个Cl粒子轰击效果图
第三章软件模拟刻蚀工艺设计顺序2
入射离子在鞘层领域内被电场加速,考虑到气体压力足够低,认为离子在该领域和气体分子不发生碰撞,离子在该领域获得的能量可以认为是离子电量和鞘层电压的乘积,这个能量就是离子的入射能量。
由于电离气体具有一定的温度,所以,离子具有初始热运动能量和角度,所以,离子实际入射的角度不是绝对的垂直于衬底表面入射,而是存在一个入射的角度分布。
如果用R表示入射离子的入射能量和热运动能量的比:
R=eVsh/kTi
(e:
离子电量,Vsh:
鞘层电压,k:
波尔兹曼常数,Ti:
气体绝对温度)
(假设:
eVsh=50eV,kTi=0.5eV)
如果用q来表示入射角,则,该角度的入射通量可以表示为:
3.1入射角度考量
编写一个demo实现该分布函数(便于观察分析):
functionProbabilityDensity=GiCosDistribution(R,theta)
%发射角的分布函数
SQR=sqrt(R);
fun=@(x)2*sqrt(pi)*exp(-x.^2)/pi;
xmin=SQR*sec(theta);
q=integral(fun,xmin,Inf);
m=sqrt(R*pi)*sec(theta)*exp(R*(1-sec(theta)^2))/pi;
ProbabilityDensity=cos(theta)*(m+exp(R)*q/2);
end
分布函数显示如下:
观察该概率分布函数发现与正态分布相似,可用正态分布拟合。
拟合后的曲线与原曲线重合:
用拟合后的正态分布来产生角度的随机值:
functionangle=CreatAngle()
%随机产生一个符合Gi(θ)cos(θ)分布的角度
%sigma=1/(GiCosDistribution(100,0)*sqrt(2*pi));%计算拟合的正态分布方差,计算结果为0.0704
angle=normrnd(0,sigma);
End
将角度分布函数整合到顺序1中去,即将emission_k=cot(normrnd(0,0.0704))替代顺序1中的
emission_k=tan((rand-0.5)*pi),顺序1其他的部分均不做改动。
1万个Cl粒子轰击效果
五千个Cl粒子轰击效果
由上面两图可看出由于发射角的的收敛,使得Cl粒子轰击效率大大提高,相同Cl粒子数目下腐蚀深度顺序2明显强于顺序1。
5千个Cl粒子轰击效果
第四章软件模拟刻蚀工艺设计顺序3
4.1考虑反应系数的刻蚀
在考虑入射角度之后,我们对反应系数做进一步处理。
完成以下要求
v掩膜的开口宽度为露出100个Si原子。
v有中性的radicalCl活性种和正离子ionCl+入射。
v只要Cl活性种到达Si原子处即和该原子按概率结合。
v达到SiCl4,SiCl4原子就按概率脱离表面。
v计算有5000个Cl活性种入射后,衬底表面的图形。
相应的反应概率如下表所示:
SiClx(s)+Cl(g)→SiCl(x+1)(s)吸附反应
(x=0~3)
Sn=1-x/4
SiCl3(s)+Cl(g)→SiCl4(g)自发反应脱离
Yn=0.1
Si(s)→Cl+→Si(g)物理溅射
Y0=0.1
SiClx(s)→Cl+→SiCl(x-y)(g)+yCl(g)反应性刻蚀
(x=1~4;y=1~4)
Ye=0.3*x/4
分析后可知顺序3仅仅是在顺序2的基础上修改了碰撞函数,根据上表内容重写顺序2的碰撞函数:
本程序中约定当Si俘获四个活性种Cl后,在遇到一个活性种,立即消失。
functioncollisionprocess()
%0为Cl*,1为Cl+
globalSiS_imagespeciesPxPy;
CountCl=Si(Px,Py).CountCl;
%%
%反应方程式用多项表达式计算
clearflag=(CountCl==4)&&(~species+species*(rand<0.3))...
||(CountCl==3)&&(~species*(rand<(1-CountCl/4))*(rand<0.1))...
||(CountCl>=1&&CountCl<=3)&&(species*(rand<(CountCl/4)*0.3))...
||(CountCl==0)&&(species*(rand<0.1));
Si(Px,Py).existflag=~clearflag;
S_image(Px,Py)=25*(~Si(Px,Py).existflag)+Si(Px,Py).existflag;
Cl_add=(CountCl<=3)&&(~species*(rand<(1-CountCl/4)));
Si(Px,Py).CountCl=CountCl+Cl_add;
End
---------------------------------------------------------------------------------------
此外本顺序掩膜的开口宽度为露出100个Si原子。
即要扩宽Si阵列宽度,本次设计设置Si阵列为
%定义一个Si原子
Si_class=struct('existflag',true,'CountCl',0);
Si=repmat(Si_class,700,1000);%造出700x1000的Si阵列
%--------------------------------------------------
S_image=ones(700,1000);
S_image(1:
300,1:
300)=40;%光刻胶
S_image(301:
400,1:
300)=25;%真空颜色
S_image(401:
700,1:
300)=40;%光刻胶
emission_y=1;%高度相差10之后不会出现横着打3个
S_image(301:
400,emission_y)=60;%CL发射的水平位置红色区
%--------------------------------------------------
10万次粒子轰击效果放大图
10万次粒子轰击效果图
第五章软件模拟刻蚀工艺设计顺序4
4.1反应性离子刻蚀
在完成1,2,3顺序后,增加其他更接近实际刻蚀工艺的物理和化学等参数,使模拟更具实际意义。
刻蚀发生在最表面层,饱和的SiCl4被离子(ion)轰击后,脱离表面,发生刻蚀反应。
YSi/Cl+=C(sqrt(Ei)-sqrt(Eth))f(a),
其中:
C=0.77,Eth=20.0eV,acr=45°C。
f(a)=1(af(a)=cos(a)/cos(acr)(a>acr);
修改后的反应概率表为
吸附反应
(x=0~3)
Sn=1-x/4
自发反应脱离
Yn=0.1
物理溅射
Y0=0.1
反应式刻蚀
(x=1~4;y=1~4)
YSi/Clx=(x/4)YSi/Cl+
当YSi/Cl+>1,表示相邻的饱和SiCl4被刻蚀
YSi/Cl+-1
该条件不仅对碰撞过程处理函数提出了修改,而且也将修改优先级返回函数,因为YSi/Cl概率的计算还