Synopsys Sentaurus TCAD系列教程之--Sdevice(SmallMOS_2D3D) 解析

这篇具有很好参考价值的文章主要介绍了Synopsys Sentaurus TCAD系列教程之--Sdevice(SmallMOS_2D3D) 解析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Sdevice(SmallMOS_2D3D) 解析

File {
	* input files:
	Grid=	"@tdr"
	* output files:
	Plot=	"@tdrdat@"
	Current=	"@plot@"
	Output=	"@log@"
}

Electrode {
	{Name="source"	Voltage= 0.0}
	{Name="drain"	Voltage= 0.0}
	{Name="gate"	Voltage= 0.0}
	{Name="substrate" Voltage= 0.0}
}

Physics{
	EffectiveIntrinsicDensity(	OldSlotboom)
}
Physics(Material="Silicon"){
	Mobility(
		PhuMob
		HighFiedlSaturation
		Enormal
	)
	Recombination(
		SRH( DopingDependence )
	)
}

Math {
	Extrapolate
	Iterations= 20
	ExitOnFailure
	Method= ILS
}

Solve {
	*- Creating initial guess:
	Coupled(Iterations= 100){Poisson}
	Coupled(Poisson Electron Hole}
	*- Ramp to drain to Vd
	Quasistationary(
		InitialStep= 0.1 Increment= 1.5
		MinStep= 1e-5 MaxStep= 1
		Goal {Name="drain" Volatage=@Vd@}
		){	Coupled{Poisson Electron Hole}}
	*- Vg sweep
	NewCurrentFile= "IdVg_"
	Quasistationary(
		DoZero
		InitialStep= 0.01 Increment= 1.5
		MinStep= 1e-5 MaxStep= 0.05
		Goal {Name= "gate" Voltage= 1.0}
		){Coupled {Poisson Electron Hole}}
}


File模块
  • 输入语句 Grid=“@tdr@”,指的是输入前面的网格文件
    这个网格文件可以是Sprocess产生,也可以是Sde产生。网格文件包含了器件尺寸和掺杂等重要信息的文件。比如前面Sprocess产生的n5_fps.tdr文件,Grid="@tdr@"这条语句就可以把它调过来进行仿真。当然这条语句也可以改成Grid=“n5_fps.tdr"仿真,但是每次调用的只是n5节点下的文件, Grid=”@tdr@"可以自动调用前面所产生的网格文件,这在分组比较多的程序中占有优势.
    Sentaurus Device 期望至少有一个输入文件来定义器件结构和字段值/区域值(field values),这些值是器件内部强制性的掺杂剖面分布和可选的机械应力分布。另外还可以在声明材料属性和物理模型参数的位置执行可选参数文件。
    网格文件(TDR格式)包含以下类型的信息:
    – 器件几何图形包括区域(region)、材料规格、电极和网格定义(包括所有离散网格点(也称为节点或顶点)的位置)
    – 器件中的字段值(field values),例如,在给定网格上的器件内部的掺杂剖面分布。
    网格文件可以表示1D、2D或3D器件尺寸。它通常是由网格引擎Sentaurus mesh生成。文件扩展名.tdr表示文件为TDR格式,这是Sentaurus Mesh生成的默认格式。
    可选的Parameter文件包括材料参数规格和用户定义的模型参数。此文件中指定的参数值将取代Sentaurus Device内置默认值。Sentaurus器件参数文件常用的扩展名是.par。

    Parameter= "nmos.par"
    
    
    
  • 输出语句 Plot= “@tdrdat@”, 用于Svisual或TecplotSV中查看结构,如n8_des.tdr。

  • 输出语句Current="@plot@"用于在Inspect中查看曲线,如n8_des.plt。

  • 输出语句Output=“@log@”.log表示日志文件,gjob用于监控仿真从开始到运行结束,加上这一句,就可以双击节点查看运行的情况。
    Sentaurus器件生成多个输出文件:
    – 包含电极名称和产生的电压、电流、电荷、时间、温度等的文件,其名称在Current语句中指明。
    – 包含空间分布解决方案变量及其导数的文件,其名称在plot语句中声明。
    – 一个协议文件,其名称在Output语句中指定。
    Synopsys Sentaurus TCAD系列教程之--Sdevice(SmallMOS_2D3D) 解析
    – 对于Current 文件,Sentaurus Device总是添加_des.plt扩展名(如果没有显式指定)到实际的文件名,例如n8_des.plt.
    – Plot文件规范指明了最终空间分布场(如计算变量(载流子密度、净电势和晶格温度)及其导数)应在模拟结束时存储的文件名。生成的Plot文件格式取决于输入Grid文件的格式。如果Grid文件是TDR格式,Sentaurus Device也会生成TDR格式的plot输出。对于Plot文件,Sentaurus Device总是将扩展名_des 添加到实际的文件名,如n8_des.tdr
    – Output文件规范指明Sentaurus Device将在device模拟器件生成输出放在何处。Sentaurus Device始终将扩展名_des.log(如果未明确指定)添加到实际文件名中,如n8_des.log.

