- Introduction
1、概述
Atlas提供了基于物理的二(2D)和三维(3D)模拟的一般能力。Atlas被设计为与VWF交互式工具一起使用。VWF交互工具是DeckBuild, TonyPlot, DevEdit, MaskViews, and Optimizer.
Atlas提供了许多可以通过DeckBuild构建访问的示例,这些例子展示了Atlas的大部分能力。这些示例中提供的输入文件是开发自己的输入文件的一个很好的起点。Ctrl+c/v是一个好习惯。
- 模型
DC, AC small-signal, and full time-dependency | 直流、交流小信号,全时间依赖性 |
Drift-diffusion transport models | 漂移扩散传输模型 |
Energy balance and Hydrodynamic transport models | 能量平衡和水动力输运模型 |
Lattice heating and heatsinks | 晶格加热和散热器 |
Optoelectronic interactions with general ray tracing. | 与一般射线追踪的光电相互作用 |
Amorphous and polycrystalline materials | 非晶态和多晶态材料 |
General circuit environments. | 一般电路环境 |
Stimulated emission and radiation | 受激射和辐射 |
Fermi-Dirac and Boltzmann statistics. | 费米-狄拉克和玻尔兹曼统计 |
Advanced mobility models. | 先进的迁移率模型 |
Heavy doping effects. | 重掺杂效应 |
Full acceptor and donor trap dynamics | 全受体和供体陷阱动力学 |
Ohmic, Schottky, and insulating contacts | 欧姆、肖特基和绝缘触点 |
SRH, radiative, Auger, and surface recombination | SRH、辐射、螺旋钻和表面复合 |
Impact ionization (local and non-local). | 冲击电离(局部和非局部) |
Floating gates | 浮动闸门 |
Band-to-band and Fowler-Nordheim tunneling | BTBT隧穿模型和福勒-诺德海姆隧穿 |
Hot carrier injection | 热载流子注入 |
Quantum transport models | 量子输运模型 |
Thermionic emission currents. | 热离子发射电流 |
- 功能
3.1 在DeckBuild构建交互式运行时环境中运行
3.2 与交互式TonyPlot图形和分析包接口(interface)
3.3 接受来自Athena和SSuprem3过程模拟器的输入
3.4 并与最高参数提取和设备建模软件进行接口
3.5 可用于与VWF自动化工具的实验
4、数值实现(Numerical Implementation)
4.1 精确和稳健的离散化技术
4.2 Gummel, Newton, and block-Newton nonlinear iteration strategies.
(古梅尔,牛顿,和块-牛顿非线性迭代策略)
4.3 线性子问题的有效求解器,包括直接的和迭代求解器
4.4 强大的初始猜测策略
4.5 在所有频率上收敛的小信号计算技术
4.6 稳定和准确的时间积分
5、Atlas与其他Silvaco软件的共同使用
在window版本中,常在Deckbuild中输入“go atlas”打开Atlas软件,可以引用Athena结构“mesh inf=**.str”,在tonyplot中进行二维显示,在tonyplot3d中进行三维显示。
DevEdit是一个用于结构和网格规范和细化的交互式工具
MaskViews是一个IC布局编辑器
Optimizer 支持跨多个模拟器的黑箱优化.
Atlas经常与Athena过程模拟器一起使用。Athena预测了从处理步骤中产生的物理结构。由此得到的物理结构被Atlas用作输入,然后预测与特定偏置条件相关的电特性。Athena和Atlas的结合使得确定工艺参数对设备特性的影响成为可能
Atlas也可以作为VWF自动化工具中的模拟器之一使用。VWF使执行高度自动化的基于模拟的实验更加方便。VWF的使用方式反映了使用分裂地块的实验研究和开发程序。因此,它将模拟与技术开发非常紧密地联系起来,从而显著增加了模拟使用的好处
6、基于物理的仿真的本质
Atlas是一个基于物理的设备模拟器。
基于物理的设备模拟器可以预测与特定的物理结构和偏置条件相关的电特性。这是通过将一个设备近似到一个二维或三维网格上的操作来实现的,该网格由一些被称为节点的网格点组成。通过将一组由麦克斯韦定律(Maxwell’s laws)推导出的微分方程应用到这个网格上,你可以模拟载波通过一个结构的传输。这意味着一个设备的电气性能现在可以用直流、交流或瞬态运行模式来建模。
三个基于物理基础的模拟:可预测性的、可洞察的、可方便捕获和可视化的理论知识
基于物理的仿真不同于经验建模。经验建模的目标是获得以良好的精度和最小的复杂度近似现有数据的解析公式。经验模型提供了有效的近似值和插值。它们不提供洞察力、预测能力,或对理论知识的封装。
基于物理的模拟的优点是它几乎总是比进行实验更快、更便宜,它提供了难以或不可能衡量的信息。缺点是所有相关的物理都必须合并到一个模拟器中。此外,还必须采用数值程序来求解相关的方程式。这些任务已为Atlas用户负责处理。
必须指定要模拟的问题: 要模拟的物理结构。structure
要使用的物理模型。models
要模拟电特性的偏置条件。bias conditions
二、Getting Start with Atlas
1、Overview
Atlas是一个基于物理的二维和三维设备模拟器。它预测了特定半导体结构的电学行为,并提供了对与器件操作相关的内部物理机制的见解。
2、Atlas
Atlas通常与DeckBuill运行时环境一起使用,建议一直在DeckBuild中使用Atlas。
下图为Atlas的输入和输出
以下所有命令语句都是在DeckBuild 中使用。
单个输入文件可能包含多个Atlas运行,每个运行都用一个go Atlas行分开。DeckBuild 构建中的输入文件也可能包含来自其他程序的运行,如Athena 或DevEdit以及Atlas的运行。
每一次Atlas的启动 ,都需要输入命令“go atlas”,如果是启动某个版本(比如5.14.0.R版本)的Atlas ,需要输入命令语句“ go atlas simflags=”-V 5.14.0.R” ”。
-P选项用于设置在并行Atlas运行中使用的处理器的数量。如果由-P设置的数字大于可用处理器的数量或大于并行线程许可证的数量,则该数字将自动减少到此上限数字。要在4个处理器上运行,请使用:“ go atlas simflags=”-V 5.14.0.R -P 4″ ”。
注意:不建议在DeckBuild 环境外工作Atlas 。任何以#开头的行都将被忽略,这些行被用作注释。一行最多可以读取256个字符,一行的命令过长时,为了便于可读性,末尾的\字符表示延续。
语句的顺序:结构声明的语句顺序不能错,5组语句必须按照严格的顺序实现,否则将出现错误信息。
。
三、创建器件结构
第一种方法是引用ATHENA或DEVEDIT创建的工艺结构(现有结构),则输入命令“mesh infile=spad.str”,spad.str为ATHENA或DEVEDIT现有结构的文件名。
第二种方法是使用来自deckbuild的自动接口特性来传输来自ATHENA或DEVEDIT的输入结构。
第三种方法是使用ATLAS命令语句来创建器件结构(二维平面结构),则进行以下操作。
要通过Atlas命令语言定义设备,必须首先定义网格。这个网格或网格覆盖了物理模拟领域。网格由一系列的水平线和垂直线以及它们之间的间距来定义。然后,这个网格内的区域被分配到不同的材料来构建设备。例如,MOS器件的规范要求硅和二氧化硅区域的规范。定义区域后,指定电极的位置。最后一步是指定每个区域的掺杂量。
当使用命令语言定义结构时,必须按照所列出的顺序指定以下四个子部分中描述的信息。
1、指定初始网格mesh
atlas是由状态x.mesh、y.mesh及其对应的参数location和spacing来定义网格,状态mesh表示网格生成开始,参数sapce.mult 定义网格线间距的倍乘因子,默认为1.0,大于1.0会使网格变粗糙,仿真相应变快。参数width可以定义器件在z轴的长度。Location表示坐标,spacing为坐标边的间距。
Go atlas
mesh space.mult=<value>
x.mesh location=0.0 spacing=1.0 #在x=0.0处的网格间距为1.0um
x.mesh location=0.6 shacing=0.5 #在x=0.6处的网格间距为0.5um
y.mesh location=0.0 shacing=0.4 #在y=0.0处的网格间距为0.4um
y.mesh location=0.3 shacing=0.6 #在y=0.3处的网格间距为0.6um
如果(x轴和y轴)每个location处的spacing都一样,说明网格是均匀网格,若不同,则为非均匀网格(如上)。网格必须考虑疏密分布,网格越密集仿真速度越慢,材料界面、很薄的材料层都需要定义的密集一些,衬底可以定义稀疏些。其基本原则就是在每个location附近参数变化显著,分段线性化时应该考虑使分的短的长度小一些,这样才能得到更精确的结果。
消除命令语句(eliminiate)可以在已有的网格基础上删除指定区域内的一些网格线,删除的方法是定义某范围内沿横向(X)或纵向(Y)网格线隔一条删一条。参数rows或x.dir表示删除横向的网格线,columns或y.dir表示删除纵向的网格线,参数row或columns必须定义一个,不然程序将有警告。例如#eliminste使纵向网格粗糙化:
Eliminate columns x.min= x.max= y.min= y.max=
DECKBUILD界面
点击write即可显示结构命令
- 指定区域region和材料material
Atlas的网格定义是对整个器件的二维剖面(二维器件仿真)进行描述的,且剖面一定是矩形。Atlas的器件剖面可以按需求分成不同的区域,然后定义区域的特性。一旦指定了网格,就必须为网格的每个部分指定一个材质类型。这是通过区域语句来完成的。定义区域需要指明位置(X和Y的范围)、材料以及序号(必须从1开始),在后续定义掺杂等特性时就可以按区域定义。region语法: region number=<n> <material> <position>
注意:应当使mesh范围全部都有region进行定义,不提倡存在没有定义的地方,否则程序会发出警告,实在没有材料也可将material定义为air。如果定义的范围边界线不存在网格线,软件会自动调整成锯齿形的边界,为了避免这种情况的发生,应尽量调整网格使其在边界线处有网格线。
DECKBUILD界面
atlas有两种方法可以定义区域中材料组分的渐变:
用compx.top和compx.botton参数来定义区域顶部和底部的部分,中间区域组成是线性变化的。四元化合物有参数compy.top和compy.botton与之对应。
Region num=1 material=InGaAs y.max=0.5 compx.top=0.1 compx.botton=0.53
#在区域1的位置,材料为InGaAs,掺杂浓度从y=0.5处开始0.1到0.53的线性变化
有参数grad.<n>定义在某一区间内组分由某一值减少为0。
Region num=1 material=InGaAs y.max=0.5 x.comp=0.4 grad.34=0.2
#在区域1的位置,材料为InGaAs,Al的组分从y.max=0.5um处的0.4线性减少,直到y=0.6um时减为0。
注意:参数grsd.<n>可定义异质结材料组分从某一值减到0时的渐变,n的数值有12、23、34和41,grad.12为上边界,grad.23位右边界,grad.34为下边界,grad.41为左边界。
这两种方法各有特点,用compx.top和compx.botton可以较方便的定义纵向组分的渐变,而且起始值和结束值较灵活,但是整个区域组分都是变化的;用grad.<n>可以灵活定义区域内组分在某边界附近的变化,但结束值为0.仿真时需要视具体情形来进行选择。
- 指定电极electrode
指定区域和材料后,定义至少一个接触半导体材料的电极。electrode定义电极,位置可以是由x.min、x.max、y.min、y.max组成的矩形框,也可以是按照剖面的特定位置如top、bottom、left、right、substrate(基底)定义,还可以是指定一点和电极在X方向的长度来定义。电极接触类型默认为欧姆接触。electrode语法:
electrode number=<n> name=<c> [substrate] <position> <region>
DECKBUILD界面
- 指定掺杂doping
杂质分布由doping状态设置,doping语法格式如下:
Doping <distribution_type> <doping_type> <position_parameters>
杂质分布可以是均匀(uniform)、高斯(gaussian)、余误差函数(error function)分布。
均匀分布常用的参数有杂质类型(n.type或p.type)、浓度(concentration)和区域(region)。
高斯分布常用的参数可以分成类型和分布参数两类。类型参数为n.type或p.type。分布参数可以分为三组,(1)浓度concentration和结junction(2)剂量dose和特性characteristic(3)浓度concentration和特性characteristic
在存在PN结的情况下可以使用第一组,这时由峰值点以及结处的浓度值以及相对距离可得出高斯分布。如果没有PN结,就不可以用junction参数,此时可以考虑y.char(characteristic简写为char)
Doping region=1 uniform conc=5e15 n.type
Doping region=1 gauss conc=1e18 p.type peak=0.2 junct=0.15
#区域1进行高斯分布,p型掺杂浓度为1e18,结深为0.15um,峰值位置在0.2um深度
doping n.type conc=1e17 x.min=10 x.max=30 junct=8.0 rat=0.5 gauss region=1
#在 x 为 10~30μm 的范围,进行高斯分布的 n 型掺杂,结深为 8μm,浓度为 1×1017/cm3,横向和纵向的结扩散比为 0.5
doping p.type conc=1e19 x.min=5 x.max=6 peak=1.0 characteristic=0.2 rat=0.6 gauss
region=1
#在x为5~6μm的范围,进行高斯分布的p型掺杂,(标准偏差为 0.2)?,衬底表面处掺杂峰值浓度为 1×1019/cm3,横向和纵向的结扩散比为0.6,峰值位置在1.0um深度。(垂直于峰值线,掺杂按高斯分布下降,标准偏差为(0.2/√2)µm,横向方向,掺杂量呈横向下降趋势,其默认标准偏差为特征char的(70 /√2)% )
y.char√2为纵向高斯分布的标准差,横向分布的标准差默认为(70 /√2)%*char,横向分布的标准差可用ratio.lateral定义。X.min和x.max定义峰值浓度的X边界。
y.char通过给定与峰值浓度点特定距离后的浓度值求出,表达式如下:
Doping erfc n.type peak=0.5 junction=1.0 conc=1e19 x.min=0.25 x.max=0.75 ratio.lat=0.3 erfc.lat
Doping p.type conc=1e18 uniform
余误差函数分布和高斯分布的参数定义是一致的,conc为峰值浓度1e19,peak为峰值位置在0.5um深度。Char决定浓度随深度的变化速率,因为定义了结深是1um,所以1um处施主浓度也必须达到1e18(第二条语句定义了所有区域均为p型均匀掺杂,浓度为1e18),用下面的方程可以算出char为0.43um: erfc( [ junction – peak ] / char ) = 0.1
由附录A查表得( [ junction – peak ] / char )=1.16 ( erf + erfc = 1 )
此外,供体浓度在0.25至0.75微米范围外的横向方向上下降。横向衰减参数被定义为主要衰减参数的0.3倍,并具有互补误差函数的形状。
常用高斯分布,doping(掺杂)、region(区域)、gauss(高斯)、conc(浓度)、x.min\x.max(X轴位置)、peak(浓度峰值位置所在的深度)、characteristic(标准偏差)、junction(结深)、rat(横向和纵向的结扩散比)
DECKBUILD界面
经过这四步就可以定义一个器件结构,将结果保存成结构文件即可。
save outfile = spad_0.str
文章出处登录后可见!