使用的设计流程:

deckBuild  -> command file  ->device simulator

在deckbuild 中运行atlas

1、打开deckbuild

Linux版本:

terminal> deckbuild&

windows版本:(我用的是windows版本)

在桌面上点击 S.EDA Tools 图标来打开程序的快捷方式文件夹 ,直接双击 DeckBuild 图标。

2、运行atlas:

在交互界面界面输入

go atlas

 设置CPU核数

多CPU可以加速模拟

go atlas simflags="-P 2"
//2个CPU
//默认情况下,是"P 1"

Atlas Design of Deck - Typical Flow

example nMOS

设计目标:

设计流程:

Structure Specification——mesh

  • mesh
  • region
  • electrode
  • doping

先把结构的大小定义出来,即layout design设计gate 是多少,source和drain与gate的间距是多少。

网格规划:

在仿真工艺之前需要先建立网格,这时的网格是指衬底的网格(如果后续工艺带来了新的材料层,则有相应的网格控制的参数)。

mesh width=lx.mesh loc=0           spac=0.05  //x开始是0(也可以自己设定其他值)
x.mesh loc=0.1         spac=0.02
x.mesh loc=0.35        spac=0.01
x.mesh loc=0.6         spac=0.1
x.mesh loc=o.85        spac=0.01
x.mesh loc=l.l         spac=0.02
x.mesh loc=l.2         spac=0.1  //x结束是1.2//定义y
y.mesh loc=-0.3        spac=0.05
y.mesh loc=-0.21       spac=0.05
y.mesh loc=-0.01       spac=0.002
y.mesh loc=0           spac=0.002
y.mesh loc=10          spac=l/*
loc:设定网格线在轴上的坐标,看成比较大的区间spac: 设定在该 loc 处临近网格线间的间距。可以看成比较小的区间(对比较大的区间的再划分)loc 和 spacing 的默认单位都是 μm每个材料的切分点都要有一个mesh,按照X轴和Y轴进行划分的(x向右为正,y向下为正)整个器件,在X轴上为0到1.2um,分别放了几条线用于确定相关的结构,比如栅极和源极的范围将这几个区间进行了不同程度的细化,如0到0.1,对其每0.05um划分一次,然后Y轴也同理,注意的Y轴的0处,因为Y轴只有0坐标处可以进行高斯分布的掺杂,因此建议在0处以上就是一些不需要掺杂或者可以直接进行均匀掺杂的部分。
*/

网格切的越细,计算越精确,可让doping profile那些越接近现实。

定义新的mesh:

方法1:

或者

方法2:

手动写mesh的代码


网格计算:

实际的物理系统非常复杂,连续系统的信息量也巨大到无法估量,必须将其离散化。所以应用网格计算进行半导体仿真应用。

网格计算,将半导体仿真区域划分成网格,在网格点处计算出希望得到的特性(如:电学性质,光学性质,工艺步骤的速率等等)。

精细的网格能得到较精确的结果,但相应地会增加计算时间,也可能导致不收敛。

Silvaco TCAD控制网格方式:

  • 由网格线以及网格线之间的间隙来 描述仿真区域的网格;
  • 通过网格释放来使后续步骤中不是很紧要的区域的网格点变少, 网格释放之后也可以再重新建立合适的精细的网格。
  • 用三角形参数来控制网格的长宽比。 如果将矩形网格的对角线相连,则可以形成两个三角形,控制三角形的角度就可控制网格的 长宽比;
  • 在适当的区域增删网格线。

Structure Specification ——region、electrode

  • mesh
  • region
  • electrode
  • doping

区域的划分: 

region number=1  x.min=0     x.max=1.2   y.min=0     y.max=10    material=silicon
region number=2  x.min=0     x.max=1.2   y.min=-0.3  y.max=0     material=oxide
region number=3  x.min=0.35  x.max=0.85  y.min=-0.21 y.max=-0.01 material=poly
region number=4  x.min=0.35  x.max=0.85  y.min=-0.3  y.max=-0.21 material=aluminum
region number=5  x.min=0     x.max=0.1   y.min=-0.3  y.max=0.0   material=aluminum
region number=6  x.min=1.1   x.max=1.2   y.min=-0.3  y.max=0.0   material=aluminumelectrode reg=4  name=gate
electrode reg=5  name=source
electrode reg=6  name=drain
electrode bottom name=substrate

