3. ESD防护器件建模:GGNMOS的DC与瞬态行为
做ESD防护设计,GGNMOS是你绕不开的器件。我见过不少工程师直接拿foundry的模型库跑仿真,结果流片回来ESD打不穿——说白了,就是没搞清楚GGNMOS到底是怎么工作的。这一章咱们就把它掰开揉碎了讲。
3.1 GGNMOS的结构与工作机理
GGNMOS,全称Grounded-Gate NMOS,栅极接地、源极接地的NMOS管。你想想看,正常工作时它就是个关断的MOS管。但ESD事件来了,情况就完全不同了。
它的寄生结构是个NPN双极型晶体管:
- 集电极:漏极(Drain)
- 发射极:源极(Source)
- 基极:P型衬底(Substrate)
漏极和衬底之间的PN结在ESD高压下会发生雪崩击穿,产生大量电子空穴对。空穴流进衬底,在衬底电阻上形成压降。当这个压降超过约0.7V时,寄生NPN管就导通了,这就是所谓的“回滞”效应(Snapback)。
3.2 DC特性建模:触发电压与维持电压
GGNMOS的DC特性,关键就三个参数:触发电压(Vt1)、维持电压(Vh)、以及二次击穿电流(It2)。
| 参数 | 符号 | 物理含义 | SPICE建模要点 |
|---|---|---|---|
| 触发电压 | Vt1 | 寄生BJT导通时的漏极电压 | 由雪崩击穿模型决定 |
| 维持电压 | Vh | 回滞后的最低电压点 | 由衬底电阻和电流增益决定 |
| 二次击穿电流 | It2 | 器件热失效前的最大电流 | 需要热模型配合 |
建模时,我习惯用一个子电路(Subcircuit)把GGNMOS包裹起来。核心是寄生BJT(用Q1表示)加上可调衬底电阻(Rsub):
** GGNMOS Snapback 子电路模型
.subckt GGNMOS_SNAPBACK D G S B
.param VTO=0.8 BETA=100 RSUB=1000
** 寄生NPN: 集电极=D, 发射极=S, 基极=B
Q1 D B S NPN_MOD
** 衬底电阻: 连接基极B到地
Rsub B 0 {RSUB}
** 雪崩电流源: 触发Snapback
Gav D B CUR='(V(D)-V(B))/Rbreak'
** 栅极偏置: 接地
Rgate G 0 1e12
** 主MOS (可选, 用于保持基本I-V)
M1 D G S B NMOS W=50u L=0.18u
.model NPN_MOD NPN (BF={BETA} VAF=50)
.model NMOS NMOS (VTO={VTO} KP=200u)
.ends GGNMOS_SNAPBACK
3.3 触发电压Vt1的SPICE实现
触发电压的核心是雪崩击穿。在SPICE中,可以用一个压控电流源来模拟雪崩电流。公式是这样的:
** 雪崩击穿电流模型
Gav D B CUR='Iav * (exp((V(D)-V(B))/Vav) - 1)'
* Iav: 雪崩饱和电流, 典型值1e-12
* Vav: 雪崩电压参数, 控制触发点
这个模型的物理直觉是:当V(D)-V(B)超过某个阈值,电流指数级增长,等效于PN结击穿。我调参的常规做法是先固定Vav=5V左右,再调Iav让Vt1落在目标值(比如8-10V)。
但是这里有个坑——实际GGNMOS的Vt1还受栅氧厚度、掺杂浓度影响。直接套这个公式可能不准。我的建议是先用TCAD或者实测数据拟合出Iav和Vav的值,再反哺到SPICE模型中。
3.4 维持电压Vh与回滞深度
触发之后,器件电压会“掉”到维持电压Vh。这个掉多少,取决于寄生BJT的电流增益beta和衬底电阻Rsub。
简化关系式:
Vh ≈ Vt1 / (1 + β)
换句话说,β越大,Vh越低。我在一个65nm的项目中遇到过Vh低到只有1.5V的情况——芯片的电源域都维持不住,每次ESD事件后都会闩锁。后来把β从150降到50,Vh提升到3V左右,问题才解决。
在SPICE中调整β的方式:
** 低beta模型: BF=50
Q1 D B S NPN_MOD_LOWBETA
.model NPN_MOD_LOWBETA NPN (BF=50)
** 高beta模型: BF=150
Q1 D B S NPN_MOD_HIGHBETA
.model NPN_MOD_HIGHBETA NPN (BF=150)
实际调优时,我会结合TLP测试数据来拟合。TLP曲线上的“回滞拐点”就是Vt1,而回升之前的那个电压平台就是Vh。把这两个数值对上去,β和Rsub基本上就定了。
3.5 二次击穿电流It2与热模型
It2是GGNMOS能承受的最大电流,超过这个值器件就热烧毁了。纯电学模型没法准确预测It2,必须引入热模型。
一个实用的方法是用RC热网络模拟结温的上升:
** 简单热模型: 结温上升
Cth Tj 0 1e-9 * 热容
Rth Tj 0 1e3 * 热阻
Gpd Tj 0 CUR='V(D,S)*I(D)' * 功耗注入
** 温度相关的击穿电流
.model Tlimit TEMP
+ IT2_TEMP=1e-3 * 常温下It2
+ TEMP_COEF=2e-3 * 温度系数
综合来说,一个完整的GGNMOS模型应该包含:
- 雪崩击穿电流源(决定Vt1)
- 寄生NPN(决定Vh和回滞形状)
- 可调衬底电阻(影响触发灵敏度)
- RC热网络(决定It2)
下面这张图概括了咱们的建模流程:
3.6 模型验证:TLP仿真对标实测
模型建完了,怎么知道它准不准?最直接的办法就是跑TLP仿真,和实测曲线对比。
TLP(Transmission Line Pulse)是ESD测试的标准方法,用宽度100ns左右的方波脉冲扫不同幅值,得到I-V曲线。SPICE中模拟TLP的思路是:
- 用分段线性电压源(PWL)生成不同幅值的方波
- 在每个幅值下,采样100ns末端的电压和电流
- 把这些点连起来,就是仿真TLP曲线
** TLP仿真激励示例
Vtpl D 0 PWL(0 0 1n 0 2n 8V 102n 8V 103n 0)
* 第一个脉冲: 幅值8V, 宽度100ns
* 后续脉冲: 幅值递增, 直到触发Snapback
把仿真得到的Vt1、Vh和It2与实测值放在一起对比:
| 参数 | 实测值 | 仿真值(初版) | 仿真值(调优后) |
|---|---|---|---|
| Vt1 (V) | 8.5 | 9.2 | 8.6 |
| Vh (V) | 3.2 | 2.8 | 3.1 |
| It2 (A) | 1.5 | 2.0 | 1.6 |
你看,初版模型偏差不小。触发电压偏高,维持电压偏低——这说明雪崩击穿模型和BJT增益都没调准。经过几轮迭代,把Iav、Vav和β都微调后,三个关键参数都和实测对上了。这个版本才可以拿去跑完整的ESD仿真。