12NMOS器件仿真.docx
《12NMOS器件仿真.docx》由会员分享,可在线阅读,更多相关《12NMOS器件仿真.docx(17页珍藏版)》请在冰豆网上搜索。
12NMOS器件仿真
1.2 使用ATLAS的NMOS器件仿真
1.2.1 ATLAS概述
ATLAS是一个基于物理规律的二维器件仿真工具,用于模拟特定半导体结构的电学特性,并模拟器件工作时相关的内部物理机理。
ATLAS可以单独使用,也可以在SILVACO’s VIRTUAL WAFER FAB仿真平台中作为核心工具使用。
通过预测工艺参数对电路特性的影响,器件仿真的结果可以与工艺仿真和SPICE模型提取相符。
1 ATLAS输入与输出
大多数ATLAS仿真使用两种输入文件:
一个包含ATLAS执行指令的文本文件和一个定义了待仿真结构的结构文件。
ATLAS会产生三种输出文件:
运行输出文件(run-time output)记录了仿真的实时运行过程,包括错误信息和警告信息;记录文件(log files)存储了所有通过器件分析得到的端电压和电流;结果文件(solution files)存储了器件在某单一偏置点下有关变量解的二维或三维数据。
2 ATLAS命令的顺序
在ATLAS中,每个输入文件必须包含按正确顺序排列的五组语句。
这些组的顺序如图1.52所示。
如果不按照此顺序,往往会出现错误信息并使程序终止,造成程序非正常运行。
图1.52 ATLAS命令组以及各组的主要语句
3 开始运行ATLAS
要在DECKBUILD下开始运行ATLAS,需要在UNIX系统命令提示出现时输入:
deckbuild -as&
命令行选项-as指示DECKBUILD将ATLAS作为默认仿真工具开始运行。
在短暂延时之后,DECKBUILD将会出现,如图1.53所示。
从DECKBUILD输出窗口可以看出,命令提示已经从ATHENA变为了ATLAS。
图1.53 ATLAS的DECKBUILD窗口
4 在ATLAS中定义结构
在ATLAS中,一个器件结构可以用三种不同的方式进行定义:
1. 从文件中读入一个已经存在的结构。
这个结构可能是由其他程序创建的,比如ATHENA或DEVEDIT;
2. 输入结构可以通过DECKBUILD自动表面特性从ATHENA或DEVEDIT转化而来;
3. 一个结构可以使用ATLAS命令语言进行构建。
第一和第二种方法比第三种方法方便,所以应尽量采用前两种方法。
在本章中,我们将通过第二种方法,利用DECKBUILD的自动表面特性,将NMOS结构从ATHENA转化为ATLAS。
1.2.2 NMOS结构的ATLAS仿真
在本章中,我们将以下几项内容为例进行介绍:
1. Vds=0.1V时,简单Id-Vgs曲线的产生;
2. 器件参数如Vt,Beta和Theta的确定;
3. Vgs分别为1.1V,2.2V和3.3V时,Id-Vds曲线的产生。
这里将采用由ATHENA创建的NMOS结构来进行NMOS器件的电学特性仿真。
1.2.3 创建ATLAS输入文档
为了启动ATLAS,输入语句:
go atlas
载入由ATHENA创建的“nmos.str”结构文件,步骤如下:
a. 在ATLAS Commands菜单中,依次选择Structure和Mesh项。
ATLAS Mesh菜单将会弹出,如图1.54所示;
图1.54 ATLAS Mesh菜单
b. 在Type栏中,点击Read from file;在File name栏中输入结构文件名“nmos.str”;
c. 点击WRITE键并将Mesh语句写入DECKBUILD文本窗口中,如图1.55所示。
图1.55 写入DECKBUILD文本窗口的Mesh语句
1.2.4 模型指定命令组
因为在ATHENA中已经创建了NMOS结构,我们将跳过结构指定命令组而直接进入模型指定命令组。
在这个命令组中,我们将分别用Model语句、Contact语句和Interface语句定义模型、接触特性和表面特性。
1 模型指定
对于简单MOS仿真,用SRH和CVT参数定义推荐模型。
其中SRH是指Shockley-Read-Hall复合模型,CVT是来自Lombardi的倒置层模型(参见ATLAS用户手册),它设定了一个全面的目标动态模型,包括浓度,温度,平行场和横向场的独立性。
定义这两种NMOS结构模型的步骤如下:
a. 在ATLAS Commands菜单中,依次选择Models和Models…项。
Deckbuild:
ATLAS Model菜单将会出现,如图1.56所示;
b. 在Category栏中,选择Mobility模型;一组动态模型将会出现,选择CVT;为了运行时在运行输出区域中记录下模型的状态,在Print Model Status选项中点击Yes。
必要时可以改变CVT模型默认参数值,方法为:
依次点击Define Parameters和CVT选项。
ATLAS Model-CVT菜单将会出现;在参数修改完毕后点击Apply。
也可以在其中添加复合模型,步骤为:
a. 在Category栏中选择Recombination选项。
三种不同的复合模型将会出现,如图1.57所示,分别为Auger,SRH(Fixed Lifetimes)以及SRH(Conc.Dep. Lifetimes);
b. 选择SRH(Fixed Lifetimes)模型作为NMOS结构;
c. 点击WRITE键,Model语句将会出现在DECKBUILD文本窗口中。
图1.56 Deckbuild:
ATLAS Model菜单
图1.57 复合模型
2 接触特性指定
与半导体材料接触的电极默认其具有欧姆特性。
如果定义了功函数,电极将被作为肖特基(Shottky)接触处理。
Contact语句用于定义有一个或多个电极的金属的功函数。
用Contact语句定义n型多晶硅栅极接触的功函数的步骤为:
a.在ATLAS Commands菜单中,依次选择Models和Contacts项。
Deckbuild:
ATLAS Contact菜单将会出现;在Electrode name一栏中输入Gate;选择n-poly代表n型多晶硅,如图1.58
图1.58 Deckbuild:
ATLAS Contact菜单
b. 点击WRITE键,语句 Contact name=gate n.poly 将会出现在输入文件中。
3 接触面特性指定
为了定义NMOS结构的接触面特性,我们需要使用Interface语句。
这个语句用来定义接触面电荷浓度以及半导体和绝缘体材料接触面的表面复合率。
定义硅和氧化物接触面电荷
浓度固定为3×1010cm-2,步骤如下:
1. 在ATLAS Commands菜单中,依次选择Models和Interface„项。
Deckbuild:
ATLAS Interface菜单将会出现;在Fixed Charge Density一栏中输入3e10,如图1.59所示;
2. 点击WRITE将Interface语句写入DECKBUILD文本窗口中。
Interface语句如下:
Interface s.n=0.0 s.p=0.0 qf=3e10
图1.59 Deckbuild:
ATLAS Interface菜单 图1.60 Deckbuild:
ATLAS Method菜单
1.2.5 数字方法选择命令组
接下来,我们要选择数字方法进行模拟。
可以用几种不同的方法对半导体器件问题进行求解。
对MOS结构而言,我们使用去偶(GUMMEL)和完全偶合(NEWTON)这两种方法。
简单的说,以GUMMEL法为例的去偶技术就是在求解某个参数时保持其它变量不变,不断重复直到获得一个稳定解。
而以NEWTON法为例的完全偶合技术是指在求解时,同时考虑所有未知变量。
Method语句可以采用如下方法:
a. 在ATLAS Commands菜单中,依次选择Solutions和Method„项。
Deckbuild:
ATLAS Method菜单将会出现;在Method栏中选择NEWTON和 GUMMEL选项,如图1.60所示;默认设定的最大重复数为25。
这个值可以根据需要修改;
b. 点击WRITE将Method语句写入DECKBUILD文本窗口中; c. 将会出现Method语句,如图1.61所示。
应用此语句可以先用Gummel法进行重复,如果找不到答案,再换Newton法进行计算。
图1.61 Method语句
1.2.6 解决方案指定命令组
在解决方案指定命令组中,我们需要使用Log语句来输出保存包含端口特性计算结果的记录文件,用Solving语句来对不同偏置条件进行求解,以及用Loading语句来加载结果文件。
这些语句都可以通过Deckbuild:
ATLAS Test菜单来完成。
1 Vds=0.1V时,获得Id~Vgs曲线
下面我们要在NMOS结构中,当Vds=0.1V时,获得简单的Id~Vgs曲线。
具体步骤如下:
a. 在ATLAS Commands菜单中,依次选择Solutions和Solve„项。
Deckbuild:
ATLAS Test菜单将会出现,如图1.62所示;点击Prop„键以调用ATLAS Solve properties菜单;在Log file栏中将文件名改为“nmos_”,如图1.63所示。
完成以后点击OK;
图1.62 Deckbuild:
ATLAS Test菜单
图1.63 ATLAS Solve properties菜单
b. 将鼠标移至Worksheet区域,右击鼠标并选择Add new row,如图1.64所示; c. 一个新行被添加到了Worksheet中,如图1.65所示;
d. 将鼠标移至gate参数上,右击鼠标。
会出现一个电极名的列表。
选择drain,如图1.66所示;
e. 点击Initial Bias栏下的值并将其值改为0.1,然后点击WRITE键; f. 接下来,再将鼠标移至Worksheet区域,右击鼠标并选择Add new row; g. 这样就在drain行下又添加了一个新行,如图1.67所示;
h. 在gate行中,将鼠标移至CONST类型上,右击鼠标并选择VAR1。
分别将Final Bias和Delta的值改为3.3和0.1,如图1.68所示;
图1.64 添加新行
图1.65 添加的新行
图1.66 将gate改为drain
图1.67 添加另一新行
图1.68 设置栅极偏置参数
i. 点击WRITE键,如下语句将会出现在DECKBUILD文本窗口中,如图1.69所示。
Solve init
Solve vdrain=0.1 Log outf=nmos1_0.log
Solve name=gate vgate=0 vfinal=3.3 vstep=0.1
图1.69 Vds=0.1V时模拟Id~Vgs曲线所用的语句
上述语句以Solve init语句开始。
这条语句提供了一个初始猜想,即零偏置(或热平衡)情况下的电势和载流子浓度。
在得到了零偏置解以后,第二条语句即Solve vdrain=0.1将会模拟漏极直流偏置为0.1V的情况。
如果solve语句没有定义某电极电压,则该电极电压为零。
因此,不需要将所有电极电压都用solve语句进行定义。
第三条语句是Log语句,即Log outf=nmos1_0.log。
这条语句用来保存所有在nmos1_0.log文件中由ATLAS计算得出的仿真结果。
这些结果包括在直流仿真下每个电极的电流和电压。
要停止保存这些信息,可以使用带有“off ”的log语句如log off,或使用不同的log文件名。
最后一条solve语句:
Solve name=gate vgate=0 vfinal=3.3 vstep=0.1使栅极电压从0V变化到3V,间隔为0.1V。
注意在这条语句中Name参数是不能缺少的,而且电极名区分大小写。
2 获取器件参数
在这个仿真中,还要获取一些器件参数,例如Vt,Beta和Theta。
这可以通过ATLAS Extract菜单来完成:
a. 在ATLAS Commands菜单中,依次选择Extract和Device„项。
Deckbuild:
ATLAS Extaction菜单将会出现,如图1.70所示;在默认情况下,Test name栏中选择的是Vt。
用户可以修改默认的计算表达式;点击WRITE键,Vt Extract语句将会出现在DECKBUILD文本窗口中:
extract name=“vt”(xintercept(maxslope(curve(abs(v.“gate”) ,abs(i.“drain”))))-abs(ave(v.“drain”))/2.0)
b.下面,继续调用Deckbuild:
ATLAS Extaction菜单。
然后,点击Test name并将其改为Beta,如图1.71所示;
图1.70 Deckbuild:
ATLAS Extaction菜单
图1.71 设置Beta计算语句
c. 点击WRITE键,Beta Extract语句将会出现在DECKBUILD文本窗口中:
extract name=“beta”slope(maxslope(curve(abs(v.“gate”) ,abs(i.“drain”))))*abs(1.0/abs(ave(v.“drain”))) d. 最后,我们要再一次调用Deckbuild:
ATLAS Extaction菜单来设置计算theta参数的Extract语句。
然后,点击Test name栏并将其改为Theta,如图1.72所示;
图1.72 设置Theta计算语句
图1.73 NMOS器件的Id~Vgs曲线图
e. 点击WRITE键,Beta Extract语句将会出现在DECKBUILD文本窗口中:
extract name=“theta” ((max(abs(v.“drain”))*$ “beta”)/max (abs(i.“drain”)))-(1.0/max(abs(v.“gate”))-($“vt”)))
在开始仿真之前,我们需要使用Tonyplot语句将仿真结果绘制出来。
为了自动绘制出Id~Vgs曲线,只要在最后一条Extract语句后简单地输入如下的TONYPLOT语句即可:
tonyplot nmos1.log
下面开始仿真。
点击Deckbuild控制栏上的run键运行器件仿真程序。
仿真完成后,TONYPLOT和Id~Vgs曲线特性参数将被自动调用,如图1.73所示。
同样,所获得的器件参数如Vt,Beta和Theta可以在DECKBUILD运行输出窗口看到,如图1.74。
图1.74 显示器件参数的DECKBUILD运行输出窗口
3 使用Log,Solve和Load语句生成曲线族
下面要在Vgs分别为1.1V,2.2V和3.3V时生成Id~Vds曲线族,Vds变化范围是0V到3.3V。
为了不使后面的端口特性写入到前面的log文件nmos1.log中,我们需要使用另一条Log语句,如下:
log off
为了得到曲线族,首先,我们需要使用Deckbuild:
ATLAS Test菜单得到每个Vgs的结果:
a. 在ATLAS Commands菜单中,依次选择Solutions和Solve„项以调用Deckbuild:
ATLAS Test菜单;点击Prop„键以调用ATLAS Solve properties菜单;将Write mode栏改为Line,然后点击OK;
b. 设置如图1.75所示的栅极偏置参数;
图1.75 栅极偏置参数
c. 点击WRITE键,Solve语句将会出现在如下所示的DECKBUILD文本窗口中:
solve vgate=1.1
为了在ATLAS结果文件中保存结果输出,在Solve语句中添加语句outf=solve1:
solve vgate=1.1 outf=solve1
d. 对栅极偏置为2.2V和3.3V分别重复运用上述语句:
solve vgate=2.2 outf=solve2 solve vgate=3.3 outf=solve3 接下来,我们将再一次使用ATLAS Test菜单设置Solve语句,使得漏极电压变化范围为0V到3.3V,步骤如下:
a. 在ATLAS Commands菜单中,依次选择Solutions和Solve„项以调用Deckbuild:
ATLAS Test菜单;点击Prop„键以调用ATLAS Solve properties菜单;将Write mode栏改为Test;将Log file栏中的文件名改为nmos2_;
b. 完成后点击OK; c. 在工作区中,将Name栏的gate改为drain,Type栏的CONST改为VAR1,Initial Bias,Final Bias和Delta分别设为0,3.3和0.3;
d. 点击WRITE键,下列语句将会出现在DECKBUILD文本窗口中:
solve init
log outfile=nmos2_0.log
solve name=drain vdrain=0 vfinal=3.3 vstep=0.3
接下来,我们将使用Load菜单加载栅极偏置为1.1V时的结果文件solve1,并用它替换solve init语句:
a. 选中solve init语句,如图1.76所示;在ATLAS Commands菜单中,依次选择Solutions和Load„项以调用Deckbuild:
ATLAS Load菜单;在Deckbuild:
ATLAS Load菜单的File name栏中输入solve1;在Format栏中,选择SPISCES格式;点击WRITE键,则出现确认提示窗口。
选择“Yes,replace selection”。
b. Load语句将会在DECKBUILD文本窗口中替换solve init语句,见图1.77;
图1.76 选中solve init语句
图1.77 Load语句替换solve init语句
这样,从Load语句开始到Solve语句为止的语句组将会生成Vgs=1.1V时的Id~Vds曲线的数据。
要生成Vgs=2.2V,Vgs=3.3V时的Id~Vds曲线数据,只要复制这三个语句即可,并且:
a. 将Load语句中的输入文件名从solve1改为solve2或solve3;
b. 将solve语句中的log文件名从nmos2_0.log改为 nmos3_0.log或 nmos4_0.log; 最终的语句如图1.78所示。
为了画出曲线族,即把三个plot文件的结果画在同一张图中,输入如下Tonyplot语句:
tonyplot –overlay nmos2_1.log nmos2_2.log nmos2_3.log -set nmos.set
在这个语句中,–overlay是指在一张图中覆盖三个plot文件,-set是用来加载set文件并显示创建set文件时TONYPLOT所处的条件。
图1.78 Vgs=2.2V,Vgs=3.3V时生成Id-Vds曲线数据的语句
4 退出仿真
最后,输入下面语句来退出仿真:
quit
现在可以点击DECKBUILD控制栏上的Cont键,继续进行器件仿真。
一旦仿真完成以后,TONYPLOT将自动调用出Id~Vds特性曲线族,如图1.79所示。
图1.79 NMOS的Id~Vds曲线
[文档可能无法思考全面,请浏览后下载,另外祝您生活愉快,工作顺利,万事如意!
]