说到Silvaco TCAD,做功率半导体器件的工程师和微电子方向的学生应该都不陌生。它几乎是器件仿真的入门标配工具,而肖特基二极管反向击穿特性这个案例,又是Silvaco TCAD仿真例库里非常经典的一类:结构简单、物理机制清晰、仿真时间短,但涉及的知识点却很全——从金属-半导体接触原理、碰撞电离模型,到网格设计、数值收敛、参数扫描,一套走下来,你对TCAD仿真和功率器件反向特性的理解都会上一个台阶。
这篇内容我想围绕“肖特基二极管反向击穿特性”这个具体案例,把整套仿真思路、关键设置、常见坑位都掰开揉碎讲清楚。适合刚开始接触Silvaco TCAD的朋友,也适合已经能跑通简单例程、但一遇到反向击穿仿真就发散或结果不合理的人。我会尽量用实际操练过的口吻来讲,哪些地方容易翻车,哪些参数值得较真,希望你看完能直接照着搭出自己的仿真流程。
1. 为什么拿肖特基二极管反向击穿做TCAD仿真的入门案例
1.1 肖特基结与PN结:反向特性的根本差异
肖特基二极管的核心是金属-半导体接触。金属和n型半导体接触时,如果金属功函数大于半导体电子亲和势,半导体一侧就会形成耗尽区和势垒,这就是肖特基势垒。和PN结不同,肖特基二极管是多数载流子器件,正向导通时电子从半导体注入金属,没有少子存储效应,所以反向恢复速度极快,正向压降也低,非常适合做高频整流和电源输出级的续流管。
但反向特性上,肖特基结恰恰比PN结“软”得多。PN结反偏时漏电主要由耗尽区内热产生载流子的复合决定,电流很小;而肖特基结反向漏电主要来自热电子发射,电子越过势垒从金属流向半导体,这个电流和势垒高度直接相关。更麻烦的是,反向偏压增大时,镜像力会降低有效势垒高度,电场越强降低越多,漏电流随电压呈指数上升。这就是为什么肖特基管的反向特性曲线看起来有一种“软击穿”的味道,而不是像PN结那样在击穿前漏电平台基本不动。
1.2 反向击穿的两条物理路径:雪崩与隧穿怎么“抢戏”
反向击穿机制一般分两类。一类是雪崩击穿,耗尽区电场升高到一定程度后,漂移过来的载流子在强电场中被加速,碰撞电离产生新的电子-空穴对,新载流子再被加速、再碰撞,形成倍增效应,电流迅速增大。另一类是隧穿击穿,电场足够强时,价带电子直接量子隧穿到导带,形成大电流。对硅材料来说,掺杂浓度低的时候,击穿电压主要由雪崩机制决定;掺杂浓度高到一定程度,隧穿效应会提前接管。
肖特基二极管大多做在低掺杂的n型漂移区上,所以设计上一般按雪崩击穿来估算。但这不意味着仿真时可以不开隧穿模型。实际器件的表面、边缘以及高场局部区域,电场可能比平行平面近似高不少,隧穿很可能在局部提前出现。仿真时把两条路径都打开,才能看到更接近真实情况的软击穿特征,也才能解释为什么实测击穿电压往往比理想平行平面公式算出来的低。
1.3 仿真能帮我们看清什么:从伏安曲线到电场分布
反向击穿特性的TCAD仿真,输出物至少有两类。第一类是反向I-V曲线,也就是反向电压从0扫描到击穿点,观察电流密度随电压的变化,这决定了器件的漏电水平和击穿电压。第二类是器件内部物理量的空间分布,比如电场强度、碰撞电离率、载流子浓度的二维或一维分布图,这可以帮助我们定位击穿发生在哪里、电场峰值在哪、哪种击穿机制先被触发。
只看I-V曲线容易陷入“击穿电压多少V”这个单点结论,但TCAD仿真真正的价值在于把曲线背后的机理可视化。比如电场峰值如果落在表面而不是体内,说明表面终端处理是关键;比如碰撞电离积分达到1的电压和I-V曲线上电流突增的电压是否吻合,可以直接判断击穿是不是雪崩主导。这些分析,在测试台上很难直接测到,但TCAD可以,这也是这类案例值得反复做、反复看的原因。
2. 动手前理清思路:器件结构、材料参数与物理模型选型
2.1 结构建在Athena还是Atlas:这个案例怎么选
Silvaco TCAD两个主力模块,Athena负责工艺仿真,Atlas负责器件电学特性仿真。常见的流程是先用Athena把离子注入、扩散、氧化、刻蚀这些工艺步骤模拟一遍,生成掺杂分布和结构文件,再交给Atlas算电学特性。这种流程适合研究工艺变化对器件性能的影响,比如注入剂量偏差对击穿电压的影响。
但如果你的关注点就是“反向击穿特性”这个电学问题,直接拿Atlas构建理想化结构反而更高效。用region语句定义材料区域,用doping语句给一个均匀掺杂的漂移区,用contact语句设定肖特基接触的功函数,整个过程几行代码搞定,不需要工艺仿真,也不需要等Athena跑完。这样做的好处是参数完全可控,比如漂移区掺杂浓度设成1e15 cm^-3就是1e15,不会有工艺仿真里杂质再分布带来的不确定因素。对于学习案例来说,从Atlas直接建结构,把注意力放在物理模型和电学求解上,是最合适的路径。
2.2 关键材料参数与势垒高度计算:别在小事上翻车
仿真之前必须把材料参数想清楚。硅的禁带宽度在300K下约1.12 eV,电子亲和势4.05 eV,相对介电常数11.9。肖特基势垒高度由金属功函数和半导体电子亲和势决定:φB = φM - χ。举例来说,铂的功函数约5.65 eV,φB约1.6 eV;镍的功函数约5.15 eV,φB约1.1 eV。势垒越高,反向漏电越小,但正向压降也会变大,这是一个经典的折中关系。
掺杂浓度也会通过镜像力降低效应影响有效势垒。反向偏压下,金属-半导体界面处电场很强,势垒整体被拉低,降低量大概正比于电场的平方根。很多初学者把φB当成固定值,算出来的反向漏电比实际小好几个数量级,就是这个原因。所以Atlas里定义肖特基接触时,除了设置功函数,还要确保模型里开启了barrier lowering的修正项,否则反向特性在低电压段就会和理论对不上。
2.3 物理模型开关怎么打:碰撞电离、迁移率、复合
物理模型是整个仿真的灵魂。只算常温小偏压特性,默认模型可能够用;但反向扫描到大电场,必须主动把高场相关模型打开。
碰撞电离模型是击穿仿真的核心。Silvaco里最常用的是Selberherr模型,它把碰撞电离系数描述成电场强度E的关系式,里面有a、b、β三个参数。硅材料下,电子和空穴的参数不同,不同文献略有差异,但基本量级一致。仿真击穿时,碰撞电离率在耗尽区里积分,积分值达到1时对应雪崩击穿。这个模型必须开,否则电压加再高电流也不会陡增。
迁移率模型在高场下也很关键。浓度依赖迁移率模型(conmob)描述掺杂浓度对迁移率的影响,电场依赖迁移率模型(fldmob)描述载流子速度饱和效应。反向大偏压下,耗尽区电场很高,载流子漂移速度趋于饱和,这一项直接决定碰撞电离过程中载流子的运动和倍增行为,不能省。
复合模型方面,SRH复合和俄歇复合对反向漏电有影响。低掺杂漂移区里,耗尽区热产生电流通常不占主导,但为了让曲线更真实,一般还是打开。禁带变窄效应(bgn)在重掺杂衬底区有意义,如果阴极附近的n+衬底浓度很高,建议打开。温度模型如果做常温仿真可以不额外处理,但后面要扫温度,就必须把温度相关参数一并考虑。
2.4 网格布局是最便宜的精度投资
TCAD仿真跑出来结果离谱,十个里有八个是网格问题。网格太粗,电场峰值会被平滑掉,击穿电压偏高;网格太密,计算量翻倍甚至不收敛。肖特基二极管反向击穿,关键是在金属-半导体接触界面附近,那里势垒最窄、电场最强,y方向上必须加密。我的经验是,从界面往里0.1 μm范围内,网格间距控制在0.001到0.01 μm量级;往外到漂移区中部可以逐渐放宽;靠近欧姆接触的底部衬底区,网格不需要太密。
x方向反而简单,因为是矩形结构,均匀分布就行。但要注意网格长宽比,Silvaco对长宽比过大的网格很敏感,容易导致矩阵求解病态。加密时最好保持纵横向网格长度接近,别在一维方向上疯狂加密。网格这个东西,前期多花几分钟想清楚,后面收敛性会省很多事。
3. 案例实操:从零搭出一个可收敛的反向击穿仿真
3.1 结构定义与网格生成
下面我直接给一套可以跑通的结构定义,硅材料,宽度2 μm,厚度10 μm,顶部是肖特基阳极,底部是n+衬底加阴极欧姆接触。网格的关键点已经写进注释里了。
# 定义网格 # x方向:均匀分布,结构宽度2um mesh x.mesh x.mesh location=0.0 spacing=0.5 x.mesh location=2.0 spacing=0.5 # y方向:顶部金属-半导体界面处加密,底部衬底稀疏 y.mesh location=0.0 spacing=0.005 y.mesh location=0.05 spacing=0.005 y.mesh location=0.2 spacing=0.01 y.mesh location=0.5 spacing=0.02 y.mesh location=1.0 spacing=0.05 y.mesh location=3.0 spacing=0.2 y.mesh location=5.0 spacing=0.5 y.mesh location=10.0 spacing=0.5 # 区域定义:1为漂移区,2为重掺杂衬底 region num=1 y.min=0.0 y.max=5.0 silicon region num=2 y.min=5.0 y.max=10.0 silicon # 电极定义 electrode name=anode x.min=0.0 x.max=2.0 y.min=0.0 y.max=0.0 electrode name=cathode x.min=0.0 x.max=2.0 y.min=10.0 y.max=10.0这段代码里,y方向上0到0.05 μm的网格间距设成0.005 μm,就是为了捕捉肖特基结附近陡峭的电场变化。如果你的仿真发散,或者算出来的击穿电压离谱偏高,回头先把这段网格加密再试。底部衬底区域我单独给了region num=2,后面掺杂时可以区分不同区域。
3.2 掺杂、接触与电极设置
结构建好之后,定义漂移区和衬底的掺杂。漂移区用均匀n型掺杂,浓度从1e14到1e16 cm^-3都可以试,这里先用1e15 cm^-3。衬底用高浓度n型掺杂,1e19 cm^-3,模拟重掺杂衬底的低阻特性。
# 掺杂定义 doping uniform conc=1e15 n.type region=1 doping uniform conc=1e19 n.type region=2接触设置方面,阳极是肖特基接触,通过指定功函数来实现。我用镍的功函数5.15 eV做示例,这样势垒约1.1 eV,反向漏电不会太小也不会太夸张。阴极默认是欧姆接触,不需要额外指定功函数,Atlas会自动在metal-semiconductor界面按欧姆接触处理。
# 阳极肖特基接触:指定金属功函数 contact name=anode workfunction=5.15需要提醒的是,contact语句里workfunction的单位是eV,别手滑填成伏特。另外,如果你用的是铂之类的金属,功函数填5.65,势垒高度更高,反向漏电会小好几个数量级,击穿前曲线的“软”程度也会明显不同。这个参数值得自己做几组对比,感受一下势垒高度对反向特性的影响。
3.3 物理模型与数值求解设置
模型配置直接决定反向击穿能不能算出来。针对这个案例,我建议开启以下核心模型:
# 物理模型 models srh auger bgn conmob fldmob impact selb temp=300 # 数值方法 method newton trapsrh和auger是复合模型,bgn是禁带变窄,conmob处理浓度依赖迁移率,fldmob处理电场依赖迁移率,impact selb就是打开Selberherr碰撞电离模型。这里的temp=300表示晶格温度300 K。如果你要扫温度,这个值要改成你想要的温度点。
数值方法上,我习惯用newton trap。newton是全耦合牛顿法,trap是遇到不收敛时自动切换到步长减半的重启策略,对反向大电压扫描这种强非线性问题特别有帮助。如果你发现发散频繁,还可以在method里加itl=50之类的参数,提高迭代次数上限,但别把迭代次数无脑调大,先找找网格和模型问题才是正道。
3.4 扫描策略与击穿电压提取
反向击穿扫描必须从零偏压开始,逐步往下加负电压,千万别一上来就给定一个大反向偏压硬解。建议先做一个init求解零偏初始状态:
# 初始求解 solve init # 保存结构 save outf=schottky_0.str # 开启日志文件 log outf=schottky_reverse.log然后从0开始,按0.1 V的步长向负方向扫描。第一遍可以扫到-150 V左右,看击穿发生在哪里,再根据实际情况调整扫描范围:
# 反向扫描 solve vanode=0 vstep=-0.1 vfinal=-150 name=anode这里vanode是阳极电压,vstep是步长,vfinal是终止电压,name=anode指定哪个电极在扫。注意,如果设在-150 V已经击穿,日志里电流会直接冲上去,tonyplot打开日志文件就能看到完整的反向I-V曲线。
击穿电压的判据怎么定?工程上常用反向电流密度达到某个阈值来定义。二维仿真里电流单位是A/μm,如果你定义的结构宽度是2 μm,电流阈值可以取1e-6 A/μm量级,平滑处理一下就能得到比较稳定的击穿电压。也可以在tonyplot里看I-V曲线的拐点,电流斜率突变的位置就是击穿点。更定量一点,可以用extract语句:
# 提取击穿电压:电流达到1e-6 A/um对应的电压 extract name="bv" x.val from curve(v.anode, i.anode) where y.val=1e-6extract语法不同版本略有差异,如果报错,直接在tonyplot里用鼠标取点也行。我比较推荐养成用log记录曲线、再统一提取参数的习惯,这样后面做参数扫描时,可以用脚本一次性提取所有结构的击穿电压,效率高很多。
4. 结果分析与参数扫描:让仿真参与设计决策
4.1 tonyplot里怎么看电场与碰撞电离
仿真跑完,用tonyplot打开最终的结构文件和日志文件,能看到两类信息。I-V曲线直接反映了击穿行为,但要知道击穿发生在哪、是什么机制,必须结合电场分布和碰撞电离率分布一起看。
在击穿临界点附近,把电场分布图打出来,你会发现电场峰值基本贴着金属-半导体的界面,沿y方向向体内衰减。这个峰值电场如果超过了硅的临界电场量级,比如在5e5 V/cm上下,那基本可以判断击穿已经接近临界。再看碰撞电离率分布,碰撞电离率的数值越大,说明该位置载流子倍增越剧烈。通常它和电场峰值位置重叠。
你还可以在tonyplot里沿着结构中心切一条线,把电场强度和碰撞电离率画成一条一维曲线,观察它们沿深度方向的变化趋势。这是诊断器件设计的利器:如果电场峰值贴在表面,说明表面状态和终端对击穿的影响巨大,实际器件大概率会在表面提前击穿;如果电场峰值在体内且宽度较宽,平行平面近似可能更接近实际。
4.2 漂移区掺杂浓度对击穿电压的灵敏度
击穿电压和漂移区掺杂浓度是强相关的。平行平面突变结的击穿电压近似满足VB ≈ εs * Ec^2 / (2 * q * ND),掺杂浓度越高,临界电场略高但VB整体下降。用TCAD把不同掺杂浓度的反向特性都跑一遍,可以得到一条设计曲线,这个比单点计算结果可靠得多。
我建议直接把掺杂浓度设成一组扫描值:1e14、3e14、1e15、3e15、1e16 cm^-3,分别跑反向扫描,再把击穿电压提取出来汇总。结果会呈现一个明显规律:浓度从1e14提高到1e16,击穿电压可能从几百伏快速掉到几十伏以下。这个规律直接决定耐压和导通电阻之间的折中,是设计肖特基二极管最核心的权衡。
| 漂移区掺杂浓度 ND (cm^-3) | 估算击穿电压范围 | 仿真趋势说明 |
|---|---|---|
| 1e14 | 数百V量级 | 耗尽区宽,电场平缓,击穿电压高 |
| 1e15 | 100 V左右 | 常用中压功率肖特基管范围 |
| 1e16 | 30 V以下 | 击穿电压低,适合低压大电流场景 |
实际仿出来的数值会受网格和模型参数影响,但相对趋势和理论公式吻合。做这种扫描时,最好的做法是用脚本自动改掺杂浓度、自动跑仿真、自动提取击穿电压,别一个一个手动改,浪费的时间足够写个循环脚本了。
4.3 温度系数与反向漏电:容易被忽略的“第二条曲线”
功率器件设计不能只看常温特性。温度升高时,晶格振动加剧,载流子碰撞电离的阈值条件变难,雪崩击穿电压通常会略微上升,这是击穿电压的正温度系数;但反向漏电流就完全相反,热电子发射电流随温度指数上升,漏电会显著增大。
用TCAD做温度扫描也很简单,把models里的temp改成需要的温度,比如350 K、400 K,重新跑反向扫描。你会发现一个很有意思的现象:低温时漏电很小,击穿比较“硬”;高温时漏电基数被抬高,I-V曲线在击穿前就明显翘起来,击穿点反而不太好定义。这也是为什么功率肖特基管在高温应用里要特别关注反向漏电的原因,仿真能提前把这个风险暴露出来。
在工程实践中,高温反向漏电往往是器件失效的伏笔。TCAD在这里的价值,不是告诉你“漏电变大了”这种废话,而是帮你定量评估漏电增加多少、击穿电压变化多少,以及势垒高度和掺杂浓度如何影响这种温度敏感性。
5. 常见问题与排查技巧实录
5.1 仿真不收敛,先检查网格而不是调参数
我见过太多人一遇到“convergence failure”就去翻物理模型、把迭代次数调大,结果越调越乱。扪心自问,我自己早期也这么干过,后来发现至少一半的发散问题根源在网格。
肖特基二极管反向击穿仿真最典型的发散场景,发生在电压扫描接近击穿点时。击穿前电流急剧变化,如果网格在耗尽区边界附近太粗,数值上无法准确表达这种突变,牛顿迭代就会崩掉。另一种常见情况是网格长宽比太大,矩阵条件数恶化,求解器直接报错。处理办法很直接:把关键区域网格加密,控制长宽比;把vstep步长减小,比如从0.1 V改成0.01 V;如果还不行,把method设置改成newton trap,让求解器在发散时自动减半步长重新尝试。
如果一定要给个排查顺序,我的习惯是:先细化界面附近网格,再把扫描步长减半,最后才考虑改模型和迭代参数。这个顺序能解决绝大多数问题,而且不会引入新的物理偏差。
5.2 击穿电压偏离理论值太多,按这个顺序排查
仿真跑通了,但击穿电压和理论公式差很多,先从这几个方向查。
第一是碰撞电离模型参数。Selberherr模型在Silvaco里有内置参数,但不同工艺条件下你可能会看到不同版本的推荐值。如果你自定义了参数,务必确认a、b、β数值的单位和来源是合理的。
第二是网格粗细。网格太粗会把电场峰值磨平,导致击穿电压偏高;网格过分细密且某处畸变严重,也可能导致局部电场异常,击穿电压偏低。把界面附近网格加密,再看击穿电压变化,如果变化超过10%,说明网格还没收敛。
第三是结构是否穿通。如果漂移区厚度不够,反向偏压还没到雪崩击穿,耗尽区就已经穿透到衬底,击穿特性会变成“穿通型”,电压-电流曲线呈现很软的特征。这时候不是模型问题,是结构设计问题,增加漂移区厚度就能解决。
第四是接触定义。阳极如果用成了欧姆接触而不是肖特基接触,反向特性会完全错掉。检查contact语句里的workfunction有没有生效,最简单的方法是用tonyplot看零偏时的能带图,如果界面处有势垒,说明肖特基接触定义正确。
5.3 反向漏电流异常:物理泄漏还是数值泄漏
反向漏电流是我们这个案例里最敏感的物理量之一,因为它对势垒高度、温度、复合模型都很敏感。但有时候,漏电流大不是物理问题,而是数值泄漏。
一个容易忽略的点是载流子浓度下限。反向偏压下,耗尽区载流子浓度极低,数值求解时如果下限设置过高,载流子无法被精确求解,会出现虚假电流。另一个问题是网格边界效应,器件左右边界如果处理成普通的欧姆边界,可能会有载流子从边界“漏”进来,导致反向漏电虚高。这个案例里左右边界没有电极,默认是反射边界,一般没问题,但如果你自己改了边界条件,要小心。
区分物理泄漏和数值泄漏,可以做一组快速对比:把势垒高度提高0.2 eV看看漏电是不是明显下降。如果漏电几乎不变,大概率是数值问题;如果漏电跟着势垒高度指数变化,说明是物理热电子发射主导,仿真状态是正常的。
5.4 问题速查表
最后整理一个速查表,方便你实操时对照排查。
| 现象 | 可能原因 | 处理方式 |
|---|---|---|
| 扫描到高压段不收敛 | 网格太粗、步长过大 | 加密界面附近网格,vstep减半,开启trap策略 |
| 击穿电压严重偏高 | 网格平滑了电场峰值 | 细化y方向网格,尤其是界面区域 |
| 击穿电压严重偏低 | 结构穿通、接触定义错、模型参数错 | 增加漂移区厚度,检查电极和功函数 |
| 反向漏电异常大 | 势垒太低、模型缺失、数值泄漏 | 检查功函数,确认barrier lowering,检查载流子下限 |
| 漏电对势垒高度不敏感 | 数值泄漏或接触定义错误 | 检查边界条件,确认阳极是肖特基接触 |
| 温度扫描结果怪异 | 温度参数未正确传入模型 | 检查models中的temp值,确认材料参数随温度变化开启 |
这套速查表我贴在手边用了挺长时间。每次仿真出问题,照着表走一遍,大多数情况能在十几分钟内定位到根因,比自己瞎试省时间得多。
最后,说点我的个人体会
这个案例看起来小,但对理解TCAD仿真和功率器件设计有很强的牵引作用。我做了很多次反向击穿仿真之后,印象最深的不是某条I-V曲线,而是一个很朴素的道理:TCAD仿真的核心价值在于趋势和机理,而不是单点数值。击穿电压算出来是101 V还是105 V,意义远不如搞明白“掺杂浓度上升后击穿电压按什么规律下降”“电场峰值为什么会贴在表面”这些问题来得重要。
如果刚开始练习,建议先跑通一套默认结构、默认模型的流程,再逐步改掺杂浓度、改金属功函数、改温度和网格,每次只动一个变量,观察结果怎么变。这个过程会让你对仿真工具和器件物理建立非常扎实的直觉。还有一个实用的小技巧:充分利用tonyplot的cutline功能,沿着结构深度方向切一条线,把电场、碰撞电离率、能带画成二维曲线,很多看起来莫名其妙的结果,一画线就真相大白了。
这个案例后面还能往很多方向扩展,比如加场限环研究终端耐压设计、做JBS结构对比正向反向折中、把工艺仿真导入研究实际掺杂分布的影响。先把反向击穿这个基础动作练扎实,后面这些东西都会顺很多。