☰
Silvaco TCAD肖特基二极管正向特性仿真:从网格设计到参数提取
2026/10/7 1:22:26 网站建设 项目流程

做半导体器件仿真这些年,Silvaco TCAD一直是我案头少不了的家伙。做功率器件、失效分析、工艺窗口评估,流片之前总得先靠它把器件和物理机制之间的关系摸清楚。今天要说的肖特基二极管正向特性仿真,是TCAD例库里最有代表性的入门用例之一,但它的门槛其实没有部分朋友想得那么低——这是网格怎么切、势垒模型怎么选、正向大电流区收敛怎么处理,每一项都直接决定结果是否可信。

这颗二极管虽然没有MOSFET那么多衬底、栅氧化层、边端等环节,但结构简单恰恰意味着容易暴露问题:势垒高度、串联电阻、温度、掺杂浓度,这些全会在正偏I-V曲线上留下痕迹。对做功率半导体或第三代半导体的人来说,能亲手把一条肖特基正向曲线从Atlas里跑出来,并且看懂每个物理量是怎么被仿真“翻译”出来的,比单纯背公式有用得多。我先用硅做一个可直接复现的模板,最后再说迁移到SiC/GaN二极管时需要调整哪些参数。

1. 为什么拿肖特基二极管做TCAD仿真的“第一课”

1.1 理解肖特基结:金属-半导体结里的多数载流子

肖特基二极管的基础是金属-半导体结。金属层与掺杂半导体接触时,由于两边功函数不同,半导体表面会出现势垒,对应一个内建电位差。正向偏压时,势垒被压低,多数载流子(对n型漂移区器件来说就是电子)从半导体注入金属,形成电流。所以肖特基二极管天然是多数载流子器件,和PN结那种少子注入的导电方式完全不同。

这个区别不是理论背包里的清谈,它直接决定了器件性能:

  • 正向电流机制不同。PN结靠超过内建电位后少子注入扩散来驱动,肖特基结靠越过金属-半导体界面的“发射”,经典描述是热电子发射(Thermionic Emission)。理想因子n通常在1.05到1.2之间,实际器件会比PN结更容易偏离理想值,因为界面态、串阻效应、隧穿都会叠加进来。
  • 正向压降更低。同材料体系下,肖特基二极管在中等偏置下压降通常比PN结低得多(0.3~0.5V对比0.7~0.9V),但反向漏电大得多,温度敏感性也完全不同。仿真时两者使用的是同一套泊松方程和连续性方程,但边界条件(接触类型)与物理模型的量级差异极大,调试重点完全不一样。

1.2 正向特性仿真的三个考核指标:Vth、Ron、n

正向I-V曲线最重要的三个量是门槛电压(Vth)、导通电阻(Ron)和理想因子(n)。I-V关系可以拆成:

I(V) = I_s · [exp(qV / (n·k·T)) - 1]

其中理想热电子理论的饱和电流为 I_s = A_A · T² · exp(-qφB / (k·T)),φB是势垒高度,n是理想因子。实际器件还有串联电阻,它会让高压侧曲线明显弯曲:偏置增大时电流增长不再是指数关系,而是被欧姆损耗拖慢,V每增加一段,I只线性增加。

仿真中,提取这三个量通常是后续器件优化的依据:势垒高度主要由金属功函数和界面状态决定,换不同的阳极金属(比如铂4.65 eV、钼4.36 eV、钛4.33 eV与n-Si接触)会直接改变正向压降;降低Ron的办法则是控制漂移区掺杂浓度和厚度,这些都能在TCAD里进行网格级扫描。这正好说明,一个看似基础的仿真用例,做的其实是“参数→性能”的因果链分析。

1.3 本例选的器件结构与仿真目标

我为这个例子选了一个纵向结构的硅肖特基二极管:顶部阳极是金属接触(肖特基),底部阴极是重掺杂n型衬底加欧姆接触,中间是中等掺杂的n型漂移区。结构不复杂,但该有的要素都有:表面势垒区、漂移区、重掺杂衬底、两类接触。

