零基础silvaco系列学习笔记(一)
第一章 silvaco学习资料与基础的使用
文章目录
前言
先说为什么要写学习笔记,之前的学习习惯是写word,孤身奋战,想起来再翻看。
偶然间查阅资料看到有同学用CSDN撰写学习心得,有人互动、答疑、交流,同时我又是“一生追求仪式感的中国人”,所以学习笔记也是写给自己看,督促自己沉下心来,认认真真的学习。
要学习silvaco很久了,从大三老师就叫我学习,现在研一,学习进度一直在口头,甚至可以说没学,哎,悔不当初,寒假在家,有一门可靠性分析的课程需要用到器件仿真,我立下本阶段的小目标就是在开学时高效利用ctrl+c、v工具,AI工具,分析GaN HEMT在不同温度及电应力下的电热特性,探讨其失效机制并提出优化建议。弄懂然后提交。
话不多说,奉上今日学习成果,首先我是零基础,用的学习资料是唐龙谷先生资料的PPT以及这四本书,
目前看到第一本化龙居士写的,第二个纸质版的我也有,粗略过了一遍,感觉没有化龙的好理解,大家可以按照自己的口味去选,基本上教学的顺序一致,可以互作补充。
一、初始化init two.d 在我这不可用?
init two.d #采用默认参数,二维初始化仿真
报错:参数规范无效*
原先代码:
# (c) Silvaco Inc., 2019
go atlas
#
# SECTION 1: Mesh input
#
mesh
x.mesh loc=0.0 spac=0.2
x.mesh loc=0.4 spac=0.2
x.mesh loc=0.9 spac=0.07
x.mesh loc=1.6 spac=0.07
x.mesh loc=2.1 spac=0.2
x.mesh loc=2.5 spac=0.2
y.mesh loc=0.0 spac=0.01
y.mesh loc=0.055 spac=0.001
y.mesh loc=0.058 spac=0.001
y.mesh loc=0.3 spac=0.05
init two.d
tonyplot
quit
我决定把图片中的例子代码复现,是我的2019版软件不支持吗?
# (c) Silvaco Inc., 2019
go atlas
line x loc=0.0 spac=0.2
line x loc=0.4 spac=0.2
line x loc=0.9 spac=0.07
line x loc=1.6 spac=0.07
line x loc=2.1 spac=0.2
line x loc=2.5 spac=0.2
line y loc=0.0 spac=0.01
line y loc=0.055 spac=0.001
line y loc=0.058 spac=0.001
line y loc=0.3 spac=0.05
init two.d
tonyplot
quit
没有报错了,但是没有出图。
产生两个问题
1.为什么原来用的Mesh inputh划分网格就不可以用init two.d??
2.mesh和line划分网格有什么区别,为什么没有出图?
此处先留疑问,我日后进行学习。紧要任务是写完作业。
二、电热特性的提取
学习发现silvaco仿真可以分为工艺仿真和器件仿真,顾名思义我现在追求的是要在短时间内做好电热特性的提取和分析,那工艺部分我先跳过,直接看器件仿真。
器件仿真流程如下:
定义结构>>设定材料>>计算>>特性提取>>结果分析
按照这个思路,
定义结构我用例子3,因为它有Id-Vgs,Id-Vds的特性图像,我需要将材料改成GaN,再加入温度变量,观察开态电压大小或者时间对器件可靠性的影响,即可达到我的目标
用deepseek进行思考,给修改前的代码加上注释:
deep seek对代码给出的思考:
好的,我现在要仔细看一下这个用户提供的ATLAS仿真输入文件。首先,用户希望我理解这个文件的结构和功能,并添加注释。但看起来用户可能已经添加了一些注释,不过可能需要进一步解释或更详细的说明。我需要一步一步分析这个文件,确保每个部分的作用都被正确理解。
首先,整个文件是用于模拟HEMT(高电子迁移率晶体管)的Id-Vd和Id-Vg特性。HEMT通常由异质结构构成,比如GaAs和AlGaAs,这里看起来结构可能包括不同的区域和掺杂分布。
从SECTION 1的网格划分开始,x和y方向的网格位置和间距被定义。例如,x方向在0.0和0.75处有较细的网格,可能是源极和漏极的位置。y方向的分层可能对应不同材料层的厚度,比如GaAs层、AlGaAs层以及氧化物层。
接下来是结构定义部分(SECTION 2),定义了四个区域,材料分别为GaAs、AlGaAs(两个区域)和氧化物。AlGaAs区域的x.composition=0.3可能指的是Al的含量为30%,即Al0.3Ga0.7As。电极部分,源极、栅极和漏极的位置被指定,特别是栅极位于x=0.1到0.6之间,可能覆盖了沟道区域。
掺杂部分比较复杂,有多个均匀掺杂区域。例如,在y=0到0.03的区域是n型掺杂,浓度为1e18,这可能是在AlGaAs层中形成电子供应层。而在y>0.03的区域掺杂浓度较低,可能是有意形成二维电子气(2DEG)。另外,源漏附近的x区域也进行了高浓度掺杂,可能是为了形成良好的欧姆接触。
界面定义中的qf=-1e12可能是指固定电荷密度,这有助于在异质结界面处形成2DEG。
材料模型部分(SECTION 3)设置了AlGaAs的电子迁移率、亲和能等参数。模型选择了fldmob(场相关迁移率)、SRH复合,以及GaAs的conmob(可能是浓度相关迁移率)。栅极接触的功函数设为4.73 eV,这影响阈值电压。
仿真方法部分(SECTION 4)使用Gummel和Newton方法进行求解,先求解初始状态(vgate=0),然后逐步增加漏极电压,从0.05到3V。保存结果并用Tonyplot绘图。之后进行Id-Vg的仿真(SECTION 5),改变栅极电压从-0.9到0.6V,同时漏极电压从0到0.5V。
在注释时,需要注意每个命令的作用,比如region定义材料层,elec定义电极位置,doping设置掺杂分布,interface处理界面电荷,material和model定义材料属性和物理模型,method和solve控制仿真流程。同时,输出和保存结果的部分需要说明生成的文件用途。
可能需要注意的地方包括:
.1. 区域划分是否正确,特别是AlGaAs的x.composition是否正确设置。
.2. 掺杂分布是否合理,确保2DEG的形成。
.3. 接触的功函数是否适合材料系统。
.4. 仿真方法的选择是否适合HEMT的特性,比如是否考虑载流子的高迁移率效应。
.5. 电压扫描的步长和范围是否足够,以获得完整的Id-Vd和Id-Vg曲线。
如果用户需要更详细的注释,可能需要解释每个参数的意义,如taun0、taup0是少子寿命,affinity是电子亲和能,nc300是导带有效态密度等。同时,可以指出界面电荷qf=-1e12的作用,以及不同模型如conmob的影响。
在检查过程中,确认是否有潜在错误,比如区域是否重叠,网格是否足够细以捕捉电场变化,电极是否覆盖正确区域等。例如,源极和漏极的y范围是否正确延伸到有高掺杂的区域,确保良好的接触。
总结来说,这个输入文件结构清晰,涵盖了网格、结构、材料、模型、仿真步骤等部分。添加详细注释时,应分部分说明每个命令的作用,并解释关键参数的选择对器件性能的影响。
具体代码
# (c) Silvaco Inc., 2019
go atlas # 启动ATLAS仿真器
Title HEMT Id-Vd and Id-Vg characteristics # 仿真标题,描述器件特性
#------------------------------------------------------------------
# SECTION 1: 网格定义(定义器件几何结构的离散化网格)
#------------------------------------------------------------------
mesh
# X方向网格划分(横向,单位:微米)
x.mesh loc=0.0 spac=0.05 # 源极左侧,网格间距0.05μm
x.mesh loc=0.75 spac=0.05 # 漏极右侧,网格间距0.05μm
# Y方向网格划分(纵向,单位:微米)
y.mesh loc=-0.02 spac=0.01 # 氧化物层下部,间距0.01μm
y.mesh loc=0.0 spac=0.01 # 氧化物/半导体界面,间距0.01μm
y.mesh loc=0.03 spac=0.001 # AlGaAs/GaAs异质结附近,细网格
y.mesh loc=0.0425 spac=0.01 # 中间层,间距0.01μm
y.mesh loc=0.055 spac=0.001 # 上层GaAs,细网格
y.mesh loc=0.2 spac=0.05 # 顶部区域,较粗网格
#------------------------------------------------------------------
# SECTION 2: 器件结构定义(材料区域与电极)
#------------------------------------------------------------------
region num=1 material=GaAs y.min=0.03 y.max=0.055 # GaAs沟道层
region num=2 material=AlGaAs y.max=0.03 x.composition=0.3 # 下AlGaAs层(Al组分30%)
region num=3 material=AlGaAs y.min=0.055 x.composition=0.3 # 上AlGaAs层
region num=4 oxide y.min=-0.02 y.max=0 # 氧化物绝缘层(如衬底)
# 电极定义
elec num=1 name=source x.min=0.0 x.max=0.0 y.min=0.0 y.max=0.05 # 源极(垂直接触)
elec num=2 name=gate x.min=0.1 x.max=0.6 y.min=0.0 y.max=0.0 # 栅极(横向,位于AlGaAs表面)
elec num=3 name=drain x.min=0.75 x.max=0.75 y.min=0.0 y.max=0.05 # 漏极
# 掺杂分布
doping uniform y.min=0 y.max=0.03 n.type conc=1.e18 # AlGaAs层重掺杂(电子供应层)
doping uniform y.min=0.03 n.type conc=1.e15 # 沟道轻掺杂(本征GaAs)
doping uniform x.min=0.0 x.max=0.05 y.min=0.03 y.max=0.05 n.type conc=1.e18 # 源区接触掺杂
doping uniform x.min=0.70 x.max=0.75 y.min=0.03 y.max=0.05 n.type conc=1.e18 # 漏区接触掺杂
# 界面电荷(模拟AlGaAs/GaAs界面缺陷)
interface x.min=0 x.max=0.75 y.min=-0.01 y.max=0.005 qf=-1.e12 # 固定负电荷,促进2DEG形成
#------------------------------------------------------------------
# SECTION 3: 材料模型与物理模型设置
#------------------------------------------------------------------
material taun0=1.e-9 taup0=1.e-9 # 载流子寿命设置(电子/空穴)
material material=AlGaAs mun=2000 mup=350 affinity=3.82 nc300=5.7e17 # AlGaAs参数:迁移率、电子亲和势、态密度
# 物理模型选择
model fldmob srh # 场相关迁移率+Shockley-Read-Hall复合
model material=GaAs conmob # GaAs浓度相关迁移率
# 栅极接触属性
contact name=gate workfun=4.73 # 栅金属功函数4.73eV(与AlGaAs亲和势匹配)
#------------------------------------------------------------------
# SECTION 4: Id-Vd特性仿真(漏极电流-漏极电压扫描)
#------------------------------------------------------------------
method gummel newton itlim=20 trap maxtrap=6 vsatmod.inc=0.01 carriers=1 elect # 混合求解方法
output con.band val.band # 输出能带结构
solve vgate=0 # 初始求解:栅压=0V
save outf=hemtex03_0.str # 保存初始结构
tonyplot hemtex03_0.str -set hemtex03_0.set # 可视化工具显示结构
log outf=hemtex03_1.log master # 开始记录仿真日志
# 分段扫描漏极电压(0.05V至0.3V,步长递增)
solve vdrain=0.05
solve vdrain=0.10
solve vdrain=0.125
solve vdrain=0.15
solve vdrain=0.20
solve vdrain=0.30
method newton trap itlim=35 maxtrap=6 carriers=1 elect # 切换至牛顿法处理高偏压
solve vdrain=0.50 vstep=0.25 name=drain vfinal=3 # 大电压扫描(0.5V至3V)
save outf=hemtex03_1.str # 保存结果
tonyplot hemtex03_1.log -set hemtex03_1log.set # 绘制Id-Vd曲线
#------------------------------------------------------------------
# SECTION 5: Id-Vg特性仿真(漏极电流-栅极电压扫描)
#------------------------------------------------------------------
log off # 关闭前一个日志
solve init # 重置至初始状态
method gummel newton trap itlim=35 maxtrap=6 vsatmod.inc=0.01 carriers=1 elect
solve vgate=-0.9 vdrain=0 # 初始栅压-0.9V,漏压0V
solve vdrain=0.1 vstep=0.1 name=drain vfinal=0.5 # 固定漏压0.5V,扫描栅压
log outf=hemtex03_2.log master # 记录新日志
method newton trap itlim=35 maxtrap=6 carriers=1 elect
solve vgate=-0.8 vstep=0.1 name=gate vfinal=0.6 # 栅压扫描:-0.8V至0.6V
save outf=hemtex03_2.str # 保存结果
tonyplot hemtex03_2.log -set hemtex03_2log.set # 绘制Id-Vg曲线
quit # 结束仿真
遇到问题:
直接复制进去的go atlas 软件并不识别,手打一遍就好了,否则会报错:vwf::editor::DeckEditorError, MSG:expecting one of: simflags/cutline/cutfile/inflags/outflags/noauto in line: Simulator will be killed
后面运行报错可能还会有不识别的问题。
还有此处报错:
原因:
这是为什么呢??
对比发现,有效运行过的代码在进程框中显示为蓝色,那么右边修改后的代码注释也被当作代码给运行了,正常的注释运行过后是绿色的,如下:
解决办法:把deep seek加过的注释用回撤敲到下一行。
出现问题:我不想改动例子,新开了一个空白文件,复制进来后,发现无法调用 hemtex03_2log.set d等*.set文件,尝试复试移动到新的文件夹中也行不通,搜索解决办法。
推荐一个分享者:很厉害 认真 向他学习
复制到最外侧的文件夹就好了,所以在.(命名文件)的上一级文件夹才是工作路径的文件夹,要是不想让他散落一地,那就提前建好一级文件夹。
问题总结
1.为什么原来用的Mesh inputh划分网格就不可以用init two.d??
2.mesh和line划分网格有什么区别?
总结
主要还是要看书,随后要开始自己动软件,哪怕是复制粘贴都会出很多问题,然后一点一点拼起来,今天不早了,争取明天早起把GaN HEMT在不同温度及电应力下的电热特性拼出来。