搞功率器件这几年,我越来越觉得仿真不是可有可无的锦上添花,而是设计的前置条件。尤其是 GaN HEMT,外延片一投就是几十万,做出来再测再改,周期长不说,很多内部物理量根本探不到。我之前接手一个高频开关项目,要在设计阶段就把阈值电压、导通电阻、栅电荷这些指标定下来,最后选了 Silvaco TCAD 走完整套流程:从 AlGaN/GaN 异质结的极化效应开始建模,一直推到小信号下的 fT/fmax 和开关损耗估算。这篇文章就把这套 Silvaco TCAD 的 GaN HEMT 仿真设计流程、参数校准方法和性能验证细节完整写出来,适合正在做功率半导体、射频器件设计的工程师,也适合刚接触 TCAD 仿真、准备把 GaN 器件作为课题的研究生。我不会堆理论公式,只讲实际跑过、试过、踩过坑的东西。
1. 项目整体思路:为什么用 Silvaco TCAD 做 GaN HEMT 仿真
1.1 GaN HEMT 仿真的核心难点在哪儿
GaN HEMT 和传统硅器件有个本质区别:它的导电沟道不是靠掺杂形成的,而是依赖 AlGaN/GaN 异质结界面的极化效应产生二维电子气(2DEG)。这意味着你还没开始加电压,器件内部就自带了一层高浓度电子,浓度可以达到 1e13 cm⁻² 量级。这个特点让 GaN HEMT 拥有高迁移率和高饱和速度,适合高频开关,但也给仿真带来麻烦——你必须在建模阶段就把极化电荷算对,否则后面所有电学特性全是错的。
另外一个难点是陷阱效应。GaN 材料里存在大量深能级陷阱,尤其在做击穿仿真时,buffer 层里的缺陷会明显影响漏电和动态导通电阻。Silvaco TCAD 的好处在于它不是单纯的解析模型工具,而是基于有限元求解漂移扩散方程,可以把极化、陷阱、碰撞电离、自热这些物理机制耦合在一起算,这在设计周期前段特别有用。
有些同学问我,为什么不用简单的 Spice 模型或者解析公式?说实话,Spice 模型在电路级验证里是必须的,但是 Spice 模型参数要从实测或者 TCAD 里提,而且它给不出电场分布、沟道温度分布这些内部信息。Silvaco TCAD 的价值就在于,它能在流片之前告诉你结构改动在物理上合不合理,比如 barrier 厚度减 5nm 对阈值电压影响多大,场板怎么加能提高击穿电压,这些用解析估算很难拿准。
1.2 仿真设计的具体目标和验证指标
我这次的项目背景是高频开关电源应用,要求 GaN HEMT 工作在硬开关拓扑里,开关频率做到 1MHz 以上。所以设计目标不是单点最优,而是几个指标互相平衡:
- 阈值电压 Vth 尽量在 -3V 到 -1V 区间,太负不利于驱动,太正则增强型设计难度大。
- 导通电阻 Ron 尽量低,否则静态损耗大,目标按面积归一化做到 10 Ω·mm 左右。
- 栅电荷 Qg 尽量小,因为高频开关里驱动损耗和栅电荷直接相关。
- 击穿电压 BV 至少要能匹配 650V 母线需求,也就是器件实际阻断能力最好到 800V 以上。
这几个指标相互制约。比如把 barrier 做厚,2DEG 浓度会下降,阈值电压变正,但导通电阻会上升。这种 trade-off 如果靠流片试错,成本太高,所以我直接在 Silvaco TCAD 里建立一个参数化模型,把 Al 组分、barrier 厚度、buffer 掺杂浓度都设成变量,批量扫描后找最优区间。
选 Silvaco 而不是其他 TCAD 工具,除了团队一直用这个平台之外,还有两个原因:一是它的 GaN 材料库和极化模型比较成熟,且支持 VFEM(有限元)和矩量法等多种求解器,网格自适应性比某些老牌工具好;二是它有比较好的脚本批量能力,我可以用 deckbuild 写参数化循环,跑几十组结构然后统一提取结果,这在高频开关器件的多参数优化里特别省时间。
2. 器件结构与极化效应建模
2.1 AlGaN/GaN 异质结里的极化电荷从哪来
要建好 GaN HEMT 模型,先得把极化效应的物理来源理清楚。GaN 和 AlGaN 都是纤锌矿结构,沿 c 轴方向存在自发极化(spontaneous polarization)。同时,当 AlGaN 作为 barrier 外延生长在 GaN buffer 上时,因为晶格失配会产生应力,应力又带来压电极化(piezoelectric polarization)。
自发极化和压电极化都是矢量,方向取决于材料是镓极性还是氮极性。通常在 c 面蓝宝石或 SiC 衬底上外延出来的是镓极性,AlGaN 层的自发极化方向从表面指向衬底,而压电极化在张应变下也是从表面指向衬底,两者方向一致导致界面处出现净正极化电荷。为了保持电中性,这个正电荷会把附近导带拉低,电子就在 AlGaN/GaN 界面量子阱里积累,形成 2DEG。
实际仿真时,我不会把这些极化过程全部用原子级模型写进去,而是用等效界面电荷来做。先根据 Al 组分查参数算出净极化电荷面密度,然后把它作为正固定电荷加到 AlGaN/GaN 界面上。这个做法看似粗暴,但对器件级 TCAD 仿真足够准确,而且计算量小、收敛好。需要说明的是,Silvaco 有一些 GaN 专用材料模型可以直接触发极化相关计算,但我们自己在工程中更常用等效电荷法,因为方便校准。
2.2 Silvaco TCAD 里设置极化电荷的实操方法
我用的 Silvaco 版本中,常用的建模思路是在 deckbuild 画好网格和分区后,通过 interface 语句在 AlGaN/GaN 界面设置固定电荷。比如下面这段命令:
go atlas mesh space.mult=1.0 # 定义区域 region num=1 material=AlGaN y.min=0.0 y.max=0.025 region num=2 material=GaN y.min=0.025 y.max=2.0 # 电极定义 electrode name=gate x=1.0 y=0.0 electrode name=source x=0.0 y=0.0 electrode name=drain x=3.0 y=0.0 # 在异质结界面加等效极化正电荷 interface x.min=0.0 x.max=3.0 y.min=0.025 y.max=0.025 qf=8.0e12 # 物理模型 models srh auger fldmob print这里qf=8.0e12是面电荷密度,单位是 cm⁻²,数值要按实际 Al 组分和应力状态调整。有人会问为什么是正电荷?因为在镓极性 AlGaN/GaN 异质结中,界面净极化电荷为正,所以固定电荷也取正,才能在量子阱里感应出电子。
设置完之后,我先跑一版零偏置下的能带图,看 2DEG 是否出现在界面下方 1nm 左右的位置,再去看电子浓度峰值是否在 1e19~1e20 cm⁻³ 量级。如果电子浓度偏低,就先加 qf;如果阈值电压偏了,再微调 barrier 厚度和 qf。极化电荷和阈值电压的关系基本是线性的,大概每变化 1e12 cm⁻²,阈值电压会平移几百毫伏,但这个系数受栅极功函数和表面态影响,所以必须拿实验数据校准。
2.3 校准极化参数时的关键细节
很多人在这一步栽跟头:Silvaco 里 AlGaN 的 Al 组分、带隙、介电常数、迁移率模型这些参数都需要一起设置,不能只调 qf。我习惯先固定 Al 组分在 25%,barrier 厚度 25nm,然后拿一组实测转移特性曲线来校。步骤是这样的:
- 先跑一个 ID-VG 仿真,观察 Vth 和最大饱和电流。
- 如果 Vth 比实测偏正,说明界面正电荷不足,增大 qf。
- 如果最大电流比实测偏大,可能是迁移率模型参数太乐观,调整低场迁移率或表面粗糙度散射参数。
- 再看亚阈值摆幅,如果太缓慢,说明 body 陷阱或界面态没建模。
这里特别提醒一点:界面固定电荷的位置必须是异质结界面,不要不小心加到了 barrier 表面。表面态确实存在,但它的作用是耗尽部分沟道电荷,应该用 surface charge 或者陷阱模型单独建模,而不是改 qf。否则你会得到一组看似收敛,但电场分布完全错误的仿真结果。
3. 仿真设计与实操流程
3.1 网格、材料参数与物理模型的选择
TCAD 仿真有个铁律:网格决定收敛,收敛决定效率。GaN HEMT 里 AlGaN barrier 通常只有 20~30nm,如果网格太粗,2DEG 的量子阱根本分辨不出来;网格太细,整片器件算起来又慢得让人崩溃。我的做法是先在垂直方向把 AlGaN/GaN 界面附近加密,步长取 0.5nm 到 1nm,然后向外逐渐拉大;水平方向在栅极边缘加密,因为电场极值通常出现在栅脚附近,尤其是做击穿仿真时。
材料参数方面,GaN 的带隙设为 3.4eV,AlGaN 带隙按 Al 组分插值;介电常数 GaN 取 9.5,AlN 取 8.5,然后线性插值;电子迁移率我一般先给一个 1000~1200 cm²/(V·s) 的低场值,再靠电场依赖迁移率模型自动降下来。做功率开关器件时,还要考虑高场饱和速度,Silvaco 的fldmob模型基本够用。
物理模型这块,常见配置是:
srh:肖克利-雷德-霍尔复合,处理缓冲层漏电;auger:俄歇复合,高注入下才明显,先开着也行;fldmob:电场依赖迁移率,算饱和电流必须有;impact:碰撞电离,只在击穿仿真时打开,不然会影响收敛速度。
这里有个经验:不要一上来就把所有模型全开。比如先只开srh + fldmob跑个转移特性,确认网格和极化电荷没问题,再做击穿仿真时加impact。这样能快速定位问题,不至于一次报错不知道是哪里的锅。
3.2 静态特性仿真:转移与输出特性提取
我用 Silvaco 建模时,器件栅长取 0.5μm,栅宽归一化为 1mm,这样电流密度单位直接是 A/mm,方便和文献对比。漏极接 10V 固定,栅极从 -8V 扫到 1V,所有电极的电压步长一开始可以取 0.25V,等接近阈值附近再加密。
跑完转移特性后,我会从输出 log 文件里提取:
- 阈值电压 Vth,线性外推或固定电流法都可;
- 跨导峰值 gm_max;
- 最大饱和电流 Id_sat;
- 亚阈值摆幅 SS。
输出特性仿真则是把栅压固定在某几个点(比如 -3V、-2V、-1V、0V),漏极从 0V 扫到 20V,观察线性区和饱和区电流。这个结果主要用来提取导通电阻 Ron,公式是低漏压下 ID-VD 斜率的倒数。Silvaco 的 tonyplot 能直接画图,但批量提取我用的是 log 文件加 Python 脚本,把所有结构的结果汇总成表,这样效率高得多。
如果你跑出来的 ID-VG 曲线在亚阈值区拖了一个很长的尾巴,极有可能是网格在栅极边缘太粗,或者是缓冲层漏电模型没加。还有一种情况是极化电荷设大了,导致 2DEG 浓度太高,栅压很难完全夹断,这就要重新校 qf。
3.3 高频开关特性评估:C-V、栅电荷与 FOM
高频开关和射频放大关注点略有不同。射频更看重 fT/fmax,开关电源则更看重 C-V 曲线、栅电荷 Qg 和品质因数 FOM。但我这次两个都看了,因为项目要求器件既能做功率开关,也要看高频下的动态特性。
C-V 仿真的方法是对栅电极加固定漏压,然后扫描栅压,从每个偏置点的小信号电容矩阵里提取 Cgs 和 Cgd。Silvaco 里可以用solve加 AC 分析或者直接用直流扫描以后的电容提取命令,但要注意偏置步长要足够细,尤其在阈值附近电容会快速变化。
栅电荷 Qg 的定义是从截止区到充分导通区需要注入栅极的总电荷,等于 C-V 曲线对电压的积分。开关损耗里驱动损耗就是 Qg × Vgate × fsw,所以 Qg 越小越好。这次设计里我同时优化 Ron 和 Qg,采用 Ron × Qg 这个 FOM 来做不同结构之间的对比。GaN HEMT 如果能做到 mΩ·nC 量级比较理想,实际仿真结果往往受 barrier 厚度影响很大。你自己做项目时,可以把这组指标列成表格,每次跑完结构都把 FOM 更新进去,很容易看出趋势。
4. 性能验证与结果分析
4.1 静态性能验证:阈值、导通电阻与击穿特性
这部分最核心的是把仿真结果和实测或者文献数据对照。我在验证时固定了 Al 组分、barrier 厚度、buffer 浓度等结构参数,然后做了两组扫描:一组是 Al 组分 20%、25%、30% 对阈值和电流的影响;另一组是 barrier 厚度 20nm、25nm、30nm 对 Ron 和 Qg 的影响。
先说 Al 组分。Al 组分升高,自发极化和压电极化都会变强,界面电荷密度上升,Vth 负向移动,饱和电流增大。但别高兴太早,Al 组分太高会导致 barrier 张应变过大,甚至产生裂化,同时沟道迁移率可能下降,所以实际设计一般不会超过 30%。在 Silvaco 里改成不同 Al 组分时,记得同时修改 AlGaN 的带隙、介电常数和极化电荷密度,不能只改一个数。
击穿仿真我是在漏端加高压,源端接地,栅极接在截止偏置,逐步把漏压从 0V 扫到 900V。此时打开碰撞电离模型,观察漏电流突然上升的拐点。GaN HEMT 的击穿往往不是表面直接穿通,而是 buffer 层漏电或栅极边缘电场集中导致的。我试过在 drain-side 加一个场板结构,电场峰值从 2.8MV/cm 降到了 2MV/cm 以下,击穿电压从 620V 提升到 850V,这个优化效果用解析公式很难估准,TCAD 的优势在这里体现得淋漓尽致。
4.2 高频性能验证:fT/fmax 与小信号参数提取
高频性能我采用小信号 AC 仿真。先在直流工作点(Vds=20V,Vgs 选在峰值跨导附近)收敛,然后做 AC 扫描,频率从 1MHz 扫到 100GHz,提取电流增益 h21 和最大可用增益 MAG,再分别外推到 0dB 得到 fT 和 fmax。
fT 主要受栅长和电子速度影响,fmax 还受栅电阻和反馈电容影响,所以结果更有区分度。我这次的器件结构栅长 0.5μm,仿真 fT 大约在 18GHz,fmax 大约在 42GHz,和同尺寸实验器件的数据对得上。对于 1MHz 开关应用,这个速度绰绰有余,但如果你要做 5G 射频,栅长就得缩到 0.15μm 以下,同时要重新考虑寄生参数。
验证这里有个很值得说的点:AC 仿真结果对栅极电阻模型很敏感。Silvaco 器件仿真里如果没单独定义栅电阻,fmax 会被高估,因为实际栅指是有电阻的。我做高频验证时会在电极参数里加上单位宽度栅电阻,或者在结果提取时手动估算栅电阻再修正 fmax。这样得到的 fmax 才有参考价值。
4.3 从器件仿真到电路指标的换算
器件级仿真结果不能直接当电路指标用,但可以换算。比如我拿到 Ron 和 Qg 之后,结合开关频率 fsw,可以估算硬开关拓扑里的开关损耗:
P_sw = 0.5 × Vds × Id × (tr + tf) × fsw
其中 tr 和 tf 通常和栅极驱动条件有关,但如果只做器件评估,可以简单用 Qg 和驱动电流推算。这一步虽然粗糙,但在结构选型阶段很好用。同一批仿真,我也把不同结构的 FOM 列出来:
| 结构组合 | Vth (V) | Ron (Ω·mm) | Qg (nC/mm) | Ron×Qg (mΩ·nC) |
|---|---|---|---|---|
| Al 25% / barrier 25nm | -3.1 | 9.8 | 12.5 | 122.5 |
| Al 25% / barrier 20nm | -2.4 | 11.2 | 10.8 | 121.0 |
| Al 30% / barrier 25nm | -3.8 | 8.6 | 14.2 | 122.1 |
三组 FOM 很接近,说明高频开关品质因数在这个区间内主要受材料极限限制,继续靠结构微调空间不大。这时就该把注意力放到封装和驱动电路上,而不是无脑缩 Ron。
5. 常见问题、踩坑记录与优化建议
5.1 仿真不收敛的排查思路
TCAD 新手最容易遇到的问题就是结构建好了,跑几步就报错不收敛。我在 GaN HEMT 仿真里最常见的不收敛点有两个:一是极化电荷刚加上去时,电子浓度变化太剧烈;二是漏压接近击穿时,碰撞电离造成电流正反馈。前者解决办法是先给一个很小的初始漏压,比如 0.1V,让求解器在低场下稳定找到初始解,再逐步升高电压;或者把极化电荷分步加载,比如先加一半收敛,再加到全量。后者则要把最大电压步长设小,同时限制 Newton 迭代次数,必要时改用 Gummel 迭代。
另一个常被忽略的原因是网格质量问题。击穿仿真时,栅极边缘电场非常集中,如果那里网格过渡太陡,求解器很容易在空间电荷区振荡。我的经验是栅脚附近用矩形细网格,远离有源区再 1.5 倍慢慢拉大,不要突然放大。
5.2 极化电荷校准的“唯一性”陷阱
校准极化电荷有一个我特别想提醒的事:固定电荷密度和阈值电压并不是一一对应的。barrier 厚度、Al 组分、栅极功函数都会影响 Vth,所以如果只拿一组 ID-VG 数据去拟合 qf,理论上会有多组解。比如把 barrier 加厚 2nm,同时稍微增大 qf,Vth 也可能不变,但 2DEG 浓度、跨导、C-V 特性都会不同。
所以我校准的时候不会只看 Vth,还会把电子的峰值浓度、饱和电流 ID_sat 和阈值附近的 C-V 曲线一起拿来对照。如果三者和实验都能匹配,说明极化电荷这个参数取得比较可靠。只盯一个量,很容易自欺欺人,仿真结果后面换到击穿或高频场景就崩了。
5.3 自热效应到底要不要开
功率开关器件的电流密度高,自热效应会在连续大电流工况下明显降低迁移率和饱和电流。Silvaco 里开启自热需要选择热力学模型,并且给衬底设置热边界条件。我之前跑过一个版本,没开自热,最大饱和电流 1.2A/mm;开了自热之后,同样偏置条件下电流降到了 1.0A/mm,下降了接近 17%。这个差距对功率级设计不可忽略。
但自热模型也不是一上来就开。原因有好几个:第一,自热会显著增加计算量,尤其在做大信号扫描时;第二,热边界条件设不好反而引入额外误差。我的习惯是常温电学特性扫描先关自热,把网格和模型都调没问题了,再做最终功率验证时开自热,让结果更贴近实际稳态工作。
最后再分享一个这次项目里的小技巧:Silvaco 的 log 文件提取结果时,我会顺手把关键偏置点的电场分布和能带图也导出来存档。很多问题当时觉得只是数值抖动,后来发现其实是物理模型没对上。有了这些图,再回去调参数就快很多。GaN HEMT 仿真,说到底不是把软件点开跑个流程,而是得对每一步的物理含义有数,极化电荷怎么等效、网格哪里加密、温度模型开不开,每个选择背后都有它的道理。这套流程跑熟练之后,你再去看新的器件结构,基本能做到心里先有预期,再在仿真里验证,而不是傻乎乎地盲扫参数。