仿真目标也很明确:

  • 得到完整正向I-V曲线(从0V到1.2V左右);
  • 提取正向压降和导通电阻;
  • 验证理想因子n是否落在合理范围内;
  • 演示网格、物理模型和数值方法对结果的影响。

把目标提前写清楚很重要。TCAD仿真最怕一上来就乱跑,没有目标就是瞎调参,浪费时间还看不到问题。

2. 结构搭建:把一颗肖特基二极管“装”进Atlas

2.1 网格设计:哪里的网格要加密,为什么

Silvaco Atlas建模的第一步永远是画网格。很多新手直接用一个均匀网格,倒是能跑,但结果精度和收敛性会很糟糕。肖特基二极管的物理过程集中在顶部金属-半导体界面附近:电场最强、载流子浓度梯度最大、复合最集中,所以这里的网格必须加密。深度方向上,我习惯把表面处网格间距控制在0.01~0.02 μm,然后向漂移区方向逐步放大到0.1 μm,进入衬底再放宽到0.5 μm以上。横向方面,纵向器件在准一维近似下对网格不那么敏感,但如果后续要加结终端扩展(JTE)或场限环,那就必须在横向也增加纵向节点。

给一个可直接跑通的网格定义供参考:

go atlas mesh space.mult=1.0 # 横向网格:均匀即可 x.mesh loc=0.0 spac=0.5 x.mesh loc=10.0 spac=0.5 # 纵向网格:表面加密,逐步稀疏 y.mesh loc=0.0 spac=0.01 y.mesh loc=0.5 spac=0.05 y.mesh loc=4.0 spac=0.2 y.mesh loc=14.0 spac=0.5 y.mesh loc=16.0 spac=1.0

注意,y.mesh中loc是绝对位置,spac是该位置前后相邻网格线的间距。我不建议一次性把整个纵向区域全部做成0.01μm均匀网格,那样节点数爆炸,求解器会慢得让人怀疑人生。表面0.5μm内加密到亚微米级,已经完全能满足正向特性精度需求。如果做的是反向击穿仿真,网格策略还要再调整,需要把耗尽区和结边缘单独加密,那是另一套思路。

2.2 区域、掺杂与电极定义

网格画好后,定义区域和掺杂相对直白。纵向器件结构从下到上是:

# 区域定义:整个矩形区域都是硅 region number=1 silicon # 掺杂:顶部漂移区 1e16 n型,底部衬底 1e19 n型 doping uniform conc=1e16 n.type y.min=0 y.max=14 doping uniform conc=1e19 n.type y.min=14 y.max=16

我的习惯是做两层掺杂,而不是做一个渐变掺杂,这样更贴近实际外延片的制造方式:轻掺杂外延层长在重掺杂衬底上,交界面干净利落。实际写入时,上述第二行会在全区域内先均匀覆盖1e16,第三行再把底部覆盖成1e19。注意顺序,如果两行掺杂区域有重叠,后定义的浓度会覆盖前面,如果重叠区域浓度冲突并没有被assign处理,有时候会得到意料之外的结位置。

电极定义也非常关键:

electrode name=anode top electrode name=cathode bottom

这里阳极会自动成为肖特基接触,阴极会在后续定义为欧姆接触。Silvaco里接触类型和功函数在contact语句中配置,后面会单独讲。这里先把电极名字定好,后面solve里拉电压要用。

2.3 从准一维结构到真实器件:边界条件的影响

很多用户跑完这个简单结构后,会直接拿结果和量产器件的数据手册对比,发现正向压降对不上,就开始怀疑TCAD的准确性。实际上,这个二维/准一维简化结构并没有考虑终端结构、寄生电阻、封装阻抗等因素,真实器件的正向压降会因这些额外电阻而增加。仿真的意义是把器件本征物理部分分离出来,而不是模拟整个封装系统。

如果在Atlas里做的是二维结构,左右边界默认是绝缘边界条件(反射边界),这等效于假设器件无限宽。对简单纵向二极管来说,这个假设是合理的,但当你研究3D效应、电流弯曲或边缘击穿时,就必须要显式建模终端结构,并给侧边加合适的接触或边界条件,不可以套用这个简化模板。

