很多同学问我关于Sentaurus Device材料的问题,所以索性专门写一篇文章,详细的讲解一下sdevice里物理模型材料的问题。

材料参数是什么

材料参数是物理模型具体化的参量,比如,对于电子电流模型:

其中,

电子迁移率可以认为就是该模型的一个模型参数。对于某一个具体的器件来说,其取值可能是
,这就是电子电流模型在某个器件中的具体化。对于一个具体的仿真:

其中,器件所涉及的所有物理内涵都体现在物理模型和模型参数上,这两者缺一不可。模型参数设置是否合理,将直接决定器件仿真的准确性,甚至正确性,大家在仿真时,需要特别留意。

材料参数在哪里

Sentaurus TCAD中的模型参数的组织方式如下:

  • Sentaurus内为绝大多数半导体材料提供了模型参数,保存在安装目录下的MaterialDB文件夹中,其中包含了,Si、Ge、SiO2等材料的参数。以Si为例,Si的参数文件命名为:Silicon.par。这部分参数是所有project和所有用户仿真的默认参数,为了防止用户随意修改,这部分参数文件一般是不可以修改的,大家也切记不要去修改
  • 在Sentaurus内用户建立的project目录下,用户可以建立自己的par文件。通过sdevice的cmd文件对该文件引用,即可用于为器件仿真指定自定义的模型参数。这部分模型参数仅在当前project内有效,大家可以随意、任性、愉快地修改,不会影响其他仿真。在sdevice的cmd文件中的引用par文件的命令为:
File {Parameter = "n30_des.par"......
}

或者在swb的sdevice里,采用@parameter@代替,在具体的某个node下,swb会使用对应的node编号生成该文件。

File {Parameter= "@parameter@"......
}

注意:请确保前面没有* 或#注释符,否则,即使有这句话,也不起作用,例如下面:

File {Grid=   "@tdr@"Plot=   "@tdrdat@"Current="@plot@"Output= "@log@"* Parameter= "@parameter@"    这一句话被注释掉了,写了和没写一样
}

MaterialDB的路径

MaterialDB文件路径为:

sentaurus安装目录/L_2016.03-SP2/tcad/L-2016.03-SP2/lib/sdevice/MaterialDB

如果sentaurus的安装目录是:/usr/synopsys/sentaurus/,那么该路径是:

/usr/synopsys/sentaurus/L_2016.03-SP2/tcad/L-2016.03-SP2/lib/sdevice/MaterialDB

需要注意的是:MaterialDB文件夹下有不同版本sentaurus的模型参数。随着sentaurus版本更新,模型参数也会更新,所以可能导致sentaurus版本变了,一样的仿真却得出不同的结果。因此,为了保证更换sentaurus版本后的仿真结果一致,请确保参数文件的版本一致。

高版本的sentaurus保存了低版本的参数文件

参数调用顺序

当一个仿真开始时,系统会检查参数文件,确定每个被启用的物理模型的模型参数,其流程如下:

  1. 如果在sdevice的cmd文件中,未指定par文件的路径,即input中没有Paramter=@parameter@一行,那么系统将自动调用MaterialDB内的默认物理模型参数;
  2. 如果在sdevice的cmd文件中,指定了par文件的路径,并且该文件在当前project目录下,sdevice将优先读取该par文件内的模型参数:如果par文件内存在模型参数,就会用该模型参数替代默认的模型参数进行仿真;如果发现未在该par文件中定义的模型参数,则系统将使用MaterialDB内的默认模型参数进行补充。
  3. 如果某个物理模型必须的物理参数,在用户定义par以及MaterialDB内的默认参数中均未定义,那么仿真就会报错并结束。如果在Math中添加-UndefinedModel命令,虽然仿真可以正常运行,但是这个缺失模型参数的物理模型是未被激活的,请同学们切记,避免仿真结果与预期不符

上述流程见下图:

par参数文件的参数定义格式

大家可以打开Silicon.par文件,查看默认参数的定义格式,一般情况下,一个模型参数的格式如下:

