ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Sentaurus TCAD碰撞电离与雪崩击穿仿真:模型选择、参数标定与收敛调试

Sentaurus TCAD碰撞电离与雪崩击穿仿真:模型选择、参数标定与收敛调试 1. 从物理直觉到仿真模型为什么碰撞电离和雪崩击穿值得死磕功率器件设计里击穿电压是一个绕不开的硬指标。你设计一个MOSFET或者肖特基二极管耐压值直接决定了它能用在什么场合。但击穿这件事在仿真里从来都不是点一下“运行”就能出漂亮曲线的。我见过太多人拿着Sentaurus跑了一个击穿仿真结果要么电流曲线软绵绵地翘起来要么直接不收敛报错然后就开始怀疑是不是软件有问题。实际上问题十有八九出在模型选择和参数标定上。碰撞电离和雪崩击穿是半导体器件物理里一对紧密关联的概念。碰撞电离是微观机制——载流子在电场中被加速当动能超过禁带宽度时通过碰撞把价带电子激发到导带产生新的电子-空穴对。雪崩击穿是宏观表现——当碰撞电离率足够高载流子倍增效应形成正反馈电流急剧上升器件失去阻断能力。在Sentaurus TCAD里要准确复现这个过程你需要同时处理好三件事电场分布的精确求解、碰撞电离模型的合理选择、以及数值求解的稳定性控制。这篇内容适合谁看如果你正在用Sentaurus做功率器件的击穿特性仿真或者你刚接触TCAD不久对着一堆模型参数不知道从哪下手那接下来的内容应该能帮你省下不少试错时间。我会从模型选择的逻辑讲起然后拆解参数标定的具体操作再分享一些收敛性调试的实战经验。整个过程我会尽量说清楚“为什么这么做”而不是只给一堆命令让你抄。2. 碰撞电离模型的选择逻辑与参数标定2.1 为什么默认模型往往不够用Sentaurus里内置了好几种碰撞电离模型最常用的是OkutoCrowell和vanOverstraeten-deMan。很多人直接用默认设置就跑结果发现击穿电压跟实验值差了一大截。这不是软件的问题而是默认参数通常是在特定材料和电场范围内拟合的换一个器件结构或者材料体系参数就需要重新标定。OkutoCrowell模型的特点是参数少、形式简洁适合硅基器件在较宽温度范围内的仿真。它的碰撞电离率表达式是电场强度的指数函数参数包括a、b、c、d等。vanOverstraeten-deMan模型则把电子和空穴的碰撞电离率分开处理对电场的方向性更敏感适合那些电场分布不对称的结构比如深槽或者场板边缘。选择哪个模型核心判断依据是你的器件里电场峰值出现在什么位置、电场方向是否单一。如果是一个简单的平面结电场方向基本一致OkutoCrowell就够了。如果是沟槽栅或者有场板的结构电场在拐角处会集中方向也复杂这时候vanOverstraeten-deMan的区分处理会更准确。注意不要同时启用多个碰撞电离模型。Sentaurus允许你叠加但叠加后的总电离率是各模型之和这会导致击穿电压被严重低估。我见过有人为了“更准确”把两个模型都打开结果仿真出来的击穿电压只有实际值的一半。2.2 参数标定的实操方法参数标定这件事说穿了就是用实验数据反推模型参数。如果你手头有器件的击穿电压实测值那最好办。如果没有可以用文献里同类型结构的报道值作为参考。具体操作上我通常分三步走。第一步先用默认参数跑一个击穿仿真看看仿真击穿电压跟目标值差多少。第二步调整碰撞电离率表达式里的指数项参数通常是b或者d这个参数直接控制电离率随电场上升的陡峭程度。如果仿真击穿电压偏低说明电离率偏高需要增大b值反之则减小。第三步微调前因子参数a或c这个影响的是电离率的整体量级对击穿电压的影响相对温和用来做精细调整。在Sentaurus的命令文件里碰撞电离模型的设置通常在Physics段里。比如用OkutoCrowell模型你会看到类似这样的语句Physics { Recombination( Avalanche(OkutoCrowell) ) }如果要修改参数需要进入Recombination的子段用Avalanche关键字后面的参数列表来覆盖默认值。具体参数名和默认值可以在Sentaurus的手册里查到我建议你先把默认值打印出来看一眼心里有个数。标定过程中有一个容易被忽略的点温度。碰撞电离率对温度很敏感温度升高时晶格振动增强载流子平均自由程缩短电离率下降击穿电压上升。如果你的仿真温度设置跟实验条件不一致标定出来的参数就是错的。所以标定之前先确认仿真温度跟实验温度对齐。2.3 电场求解精度对电离率的影响碰撞电离率是电场的强非线性函数电场稍微差一点电离率可能差一个数量级。所以电场求解的精度直接决定了击穿仿真的可信度。在Sentaurus里电场是通过求解泊松方程得到的。网格质量对电场精度的影响非常大尤其是在结附近和电场峰值区域。如果网格太粗电场峰值会被“抹平”电离率被低估击穿电压被高估。我一般会在预期电场峰值的位置做局部加密网格尺寸控制在1纳米到5纳米之间具体取决于结的陡峭程度。另外eQuantumPotential这个选项在击穿仿真里通常不需要打开。量子势修正主要影响载流子的输运过程对碰撞电离率的影响很小但会增加求解的复杂度。除非你做的是超薄体器件否则关掉它能让仿真更快收敛。3. 雪崩击穿的仿真实现与收敛性调试3.1 击穿仿真的基本流程雪崩击穿仿真跟普通I-V仿真最大的区别在于你需要让仿真“走”到电流急剧上升的区域而这个区域的数值求解非常容易发散。所以击穿仿真的核心挑战不是物理模型而是数值稳定性。我通常的流程是这样的先做零偏压下的平衡态求解得到一个合理的初始解。然后逐步增加漏极电压每一步都用上一步的解作为初值。电压步长要控制好在击穿电压附近步长要缩小到0.1V甚至更小。Sentaurus的Quasistationary模块可以自动调整步长但你需要给它一个合理的初始步长和最小步长限制。一个典型的击穿仿真命令段大概长这样Solve { Poisson Coupled { Poisson Electron Hole } Quasistationary( InitialStep0.01 MinStep1e-5 MaxStep0.1 Goal { Namedrain Voltage100 } ) { Coupled { Poisson Electron Hole } } }这里InitialStep是初始步长MinStep是最小步长MaxStep是最大步长。Goal里指定了目标电压。实际跑的时候如果仿真在某个电压点卡住了Sentaurus会自动减小步长直到低于MinStep才报错退出。3.2 收敛性调试的实战技巧击穿仿真不收敛原因通常有三个网格质量差、模型参数不合理、求解策略太激进。排查的时候我一般按这个顺序来。先看网格。用Tecplot或者Sentaurus自带的Inspect工具把电场分布画出来看看有没有异常的尖峰或者锯齿。如果有说明网格需要调整。电场峰值区域的网格要加密但也不能太密否则矩阵规模太大求解时间会爆炸。我一般控制在电场峰值区域有5到10个网格点覆盖即可。再看模型参数。碰撞电离率参数如果标定得太激进电离率随电场上升太快会导致电流在很小的电压范围内从纳安级跳到安培级这种“硬击穿”行为对求解器来说非常难处理。这时候可以适当调整参数让击穿过渡稍微“软”一点。当然这会影响击穿电压的精度所以要在精度和收敛性之间做权衡。最后看求解策略。如果前两步都没问题但仿真还是在击穿点附近卡住可以试试这几个方法一是把Coupled换成Plugin让求解器用更保守的策略二是增加Iterations上限给求解器更多迭代机会三是在击穿点附近手动插入几个电压点用Plot命令输出中间结果看看电流到底在哪个电压点开始失控。提示Sentaurus的Quasistationary模块有一个BreakCriteria选项可以设置当电流超过某个阈值时自动停止仿真。这个在击穿仿真里很有用避免仿真在击穿后继续跑导致发散。比如设置BreakCriteria { Current(Contactdrain) AbsVal1e-3 }当漏极电流绝对值超过1毫安时自动停止。3.3 击穿电压的提取与验证仿真跑完之后提取击穿电压的方法直接影响你拿到的数值。最常用的判据是电流达到某个阈值比如1微安或者1毫安。但阈值选多少取决于你的器件面积和测试条件。对于功率器件通常用1毫安作为判据因为这是实际测试中容易测量的电流水平。提取的时候我建议把I-V曲线画出来用对数坐标看电流从纳安级到毫安级的过渡区域。击穿电压定义为电流开始急剧上升的那个点而不是电流达到阈值的那个点。这两个定义在硬击穿器件里差别不大但在软击穿器件里可能差好几伏。验证仿真结果的可信度最直接的方法是对比实验数据。如果没有实验数据可以跟文献里的同类型结构对比或者用不同的碰撞电离模型跑一遍看看击穿电压的差异有多大。如果两个模型给出的结果差在5%以内那说明仿真结果比较可靠如果差很多说明模型参数还需要进一步标定。4. 常见问题与排查技巧实录4.1 仿真在击穿点附近报“时间步长过小”这是击穿仿真里最常见的报错。Sentaurus在Quasistationary求解时如果步长减小到MinStep以下仍然不收敛就会报这个错。原因通常是电流在某个电压点附近变化太剧烈求解器找不到收敛路径。解决办法有几个。最直接的是放宽MinStep比如从1e-5改成1e-6给求解器更多尝试空间。但这只是治标如果物理上确实存在一个陡峭的击穿过渡放宽步长限制也只是让仿真多撑一会儿最终还是可能卡住。更根本的办法是调整求解策略。我试过把Coupled换成Plugin配合Iterations20在击穿点附近能明显改善收敛性。Plugin模式会用更保守的迭代策略虽然单步求解慢一些但不容易发散。还有一个技巧是在击穿点附近手动插入电压点。比如你估计击穿电压在80V左右那就在75V到85V之间每隔0.5V插一个点用Plot命令输出每个点的解。这样即使某个点不收敛你也能看到电流的变化趋势判断击穿电压大概在什么位置。4.2 击穿电压仿真值跟实验值偏差大偏差大通常有三个原因碰撞电离模型参数不对、网格太粗、或者器件结构参数跟实际有出入。排查的时候先确认器件结构参数。掺杂浓度、结深、氧化层厚度这些差一点都会影响击穿电压。尤其是掺杂浓度击穿电压对掺杂浓度的依赖是幂函数关系浓度差10%击穿电压可能差5%到10%。如果结构参数没问题那就是模型参数的问题。回到第2节讲的标定方法用实验击穿电压反推碰撞电离率参数。如果手头没有实验数据可以用Sentaurus自带的Avalanche模型参数库里面有一些针对不同材料的预设参数可以作为起点。网格问题相对好排查。把电场分布画出来看看峰值区域的网格密度。如果峰值区域只有两三个网格点那肯定不够。加密网格再跑一遍如果击穿电压有明显变化说明之前的网格确实太粗了。4.3 温度对击穿电压的影响仿真不出来击穿电压的温度系数是功率器件的一个重要参数。硅器件的击穿电压通常随温度升高而增大因为碰撞电离率随温度升高而下降。但在仿真里如果你只设置了Temperature参数没有同时调整碰撞电离率的温度依赖参数那仿真出来的温度系数可能跟实际相反。Sentaurus的碰撞电离模型里温度依赖是通过参数b或者d的温度系数来体现的。你需要确认这些参数的温度系数设置正确。具体来说OkutoCrowell模型里有一个b参数的温度系数通常设置为负值表示温度升高时b减小电离率下降。如果你不确定参数设置对不对可以跑两个温度点比如300K和400K看看击穿电压的变化方向。如果方向反了那就是温度系数设置有问题。4.4 常见问题速查表问题现象可能原因排查方法解决措施击穿点附近不收敛步长太小、求解策略激进查看报错信息中的步长值放宽MinStep、改用Plugin模式击穿电压偏低碰撞电离率偏高对比默认参数与标定值增大b或d参数击穿电压偏高网格太粗、电场峰值被抹平检查电场分布和网格密度加密峰值区域网格温度系数方向反了温度依赖参数设置错误跑两个温度点对比修正b或d的温度系数电流曲线软绵绵碰撞电离模型选择不当对比不同模型的结果换用vanOverstraeten-deMan5. 一些踩坑之后的个人体会碰撞电离和雪崩击穿的仿真说到底是一个“物理直觉数值技巧”的活儿。物理直觉帮你选对模型、定对参数数值技巧帮你把仿真跑收敛。两者缺一不可。我刚开始做击穿仿真的时候总觉得模型越复杂越好参数越多越准。后来发现对于大多数硅基功率器件OkutoCrowell模型配上标定好的参数已经能给出足够准确的结果。复杂的模型反而容易引入不必要的收敛问题。另一个体会是不要迷信仿真结果。仿真终究是仿真它给出的击穿电压是在特定模型和参数下的数值解不是物理真值。有条件的话一定要用实验数据做验证。没有实验数据至少用两个不同的模型跑一遍看看结果的一致性。最后分享一个小技巧在击穿仿真里把Plot命令的频率调高一点比如每0.5V输出一次。这样即使仿真在击穿点附近卡住了你也能从输出文件里看到电流的变化趋势手动判断击穿电压大概在什么位置。这个习惯帮我省了很多次重跑仿真的时间。
返回列表