Sentaurus与SILVACO TCAD仿真差异深度解析:从物理模型到网格优化的全链路排查
当我们在Sentaurus和SILVACO这两个主流TCAD工具中对同一个NPN三极管进行仿真时,经常会发现输出特性曲线存在微妙的差异——比如在相同基极电流(Ib=5μA)条件下,集电极电流可能出现191μA与168μA的偏差。这种量级的差异究竟源自何处?本文将系统剖析可能的影响因素,并提供一套可落地的排查方法论。
1. 物理模型差异:仿真引擎的核心分歧点
物理模型的选择直接决定了载流子输运行为的计算方式。以迁移率模型为例,Sentaurus默认采用eHighFieldsaturation模型处理高场效应,而SILVACO的默认配置可能使用简化的Caughey-Thomas模型。这种底层差异会导致相同偏置条件下的电流密度计算出现分歧。
复合模型的影响同样不可忽视。以下是两种工具中常见的模型组合对比:
| 模型类型 | Sentaurus典型配置 | SILVACO典型参数 |
|---|---|---|
| SRH复合 | 默认启用(带禁带变窄效应) | SRH(taun0=1e-6, taup0=1e-6) |
| 俄歇复合 | Auger参数来自标准数据库 | 需显式设置Auger系数 |
| 辐射复合 | 默认包含Radiative项 | 通常不默认启用 |
提示:在Sentaurus的Physics块中显式声明
Recombination(SRH Radiative Auger)可确保所有复合机制激活,而SILVACO需要通过models bipolar命令加载完整模型集。
温度相关模型是另一个潜在差异源。当器件中存在显著的自热效应时,Sentaurus的Hydro(eTemperature)模块会同时求解载流子温度和晶格温度,而SILVACO需要手动配置热力学耦合求解器。
2. 网格划分策略:精度与效率的平衡艺术
网格密度分布对仿真结果的影响往往比预期更大。观察原始代码可见,Sentaurus通过refinebox命令在关键区域(如发射结附近)实施了局部加密:
# Sentaurus中的网格优化示例 refinebox Silicon min= {0 0.2} max= {1.5 14.4} xrefine= {0.1 0.1 0.2} yrefine= {0.1 0.2 0.1} grid remesh相比之下,SILVACO的网格定义更依赖全局参数:
# SILVACO中的网格定义 line x location=0.0 spac=0.2 line x location=5.0 spac=0.05 line y location=4.0 spac=0.05这种差异可能导致以下具体影响:
- 发射极边缘的峰值电场计算精度差异
- 基区少子浓度梯度的离散化误差
- 集电结耗尽区边界的定位偏差
建议通过以下步骤验证网格敏感性:
- 在两种工具中逐步加密关键区域网格
- 监控目标参数(如Ic)的变化趋势
- 当结果变化<5%时认为达到网格收敛
3. 边界条件与电极定义的隐藏细节
电极处理方式的微妙差别常被忽视。在Sentaurus中,电极定义包含电压初值设定:
Electrode { { Name= "emitter" Voltage= 0.0 } { Name= "base" Voltage= 0.0 } { Name= "collector" Voltage= 0.0 } }而SILVACO采用更简洁的定义:
electrode name=emitter x=5 y=-0.5这种实现差异可能导致:
- 初始猜测场的构建逻辑不同
- 接触电阻的默认处理方式差异
- 电压扫描时的步进算法变化
特别要注意的是,当从电压扫描切换到电流扫描时(如提取输出特性曲线),SILVACO需要显式切换边界条件类型:
contact name=base current solve ibase=1.e-6而Sentaurus通过Set命令实现类似功能:
Set( "base" mode current )4. 求解器配置:数值计算的黑箱揭秘
数学求解器的参数配置直接影响结果的数值精度。Sentaurus提供了细粒度的误差控制:
Math{ Extrapolate RelErrControl Digits=5 NotDamped=200 Iterations=20 RelerrControl ErReff(Electron) = 1.e8 }而SILVACO的求解器配置相对隐蔽,主要通过method newton等命令选择算法。关键参数对比:
| 求解器参数 | Sentaurus建议值 | SILVACO等效配置 |
|---|---|---|
| 相对误差容限 | RelErrControl=1e-5 | 默认约1e-4 |
| 最大迭代次数 | Iterations=20 | 内置自适应控制 |
| 阻尼系数 | NotDamped=200 | 无直接对应参数 |
当遇到收敛困难时,可以尝试以下调试技巧:
- 在Sentaurus中逐步放宽
RelErrControl - 在SILVACO中添加
trap关键字捕获振荡 - 对比两种工具的残差下降曲线
5. 结果交叉验证方法论
建立系统化的验证流程比单纯比较数值更重要。推荐采用以下步骤:
基准测试
在简单PN结上验证基本物理模型的一致性参数扫描
针对关键参数(如掺杂浓度)进行敏感性分析网格收敛
确保结果不随网格加密显著变化分段验证
- 先比较平衡状态下的能带图
- 再验证低偏置下的Gummel曲线
- 最后对比高偏置输出特性
数据记录
建立包含以下要素的对比表格:测试项 Sentaurus结果 SILVACO结果 相对偏差 Vbe@Ic=1μA 0.744V 0.731V 1.7% Ic@Ib=5μA,Vce=3V 191μA 168μA 12%
实际项目中,我通常会先用Sentaurus进行详细分析,再在SILVACO中复现关键工作点。当发现某偏置点差异较大时,会单独保存该点的电势和载流子分布进行深度比对。