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语句中指定。
– 对于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界面的电子表面复合率:文章来源:https://www.toymoban.com/news/detail-432744.htmlQuasistationary ( 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模板网!