model_name {
# 一些注释,关于模型的解释,以#开头
par1 = 10 #[V]
par2 = 10,20 #[cm^2/(Vs)]
}

  • model_name为物理模型的名称,例如ConstantMoblity,为恒定迁移率模型
  • 以#开头的为注释,帮助理解
  • par1和par2定义的是模型参数的取值
  • #[V]和#[cm^2/(Vs)] 为模型参数的单位,该处注释仅做提示,修改后不起作用,请一定按照该单位修改模型参数,即你不可以将#[V] 修改成 #[mV],然后将10改成10000,因为#[V]仅做单位的提示,不是单位的定义,切记。
  • par2参数为双参数,修改时也应为双参数,例如迁移率模型中 mumax = 1200,400 分别表示最大电子迁移率和空穴迁移率,缺一不可。

下面看一个实例,请对应理解:

ConstantMobility:
{ * mu_const = mumax (T/T0)^(-Exponent)mumax   = 1.4170e+03 ,    4.7050e+02 # [cm^2/(Vs)]Exponent   = 2.5 ,    2.2 # [1]mutunnel   = 0.05 ,   0.05    # [cm^2/(Vs)]
}

如何在swb中修改模型参数

修改一个project的模型参数,有两种方法:

第一种方法,从MaterialDB中复制一份参数文件到当前project目录下,并修改模型参数:

  • step 1 在sdevice上右键,选择include Materials
选择导入材料(Include Materials)
勾选要引用的材料
  • step 2 打开parameter文件
打开sdevice的参数文件(Parameter...)
引用材料后的par文件

此时,par文件被添加了几行代码,逐行解释如下:

第 1 行:这是一句宏命令,定义了一个变量,名为ParFileDir,其值是一个点(.)。在linux里,(.)代表的是当前目录,即project的目录。

 #define ParFileDir . 

第3-5行:定义了SiO2的参数,其中,#includeext 为插入文件,ParFileDir/SiO2.par是文件名, 即将"ParFileDir/SiO2.par"文件的内容插入到本文中。

Material="SiO2" {#includeext "ParFileDir/SiO2.par"
}

ParFileDir的内容是(.),即当前目录,所以引用的文件是./SiO2.par,即当前project目录下的SiO2.par文件。

第6-11行:与3-5行类似,需要注意的是,你并没有在project目录下新建SiO2.par, Silicon.par和Silcide.par文件,这三个文件是swb根据用户引用,从MaterialDB目录下自动复制过来的!

当前project目录下,多了三个par文件,为swb自动复制
  • Step 3 修改project目录下的SiO2.par、Silicon.par、Silicide.par这三个文件内的模型参数,即可完成参数修改。

第二种方法,直接在par中定义某个材料或区域的模型参数

假如需要修改Silicon材料的恒定迁移率ConstantMobility,可以直接在sdevice的par文件内添加ConstantMobility的定义,只不过在该定义前冠以Material = "Silicon"命令