区域划分成region1、region2、region3.。。。

region的大小由x.min、 x.max、 y.min 、y.max 决定。

确定每个region的材料,电极以region的方式给。(填充的时候,时候后面region压在前面region上)(怎么理解:当作乐高积木拼上去)

Structure Specification ——doping

  • mesh
  • region
  • electrode
  • doping

 掺杂:

//放在哪个区域里面进行掺杂
//region1(Si的位置)是p.type均匀掺杂,掺杂浓度是1e17
//region3(poly的位置)是p.type均匀掺杂,掺杂浓度是5e20
doping uniform region=1   x.min=0     x.max=1.2   y.min=0     y.max=10    p.type concentration=1e17
doping uniform region=3   x.min=0.35  x.max=0.35  y.min=-0.21 y.max=-0.01 n.type concentration=5e20
doping gauss   region=1   x.min=0     x.max=1.2   junc=0.02   rat=0.6     p.type concentration=5e17
doping gauss   region=1   x.min=0     x.max=0.35  junc=0.05   rat=0.6     n.type concentration=4e10
doping gauss   region=1   x.min=0.85  x.max=1.2   junc=0.05   rat=0.6     n.type concentration=4e18
doping gauss   region=1   x.min=0     x.max=0.15  junc=0.2    rat=0.6     n.type concentration=5e20
doping gauss   region=1   x.min=1.05  x.max=1.2   junc=0.2    rat=0.6     n.type concentration=5e20//uniform意思是采用均匀掺杂
//gauss,高斯分布,非均匀掺杂,比较趋近foundry做出的样子

不会刚刚和doping一致,物理特性通常会有扩散

怎么看每次doping的差异:

可以每次存一个档案

save outf=ooxx1.str

(注意每次save要“分段”save,一次跑一行,慢慢存,不可一次写完,从头跑到尾巴、,程序会卡住)

Model Specification ——models

  • models
  • contact
  • interface

模型:

在这里选用 mos model

算雪崩崩溃,要加崩溃的模型。

常用的两种模型:

 mos结构常用第一个模型。

Model Specification ——contact

  • models
  • contact
  • interface

Atlas supports several boundary conditions:

  • Ohmic contacts(默认情况下是ohmic contact 。)
  • Schottky contacts
  • Current boundary conditions
  • Lumped elements between applied biases and device contacts
  • Distributed contact resistance to take into account the finite resistivity of semiconductor contacts.

Ohmic Contacts
默认情况下假设电极是欧姆的:

CONTACT NAME=ANODE NEUTRAL

Schottky Contacts

要设置肖特基接触,请使用 CONTACT 语句的 WORKFUN 参数指定功函数 (eV):

CONTACT NAME=BODY WORKFUN=4.94

在实际中,功函数定义为

【 AFFINITY是亲和力,  是金属-半导体界面处的势垒高度,单位为 eV。】

例如,

如果肖特基接触是AI,与Si的功函数差为 4.2eV,势垒高度为 0.7eV,则 WORKFUN=4.9

 Current boundary conditions

current boundary conditions计算由 CONTACT 语句中的 CURRENT 参数激活:

CONTACT NAME=BASE CURRENT

当电流对电压高度敏感或者是电压的多值函数时,电流控制电极很有用

(post-breakdown and snap-back) 。

External Resistor,Capacitors, Inductors

可以使用 CONTACT 语句中的 RESISTANCE、CAPACITANCE 和 INDUCTANCE 参数指定连接到电极的电阻、电容和电感:

CONTACT NAME=DRAIN CAPACITANCE=20e-12