3. 物理模型与数值方法:决定仿真可信度的关键一步

3.1 势垒、功函数与肖特基接触设置

这是肖特基二极管仿真里最容易犯错的地方,没有之一。默认情况下,Atlas会把electrode name=anode top当作理想的肖特基接触,但其势垒高度需要根据金属功函数与半导体的电子亲和势来设定。语法是:

contact name=anode workfunction=4.7

对于n-Si,电子亲和势χ约为4.05 eV,理论势垒高度φB约等于φm - χ。以功函数4.7 eV的金属为例,φB大约0.65 eV。这是一个合理的初始值,实际界面态会大大影响有效势垒。

这里我强烈建议做一步扫描:分别用φB = 0.6、0.65、0.7 eV跑三条正向曲线,观察正向压降的变化范围。这个扫描能直观看出势垒高度对正偏特性的控制能力,也能帮助你判断,如果实测正向电压偏大,是否该从欧姆接触或串阻方向反推,而不是盲目改金属功函数参数。

阴极必须显式设置为欧姆接触:

contact name=cathode ohmic

如果忘了设置,Atlas会把阴极也当成类肖特基接触处理,我会在后面的问题排查章节再展开。

3.2 迁移率、复合与隧穿模型的选择

物理模型决定了方程里各项参数的取值方式,模型选错了,网格再好也白搭。正向特性仿真我建议最少启用这几类模型:

  • 迁移率模型:fldmob(电场相关迁移率)和connmob(浓度相关迁移率)都建议打开。高浓度衬底区的迁移率下降非常明显,忽略connmob会让串阻偏低,正向曲线偏“硬”。
  • 复合模型:srh(Shockley-Read-Hall复合)是必须的,它决定少子寿命和漏电机制;高注入条件下(正向大电流时)考虑auger。肖特基是多数载流子器件,复合的影响比PN结小,但并不是零——少子依然存在,尤其在高注入或在金属界面附近,复合过程对漏电有贡献。
  • 隧穿模型:界面电场很强时,载流子会有场发射或热场发射的隧穿几率。默认的纯热电子发射模型在中低掺杂下够用,但漂移区掺杂超过1e17 cm⁻³时,隧穿电流占比显著,建议打开带带隧穿或指定界面陷能级隧穿模型。初始仿真可以不开,但结果出现反向漏电异常或正偏曲线低电压段“过软”时,要回头补模型。
models srh auger fldmob connmob print

如果直接跑SiC,还需要额外打开incomplete(不完全电离)等碳化硅特有模型,因为SiC中杂质离化能较大,常温下不能假设全部电离。

3.3 正向偏置扫描的数值策略:从零到高电流的推进法

正向偏置扫描是数值上的重头戏。我在第一次跑肖特基正偏时,上来就solve vanode=1.0,结果几乎必然不收敛。问题出在初始解的牛顿迭代路径太差:直接从零偏跳到强正偏,电场分布和载流子浓度发生了量级级变化,没给迭代器足够缓冲。

正确的做法是从零偏开始,先求得平衡解(热平衡),然后逐步加电压,每一步用上一步的解做初值:

solve init # 先做从0到0.4V的小步长扫描 solve vanode=0.01 vstep=0.01 vfinal=0.4 name=anode # 0.4到0.8V,电流开始上升,稍微放大步长 solve vanode=0.4 vstep=0.05 vfinal=0.8 name=anode # 0.8V之后进入强注入区,这时继续加大偏置 solve vanode=0.8 vstep=0.1 vfinal=1.2 name=anode

如果到了高电压段依然出现不收敛,可以改用solve vcurrent=anode curstep=...,把扫描量从电压改成电流。电流法的好处是,在正向导通区,电流是电压的缓变函数,用电流作为自变量往前推进更平滑,收敛性更好。曲线到达强串联电阻区(电流被电阻限制)后,电压步长可以再加大,因为此时偏离线性度的区域已经过了。