Material = "Silicon" {ConstantMobility:{ * mu_const = mumax (T/T0)^(-Exponent)mumax   = 1.4170e+03 ,    4.7050e+02 # [cm^2/(Vs)]Exponent   = 2.5 ,    2.2 # [1]mutunnel   = 0.05 ,   0.05    # [cm^2/(Vs)]}
}

即可完成对Silicon迁移率模型参数的修改。

如何判断模型是否修改成功

在sdevice的.out文件中观察修改结果。

假如将Silicon的参数修改如下,即将电子迁移率修改为12345,空穴修改为6789(这两个值不合理,仅做示范)。

Material = "Silicon" {ConstantMobility:{ * mu_const = mumax (T/T0)^(-Exponent)mumax    =   12345 ,    6789    # [cm^2/(Vs)]Exponent   = 2.5 ,    2.2 # [1]mutunnel   = 0.05 ,   0.05    # [cm^2/(Vs)]}
}

此时,运行sdevice,观察.out文件,会发现如下输出:

.out文件中,提示参数修改成功

如果在.out文件中观察到参数修改的信息,即完成修改。

如何仿真不同模型参数对器件特性的影响

如需要研究不同模型参数对器件特性的影响,可以在sdevice的par文件中,插入@变量名@的方式进行批量修改。例如:

假如需要仿真电子迁移率从10变化到100,对器件特性的影响:

第一步:打开sdevice的par文件,修改参数文件,在参数处,定义一个变量eMobility

Material = "Silicon" {ConstantMobility:{ * mu_const = mumax (T/T0)^(-Exponent)mumax   =   @eMobility@, 6789    # [cm^2/(Vs)]Exponent   = 2.5 ,    2.2 # [1]mutunnel   = 0.05 ,   0.05    # [cm^2/(Vs)]}
}

第二步:在swb的sdevice下,新建eMobility的变量,并赋值10至100,间隔为10:

生成了改变参数文件的仿真

仿真上述10个experiments,即可研究不同eMobility对器件特性的影响。

如何在一个器件的不同区域使用不同的材料参数

有同学问我,如果想在同一个器件,同一个材料的不同区域,使用不同的参数,该如何仿真呢?

参考方法如下:

使用Region命令,示例如下:

假如reg1区域电子迁移率为10,reg2区域电子迁移率为20,那么修改sdevice的par文件如下:

Region = "reg1" {ConstantMobility:{ * mu_const = mumax (T/T0)^(-Exponent)mumax =   10 ,   6789    # [cm^2/(Vs)]Exponent   = 2.5 ,    2.2 # [1]mutunnel   = 0.05 ,   0.05    # [cm^2/(Vs)]}
}
Region = "reg2" {ConstantMobility:{ * mu_const = mumax (T/T0)^(-Exponent)mumax  =   20,    6789    # [cm^2/(Vs)]Exponent   = 2.5 ,    2.2 # [1]mutunnel   = 0.05 ,   0.05    # [cm^2/(Vs)]}
}

此外,还可以定义,interface处的参数,修改方法与上述方法类似。

如何添加新材料

如果需要添加新材料,使用如下方法:

假如需要添加InGaO材料:

  • 第一步, 在project目录下,添加datexcodes.txt文件。
  • 第二步, 修改datexcodes.txt文件,添加新材料InGaO,文件内容如下:
Materials{
InGaO{label = "InGaO"group = Semiconductorcolor = #8298d9,#93a9ea}
}

需要注意,group代表的是材料类型,分为半导体(Semiconductor)、导体(Conductor)、和绝缘体(Insulator)等,需要正确设置。color是颜色,随便设置即可。

  • 第三步:在仿真中(sde、sprocess、sdevice)中引用该材料,并且在sdevice中,赋予必要的模型参数!新材料的模型参数需要自己查、自己改。

进一步讲,在sentaurus中,存在一个默认的datexcodes.txt文件,定义了sentaurus中所有的材料、掺杂等信息。其文件路径如下,大家可以参考。

sentaurus安装目录/L_2016.03-SP2/tcad/L-2016.03-SP2/lib

如有不足和错误,欢迎指正。

完.

写在最后

我关于sentaurus的入门做了一场知乎live,讲述Sentaurus TCAD的入门方法和基本使用。戳下面链接即可查看。

如何快速入门Sentaurus TCAD半导体器件仿真​www.zhihu.com

live包含84分钟语音,3个小时的演示视频,还有一个300人的讨论群。

原创文章,发表于知乎和公众号“Sentaurus TCAD仿真”(搜索SentaurusTCAD),未经允许,不得转载。

存在out参数的webservices_Sentaurus Device材料参数的那些事相关推荐

  1. 设置模态框开始是隐藏状态_有限元仿真分析误差来源之材料参数设置,小心为妙!...

    本人从本科时期就接触有限元分析,刚开始觉得花花绿绿的云图特别高大上,后来慢慢的开始仔细推敲这些分析结果可信吗?能够用来指导设计吗?渐渐也有了一些经验,在这里跟大家分享下. 我们都知道有限元分析步骤包含 ...

  2. comsol中,查看材料库中材料参数的办法

    在comsol界面中,点"材料",再点"浏览材料",即可查看材料参数,但是有些材料折射率等参数折射率没有预先给定值,所以在使用时还需自己输入值.

  3. 有限元仿真分析误差来源之材料参数设置,小心为妙!

    作者:青梅煮酒,仿真秀科普作者 本人从本科时期就接触有限元分析,刚开始觉得花花绿绿的云图特别高大上,后来慢慢的开始仔细推敲这些分析结果可信吗?能够用来指导设计吗?渐渐也有了一些经验,在这里跟大家分享下 ...

  4. 选择(Ansys2021及以上)Workbench中的LS-DYNA模块,在工程数据库中设置材料参数,选择关键字MAT和EOS

    随着Ansys新版本的不断更新,Workbench集成的Ls-dyna模板也在不断完善,在workbench中也能够完成一些Ls-dyna的计算了.那么就介绍一下,在Workbench中,如何在工程数 ...

  5. python 命令行参数-python中命令行参数

    python中有一个模块sys,sys.argv这个属性提供了对命令行参数的访问.命令行参数是调用某个程序时除程序名外的其他参数. sys.argv是命令行参数的列表 len(sys.argv)是命令 ...

  6. linux的ping命令-l参数,linux下 ping命令参数

    linux下 ping命令参数 表1 ping命令参数(linux) 参数 描述 -c count 在收发指定的count个数目的报文后停止 -d 在套接口设置so_debug -f 尽可能快地发送报 ...

  7. k2698场效应管参数电流_常用场效应管参数大全,电压,参数表图文等,涨知识必读!...

    场效应管参数 型号 封装 材料 用途 参数 KIA7N60H TO-263 NMOS 开关电源 7A/600V KIA7N65H TO-263 NMOS 开关电源 7A/650V KIA840S   ...

  8. pytorch获取全部权重参数、每一层权重参数

    pytorch获取全部权重参数.每一层权重参数 首先需要安装torchsummary 在相应的虚拟环境下pip install torchsummary 1.打印每层参数信息: summary(net ...

  9. python 打印执行命令的参数_python之获取命令行参数

    1. getopt模块: getopt模块用于抽出命令行选项和参数,也就是sys.argv.命令行选项使得程序的参数更加灵活.支持短选项模式和长选项模式. 1) 主要函数:getopt(args, s ...

  10. R语言使用caret包对GBM模型自定义参数调优:自定义优化参数网格、可视化核心参数与评估指标关系、Accuracy与树的深度、个数的关系、Kappa与树的深度、个数的关系

    R语言使用caret包对GBM模型自定义参数调优:自定义优化参数网格.可视化核心参数与评估指标关系.Accuracy与树的深度.个数的关系.Kappa与树的深度.个数的关系 目录 R语言使用caret ...

最新文章

  1. 23种设计模式整体详解
  2. excel表格怎么调整行高和列宽_表格太宽,怎么打印在一页上?这招超简单
  3. Windows系统安全模式妙用全接触
  4. [一文一命令]find命令详解
  5. centos7 mysql8.0.15_Centos7 安装MySQL8.0.15
  6. java actor和线程有什么区别_java – 在Akka Actors中使用OpenGL:保证单个线程用于特定的actor...
  7. DiscuzNT改造系列之删除帖子后论坛版块列表同步更新
  8. 《人人都该买保险》读书笔记
  9. DIY 航模GPS (M8N+HMC5883L)
  10. linux tcp 异常断开连接,TCP 异常断开
  11. tx:advice相关参数说明
  12. Java学习日记1——基础认知
  13. animate.css 动画库的使用
  14. 天梯赛-L2-027 名人堂与代金券(25)(多条件排序)
  15. [转][JS]Math.random()随机数的二三事
  16. 【allegro 17.4软件操作保姆级教程八】布线操作基础之三
  17. 利用google or-tools 求解逻辑难题:斑马问题
  18. Kaggle实战:泰坦尼克幸存者预测 -下
  19. Android摄像头:只拍摄SurfaceView预览界面特定区域内容(矩形框)---完整实现(原理:底层SurfaceView+上层绘制ImageView)
  20. 2021安道拓企业研究数据报告_爱普搜汽车

热门文章

  1. ORB-SLAM3论文解读
  2. 论文笔记_S2D.03-2012-BMVC-目标类别分割和稠密立体重建的联合优化
  3. cartographer探秘第四章之代码解析(七)--- pose_extrapolator.h 及 imu_tracker.h
  4. cartographer探秘第五章之 Cartographer 所用到的 C++11 新特性
  5. LDA(Latent Dirichlet Allocation)简介
  6. PicoDet网络结构在YOLOv5-Lite上的复现
  7. 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,
  8. 多线程和多进程的区别
  9. 主引导扇区(MBR)释疑
  10. 1-2+3-4+......+99 除去88的和