直接翻译了说明书
目标:
熟悉Sentaurus设备的功能。
介绍Sentaurus设备使用的输入文件的结构。
1.1 Overview
Sentaurus器件是一种数字半导体器件模拟器,能够模拟各种半导体器件的电气,热学和光学特性。它可以在各种工作条件下模拟一维,二维和三维器件行为,包括混合模式电路仿真,将数值仿真器件与其紧凑建模相结合,这是在基于SPICE的电路仿真级别上执行的。
1.2 Command files
Sentaurus设备的典型命令文件由几个命令部分(或语句块)组成,每个部分执行相对独立的功能。 命令文件的默认扩展名是_des.cmd,例如pp1_des.cmd。
命令文件中使用的关键字不区分大小写,并且大多数可以缩写。 然而,外部引用诸如文件名和接触点名(其是指在器件结构文件中的接触定义)是大小写敏感的,并且必须使用双引号。
命令文件通常包含以下内容:
File section
Electrode section
Physics section
Plot section
Math section
Solve section
1.2.1 File section
文件部分定义了模拟的输入和输出文件,例如:
File { * Input Files Grid = "nmos_msh.tdr" Parameter = "nmos.par" * Output Files Current = "nmos" Plot = "nmos" Output = "nmos" }
(插入的python格式的代码,感觉我的随笔完全都是在瞎写…)
1.2.1.1 Input Files
Sentaurus设备至少需要一个输入文件来定义设备结构和字段值,这是强制性的掺杂分布以及设备内可选的机械应力分布。另外,可以指定一个可选的参数文件,其中声明了材料属性和物理模型参数。
网格文件(TDR格式)包含两种类型的信息:
设备几何体,包括区域和材料规格,接触和网格定义,包括所有离散网格点的位置,也称为节点或顶点
设备中的字段值,例如给定网格上设备内的掺杂分布
网格文件可以表示1D,2D或3D设备尺寸。 它通常由网格引擎Sentaurus Mesh生成。 文件扩展名.tdr表示该文件是TDR格式,这是Sentaurus Mesh生成的默认格式。
可选的参数文件包含材料参数和用户定义的模型参数的规格。 此文件中指定的参数值将取代Sentaurus设备内置的默认值。 用于Sentaurus设备参数文件的常见扩展名是.par。
1.2.1.2 Output Files
Sentaurus设备生成几个输出文件:
a.包含电极名称和生成的电压,电流,电荷,时间,温度等的文件,其名称在Current语句中指示
d.具有空间分布式解决方案变量及其派生物的文件,其名称在Plot语句中指示
c.一个协议文件,其名称在Output语句中指明
对于当前文件,Sentaurus设备始终将_des.plt扩展名(如果未明确指定)添加到实际文件名中,例如上面示例的nmos_des.plt。
绘图规范指示,其中最终的空间分布的领域,如溶液变量(载流子密度,静电势,和晶格温度)和它们的衍生物,应被存储在模拟结束的文件名。 生成的绘图文件格式取决于输入网格文件的格式。 如果网格文件为TDR格式,则Sentaurus设备也会生成TDR格式的绘图输出。 对于绘图文件,Sentaurus设备总是将扩展_des添加到实际文件名中,例如上例中的nmos_des.tdr。
输出文件规范指示Sentaurus设备将设备仿真期间生成的输出放置在何处。 Sentaurus设备始终将扩展_des.log(如果未明确指定)添加到实际文件名,例如上述示例的nmos_des.log。
1.2.2 Electrode section
电气设备触点与初始边界条件(偏置)和其他可选规格一起在电极部分中声明。
此处定义的每个电极必须完全匹配(区分大小写)Grid文件中的现有联系人名称。 模拟中仅包含电极部分中指定的接触点。
以下是电极规格示例:
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设备将电极视为理想的欧姆接触,其中假设电源接触的电荷中性和平衡。
由于与电路节点的连接必须是电阻性的,因此Sentaurus设备会将电极转换为电阻值为0.001Ω的电阻接点。 您可以通过明确指定来改变集总电阻值。 在上例中,100Ω电阻连接到漏极触点。
对于2D器件,电阻值以Ω*μm单位定义。
栅极定义中的栅栏规范定义了金属和内部参考半导体之间的功函数差异。 这将静电势移动了指定值,psi(栅极)= Vgate – 势垒,从而允许您模拟重掺杂多晶硅栅极的存在,而不存在于器件结构中。
基本定义中的Current语句声明电极连接到理想电流源而不是电压源,因此允许您在Solve部分中增加电流。
接触HEMTgate被声明为具有0.78eV的预定势垒高度的肖特基接触。
最后一个例子说明了连接浮动半导体区域的电极floating_gate的电荷规格。
1.2.3 Physics section
在Physics部分中,您声明了要在模拟中使用的物理模型。 物理模型可以在全球范围内定义:
Physics {} or materialwise: Physics (Material="[material name]") {
} or regionwise: Physics (RegionInterface="[region name]") {
}
全局指定物理模型意味着所包含的模型适用于所有设备区域。 使用 Material=”[material name]” 或 RegionInterface=”[region name]”等限定符时,指定的模型仅在指定材料或区域中激活。 同样,模型也可以限制为材料或区域界面。
在物理部分,模型仅被声明或激活。 可以在参数文件中对给定模型的特定参数进行更改
以下示例显示了MOSFET器件仿真的物理部分的典型声明:
Physics {
Mobility( DopingDep HighFieldSat Enormal )
EffectiveIntrinsicDensity( OldSlotboom )
Recombination( SRH Auger Avalanche )
}
哪里:
迁移率模型规范考虑了由于离子化杂质上的载流子散射(DopingDep),高电场中的载流子速度饱和(HighFieldSat)以及由于表面粗糙度散射(Enormal)引起的迁移率降低导致的载流子迁移率降低。
根据Slotboom模型,由于存在掺杂,EffectiveIntrinsicDensity(OldSlotboom)激活带隙缩小。
重组(SRH俄歇雪崩)激活载流子连续性方程中相应的载流子产生。
1.2.4 Plot section
绘图部分用于指定要保存在绘图文件(在文件部分命名)中的变量,以便在Tecplot SV中进一步可视化(请参阅Tecplot SV模块):
Plot {
}
通过在Solve部分中指定Plot命令,在模拟结束时或沿着电极边界条件扫描完成绘图。 总是绘制溶液变量,静电势,空穴和电子密度以及晶格温度。
对于具有矢量值的量,例如,可以将电场,限定符“/ Vector”(或简称为“/ v”)附加到变量的名称以保存变量的矢量分量,而不是幅值的数量
Plot { eCurrent/v }
以下是一个典型的 Plot section:
Plot {
eDensity hDensity eCurrent hCurrent
Potential SpaceCharge ElectricField
eMobility hMobility eVelocity hVelocity
Doping DonorConcentration AcceptorConcentration
}
1.2.5 Math section
数学部分用于控制模拟器的数字。 以下示例说明用于3D设备瞬态仿真的数学部分的典型控制:
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 }
1.2.6 Solve section
“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 } } }
作为第一步,最初的猜测已经解决,这与电极部分的规格相符:
Coupled(Iterations=100){ Poisson }
Coupled{ Poisson Electron Hole }
为了确保收敛,初始泊松方程求解允许多达100次迭代。
假设稳态(零时间导数)近似值,第一准静态陈述将漏极电压从其初始值提升至0.05 V:
Quasistationary( InitialStep=0.01 MinStep=1e-5 MaxStep=0.2 Goal{ Name="drain" Voltage= 0.05 } ){ Coupled{ Poisson Electron Hole } }
InitialStep,MinStep和MaxStep参数用于控制迭代过程,决定模拟器如何接近最终目标。 通常,这不是一次完成的,而是反复使用虚拟时间尺度。 实际上,准静态声明将内部变量t从0增加到1,并计算每一步的相应(漏极)偏差为:
V(t)=Vinitial – t * (Vgoal – Vinitial)
类似地,第二准静态语句将栅极电压升高到1.5V。在栅极偏置斜坡期间,漏极电压保持在0.05V。 根据上一步的结果,步长自动增大或减小。 如果上一步操作成功,Sentaurus设备根据以下公式将渐进过程中的给定增量应用于时间步骤:
step(i) = min (step(i-1) * Increment, MaxStep)
因此,步长不能超过MaxStep。
如果上一个偏差步骤未能收敛,则步长减小一个由递减决定的因子(递增和递减均为2的缺省值):
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 } }
如果步长减小到小于MinStep的值,则扫描将中止并且达到模拟失败收敛的结论。
您可以更改Solve部分中的电极的边界条件类型,该部分最初在“电极”部分中设置。 要将边界条件从Dirichlet(电压)更改为Neumann(电流)或电荷类型,可以使用Set命令:
set ("drain" mode current) #or: set ("floating_gate" mode charge) #and reverse: set ("drain" mode voltage)
不允许从电流切换到充电边界条件,反之亦然。
Sentaurus设备允许您不仅可以提升电极处指定的边界条件,还可以提高模型参数值甚至材料属性。 要查看其值可以渐变的参数列表,请使用–parameter-names选项:
sdevice --parameter-names
下一个例子演示了AlGaAs-InGaAs界面的电子表面复合率如何上升:
Quasistationary ( Goal {MaterialInterface = "AlGaAs/InGaAs" Model = "SurfaceRecombination" Parameter = "S0_e" Value = 1e5} ) { Coupled { poisson electron hole } }
另一个例子显示了环境温度升高的语法:
Quasistationary ( Goal { Model="DeviceTemperature" Parameter="Temperature" Value=400.} ) { Coupled { poisson electron hole } }
1.3 Parameter Files
在Sentaurus设备中,物理模型在物理部分中定义。 模型参数(如果不同于默认值)使用File部分中指定的可选参数文件进行定义和加载。
要为硅材料生成默认参数文件的副本,请使用-P选项:
sdevice -P
该命令将生成文件models.par,其中包含硅材料的所有默认模型参数。
以下是允许您为不同材料和材料接口生成参数文件的一组选项:
-S print SiC model parameters -P print Si model and default parameters -P:Material print Material model parameters -P:Material:x print Material model parameters at mole fraction x -P:Material:x:y print Material model parameters at mole fraction x and y -P:All print model parameters for all materials -P:Material/Material print model parameters for the material interface -P filename print model parameters for materials and interfaces used in filename -L print library of parameters (suboptions are the same as for -P) -r when used with the -P and -L options, read the material library to generate the output -M filename print model parameters for regions with computed mole dependencies
要更改参数的模型,例如,由肖克利读霍尔(SRH)所使用的参数模型,并迫使Sentaurus的设备使用修改后的模型参数,而不是内置的默认值:
a.如上所述生成默认参数文件的副本,例如models.par。
b.找到定义SRH参数的models.par文件中的部分:
Scharfetter * relation and trap level for SRH recombination: { * tau = taumin + ( taumax - taumin ) / ( 1 + ( N/Nref )^gamma) * tau(T) = tau * ( (T/300)^Talpha ) (TempDep) * tau(T) = tau * exp( Tcoeff * ((T/300)-1) ) (ExpTempDep) taumin = 0.0000e+00 , 0.0000e+00 # [s] taumax = 1.0000e-05 , 3.0000e-06 # [s] Nref = 1.0000e+16 , 1.0000e+16 # [cm^(-3)] gamma = 1 , 1 # [1] Talpha = -1.5000e+00 , -1.5000e+00 # [1] Tcoeff = 2.55 , 2.55 # [1] Etrap = 0.0000e+00 # [eV] }
除Etrap外,每个参数都有两个数字 – 一个用于电子,另一个用于孔。 Etrap定义了缺陷级别和半导体固有级别之间的差异。
c.创建一个新文件,例如newSRHparameters.par。 从models.par复制SRH部分并将其粘贴到新文件中。 根据需要更改参数值,并保存更改。
d.使用“文件”部分中的参数规范来源新参数文件:
File { ... Parameter = "newSRHparameters.par" ... }