4. 正向特性仿真运行:从初始解到完整I-V曲线

4.1 完整可运行脚本与关键指令解释

给一个保证能跑通的完整脚本,硅肖特基二极管,宽度10μm,漂移区4μm,衬底12μm:

go atlas mesh space.mult=1.0 x.mesh loc=0.0 spac=0.5 x.mesh loc=10.0 spac=0.5 y.mesh loc=0.0 spac=0.01 y.mesh loc=0.5 spac=0.05 y.mesh loc=4.0 spac=0.2 y.mesh loc=14.0 spac=0.5 y.mesh loc=16.0 spac=1.0 region number=1 silicon doping uniform conc=1e16 n.type y.min=0 y.max=14 doping uniform conc=1e19 n.type y.min=14 y.max=16 electrode name=anode top electrode name=cathode bottom contact name=anode workfunction=4.7 contact name=cathode ohmic models srh auger fldmob connmob print method gummel newton itlimit=30 solve init save out=schottky_init.str log out=schottky_forward.log solve vanode=0.01 vstep=0.01 vfinal=0.4 name=anode solve vanode=0.4 vstep=0.05 vfinal=0.8 name=anode solve vanode=0.8 vstep=0.1 vfinal=1.2 name=anode tonyplot schottky_init.str tonyplot -st schottky_forward.log -set forward.set

有几个点解释一下:

  • space.mult=1.0是网格全局缩放系数,稳定后如果想快速验证不用跑太慢,暂定为1.0。
  • method gummel newton itlimit=30指定了求值算法。Gummel适合低偏置,Newton适合强耦合方程。Atlas允许在同一个仿真流程里先用Gummel做初步解,再到高压段切Newton,这也是提高稳定性的常用手段。
  • save out=schottky_init.str保存初始解,可以看一下平衡态能带和电场分布。
  • log out=...会记录所有电极端电压和电流,tonyplot -st直接出I-V曲线。

4.2 从log文件提取I-V数据与关键参数

跑完正向扫描后,schottky_forward.log里存了每步的阳极电压和阳极电流。用tonyplot打开后,可以直接把曲线导出为CSV格式,再做进一步数据处理。我经常在TonyPlot里看的两个量:半对数坐标下的log(I)-V曲线,以及线性坐标下的I-V曲线。

半对数曲线在低偏置端应该基本为直线,斜率对应理想因子n。从两条曲线可以做一个逆向工程:取半对数线性区的斜率,算出n;再看线性I-V曲线高压段的斜率,算出串联电阻。

TonkyPlot本身也有提取工具,但我更喜欢把数据导出来用Python处理,因为在批量扫描工艺参数时,Python脚本处理多个log文件比逐个在图里点更方便,也更不容易出错。

4.3 提取理想因子、导通电阻的实操方法

理想因子n的提取,最常用的是对正偏电压中等段做对数电流的线性拟合:

n = (q / (k·T)) · (dV / d(ln I))

具体操作是:在log数据里,取电流区间比如1e-10~1e-6 A(具体区间看器件面积),对电压求导,得到dV/d(lnI),代入公式。一种快捷方式是直接在TonyPlot里对I取log10,加拟合线看斜率。注意温度T改成仿真设置的实际温度,如果不改默认是300K。

导通电阻Ron的提取更直接:取线性I-V曲线高压段,比如0.9V到1.1V之间,斜率倒数就是微分导通电阻。注意这个值包含了漂移区电阻、衬底电阻和接触电阻的总和,和器件面积相关。如果要换算成比导通电阻(单位mΩ·cm²),需要根据器件截面积折算。

我习惯在仿真结束时再叠加一条理论热电子发射曲线做对比,把偏离部分标记出来。偏离原因通常就两类:靠近0V的偏离来自串联电阻的压降分配,强偏区的偏离来自模型本身的温度效应。这样一条仿真曲线里的物理信息就不仅仅是“能跑通”,而是能看出器件哪里受限。

5. 常见问题与排错实录