Electrode模块

在Electrode部分,电性器件电极连同初始边界条件(偏置)和其它可选规范一起声明.这里定义的每个电极必须与grid文件中已存在的电极名称(区分大小写)完全匹配。仿真中仅包含Electrode section中命名的电极。
以下是电极规格示例:

Electrode {
  { Name="source"        Voltage=0.0 }
  { Name="drain"         Voltage=0.0 Resistor=100 }
  { Name="gate"          Voltage=0.0 Barrier=-0.55 }
  { Name="base"          Voltage=0.0 Current=0. }
  { Name="HEMTgate"      Voltage=0.0 Schottky Barrier=0.78 }
  { Name="floating_gate" Voltage=0.0 charge=0. }
}
  • 默认情况下,Sentaurus Device将电极视为理想的欧姆接触,其中假设源接触为电荷中性和平衡。
  • 由于与电路接触必须是电阻性的,Sentaurus Device将电极转换为电阻触点,默认阻值为0.001Ω。可以显示指定集总电阻来更改集总阻值,在上面的例子中,100Ω电阻连接到漏极电极。
  • 对于2D器件,电阻值以Ω*um为单位。
  • 栅极定义中的势垒规范定义了金属和本征参考半导体之间的功函数差异。这就改变了静电势的指定值,psi(gate)=Vgate-barries, 从而允许模拟重掺杂多晶硅栅极的存在,而不存在于器件结构中。
  • 基本定义中的Current规范声明电极连接到理想电流源而不是电压源,因此允许Solve section中斜坡电流(ramp the current).
  • HTMT栅极电极被生命为具有0.78eV的预定义势垒高度的肖特基接触。
  • 最后一个示例说明了floating_gate 的电荷规格,该电极连接到浮动半导体区域。

小记:

  • 一般为了收敛,都设置为0
  • 当使用瞬态时,这里可以定义脉冲
  • Voltage定义了电极电压,电极接触默认为欧姆接触
  • 通常会在Gate添加Barrier,用于定义多晶硅电极的功函数差,把多晶硅当成金属电极,PMOS 为正,NMOS为负,通常是0.55和-0.55eV
  • 电荷Charge的定义
Physics 模块

本节声明将在仿真中使用的物理模型。物理模型可以全局定义:

Physics {
	[list of models]
}

或materialwise:

Physics (Material="[material name]") {
	[list of models]
}

或regionwise:

Physics (RegionInterface="[region name]") {
	[list of models]
}
  • 全局指定物理模型意味着所包含的模型对所有器件区域(device region)都有效。使用诸如Material="[材质名称]“或RegionInterface=”[区域名称]"之类的限定符,指定的模型仅在指定的材质(material)或区域(region)中激活。模型也可以限于材料或区域界面。
  • 在Physics 部分,只声明或激活模型。可以在参数文件中对给定模型的特性参数进行更改,如File部分所述。
