MATLAB刻蚀工艺模拟仿真---副本_第1页
MATLAB刻蚀工艺模拟仿真---副本_第2页
MATLAB刻蚀工艺模拟仿真---副本_第3页
MATLAB刻蚀工艺模拟仿真---副本_第4页
MATLAB刻蚀工艺模拟仿真---副本_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录第一章 课程总目标11.1 Si刻蚀的物理化学基础11.2 模拟工艺1第二章 软件模拟刻蚀工艺设计 顺序122.1顺序1的目标122.2顺序1的目标242.2.14+1反应模型42.2.2发射角的解决办法4第三章 软件模拟刻蚀工艺设计 顺序283.1入射角度考量9第四章 软件模拟刻蚀工艺设计 顺序3104.1考虑反应系数的刻蚀11第五章 软件模拟刻蚀工艺设计 顺序4124.1反应性离子刻蚀134.2自发脱离反应概率调整17结束语:20第一章 课程总目标在集成电路工艺飞速发展的现代,半导体工艺过程依然是复杂与昂贵。作为电子科学与技术专业的研究生依然有必要对半导体工艺有一定的了解与认识。通过课程的学习,掌握一定的集成电路工艺的原理与过程。尝试通过计算机模拟的方式,模拟半导体工艺中的刻蚀工艺。 整个课程分五阶段,从简单到复杂,使用Matlab软件进行模拟,越来越接近真实的工艺效果。在此过程中,对刻蚀工艺认识更深刻。同时对编程有更深层的认识,更好的完成模拟工作。1.1 Si刻蚀的物理化学基础Si的刻蚀原理化学反应脱离Ion溅射(x=04)Ion刻蚀(x=14)Ion刻蚀+溅射(x=04)(y=04)【其中: (S)表示反应表面,(g)表示气体】 整个刻蚀工艺,活性种与硅结合,形成四氯化硅后可能自发脱离,也可能被氯离子撞击脱离,从而完成刻蚀过程。氯离子具有一定速度,有一定几率直接通过撞击将硅溅射出来。所以整个刻蚀过程是化学反应与离子刻蚀,离子溅射的多重复合且同时发生的复杂过程。1.2 模拟工艺我们通过从简单到复杂的方法,把最终目标分割成四个小的问题你,按顺序一步步完成相应的要求,逐渐逼近真实的刻蚀工艺。第二章 软件模拟刻蚀工艺设计 顺序12.1顺序1的目标1v 掩膜的开口宽度为露出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原子在开口宽度内均匀发射。主程序如下:clear allclc%定义一个Si原子Si_class = struct(existflag,true,CountCl,0);global Si;Si = repmat(Si_class,70,100);%造出70x100的Si阵列for index_j = 1:30 for index_i = 1:70 Si(index_i,index_j).existflag= false;%某一点Si不存在时,existflag标志位将会被置为false endend%只有y=31的时候才有Si存在%-将定义Cl原子的特性-global Px Py ;%当前Cl原子所在坐标global S_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发射的水平位置 红色区%for Cl_i = 1:1000 %对Cl原子初始化: emission_x = 30+rand(1)*10;%发射源为emission_x,emission_y %-沿y逐行扫描- Px = ceil(emission_x); for Py = 31:99 if Si(Px,Py).existflag collisionprocess();%碰撞函数 break;%遇到了Si原子,该Cl消失! end endend%-显示轰击效果图-J = imrotate(S_image,-90);a = get(0);figure(position,a.MonitorPositions);image(1,1,J),colormap(jet(64);text_handle = text(100 500,100 100,MASK,MASK);set(text_handle,fontsize,18,Color,k);axis equal,axis off;%在设计中将碰撞过程编写为一个碰撞函数,用来模拟所有的碰撞过程,这样做的好处是便于为后续%的要求铺路,避免总体程序设计太过特殊以至于兼容性太差。碰撞程序如下:function collisionprocess()global Si S_image Px Py ;Si(Px,Py).CountCl = Si(Px,Py).CountCl+1;%每碰撞一次,Si俘获的Cl的数目加1Si(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:10v 考虑入射角度问题,假设发射角度在0180度内均匀分布2.2.14+1反应模型 这里碰撞涉及的Cl粒子只有两种:氯离子与活性种,因此可以与0和1表示。其数量比例是1:10。处理的方式是将数量比例转换成概率。每次发射一次粒子,粒子种类是氯离子的概率是1/11,活性种的概率是10/11。 species =rand(10/11);%1为Cl+,0为Cl*,假设活性种出现概率是Cl离子的10倍硅在与4个活性种结合后不再脱离,需要再遇到一个氯离子轰击才脱离。这将使得碰撞函数collisionprocess()被改写为:function collisionprocess()%0为Cl*,1为Cl+global Si S_image species Px Py ;CountCl = Si(Px,Py).CountCl;clearflag = species*(4=CountCl);%Si俘获四个活性种后再来一个Cl离子,将打掉该点SiSi(Px,Py).existflag = clearflag; S_image(Px,Py) = 25*clearflag+clearflag;if (CountCl0 y = emission_y+emission_k*(Px+0.5)-emission_x); if y=(Py+0.5) P = Px+1,Py; else P = Px,Py+1; endelse y = emission_y+emission_k*(Px-0.5)-emission_x); if y=301的时候才有Si存在%-将定义Cl原子的特性-global species emission_x emission_y. emission_k Px Py;%Px,Py为Cl粒子当前行进坐标%-global S_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发射的水平位置 红色区for Cl_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逐行扫描- if ABSK=200) %相当于无穷大,与垂直入射相同 Px = ceil(emission_x); for y = 31:99 Py = y; if Si(Px,Py).existflag collisionprocess(); break;%遇到了Si原子,该Cl消失! end end else x1 = (30.5-emission_y)/emission_k+ emission_x;%直线方程 if (x140)%判断是否打在光刻胶上 continue; else Px = round(x1); Py = 31; while true if Si(Px,Py).existflag collisionprocess(); break;%遇到了Si原子,该Cl消失 else P = ReturnNext();%改写Px,Py后回到while开始出 再判断 Px = P(1); Py = P(2); end end end endendJ = imrotate(S_image,-90);a = get(0);figure(position,a.MonitorPositions);image(1,1,J),colormap(jet(64);text_handle = text(100 500,100 100,MASK,MASK);set(text_handle,fontsize,18,Color,k);axis equal,axis off;轰击效果如图:4万个Cl粒子轰击效果图2万个Cl粒子轰击效果图第三章 软件模拟刻蚀工艺设计 顺序2 入射离子在鞘层领域内被电场加速,考虑到气体压力足够低,认为离子在该领域和气体分子不发生碰撞,离子在该领域获得的能量可以认为是离子电量和鞘层电压的乘积,这个能量就是离子的入射能量。 由于电离气体具有一定的温度,所以,离子具有初始热运动能量和角度,所以,离子实际入射的角度不是绝对的垂直于衬底表面入射,而是存在一个入射的角度分布。如果用R表示入射离子的入射能量和热运动能量的比: R=eVsh/kTi(e:离子电量,Vsh:鞘层电压,k:波尔兹曼常数,Ti:气体绝对温度) (假设:eVsh=50eV,kTi=0.5eV) 如果用q来表示入射角,则,该角度的入射通量可以表示为:3.1入射角度考量编写一个demo实现该分布函数(便于观察分析):function ProbabilityDensity = 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分布函数显示如下:观察该概率分布函数发现与正态分布相似,可用正态分布拟合。拟合后的曲线与原曲线重合:用拟合后的正态分布来产生角度的随机值:function angle = CreatAngle()%随机产生一个符合Gi()cos()分布的角度%sigma = 1/(GiCosDistribution(100,0)*sqrt(2*pi);%计算拟合的正态分布方差,计算结果为0.0704angle = 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粒子轰击效果第四章 软件模拟刻蚀工艺设计 顺序34.1考虑反应系数的刻蚀在考虑入射角度之后,我们对反应系数做进一步处理。完成以下要求v 掩膜的开口宽度为露出100个Si原子。v 有中性的radical Cl活性种和正离子ion Cl+入射。v 只要Cl活性种到达Si原子处即和该原子按概率结合。v 达到SiCl4,SiCl4原子就按概率脱离表面。v 计算有5000个Cl活性种入射后,衬底表面的图形。相应的反应概率如下表所示: SiClx (s)+Cl(g)SiCl(x+1) (s) 吸附反应(x=03)Sn=1-x/4SiCl3 (s)+Cl(g)SiCl4(g) 自发反应脱离Yn=0.1Si(s)Cl+Si(g) 物理溅射Y0=0.1SiClx (s)Cl+SiCl (x-y)(g)+yCl (g) 反应性刻蚀(x=14;y=14)Ye=0.3*x/4分析后可知顺序3仅仅是在顺序2的基础上修改了碰撞函数,根据上表内容重写顺序2的碰撞函数:本程序中约定当Si俘获四个活性种Cl后,在遇到一个活性种,立即消失。function collisionprocess()%0为Cl*,1为Cl+ global Si S_image species Px Py;CountCl = Si(Px,Py).CountCl;%反应方程式用多项表达式计算clearflag = (CountCl=4)&(species+species*(rand0.3). |(CountCl=3)&(species*(rand(1-CountCl/4)*(rand=1&CountCl=3)&(species*(rand(CountCl/4)*0.3). |(CountCl=0)&(species*(rand0.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万次粒子轰击效果图第五章 软件模拟刻蚀工艺设计 顺序44.1反应性离子刻蚀在完成1,2,3顺序后,增加其他更接近实际刻蚀工艺的物理和化学等参数,使模拟更具实际意义。刻蚀发生在最表面层,饱和的SiCl4被离子(ion)轰击后,脱离表面,发生刻蚀反应。YSi/Cl+=C(sqrt(Ei)-sqrt(Eth)f(a), 其中: C=0.77,Eth=20.0eV, acr=45C。 f(a)=1 (aacr);修改后的反应概率表为 吸附反应(x=03)Sn=1-x/4 自发反应脱离Yn=0.1 物理溅射Y0=0.1 反应式刻蚀(x=14;y=14)YSi/Clx=(x/4) YSi/Cl+当YSi/Cl+1,表示相邻的饱和SiCl4被刻蚀YSi/Cl+ - 1该条件不仅对碰撞过程处理函数提出了修改,而且也将修改优先级返回函数,因为YSi/Cl概率的计算还与发生碰撞时的碰撞角大小有关,粒子打在侧面的碰撞角与顶面的碰撞角互余。ReturnNext()函数内可以顺带计算出粒子击中Si的碰撞角。发射角与碰撞角的关系emission_theta= normrnd(0,0.0704);%发射角collisiontheta = abs(emission_theta);%碰撞角ReturnNext()重载后为:function P= ReturnNext()global emission_x emission_y emission_k . Px Py collisiontheta;if emission_k0 y = emission_y+emission_k*(Px+0.5)-emission_x); if y=(Py+0.5) P = Px+1,Py; collisiontheta = 0.5*pi-collisiontheta; else P = Px,Py+1; endelse y = emission_y+emission_k*(Px-0.5)-emission_x); if y=301的时候才有Si存在%-将定义Cl原子的特性-global species emission_x emission_y emission_theta . emission_k Px Py collisiontheta;%-设置系统变量-C = 0.77;Ei = 50;Eth = 20;acr = 0.25*pi;%-pi/4global f h Ysicl;f = (alpha) (alphaacr)*(cos(alpha)/cos(acr);h = C*(sqrt(Ei)-sqrt(Eth);%为求Ysicl = h*f(alpha)做准备Ysicl = 0;%-global S_image;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;S_image(301:400,emission_y) = 60;%CL发射的水平位置 红色区for Cl_i = 1:500000 %对Cl原子初始化: species =rand(10/11);%0为Cl+,1为Cl*,假设Cl离子出现概率是活性种10倍 emission_x = 300+rand(1)*100;%发射源为emission_x,1 emission_theta= normrnd(0,0.0704);%发射角 collisiontheta = abs(emission_theta);%碰撞角 emission_k= cot(emission_theta);%发射Cl的直线斜率 %emission_k= tan(rand-0.5)*pi);%发射Cl的直线斜率 ABSK = abs(emission_k); %-沿y逐行扫描- if ABSK=200) %相当于无穷大 Px = ceil(emission_x); for y = 301:999 Py = y; if Si(Px,Py).existflag collisionprocess(); break;%遇到了Si原子,该Cl消失! end end else x1 = (300.5-emission_y)/emission_k+ emission_x;%直线方程 if (x1400)%判断是否打在光刻胶上 continue; else Px = round(x1); Py = 301; while true if Si(Px,Py).existflag collisionprocess(); break;%遇到了Si原子,该Cl消失 else P = ReturnNext();%改写Px,Py后回到while开始出 再判断 Px = P(1); Py = P(2); end end end endendJ = imrotate(S_image,-90);a = get(0);figure(position,a.MonitorPositions);image(1,1,J),colormap(jet(64);text_handle = text(100 500,100 100,MASK,MASK);set(text_handle,fontsize,18,Color,k);axis equal,axis off; 碰撞函数也发生较大改动,因为YSi/Cl有可能大于1,被轰击的Si原子周围的原子有可能也被打掉,这里约定只考虑周边已经俘获了4个Cl原子的Si,并且一次只带走一个。 function collisionprocess()%0为Cl*,1为Cl+ global Si S_image species Px Py collisiontheta f h Ysicl;Ysicl = h*f(collisiontheta);CountCl = Si(Px,Py).CountCl;clearflag = (CountCl=4)&(species+species*(randYsicl). |(CountCl=3)&(species*(rand(1-CountCl/4)*(rand=1&CountCl=3)&(species*(rand(CountCl/4)*Ysicl). |(CountCl=0)&(species*(rand0.1);Si(Px,Py).existflag = clearflag; S_image(Px,Py) = 25*(Si(Px,Py).existflag)+Si(Px,Py).existflag;Cl_add = (CountCl=3)&(species*(rand1 candi = GetCandidate(); m = size(candi); if m(1) = 0 chainreacprob = Ysicl-1; x = randi(m(1);%等效于:x= randint(1,1,m(1)+1; Si(candi(x,1)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论