简介《各种语句sentaurus.docx》面向微电子、纳米电子与光电子器件仿真学习者聚焦Sentaurus在器件电学特性与可靠性分析中的典型语句用法可用于I-V、C-V曲线计算、辐照损伤与重粒子入射、瞬态过程等场景的建模与结果分析。压缩包共1个docx文件大小约16KB篇幅紧凑便于按主题检索和对照查阅。内容围绕电流电压文件、电极与物理模型、Math与Solve求解设置、AC耦合电容仿真、重离子撞击及激光照明瞬态模型等展开并给出可复用的命令片段与参数配置思路帮助读者理解仿真流程、补全语句细节并排查常见设置问题。文档以可直接参考的语句块为主适合课程设计、科研复现与工程仿真准备。已有2038人学习适合具备一定器件物理与TCAD基础、希望快速查阅Sentaurus语句和仿真实例的读者。1. 先把“各种语句sentaurus.docx”当参数底稿它解决的是写语句卡壳不是替你选模型拿到一份只有命令片段的 docx比拿到目录整齐的教程更麻烦教程会告诉你先做什么语句合集只会把 I-V、C-V、重离子、激光和辐照陷阱一股脑摊在面前。各种语句sentaurus.docx 就是这种资料价值不在“读完”而在“查到就能改”网格文件、电极名、物理模型、扫描目标、瞬态步长都以可复制的 sentaurus 语句形式摆着。适合已经能打开 SDevice、但一写 Physics 和 Solve 就卡住的人也适合做器件电学、单粒子瞬态和辐照损伤仿真的从业者把它当参数底稿而不是当标准答案。2. I-V 扫描骨架从 File 五件套到 QuasiStationary 收敛的四个参数一份能跑起来的 I-V 语句最先要看的不是 Physics 里开了多少模型而是 File、Electrode、Mesh 三者是否对得上。很多“电流一直是零”“电极找不到”的报错根子不在求解器而在 tdr 网格里的电极名和语句里的ElectrodeN不是同一个字符串。下面这段是从输入资料里抽出的 I-V 主骨架保留原语句结构只把容易粘连的 Math 段拆开写方便逐行核对。File { Grid Diode_msh.tdr Current Diode_IV.plt Plot Diode_IV.tdr Output Diode_IV.log } Electrode { { NameElectrodeN Voltage0.0 } } Physics { AreaFactor 1 Temperature 300 Mobility( DopingDependence eHighFieldSaturation hHighFieldSaturation Enormal CarrierCarrierScattering ) Recombination( SRH(DopingDependence) Auger(withGeneration) Avalanche(UniBo Eparallel) Band2Band(Hurkx) ) EffectiveIntrinsicDensity(OldSlotboom) } Math { Number_of_threads 4 ExtrapolateDerivatives AvalDerivatives RelErrControl Iterations15 Notdamped60 BreakCriteria { Current(ContactElectrodeN maxval1e-8) } } Solve { Coupled(Iterations50) { Poisson } Coupled(Iterations15) { Hole Poisson } Coupled(Iterations15) { Electron Hole Poisson } QuasiStationary( InitialStep1e-6 MaxStep0.01 MinStep1e-9 Goal { NameElectrodeN Voltage1000 } Plot { Range(0 1) Intervals2 } ) { Coupled { Hole Electron Poisson } Plot(FilePrefixIV_ Time(0.01;0.05;0.1;0.5) NoOverwrite) } }这段的逻辑是File先把网格、电流曲线、空间分布图和日志分开命名Electrode给电极初始偏压Physics定义迁移率、复合和本征载流子模型Math设定线程、导数外推、误差控制和电流保险丝Solve先做 Poisson 初解再逐步耦合空穴、电子最后用准静态扫描把电压推到 Goal。参数上AreaFactor1表示按一维面积因子计算Temperature300是 300 KNumber_of_threads4只影响计算资源不改变物理BreakCriteria里的maxval1e-8更像保险丝电流超过这个量级就中断先确认单位再决定是否保留不要把它当成收敛精度。2.1 File 五件套与网格/电极的绑定Grid指向的 tdr 文件决定了器件几何、掺杂和电极名Current存端电流随电压的变化Plot存空间分布Output存求解日志。四件套之外Plot段里的FilePrefixIV_会再派生带前缀的输出文件。常见翻车是改了Current文件名却忘了改Plot前缀第二次跑完发现曲线还是旧的更隐蔽的是 tdr 里电极名大小写不一致语句写ElectrodeN网格里却是electrodeN求解器不会帮你猜。我的习惯是先用网格查看工具把电极名抄下来再回填到Electrode、System和BreakCriteria三处三处必须同源。Electrode段只给了一个ElectrodeN而 C-V 段又出现ElectrodeP这说明不同语句片段对应的器件结构可能不同。I-V 片段如果只给 N 端加偏压另一端是否通过背面欧姆接触或电路地节点闭合要按实际 tdr 判断。若 tdr 里有两个电极却在 I-V 里只写一个求解可能仍能跑但电流路径不完整曲线看似平滑物理上已经偏了。遇到这种情况先把全部电极列出来再决定哪个接地、哪个扫描别让“能跑”掩盖“接错”。2.2 Physics 模型开关迁移率、复合和雪崩不要一次全开Mobility里的DopingDependence处理掺杂依赖迁移率eHighFieldSaturation和hHighFieldSaturation分别处理电子、空穴的高场饱和Enormal考虑法向电场CarrierCarrierScattering处理载流子散射。正向小电压 I-V 先保留掺杂依赖和场依赖通常够用载流子散射在低注入下影响不一定明显但开了不等于错关键看收敛和曲线是否合理。Recombination里SRH(DopingDependence)是掺杂依赖的 Shockley-Read-Hall 复合Auger(withGeneration)是俄歇复合并允许产生项Avalanche(UniBo Eparallel)是平行电场下雪崩Band2Band(Hurkx)是 Hurkx 带间隧穿。做反向击穿或高压时雪崩和带间隧穿有意义做 0 到几伏的正向曲线时一次全开收敛难度会上来。EffectiveIntrinsicDensity(OldSlotboom)会影响重掺杂下的有效本征载流子浓度适合和掺杂依赖模型一起核对。参数表可以这样记语句片段作用什么时候先关掉DopingDependence掺杂依赖迁移率掺杂浓度很低、先看理想曲线时eHighFieldSaturation/hHighFieldSaturation高场速度饱和低压线性区先做基线时Avalanche(UniBo Eparallel)平行电场雪崩正向小电压、未接近击穿时Band2Band(Hurkx)带间隧穿没有高反偏或窄带隙结构时OldSlotboom有效本征密度模型重掺杂未校准时先做对照这张表不是让你永久关模型而是让你知道每次只改一个开关。一次把迁移率、复合、雪崩、隧穿全打开曲线不对时根本分不清是谁造成的。常见做法是先用SRH加基础迁移率跑一条正向基线再加高场饱和最后才加雪崩和带间隧穿每加一层保存一份Current文件后面做对照。2.3 QuasiStationary 的步长、Goal 和 BreakCriteriaQuasiStationary的InitialStep1e-6、MaxStep0.01、MinStep1e-9控制电压扫描步长。初始步长小一点有利于第一段斜率最大步长决定扫描速度最小步长是求解器被逼到墙角时的下限。Goal { NameElectrodeN Voltage1000 }表示把电极推到 1000 V这个目标对普通二极管非常大若器件耐压没有到那个量级扫描后期会在击穿区反复缩步日志里能看到步长被切得很碎。我的做法是先把 Goal 改到 5 V 或 10 V确认正向曲线和BreakCriteria量级正常再按耐压逐段加目标不要一上来就 1000 V。Plot { Range(0 1) Intervals2 }控制扫描过程中的空间输出Plot(FilePrefixIV_ Time(0.01;0.05;0.1;0.5) NoOverwrite)控制输出时刻。Time列表在准静态扫描里对应扫描路径上的输出点不是随便写的采样率输出太密会让 tdr 文件快速膨胀输出太稀又看不到击穿点附近的分布变化。NoOverwrite防止同名文件被覆盖但前提是FilePrefix和File里的Current不在同一层级打架。每次改扫描目标最好换一个独立目录或换前缀别让旧 plt 混进新结果。提示Math段里的Stacksize、ExtrapolateDerivatives、AvalDerivatives在原始语句里可能和相邻参数粘连复制到新文件时逐行拆开核对别整段粘贴后直接跑。3. C-V 与 MixedModeAC Coupled 的节点映射、频率点和提取文件C-V 和 I-V 最大的区别不是多了一个 AC 求解而是器件被放进混合模式系统里器件电极要映射到电路节点电压源负责扫描AC 小信号加在指定节点上。很多 C-V 曲线平得像一条直线不是电容模型没开而是System里的front和0没对上或者ACExtract文件根本没生成。下面这段保留输入资料的混合模式结构把电极和注释拆清楚。Device Diode { Electrode { { NameElectrodeN Voltage0.0 } { NameElectrodeP Voltage0.0 } } File { Grid Diode_msh.tdr Current Diode_CV_1kHz.plt Plot Diode_CV_1kHz.tdr } Physics { Mobility( DopingDependence eHighFieldSaturation hHighFieldSaturation ) Recombination( SRH(DopingDependence) Auger ) } Plot { eDensity hDensity Potential ElectricField/Vector } } System { Diode diodesystem (ElectrodeNfront ElectrodeP0) Vsource_pset vn (front 0) { dc0 } } File { Output Diode_CV_1kHz.log ACExtract Diode_CV_AC_1kHz.plt } Solve { Coupled(Iterations50) { Poisson } Coupled(Iterations15) { Hole Poisson } Coupled(Iterations15) { Electron Hole Poisson } Coupled(Iterations15) { Electron Hole Poisson Contact } QuasiStationary( InitialStep1e-6 MaxStep1e-2 MinStep1e-7 Increment2 Decrement4 Goal { Parametervn.dc Voltage100 } ) { ACCoupled( StartFrequency1e3 EndFrequency1e3 NumberOfPoints1 Decade Iterations15 Node(front) ACMethodBlocked ACSubMethod(diodesystem)ParDiSo ) { Poisson Electron Hole Contact Circuit } } }这段的逻辑是Device定义二极管本体和文件System把ElectrodeN接到电路节点front把ElectrodeP接地Vsource_pset vn在front和地之间加直流源QuasiStationary扫描vn.dc每个偏压点里执行一次ACCoupled最后把 AC 结果写到ACExtract。参数上StartFrequency1e3和EndFrequency1e3表示只算 1 kHzNumberOfPoints1表示单频点Decade在单点时不起作用Node(front)指定小信号加在front节点ACMethodBlocked和ACSubMethod(diodesystem)ParDiSo是 AC 求解器选项diodesystem必须和System里的器件实例名一致。3.1 MixedMode 的 Device/System 映射Device Diode { ... }只描述器件System { Diode diodesystem (...) }才把器件放进电路。括号里的ElectrodeNfront ElectrodeP0是映射表左边是 tdr 里的电极名右边是电路节点名。front是自定义节点0是地。电压源Vsource_pset vn (front 0)接在front和地之间dc0是初始值。扫描时Goal { Parametervn.dc Voltage100 }推的是电压源直流值不是电极本身的Voltage参数。这个区别很容易混淆器件电极的Voltage0.0只是初始边界真正扫描的是电路源。如果 tdr 里电极名不是ElectrodeN和ElectrodeP映射表必须改成实际名字BreakCriteria、Plot、Electrode三处也要一起改。混合模式里最容易出现“器件能解电路不收敛”原因往往是映射表把两个电极接到同一个节点或者把ElectrodeP写成0但 tdr 里根本没有这个电极。先把映射表打印出来逐项对照再谈 AC 求解。3.2 ACCoupled 的频率、节点与 Blocked/ParDiSoACCoupled里StartFrequency和EndFrequency决定频率范围NumberOfPoints决定点数Decade表示按十倍频程取点。例子里首尾都是 1 kHz、点数为 1所以只算一个频点要做频率扫描至少把EndFrequency拉到 1e6 或更高并把NumberOfPoints调到 10 以上。Node(front)决定小信号加在哪ACMethodBlocked表示分块求解ACSubMethod(diodesystem)ParDiSo绑定到具体器件实例。实例名写错时日志里会出现找不到子方法的报错别急着改物理模型先核对字符串。Iterations15是 AC 耦合迭代上限Coupled { Poisson Electron Hole Contact Circuit }把电路和接触也纳入耦合。若 C-V 在某个偏压点突然不收敛先把MaxStep从1e-2降到1e-3再看Increment2、Decrement4是否让步长切得太猛。Goal的 100 V 对电容扫描也偏大先从 0 到 5 V 跑通再逐段加。3.3 从 ACExtract 到 C-V 曲线的检查点ACExtract输出的是 AC 小信号结果不是直接给你一条整理好的 C-V 曲线。常见做法是从里面取电容的实部、虚部或导纳再按C Im(Y)/omega一类关系换算具体取哪一列要看输出表头和求解器定义。检查点有三个第一Diode_CV_AC_1kHz.plt是否生成且行数随偏压增加第二Diode_CV_1kHz.plt里的直流电流是否随偏压单调变化第三AC 结果的实部是否远大于虚部或符合预期。三者有一个不对先回到混合模式映射不要直接怀疑电容模型。注意NumberOfPoints1时频率扫描退化成单点画不出频率色散图如果目的是看 1 kHz 下的 C-V这没问题如果目的是看频散必须改点数。4. 两类瞬态语句重离子 HeavyIon 与激光 OpticalGeneration 的步长差异瞬态段最容易让人误判“机器不行”同样的网格I-V 几秒跑完重离子瞬态几分钟不动激光瞬态又卡在光学窗口。原因通常不是算力而是时间步长、脉冲宽度和输出时刻三者没有对齐。重离子是电荷沿轨迹瞬时注入激光是光生在时间上的高斯包络两者都要求Transient的最小步长足够小但全局MinStep1e-17会把整个时间轴都拖进极小步长后面收集阶段也走不快。4.1 HeavyIon 语句位置、LET 波形和时间窗Physics { HeavyIon ( Direction (0,1) Location (200, 0) Time 1e-9 Length [ 按器件厚度或敏感区长度填写 ] Wt_hi [ 按脉冲时间宽度填写 ] LET_f [0 8.7e-6 8.7e-6 0] Gaussian PicoCoulomb ) } Solve { NewCurrentPrefix trans_ Transient ( InitialTime0 FinalTime35e-9 MinStep1e-17 MaxStep1e-10 ) { Coupled { Poisson Electron Hole Circuit } Plot(FilePrefixTransHI_ Time(0.5e-9;1e-9;2e-9;5e-9;10e-9) NoOverwrite) } }这段的逻辑是HeavyIon定义入射方向、位置、时间、轨迹长度、时间宽度和 LET 时间波形Transient从 0 跑到 35 nsPlot在 0.5 ns、1 ns、2 ns、5 ns、10 ns 输出空间分布。参数上Direction(0,1)表示沿 y 方向入射Location(200,0)是入射坐标Time1e-9是入射时刻LET_f的四个点描述从 0 升到 8.7e-6、保持、再回 0 的时间波形Gaussian给横向分布PicoCoulomb指定电荷量模型。Length和Wt_hi在原始片段里是空方括号实际运行时必须按器件厚度和脉冲宽度填不能留空。MinStep1e-17很激进第一次跑建议先放到1e-15或1e-14只在脉冲上升沿附近收紧MaxStep1e-10限制全局最大步长避免跳过收集峰。Plot Time要和入射时刻对齐入射在 1 ns输出却只写 0.5 ns 和 10 ns中间峰形就看不到。NewCurrentPrefixtrans_会给电流文件加前缀防止和稳态 I-V 混在一起。4.2 OpticalGeneration 语句波长、强度和窗口Optics ( OpticalGeneration ( ComputeFromMonochromaticSource() TimeDependence( WaveTime(1e-9 1e-9) WaveTSigma50e-12 ) Scaling0 Excitation( Wavelength0.8*um Intensity0.06*W/cm2 Window(L1)( Origin(200,0) XDirection(1,0,0) Line(Dx10) Theta0 OpticalSolver(OptBeam( LayerStackExtraction( WindowNameL1 WindowPositionCenter ModeElementWise ComplexRefractiveIndex(WavelengthDep(real imag)) ) )) ) ) ) ) Solve { NewCurrentPrefixtrans_ Transient(InitialTime0 FinalTime60e-9 MinStep1e-17 MaxStep1e-10) { Coupled { Poisson Electron Hole Circuit } } }这段的逻辑是Optics里的OpticalGeneration用单色光源计算光生TimeDependence给时间包络Excitation给波长、强度和线窗口LayerStackExtraction从层栈提取折射率并求解光束。参数上Wavelength0.8*um是 0.8 微米Intensity0.06*W/cm2是光强Window(L1)定义窗口名Origin(200,0)是窗口起点XDirection(1,0,0)是窗口方向Line(Dx10)是线窗口长度Theta0是角度WaveTSigma50e-12是 50 ps 时间展宽。Scaling0在不同求解器里的含义要按手册核对别默认它是“不缩放”。光学瞬态常见的坑是窗口没有覆盖器件有源区或者ComplexRefractiveIndex的材料层没有和网格材料对齐。日志里如果出现层栈提取失败先检查WindowName是否和OpticalSolver里的名字一致再检查网格里是否有对应的材料区域。FinalTime60e-9要覆盖光脉冲和后续收集时间MaxStep1e-10够用但MinStep1e-17同样建议先放宽。4.3 瞬态步长与输出时刻的取舍项目HeavyIonOpticalGeneration时间起点由Time指定入射时刻由WaveTime指定脉冲中心时间宽度Wt_hi和LET_f共同决定WaveTSigma决定高斯宽度空间窗口Location、Direction、LengthWindow、Origin、Line输出对齐Plot Time覆盖入射前后Plot Time覆盖上升沿和衰减步长策略脉冲窗口收紧收集段放宽光脉冲窗口收紧尾段放宽提示瞬态跑不动时先看日志里实际步长被压到多少不要只看语句里的MinStep。如果实际步长长期停在1e-17附近说明某个变量在剧烈变化先减少同时开启的物理模型再查网格和接触。5. 辐照陷阱与界面电荷Traps 能级、截面和注量换算的避坑排查辐照损伤段的参数看起来最像“填数字”能级、浓度、随机化比例、电子和空穴截面一行里全是科学计数法。真正容易翻车的地方不是会不会写Traps而是能级参考方向、浓度单位和注量换算。输入片段里已经给了注释ConcFluence*1.1613一类换算说明陷阱浓度不是拍脑袋填的而是由注量乘系数得到。下面按现象、原因、解决把常见问题拆开。5.1 收敛、网格和文件类问题现象加了Traps后瞬态在第一个时间点就不收敛日志里残差反复放大。原因陷阱浓度和网格掺杂量级差太多或者Randomize让局部浓度突变求解器在初始解上找不到平衡。解决先不加陷阱跑一条暗态基线确认初始解正常再把陷阱浓度降低一个数量级做扫描Randomize先设为 0等收敛后再打开随机化。现象ACExtract或Current文件生成了但内容只有表头。原因File段里的文件名和Plot前缀冲突或者NoOverwrite遇到旧文件直接跳过。解决每次仿真换独立目录Current、Plot、ACExtract三个名字分开写先删掉旧结果再跑不要用同一个前缀同时给稳态和瞬态。现象MixedMode 报找不到diodesystem或ACSubMethod。原因System里的实例名和ACSubMethod(...)字符串不一致或者Device名字大小写不一致。解决把System段和ACCoupled段并排看实例名逐字符对照改完名字后同步改ACSubMethod。5.2 陷阱、界面电荷和单位类问题现象辐照后暗电流大得离谱或者漏电曲线完全不像预期。原因EnergyMid0.42 fromCondBand和fromValBand的参考方向搞反或者Conc没有按注量换算直接把Fluence填进了浓度位置。解决先确认能级是从导带还是价带算起Acceptor和Donor的能级方向不要混浓度按Fluence乘系数算单位保持 cm^-3截面保持 cm^2跑之前用一张参数表把量级写下来。现象界面电荷加了以后阈值电压漂移方向不对。原因Physics(MaterialInterfaceOxide/Silicon)里Charge(Conc1.5e11)和注释掉的FixedCharge混用或者界面电荷面密度单位当成体密度。解决先注释掉所有界面电荷跑基线再单独打开Charge确认单位是面密度FixedCharge和Charge不要同时开除非明确知道两者叠加后的符号。现象陷阱参数扫描跑了十几组结果文件分不清哪组对应哪个注量。原因文件名只用固定前缀没有把注量或系数写进输出名。解决把Current、Plot、ACExtract的文件名带上注量标签例如用参数化前缀区分组别每组跑完立刻记录能级、浓度、截面和随机化比例别等全部跑完再回忆。5.3 先基线后模型的复现顺序血泪经验是辐照段不要和 I-V、C-V、瞬态混在一个脚本里一次跑完。先跑无陷阱的 I-V 基线确认电极和网格再加单能级陷阱跑暗态然后加注量换算跑辐照后 I-V最后才进瞬态看重离子或激光的收集峰。每一步只改一个物理开关输出文件单独命名。这样后面曲线不对时至少知道是哪一步引入的偏差而不是面对一堆科学计数法猜原因。6. 把语句合集变成可回归基线三组对照与一个电容提取小技巧拿到这份 docx 后我一般先做三组最小对照而不是直接跑最复杂的重离子段。第一组是 I-V 小电压扫描Goal 设 5 V确认Current曲线单调、BreakCriteria不误触发第二组是 C-V 单频 1 kHz确认ACExtract有数据、混合模式节点映射正确第三组是单粒子或激光瞬态时间窗缩到脉冲前后各 5 ns确认输出时刻能抓到峰。三组都过再把 Goal 拉大、把陷阱打开、把频率扫宽。对照项通过标准常见失败点I-V 小电压电流随电压单调日志无反复缩步电极名不一致、Goal 过大C-V 1 kHzACExtract行数随偏压增加System映射错、实例名不一致瞬态脉冲输出时刻覆盖上升沿和衰减Plot Time与入射时刻错位电容提取有个小技巧先不要急着换算成绝对电容先把ACExtract里的实部、虚部随偏压画出来看趋势是否连续。趋势连续但数值偏优先查面积因子和电极面积趋势跳变优先查 AC 频点是否落在寄生效应或收敛失败的区域。把这条趋势图留作基线后面每次改陷阱或改迁移率都拿它对照比只看最终 C-V 曲线更容易定位问题。从那以后我每次拿到这种语句合集都先复制一份、改文件名和电极名保留原始语句做对照再按“I-V 基线、C-V 单频、瞬态脉冲、辐照陷阱”的顺序逐段启用。整段复制看起来快后面排查时没有后悔药。希望帮到你。本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?