由于接触材料具有有限的电阻率,沿金属半导体表面的静电势并不总是均匀的。为了解决这种影响,可以使用 CON.RESIST 参数将分布接触电阻与任何电极相关联:

CONTACT NAME=SOURCE CON.RESITANCE=0.01

参数单位:

Floating Contacts

要指定Floating Contacts,请在电极上放置一个非常大的电阻器:

CONTACT NAME=SOURCE RESISTANCE=1e14

Model Specification ——contact

  • models
  • contact
  • interface

INTERFACE 语句指定半导体绝缘体边界处的界面参数。 除非另有说明,所有参数仅适用于边界节点。

INTERFACE [<params>]

INTERFACE 语句由一组界面的边界条件参数和一组用于定位这些参数effect的参数组成  。

INTERFACE qf=3e10

该语句指定半导体和绝缘体之间的所有界面都具有 3e10 cm-2 的固定电荷。

可以使用 x.min,x.max,y.min 和 y.max 将感兴趣的区域限制在特定区域  。

INTERFACE x.min=-4 x.max=4 y.min=-e.5 y.max=4 qf=1e10 s.n=1e4 s.p=1e4

该语句定义了具有固定电荷和复合速度的接口

Numerical Method Selection ——method

  • method

定解法

method newton itlimit=25 maxtrap=4
  • newton:使用牛顿法获得非线性解。 ltlimit:指定允许的最大迭代次数(default=25)
  • maxtrap:指定在发散的情况下陷阱过程将重复的次数(default=4)。 maxtrap=10 推荐用于击穿模拟。

三个步骤结合在一起:

go atlas simflags="-P 2"
mesh inf=nMOs_atlas.str //之前第一步定义的结构models mos    //定义model
interface qf=3e10  //interfacemethod newton itlimit=25 maxtrap=4  //method

Solution Specification ——log

  • log
  • solve
  • load
  • save
solve init   //几个电极归零解,解一次。
solve ....#     //要解的内容log outfile=xxx.log  //要解的数值放在哪里,xxx是自己定义的名字
solve .....##
log offsave outfile=xxx.str //存档
//上面...#里面的东西,是要解的内容:
//nmos可以解什么:
IdVg
Idvd
BVoff//量取的方法(后面是量测条件):
a. IdVg @ Vd=0.1, Vg=0 ~3V,Vs=0,Vb=0
//给Vd 0.1,Vg扫0-3V,然后Vs接0,Vb接0b. Idvd @ Vg=1,2,3V,Vd=0 ~ 5V,Vs=0,Vb=0
c. BVoff @ vd= 0 sweep I=1-6A

Result Analysis

  • extract
  • tonyplot

萃取Vthreshold

点击write

Result Analysis

  • extract
  • tonyplot

 

例子:

a. IdVg @ Vd=0.1, Vg=0 ~3V,Vs=0,Vb=0

IdVd @Vg=1,2,3 Vd=0 ~ 5V



参考:

積體電路工程課程 (Silvaco TCAD - ATLAS)

Silvaco学习日记(2020/10/20)