5.1 收敛性问题:报错看不懂?先查这几处

正向偏置仿真的收敛问题一般出现在两个地方:低压小电流段,以及强正偏大电流段。低压段不收敛,多半是初始解不好,或网格在表面的跃变太剧烈。可以把vstep调小到0.005 V,或者用solve init以后先跑一个很小的偏置再做正式扫描。

大电流段不收敛,多半是高注入效应让方程组的非线性变强。这时有几个常见手段:

  • 切换或混合牛顿迭代法,先Gummel后Newton;
  • 在method中添加carriers=2等参数,显式确保电子和空穴双载流子求解;
  • 增大迭代上限,把itlimit从默认值提高到50或更多;
  • 降低该步的电压增量,不要一次跨0.1V以上。

还有一点容易被忽略:接触端的功函数或势垒高度如果设了不太合理的极端值,会导致初始解的载流子浓度分布差异过大,也会引发收敛困难。可以先设置一个合理金属功函数(对Si是4.3~4.8 eV之间),跑通后再往目标工况调整。

5.2 网格敏感度分析:你的结果是不是被网格“牵着走”?

做TCAD仿真必须做网格敏感度分析,这是我带新人时反复强调的。判断网格是否足够精细,方法很简单:把space.mult分别设为0.5、1.0、2.0,跑同一条I-V曲线,比较正向压降或Ron的变化。如果两次加密后关键指标变化小于1%,网格基本已经收敛;如果差异还很大,说明关键区域网格不足,需要手动加密。

有的朋友一遇到网格敏感度高,就抱怨Silvaco不好用,其实问题往往出在网格分布不均匀:要么表面不够密,要么漂移区直接用均匀网格导致大梯度区域节点不够。对肖特基二极管来说,表面和金属界面附近的细网格对正向特性影响最大,漂移区可以缓慢稀疏,但不要出现网格间距跳变超过5倍的情况,否则会引起数值震荡。

5.3 常见仿真结果不符预期的排查速查表

我汇总了实际项目中经常遇到的几种典型异常,可以直接当排查清单用:

现象可能原因排查方向
正向电流整体偏小势垒高度设高了检查contact workfunction,尝试降低0.05~0.1 eV
正向电流偏大势垒高度偏低,或漂移区掺杂偏高核查掺杂浓度与workfunction
高压段曲线“趴平”串联电阻偏大查看衬底掺杂是否不够高,或深度方向网格太粗
低压段偏离直线界面复合或隧穿模型未合理配置补srh模型,或检查隧穿模型开关
曲线震荡、非单调网格突变或数值方法不稳定加密界面附近网格,减小步长,切换method
反向漏电异常大阳极被误设为欧姆接触检查contact name=anode是否失效,workfunction是否生效
总电流趋近0载流子类型/掺杂类型错误检查doping中的n.type/p.type,确认漂移区是n型

这张表看着简单,但能覆盖多数肖特基仿真前半段遇到的坑。后面我专门说一个常见误区:如果阴极忘了加ohmic,Silvaco默认会把它也当成普通接触处理,导致串联了一个虚拟的反向二极管,曲线变形得非常奇怪,很多人卡在这个问题上好几天。

5.4 一个真实排查案例:正向曲线莫名“缺腿”

有一次我帮同事排查一条肖特基仿真,正向I-V曲线在0~0.3V几乎是零电流,0.3V之后突然跳变,看起来像阈值电压异常偏高。查来查去,最后发现他把漂移区掺杂错误写成了p.type,然后阳极金属功函数和n型半导体形成的势垒方向完全反了,等于建了一个反向结构的二极管。改回n.type之后曲线立刻恢复正常。

这个案例很有代表性:TCAD本身不“懂”器件物理,它只是按你给定的区域、掺杂、接触和模型去解方程。任何一步设错,得出结果都不会自己纠正。所以每次跑仿真之前,我都会做一个“三查”动作:查掺杂类型对不对、查接触类型对不对、查区域材料对不对。三分钟的事,别省。

6. 实用心得与扩展建议