Physics {
	Mobility( DopingDep HighFieldSat Enormal )
	EffectiveIntrinsicDensity( OldSlotboom)
	Recombination( SRH Auger Avalanche )
}
  • 迁移率模型(Mobility)规范考虑了由于离子杂质上的载流子散射(DopingDep)导致的载流子迁移率退化、高电场中的载流子速度饱和(HighFieldSat)以及表面粗糙度散射导致的迁移率退化(Enormal)
  • 根据Slotboom模型,由于掺杂的存在,有效本征密度(OldSlotboom)激活带隙缩小
  • 复合模型(Recombination)激活载流子连续性方程中相应的载流子产生-复合项。

物理模型在半导体仿真中是基础:

  • 禁带变窄模型
    半导体材料的本征载流子浓度依据其禁带宽度和能带边缘状态密度,高浓度会对禁带宽度造成影响
    EffectiveIntrinsicDensity 表示使用禁带变窄模型,如
    EffectiveIntrinsicDensity (Slotboom) 。包含Slotboom和OldSlotboom等.EffectiveIntrinsicDensity{(BandGapNarrow(Slotboom))}.默认i情况下,禁带变窄处于激活状态,当使用NoBandGapNarrowing表示关闭该模型,有的是在物理模型前加"-"表示不使用该模型。

  • 迁移率模型
    PN结电场强度很高时发生雪崩,此时的电子和空穴的迁移率已达到饱和,这就是高场饱和效应导致的迁移率退化模型(HighFieldSaturation),所以在仿真中引入该模型必不可少。
    Mobility定义了迁移率模型,

    Mobility (
    				PhuMob
    				Enormal
    				HighFieldSaturation
    			)
    

    v=μE,包含了迁移率与掺杂浓度的关系(DopingDep)、迁移率与高电场的关系((HighFieldSaturation,也可以是eHighFieldSaturation,hHighFieldSaturation).有时在Mobility中激活多个不相冲突的模型,可以更好的校准仿真结果。迁移率表征的是载流子在单位电场下的平均运动速度,而不是单单的漂移运动,因为载流子的运动除了在外力作用下的漂移,还有浓度差的扩散,以及粒子之间的碰撞散射。如在温度较高时,晶格振动会更剧烈,在高掺杂浓度的区域会发生电离杂质散射。还有载流子之间的散射、电子-空穴、Carrier-Carrier Scatter, 这三个散射,使用Phumob(Philips Unified Mobility)模型即可激活。Enomal用于模拟界面散射对载流子迁移率的影响,由于界面电荷与载流子之间存在作用力,Enomal将界面处其它方向的电场,界面处晶格振动对载流子迁移率的影响都考虑其中。迁移率模型有很多可以选择,详细参考手册。

  • 复合模型
    复合模型包括SRH(Shockley-Read-Hall)复合和俄歇复合,其中SRH复合通过禁带中的深能级进行,SRH复合可描述为与载流子寿命相关的一个函数;俄歇复合在载流子浓度很高的时候会起到作用。
    Recombination定义了复合模型,包括肖克莱复合以及碰撞电离相关的复合模型等。SRH复合是必须的,Auger模型在正向导通载流子浓度较高、大注入时起主要作用。

    Recombination (
    			SRH(DopingDep TempDependence)
    			Auger
    			)
    
Math模块

Math部分控制仿真数值。下面的示例说明了用于3D 器件瞬态模拟的Math部分的典型控件:

Math {
*-- Parallelization on multi-CPU machine --*
  Number_Of_Threads=1   * change the number of threads to > 1 to make 
                        * parallelization possible. First ensure your machine 
                        * has shared-memory multi-CPU configuration.
*-- Numeric/Solver Controls --*
  Extrapolate           * switches on solution extrapolation along a bias ramp
  Derivatives           * considers mobility derivatives in Jacobian
  Iterations=8          * maximum-allowed number of Newton iterations (3D)
  RelErrControl         * switches on the relative error control for solution 
                        * variables (on by default)
  Digits=5              * relative error control value. Iterations stop if 
                        * dx/x < 10^(-Digits)
  Method=ILS            * use the iterative linear solver with default parameter 
  NotDamped=100         * number of Newton iterations over which the RHS-norm 
                        * is allowed to increase
  Transient=BE          * switches on BE transient method
}
  • Parallelization on multi-CPU machine: 多CPU机器上的并行化
  • Number_Of_Threads=1 :将线程数更改为>1以使并行化成为可能。首先确保计算机具有共享内存多CPU配置
  • Numeric/Solver Controls:数据、求解器控制
  • Extrapolate:打开沿着偏置斜坡(bias ramp, 或者翻译成偏移渐变)的解外推
  • Derivatives:考虑Jacobian(雅克比矩阵)中的迁移率导数
  • Iterations: 最大允许牛顿迭代次数(3D)
  • RelErrControl: 打开解决方案变量的相对控制错误(默认 情况下打开)
  • Digits: 相对误差控制值。如果dx/x<10^(-位数),迭代停止
  • Method:使用默认参数的迭代线性求解器
  • NotDamped: 允许RHS-norm范数增加的牛顿迭代次数
  • Transient: BE瞬态法开关

Math命令段用来设置数值的求解算法,其中

  • Notdamped=50表示在前50次扭断迭代计算中采用无阻尼计算模式,50以内不衰减,在大多数情况下不需要使用该参数。
  • Iteration=20表示迭代20次,比如在不收敛的时候经常遇到,一般迭代20此还不收敛,改成40此页不会收敛,问题多数还是网格的问题。
  • method=ILS表示采用ILS算法进行求解
  • Number_of_Threads 表示采用的线程,但不是设置越大,仿真速度越快,主要取决于处理器、内存和散热等方面,所以一般4或8即可
  • Extrapolate表示引入外推算法
  • BreakCriteria表示击穿条件,也是仿真的终止条件,这里Drain电流到100uA肯定是击穿了,便停止仿真,BreakCriteria命令可以写在Solve里也可以写在Math里。
Solve(求解)模块

Solve部分由一系列顺序执行的命令组成。命令序列指示仿真必须解决哪个任务以及如何解决。
Solve部分是唯一一个命令顺序及其层次结构很重要的部分。下面是一个典型的例子,代表了MOSFET输出特性仿真的标准设置:

Solve {
*- Buildup of initial solution:
	Coupled(Iterations=100){ Poisson }
	Coupled{ Poisson Electron Hole }
*- Bias drain to target bias
	Quasistationary(
		InitialStep= 0.01 MinStep=1e-5 MaxStep=0.2
		Goal{ Name="drain" Voltage= 0.05 }
	){ Coupled{ Poisson Electron Hole}}
*- Gate voltage sweep
 	Quasistationary(
 		InitialStep=1e-3 MinStep=1e-5 MaxStep=0.05 Increment=1.41 Decrement=2.
 		Goal{ Name="gate" Voltage= 1.5}
 	){ Coupled{ Poisson Electron Hole}}
 }
  • 作为第一步,解决初始猜测,这与电极部分中的规范相对应。为了确保收敛,允许对初始泊松方程进行多达100次迭代。Poisson启动并调用泊松方程。

  • Coupled { Poisson Electron Hole } 表示调用了泊松方程,电子连续方程,空穴连续方程。将三个方程写在一起,表示耦合求解,就是找到一个解同时满足三个方程。

  • 第一个Quasistationary语句将漏极电压从其初始值上升至0.05V,假设稳态(零时间导数)近似.
    InitialStep、MinStep和MaxStep参数控制迭代过程,决定模拟器如何接近最终目标。通常,这不是一次性完成的,而是使用虚拟时间刻度迭代完成的。在实践中,Quasistatinary语句将内部变量t从0渐变为1,并计算每个步骤相应的(drain)偏差如下:
    V(t) = Vinitial + t * (Vgoal - Vinitial)
    Goal参数定义了电压的最大值。Quasistationary语句中指定的所有控制参数都适用于变量t的渐变。在本例中,t的初始步长由InitialStep=0.01设置,对应的初始电压步长为:
    Vinitial + InitialStep * (Vgoal - Vinitial) = 0.0005V ,if Vinitial = 0

  • 类似的,第二个Quasistatinary语句将栅极电压提高到1.5V。在栅极电压上升器件,漏极电压保持在0.05V.步长根据前一步的结果自动增大或减小。如果前一步成功,Sentaurus Device会根据以下公式将给定的增量应用于上升期间的时间步长,根据公式:
    step(i) = min (step(i-1) * Increment, MaxStep)
    因此步长不能超过MaxStep。

  • 如果上一步偏置步长未能收敛,则步长减小一个由减量决定的因子(增量和减量的默认值均为2)。如果步长减小到小于MinStep的值,则终止扫描,结论是仿真未能收敛。可以在Solve部分中更改电极的边界条件类型,该边界条件类型最初是在Electron部分中设置的。要将边界条件从Dirichlet(voltage)更改为Neumann(current)或电荷类型,使用Set命令:

    set ("drain" mode current)set ("floating_gate" mode charge)
    and reverse:
    set ("drain" mode voltage)
    	```
    不能从电流切换到电荷边界条件,反之亦然。	
    
  • Sentaurus Device 不仅可以调整(ramp)电极上指定的边界条件,还可以调整模型参数值甚至材料属性。若要查看可以调整值的参数列表,请使用以下选项:
    sdvice --parameter -names
    下一个例子演示了如何提高AlGaAs-InGaAs界面的电子表面复合率:

    Quasistationary (
    	Goal {MaterialInterface = "AlGaAs/InGaAs"
    		Model = "SurfaceRecombination"
    		Parameter = "S0_e"
    		Value = 1e5}
    	) {Coupled { Poisson electron hole } }
    

    这个例子展示了环境温度渐变的语法:文章来源地址https://www.toymoban.com/news/detail-432744.html

    Quasistationary (
    		Goal { Model="DeviceTemperature" Parameter="Temperature" Value=400.}
    	) { Coupled { poisson electron hole } }
    		
    

到了这里,关于Synopsys Sentaurus TCAD系列教程之--Sdevice(SmallMOS_2D3D) 解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【深度学习】 Python 和 NumPy 系列教程(廿四):Matplotlib详解:2、3d绘图类型(10)3D箱线图(3D Box Plot)

    目录 一、前言 二、实验环境 三、Matplotlib详解 1、2d绘图类型 2、3d绘图类型 0. 设置中文字体 1. 3D线框图(3D Line Plot) 2. 3D散点图(3D Scatter Plot) 3. 3D条形图(3D Bar Plot) 4. 3D曲面图(3D Surface Plot) 5. 3D等高线图(3D Contour Plot) 6. 3D向量场图(3D Vector Field Plot) 7. 3D表面投影图

    2024年02月03日
    浏览(49)
  • 2D-3D配准指南[方法汇总]【入门指导向】(二)2D-3D MatchNet +pointnet

    近年来,采用三维和二维数据的应用层出不穷,它们都需要将 三维模型 与 二维图像 进行匹配。大型定位识别系统可以估算出照片拍摄的位置。在全球定位系统可能失灵的情况下,地理定位系统可以进行地点识别,对自动驾驶非常有用。此外,法医警察也可以利用该系统破案

    2024年02月05日
    浏览(47)
  • Open3D-GUI系列教程(一)创建一个Open3D应用窗口

    本人菜狗一枚,第一次写文章,python懂的也不多,肯定有很多表述存在问题,如有错误请大佬们不吝赐教。 整个open3d的gui我是照着源码里的示例和官方文档摸出来的,因为确实很少有关于这个的教程,官方也没给。所以我顺便整理分享一下。 Open3D官网 官方文档 open3d版本:

    2023年04月13日
    浏览(68)
  • 【Web2D/3D】CSS3的2D/3D转换、过渡、动画(第一篇)

    1. 前言         本篇开始介绍Web2D和3D相关基础知识,会从CSS3的2D/3D转换、过渡、动画,讲到Canvas 2D图形绘制,再到SVG,最后到WebGL。         坐标系:左上点是坐标原点(0,0),x轴正方向向右,y轴正方向向下,z轴正方向向外(垂直屏幕向外)。 2. 2D转换         CSS3的2D/3D旋

    2024年02月04日
    浏览(53)
  • Open3D-GUI系列教程(五)鼠标事件(拾取顶点)

    这里实现一下鼠标拾取顶点的操作。open3d本身提供了交互选点的操作 gui.SceneWidget.Controls.PICK_POINTS ,但是出于某些超出我认知范围的因素,这玩意儿根本不起作用。所以只能另辟蹊径。 最新的open3d 0.15.1好像修复了这个bug,我试了一下好像还不行,或许是我真的不会用。 open

    2024年02月02日
    浏览(49)
  • Unity3D:2D/3D 项目

    推荐:将 NSDT场景编辑器 加入你的3D工具链 3D工具集: NSDT简石数字孪生 无论是创建 2D 还是 3D 游戏,Unity 都很拿手。在 Unity 中创建新项目时,可以选择以 2D 或 3D 模式启动。您可能已经知道要构建什么,但有一些细微的要点可能会影响选择的模式。 选择是以 2D 还是 3D 模式启

    2024年02月07日
    浏览(61)
  • 05_2D3D转换

    转换是 CSS3 中具有颠覆性的一个特征,可以实现元素的位移、旋转、变形、缩放。 通过 transform 转换来实现 2D 转换或者 3D 转换。 2D 转换包括: 缩放 scale 移动 translate 旋转 rotate 倾斜 skew(了解) 1.1 缩放 scale 设置元素的缩放效果,只要给元素添加上了这个属性就能控制它放

    2024年02月07日
    浏览(44)
  • 2d、3d转换,适配问题

    1.基本介绍 1)作用: 伪元素添加动态效果,一般与过渡配合使用 2)概念: 改变盒子在平面内的形态(位移、旋转、缩放、倾斜) 平面转换又叫2D转换 2.平面转换--平移 1)属性: transform:translate(x轴移动距离,y轴移动距离) 2)取值: 像素单位数值 百分比 正负均可 3)技巧:

    2024年04月17日
    浏览(32)
  • 随手笔记——3D−2D:PnP

    PnP(Perspective-n-Point)是求解3D到2D点对运动的方法。它描述了当知道n个3D空间点及其投影位置时,如何估计相机的位姿。 特征点的3D位置可以由三角化或者RGB-D相机的深度图确定。因此,在双目或RGB-D的视觉里程计中,可以直接使用PnP估计相机运动。而在单目视觉里程计中,必

    2024年02月15日
    浏览(37)
  • 【单目3D】在自动驾驶中将 2D 物体检测提升到 3D

    单目 3D 目标检测使用 RGB 图像来预测目标 3D 边界框。由于 RGB 图像中缺少关键的深度信息,因此该任务从根本上说是不适定的。然而在自动驾驶中,汽车是具有(大部分)已知形状和大小的刚体。那么一个关键的问题是如何有效地利用汽车的强大先验,在传统 2D 对象检测之上

    2024年02月19日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包