Silvaco操作指南设计.docx
《Silvaco操作指南设计.docx》由会员分享,可在线阅读,更多相关《Silvaco操作指南设计.docx(58页珍藏版)》请在冰豆网上搜索。
Silvaco操作指南设计
第二篇半导体工艺及器件仿真软件Silvaco操作指南
主要介绍了半导体器件及工艺仿真软件Silvaco的基本使用。
书中通过例程引导学习工艺仿真模块Athena和器件仿真模块Atlas,通过这两部分的学习可以使学习人员深入了解半导体物理的基本知识,半导体工艺的流程,以及晶体管原理的基本原理,设计过程,器件的特性。
对于学习集成电路的制备及后道工序有一定的帮助。
第一章Silvaco软件介绍
本章将介绍下面两个VWF(虚拟wafer制备)交互工具的基本使用:
∙Deckbuild:
VWF运行时控制应用程序。
这是唯一一个从系统命令行由用户启动的程序。
∙Tonyplot:
VWF可视化应用程序。
VWF交互工具还包括版图到工艺的界面程序MaskViews,器件原型及编辑程序DevEdit,局部优化程序Optimizer以及统计分析的SPAYN工具。
但本章不介绍这部分内容。
VWF核心工具是以下两个仿真器:
∙Athena,Silvaco的高级一维和二维工艺仿真器。
∙Atlas,Silvaco的通用及标准组件的一,二,三级器件仿真器。
VWF核心工具还包括器件特性的UTMOS应用及SmartSpice电路仿真。
本章将学习:
1.使用Athena进行一个简单LDDMOS器件仿真和相关参数的抽取(如栅氧化层厚)。
2.使用Atlas进行LDDMOS器件仿真,产生一个Id/Vgs曲线并从这条曲线中进行器件参数Vt,Beta和Theta的抽取。
1.1程序启动
要启动Deckbuild程序,在系统命令行中输入
deckbuild&
几秒钟后Deckbuild窗口显示出来。
在Deckbuild启动后,你会看到如下的窗口(版本及目录名可能不相同):
Deckbuild程序窗口组成如下:
1.上面的文本窗口区用来保持仿真器的输入。
2.下面的tty区显示仿真器的输出。
Athena仿真是缺省启动的。
你会看到,在这个区中有一短的Athena文件头输出,指出你可用的许可产品。
之后跟随Athena提示符。
ATHENA>
3.在窗口上部是软件控制菜单的集合。
4.在文本区及tty区之前是仿真器控制按钮的集合。
下一步是创建一个设计,可以从草图创建,或者选择一个应用例子进行修改。
输入的程序显示在上面的文本区中,而且执行时使用仿真控制按钮就会它传到下面的tty区。
1.2选择一个应用程序例子
Deckbuild包括大量的仿真例子可以用于仿真。
这个练习使用其中之一。
当Deckbuild启动后,examplesmenu会被激活。
在Deckbuild的`MainControl'菜单有一个选择项称为`Examples...'如下显示:
可移动鼠标到`MainControl'上,按下鼠标右键。
在按下鼠标右键时,maincontrol菜单显示出来。
当鼠标右键按下后,移动光标选择`Examples...'菜单选项。
然后,放开鼠标。
几秒钟内例子目录的窗口就会显示出来,如下图。
这个练习使用例子中的MOS1目录。
如果你正在运行Deckbuild,你可以双击选择MOS1目录或从`Section'菜单中选择它。
例子是MOS2,称为`mos1ex02.in'.你可以通过鼠标或使用`SubSection'菜单选择它。
描述这个例子的文本会显示出来,应该花几分钟来阅读例子文档。
点击`LoadExample'按钮来加载输入文件到Deckbuild的文本编辑区,同时也把这个例子拷贝到你的当前工作目录。
1.3工艺模拟
这个练习主要进行一个LDDMOS晶体管的仿真。
主要有以下练习:
1.运行一次模拟
2.创建两个结构文件用于比较
3.运行MOS工艺模拟的前半部分
4.产生交互式图例
5.抽取一些工艺参数
1.3.1运行一次模拟
可以通过使用在Deckbuild文本区及tty区的实时控制按钮来交互式运行模拟。
控制按钮如下所示:
通过使用这个控制面板,可以使用以下方法来运行模拟:
1.next:
`Stepatatime',交互式模拟控制
2.stop:
运行到一个stop点,(参考以后的练习。
3.run:
使用控制面板中的Run来运行整个输入的设计(deck).
1.3.2渐进学习模拟
开始时,LDDMOS器件将一步一步地仿真。
这样允许在进行时可以有交互式检查。
可以使用history机构,向后跟踪改正设计中的错误。
在最初的仿真输入设计时,这种交互式一次一步的执行方法可以得到仿真更为精细的控制,且在设计中会更早地检测到错误,也是输入设计程序所推荐的。
要一步一次地执行,从Deckbuild控制面板中选择`next'按钮。
这个按钮每一次会从文本区发送一个单独的输入设计行到当前运行的模拟器。
在下面的tyy的Deckbuild区的模拟器提示符上显示了输入的设计行。
在文本编辑区的光标从上一行向下移动,而且在控制面板上显示的当前行数会更新(标志是`Line')。
使用`next'按钮,很可能要移动到模拟器前,而这些步骤会花费一些时间去执行。
模拟器会试图`catchup'行数,之后等待下一个模拟命令被发送。
模拟器正在执行的行总是反色的显示。
这一阶段模拟将会连到栅氧化层步gateoxidationstep(line47)。
gateoxidationstep已经简化为一个单独的扩散步,之后紧跟一个参数抽取行来抽取氧化层厚度:
extractname="gateox"thicknessoxidemat.occno=1x.val=0.05
抽取命令是Deckbuild的一个强力工具,允许在仿真进确定器件的各种特性。
extract语句确定了栅氧化层厚度。
本练习中后面会有高级的抽取工具的例子,其特征会详细解释。
进行仿真直到gateoxidethickness抽取行通过(line50).
1.3.3绘制结构
当工艺模拟完成了栅氧化层厚度抽取后,点击文本区的某一处(Deckbuild上部)。
这会取消报告输入行及光标位置的选定。
光标符号显示为一个单独的三角形。
Note:
不选择文本是很重要的,因为在Tonyplot启动时,它会试图解释任何选定文本作为一个文件名,并在读它时产生错误信息。
为了运行Tonyplot,使用Deckbuild中的`Tools'下拉菜单下的`Plot'项中的`PlotStructure'。
这将导致Deckbuild启动Tonyplot,加载当前模拟的结构并绘制它。
Deckbuild也将显示它正在启动Tonyplot的情况,如信息为`Plotting...'显示在tty区的右下角。
一旦Tonyplot启动,它会显示一个`Welcome'窗口,可通过选择OK来确认,且模型结构会显示出来。
1.3.4使用Tonyplot进行绘图
Tonyplot显示一掺杂的剖面材料结构。
尽管这只是二维的工艺模拟,到目前为止结构仍然是完全平面的。
Athena模型器以一维模式自动运行来节省CPU时间,并直到结构是非平面的。
Tonyplot绘图如下图:
1.3.5修正绘图的外观
为开始修正绘图的外观,需要选择`Plot'下的`Display':
Display窗口的显示:
这个窗口包含各项控制图的外观的选项。
包括
∙在滚动栏中有按名字排列的掺杂种类或所列的绘图功能。
为绘制一个种类/功能,简单地从列表中选择,`Phosphorus'族在最上面。
∙格点是否在图上显示.
∙是否在不同区域及材料之间的界面使用线和/或不同的颜色用于不同的区域
∙图形在数据点和/或有连接的数据点是否有符号显示.
当点击`Apply'按钮后,在显示窗中做的变化就反映在绘图中。
`Reset'按钮将对状态进行重新设定控制。
完成时可以使用`Dismiss'按钮来去除窗口。
1.3.6缩放及在图上进行平移
图上细小的区域可以通过缩放来进行检察。
使用Tonyplot可选择一个矩形来进行。
比如下面的图形就放大显示了氧化层中的掺杂浓度:
在缩放了图上的一个区域后,在窗口上的左上角显示一个zoom/panbox。
八个方向箭头的任何一个都可以平移图形。
若要返回原来样子,选择钻石样的在方框中间的标志即可。
1.3.7打印图形
点击`Print'按钮送一个硬拷贝直接到你的缺省打印机。
你的VWF系统管理器可以告诉你在哪里打印。
1.4使用History功能
Deckbuild的history功能强有力,允许在交互模拟进行中改正进行中的变化而不必再次从草图到模拟。
这个工具允许输入设计向后移动,可通过前面的一个模拟命令行及`initializing'模拟器回到那一点。
在完成模拟后,状态文件自动存到当前工作目录。
有意义的模拟步骤是一些器件的结构或掺杂浓度,比如,注入,刻蚀等的仿真。
无意义的步骤是一些简单地询问模型器的信息,比如写结构文件或抽取参数。
history文件命名为`.historynn.str',此处nn是一个序号,并存贮为一个标准结构文件。
在Athena执行时,你可能看到在ATHENA>命令行上的save命令,如:
structoutfile=.history09.str
只要自创建历史文件后命令行没有添加,Deckbuild将记住哪个文件与每一输入设计行配合。
再次初始化模拟器到前面模拟的`WellDrive'步,双击或三次点击diffusion行的`WellDrive'.使其如下亮显:
当这行文本亮显后,在左击Deckbuild控制面板下的`init'按钮。
这将重置模拟行位置为这一WellDrive扩散步的结束,允许你作一修改或变化下面及再模拟。
改变WellDrive时间从220到200,新的一行将如下:
diffustime=200temp=1200nitropress=1
`next'按钮应该可以使用来模拟新的工艺流程。
继续这个练习,将再次继续仿真直到gateoxidation阶段.
1.5明确存贮状态
`init'按钮允许直接移到设计中的前面某一行。
要使用这个re-initialization特征,必须保存一个标准结构文件在有兴趣的行上,或者作为一个historyfile或作为一个用户定义标准结构文件保存,在模拟过程中可以使用下面的命令:
structoutfile=bpsg_dep.str
(标准结构文件应使用`.str'作为文件扩展名。
)
比如在一个扩散或MonteCarlo模拟步骤,推荐使用struct命令。
当historyfiles在模拟中保存时,允许自动再初始化后到一个特殊的步骤,它们是瞬态的,且会失去或变的无效。
依赖于re-initialize使用的机构:
1.使用标准结构文件。
2.使用历史文件。
`init'按钮是不相同的。
初始化一保存的标准结构文件,保存结构文件名应该在文本编辑窗中选定。
比如,下面的图形显示文件`vtadjust.str'就是在文本编辑窗中。
在此处选择`init'按钮将导致模拟器被再次初始化到文件被存的此点。
而且,在输入文件中的当前的执行点,将被设定到选定的文件点的后面。
此行
initinfile=vtadjust.str
可以在tty区中看到,是当init按钮选定后的执行命令。
使用历史文件的Re-initialization是在Historysection中.
使用明确用户StandardStructurefile保存功能,我们可以调查Tonyplot的允许在同一工艺流程中两个不同的点的比较。
1.6创建用于比较的两个结构文件
1.6.1存贮文件创建
在这部分中将使用Tonyplot创建两个结构文件用于比较。
对于这个例子,调整注入工艺步骤前后的Vt结构文件进行比较。
我们将通过启动输入设计来开始。
我们不必再次做设计的完全模拟到gateoxidation工艺步(在一个更为现实的模型中,可能花更长的一段时间),所以我们将在做修改之前,从history到初始化到此点,就是gateoxidation之前。
选择下面的文本并按`init'来再次初始化到牺牲的氧化层带处,如下所示:
现在我们处在修改输入设计的位置是在此点之后。
下面的两条语句指明在Vt调整来注入的前后存贮两个StandardStructurefiles:
∙structoutf=gateoxide.str
∙structoutf=vtimplant.str
可以通过在正确的行上直接输入到文本编辑窗中:
现在这次模拟可以继续直到在poly沉积前的这行。
这样将模型两个附加的行,从而在牺牲的氧化带之后启动。
为了这样做,选择next按钮几次直到下面一行:
structoutf=vtimplant.str
被执行。
在此处,两个StandardStructurefiles被存到你当前的工作目录,名字如下:
∙gateoxide.str
∙vtimplant.str
1.6.2 文件交叠
两个structurefiles存贮后,它们可以被加载到Tonyplot中并被交叠以进行比较。
Tonyplot允许达128图加载到一个进程。
这些图中的任何一个均可轻易的交叠。
若加载文件到Tonyplot,从`File'中下拉菜单中选择`LoadStructure...'项。
这将创建一个可能被加载的文件菜单:
如果一直跟着练习,两个文件(gateoxide.strandvtimplant.str)应该存在你的当前目录中,且显示可能被加载进Tonyplot中文件中。
显示在Tonyplot屏中的每一个图均可选择。
如果一个图被选定,将会被一个的白色框围绕,如下图所示:
图的选定及取消可通过点击鼠标的中间键来控制。
在此阶段,你会试图选定及取消图,作为一个简单的练习。
现在交叠两个图:
∙选定两个图。
∙然后选择Tonyplot的`View'菜单下的`Makeoverlay'项.
在此之后,第三个交叠的图会出现。
1.7运行MOS工艺程序的第二部分
在观察完栅氧化步骤后,就可以仿真到输入文件的最后一部分。
工艺模拟的后半部分将花费更多的CPU时间,在多晶硅刻蚀后结构变为非平面时。
在工艺流程中Athena会自动的转换到2-D模拟方式。
这一次不再用`next'按钮,我们用stop功能来使模拟到兴趣点。
1.7.1`StopAt'功能
stop定义了命令流中的一个位置,此处模拟器会停止。
如果run按钮或cont按钮被选定,模拟器将执行下去到stop点并等待。
在Deckbuild文本编辑区,选定/亮显几个你想中断的行的字符,在此处的输入行中aluminum选定了。
从模拟器面板中选择`stop'按钮会在这行设定一个停止。
`stop:
'行将在面板上显示也会更新来表明相应的行号。
一个停止点可通过`clear'按钮清除。
既然一个stop点已经设定了,选择`cont'按钮。
当模拟器运行时你应查看一下Athena执行的命令及产生的信息。
这将使得Deckbuild发送给Athena命令行来预设stop点,之后在此步骤前暂停模拟。
按next按钮几次以确保模拟器在定义了stop点后会直接包括金属刻蚀步骤。
在poly刻蚀点,结构为非平面。
注意模拟现在要做更多的工作,工艺显著地变慢。
这里的命令对工艺工程师而言更直接和直觉,下面的几行做一些解释:
depopolythick=0.2divi=10
这个命令定义了沉积多晶硅为0.2um厚,且在此厚度中包括10个格点层。
etchpolyleftp1.x=0.35
这个命令定义多晶硅在X方向上的位置,从这里被向左去除。
这个命令还定义了晶体管一半的长度,将反映右侧的轴来制备整个器件。
methodfermicompress
这个命令打开了基本物理模型,用于氧化及扩散步骤。
所有下面的步骤会使用这些模型。
(这些模型对在任何情况下对Athena都是缺省的,且仅在本例中用于解释。
请见Athena参考手册)
在next命令后,仿真到达所定义的点,并且Deckbuild窗看上去如下:
1.7.2使用Tonyplot用于2-D结构
从Deckbuild启动Tonyplot使用当前结构。
同一维结构时一样,如取消任何一个选定的文本,并且用Tools中的Plot项。
一旦Tonyplot被激活,将缺省地显示2-D的工艺模拟材料结构。
Tonyplot在二维结构中有观察杂质浓度的方法:
∙杂质或溶剂的二维轮廓线。
这是在Tonyplot被激活时从一个二维结构中缺省产生的。
更详细的资料可参见contourplots.
∙杂质或溶剂的一维的轮廓在结构中沿一条线。
可见cutlineplots.
这个练习中,净掺杂图将首先被定义,之后在轮廓线上的一些轮廓线会被研究。
1.7.3使用Tonyplot来制备一轮廓图
要创建一轮廓图,从Tonyplot`Plot'下拉菜单中选择`Display'项。
这个行为将激活2-D显示控制弹出窗,如下所示:
在这个弹出窗中在按Apply前选择下列图标:
确定绘图范围。
为缺省使能。
用以不同着色绘制材料,这是缺省的。
显示净掺杂的轮廓。
绘制器件的结.
再次在图标上点击鼠标左键。
在`Define'菜单中选择`Contours'菜单,如下所示:
这将激活轮廓控制弹出窗,如下所示:
如上图所示,轮廓将只显示硅材料区域(在材料列表上选择)且使用着色配置`Rainbow30'来画轮廓。
在轮廓定义完成后,按`Apply'。
1.7.4产生交互式图例
当显示了二维轮廓图,可以通过器件产生任何沿一条线的一维轮廓一个掺杂的数据。
作为一个例子,我们通过LDD掺杂的磷看一下水平掺杂轮廓。
若如此做,可从Tonyplot中的Tools下拉菜单中选择`Cutline'项。
这将创建图例窗口,如下显示:
从弹出的窗口中选择垂直的选项,然后用鼠标画一垂直线到两维的轮廓图,如下所示:
这会形成第二个绘图窗,来显示一维掺杂轮廓。
在cutline控制弹出窗中,选
`Shiftposition...'按钮,之后点击水平箭头。
这样就形成了cutline围绕轮廓图被移动到感兴趣的精确位置。
Cutline只会沿被选择的轮廓图移动。
1.8工艺参数的抽取
LDDMOS晶体管的工艺模拟,在此阶段就完成了。
在继续进行器件模拟之前,使用Deckbuild的extract功能把一些工艺参数抽取出来了。
因为extract是VWF的核心部分,在参数优化及其它先进特征中均可找到。
器件参数的抽取包括在器件模拟的抽取部分。
在继续进行参数抽取前,需要想一下模拟的结构,本例中参数有以下几个:
1.source/drain结深
2.器件阈值电压
3.方块电阻
4.沟道表面的掺杂浓度
1.8.1源漏结深
本例中第一个抽取的参数是源漏结深。
为正确抽取结深,需要下列信息:
∙指定名字给抽取参数。
本例中为`nxj'.
∙要抽取的参数名字,本例中为结深,名字是`xj'.
∙包含结的材料。
本例中,材料是Silicon。
更复杂的模拟中,可能要创建不同材料的堆层结构,每一个均包括结。
∙已经说明我们对硅材料的结有兴趣,我们,总之,必须说明我们对哪些堆层感兴趣。
对于此种结构,只有一个硅层,且指定层发生数是可选的。
.
∙结深Xj会从源/漏区体内到区边的0变化。
为抽取正确的结党值,必须使用在源/漏区体内的一个点。
本例中,使用在源/漏区内距0.1um远。
可以上图看到,这个值会产生源/漏区的结深。
∙与堆材料的位置相似,在更复杂的结构中,在材料层中可能超过一个结。
比如,在N衬底上的一个P阱中的一个n+源/漏区,在通过源漏区处,有两个结。
本结构中,仅有一个结。
指定结的数量或本例中发生的是可选。
结深的抽取语句如下(在一行中):
extractname="nxj"xjsiliconmat.occno=1x.val=0.1junc.occno=1
当抽取执行这条语句时,它显示的计算结深值:
nxj=0.0987025umfromtopoffirstSiliconlayerX.val=0.1
这个信息也写入你当前工作目录的文件`results.final'中。
在模拟完成后,你可以通过简单的打印`results.final文件来回顾一下抽取值。
1.8.2器件阈值电压
在不严格的计算中,一维阈值电压可以轻易地从定义的结构中抽取。
对于这个抽取语句,我们需要说明:
∙指定抽取参数名为`n1dvt':
N类型,一维阈值电压。
∙参数名将被抽取。
本例中阈值电压,参数为`1dvt'。
∙器件类型,本例中为n-typetransistor.
∙偏压(`vb')被设定为0V.
∙捕获电压,Qss,设定为1e10.
∙对于阈值电压,我们必须指定一个位于器件沟道内的点。
这里,在模拟器件的右手边处的一点被选定。
(x=0.49).
使用阈值电压的抽取语句是:
extractname="n1dvt"1dvtntypevb=0.0qss=1e10x.val=0.49
语句产生一个结果
n1dvt=0.671481VX.val=0.49
也保存在`results.final'文件中.
1.8.3电导及偏压曲线
下一抽取例子是电导及偏压曲线。
本例更多地涉及了前面两项,它要示两条抽取语句:
第一条是建立偏压条件,第二条是抽取电导曲线。
当启动抽取时,要求多条抽取语句,抽取系统必须告诉你没有完成,而且更多的信息需要提供。
可以通过一个start,continue和done机构取得:
extractstart...
extractcont...
extractcont...
extractdone...
按要求,一些`extractcont'语句需要使用,本例中,为0。
多晶的电导是在一维线上通过栅经电压从0到2V进行抽取。
第一个抽取语句定义了多晶上的偏压条件及抽取开始语句。
我们必须在一行上选择多晶硅栅材料,(x=0.45)且使用偏压条件从0到2V,阶进为0.2V:
extractstartmaterial="Polysilicon"mat.occno=1\
bias=0.0bias.step=0.2bias.stop=2x.val=0.45
注意在行末使用连续字符(`\'),从而允许语句超过一行。
一旦偏压条件被指定,电导曲线可以被抽取。
不象前面两个例子,只抽取一个单个的值,比如,结深,这里我们抽取一条值的曲线。
指定抽取一条曲线的语法是
curve(x-axis,y-axis)
这里的x-axis指定所加的偏压,而y-axis是一维n-type电导,指定为1dn.电导。
然而我们必须通过指定材料来限制所使用的电导,本例中为硅。
在一通常结构中,可能超过一层的硅,使得我们的目的更明确。
我们可以规定我们对材料硅的第一发生事件有兴趣,且器件中硅的第一区域使用`