6.1 正向特性仿真的三条铁律

第一条铁律:永远先跑通完整脚本,再谈优化。不要中途频繁改动模型,否则问题堆叠在一起,分不清是网格问题还是模型问题。第二条铁律:任何关键结论都要做网格收敛性验证,没有网格独立性的结果不能充当设计依据。第三条铁律:仿真结果和实测对不上时,先怀疑参数输入,再怀疑模型,最后才怀疑软件。多数“仿真不靠谱”的结论,最后都查出来是掺杂浓度、器件厚度或接触信息抄错了。

6.2 从硅到SiC:迁移端口需调整哪些参数

把硅模板迁到SiC或GaN,不是改个材料名那么简单。以4H-SiC为例,禁带宽度约3.26 eV,为某些杂质级的离化能很高,必须用不完全电离模型。玻尔兹曼分布假设在非极性宽禁带半导体中不一定总是成立,重掺杂下费米-狄拉克统计需要启用,否则衬底区的有效载流子浓度会严重偏差。晶格热导率差异也很大,自热效应在SiC里比Si更明显,正向大电流段的温度场会显著影响I-V曲线,需要在仿真中加入晶格热方程,做电气-热耦合仿真。

对GaN肖特基二极管,极化效应和陷阱密度的影响不可忽视,这又要引入更多附加模型。所以我的建议是:先基于硅把整套正向特性仿真流程跑明白理解主导因素,再一步步往SiC/GaN拓展。基础不牢,直接上宽禁带,很容易被各种非理想效应淹没。

6.3 批量参数扫描:把单次仿真变成设计工具

单条正向I-V曲线只是开始。实际做器件设计的人,要回答的问题是:漂移区掺杂对正向压降的影响有多大?厚度减薄0.5μm,Ron能降多少?不同功函数的金属,反向漏电增加多少?

这些问题都需要参数扫描。Silvaco的deckbuild支持go循环和变量定义。比如快速扫三个掺杂浓度:

set NDRIFT=1e15 doping uniform conc=$NDRIFT n.type y.min=0 y.max=14

然后用外部循环(命令行或foreach)替换变量重跑多轮。或者最省事的方法:在命令行写一段Python或Shell循环,每次生成不同的输入deck,批量跑完后统一提取log数据做对比。批量扫描还有一个好处:可以顺便验证模型的一致性。如果掺杂浓度微小的变化引起了不连续的结果跳变,大概率是网格或数值扰动,不是物理问题。

6.4 后续还能怎么扩展

这次只讲了正向特性。肖特基二极管还有一大块是反向特性:反向漏电、雪崩击穿、电场分布、终端设计寿命这些对高压功率器件至关重要。掌握了这套正向仿真套路后,下一步可以做反向击穿模拟,这需要重新设计网格策略并打开碰撞电离模型。再往后,可以加温度扫描、加边缘终端(场限环、JTE)、加3D结构,逐步把一个简单二维二极管扩展成接近真实产品的虚拟样机。

Silvaco TCAD的优势在于它把工艺仿真(ATHENA)和器件仿真(ATLAS)串联起来,可以直接把工艺条件映射成器件结构。如果你身边正好有工艺仿真的数据,把掺杂分布、结深、侧墙形状等参数从ATHENA导入ATLAS,得到的器件特性会比理想掺杂分布更真实。这也是我日常工作中最常用的一条路径:工艺仿真给器件仿真提供物理源,器件仿真再反过来指导工艺窗口设计。

最后说一个我认为很实用的经验:仿真跑通不是终点,把结果中每个特征都解释清楚才是终点。一条正向I-V曲线,从亚阈值区的斜率到高压区的弯曲,每一个拐点都对应一个物理机制,如果你能对着曲线给新人讲清楚每个分段背后的载流子行为、势垒变化和电阻贡献,你才算真正会用TCAD。我的很多设计直觉,也是在这种“仿真+解释”的循环里慢慢建立起来的。希望这篇拆解能让你少走点弯路,尽早把注意力从调参本身转移到器件设计本身。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询