Silvaco TCAD仿真4——设计一个元件nmos(Atlas)相关推荐

  1. Silvaco TCAD仿真1——TCAD概述

     TCAD介绍 TCAD(Technology Computer Aided Design):半导体工艺模拟以及器件模拟工具. TCAD是EDA的一个分支. process simulation:se ...

  2. Silvaco TCAD仿真5——process simulation(Athena)

    使用的设计流程: Athena和process结合: run-card(里面有很多process flow)和layout GDS文件 结合,会产生结构文件. 现在的TCAD的基本是3D的.也可以做2 ...

  3. Silvaco TCAD仿真例库——肖特基二极管正向特性(例子)

    此示例演示了肖特基二极管正向特性的仿真. 展示了: 使用 Atlas 语法形成二极管结构 设置阳极的肖特基势垒高度 正向偏置阳极 代码 第一部分:描述设备 mesh(网格) electrodes lo ...

  4. Silvaco TCAD仿真8——网格mesh的意义(举例说明)

    离子注入形成的掺杂分布,不同网格密度产生的效果 网格点稀疏  #启功工艺仿真器 go athena#定义网格 # x:0-1,间距是1.即x方向有1个网格点. # y:0-5,间距是0.1.即y方向有 ...

  5. Silvaco TCAD仿真11——BJT结构仿真

    代码 共射极(作用:电流放大),改自例库BJT/bjtex04.in 源代码: go atlasmesh x.m l=0 spacing=0.15 x.m l=0.8 spacing=0.15 x.m ...

  6. Silvaco TCAD仿真10——MOSFET结构仿真

    代码 MOS器件结构 go atlas#定义网格 #二维非均匀网格 mesh x.m l=0.0 spacing=0.3 x.m l=0.5 spacing=0.018 x.m l=2.5 spaci ...

  7. Silvaco TCAD仿真9——半导体PN结仿真

    代码 #启动仿真工具 go atlas#定义网格 mesh x.mesh location=0.00 spac=1.0 x.mesh location=1.00 spac=1.0 #x 0-1,x方向 ...

  8. Silvaco TCAD——二维工艺仿真

    工艺仿真组件ATHENA 概述 仿真组件: ATHENA SSUPREM4(二维核心工艺仿真器) Parallel Monte Carlo Implant(蒙托卡诺离子注入仿真 器) ELITE(先进 ...

  9. 如何利用Simulink来设计一个AEB的算法,并通过SCANeR仿真来测试?

    工作太忙,这篇文章断断续续花了2个月才写出来. 累. 所以看名字就知道我是怎么干的:这是SCANeR和Simulink联合仿真的一个例子. 所以你要想看懂这篇这篇文章,我是默认你会Matlab/sim ...

  10. hfss和python_利用Python与HFSS联合仿真设计一个微带天线(附详细代码)

    原标题:利用Python与HFSS联合仿真设计一个微带天线(附详细代码) 我们知道HFSS是一款电磁仿真商用软件,用其进行天线的设计十分方便.而该软件也预留了可以运行脚本的接口,使用者可以使用脚本对软 ...

最新文章

  1. vs2015 企业版、专业版如何破解(秘钥)
  2. “阿姨我不想努力了”,阿姨的回复让我重燃斗志!
  3. maven各个属性参数详解
  4. Java 链表数据修改
  5. pyCharm pyplot.show()不显示图表的解决
  6. oracle11gr2架构图,Oracle 11g R2 体系结构
  7. Hadoop入门基础教程 Hadoop之单机模式搭建
  8. 如何从头到脚彻底解决一个MySQL Bug
  9. 【Flink】No tests found matching Method xx from org.junit.internal.requests.ClassRequest
  10. 趣谈Linux操作系统01:概述
  11. 支付宝核心工程师谈如何成为一名优秀的程序员?
  12. 怎样把PPT文稿转换为word
  13. C++开发斗地主(QT)第五篇之牌型权重
  14. 音视频基础1:H264、H265、MPEG-4、VP8、VP9编码基础知识
  15. 签订房屋买卖居间合同后一方违约购房定金如何处理
  16. 最基本财务基础知识,财务知识基础
  17. Uncaught SyntaxError: The requested module ‘/node_modules/.vite/vue.js?v=bd1817bb‘ does not provide
  18. netcat使用方法
  19. apicloud命名空间$api方法集合
  20. docker容器联网问题

热门文章

  1. linux 更新etc profile,讲解Linux系统中修改/etc/profile文件的方法
  2. win7桌面背景变黑且不能更换壁纸
  3. 百度网盘微信小程序文件 同步到百度网盘APP或客户端
  4. html的几种选择器
  5. IOI 2022 简要题解
  6. 西湖论剑2020writeup
  7. 初识智遥工作流软件——表单开发篇1
  8. 深度学习:GAN 对抗网络原理详细解析(零基础必看)
  9. .Net Core的优势
  10. 智能网联汽车云控系统第3部分:路云数据交互规范