SOA SPICE Wrapper — 在仿真中捕获 hot-cell 热不稳定
本质与导读
本质 L3 SPICE 模型只输出 die 平均 ,但 power MOSFET 在 linear mode 下因 cell 间 误差触发 Spirito 正反馈,少数 hot cell 电流集中先烧——平均温度仍没超 时器件已损坏。Ejury 的 wrapper subcircuit 把数据手册 SOA 参数编进 B-source、外挂任何 L3 模型输出 hottest cell 温度 ,让"穿越 "类应用的 SOA 限制在仿真里真正可见。
核心要点
- L3 模型只算 平均,不识别 Spirito 不稳定区域
- Spirito 物理本质:cell 工艺误差 + linear mode 正反馈 → hot cell runaway
- wrapper 是 6-terminal:D / DrainFET / S / Tjhot / Tj / Tc
- 5 个 SOA 参数提取自数据手册: / / / /
- thermal limit 斜率
- hottest cell 温度:
- Test1 vs Test2:稳态超 SOA → ;电流降到 0 穿越 → (Spirito)
主线坐标:第 1 站 · 电池 / 电芯 · ↑ 全景主线
1. 为什么需要 wrapper — L3 模型的盲区
L3 MOSFET 模型已经是 SPICE 仿真器中最完整的功率器件模型 —— 它能算 、、,还能输出 。但它有一个根本假设:die 上的温度是均匀的。
1.1 Spirito 物理本质
现代 power MOSFET die 有 级 cell 数(BSC010NE2LS 有 cells)。每个 cell 是一个小 MOSFET,工艺涨落使不同 cell 的 偏差 ±5-10%。
在switch mode( 或 ):
- conduction 时 极小,,cell 间几乎不发热
- 阻断时 ,无电流 → 无热
- ⇒ L3 平均 模型 OK
在linear mode( 和 同时大, 显著):
- 低的 cell → 流过的电流多 → 大 → 升温快
- 升温后该 cell 进一步下降 → 抢更多电流 → 进一步升温
- 正反馈 → 局部 hot cell runaway → die 部分烧穿
这就是 Spirito thermal instability,SOA 图上"thermal stability limit"那条比 更陡的限制线就是它的工程表达。详见 topic-mosfet-soa 第 §3 节。
1.2 L3 模型的具体缺陷
L3 模型把整个 die 当作一个热源,接在标准 Cauer ladder 上算 :
- ✓ 算电气性能(、、switching 时序)
- ✓ 算平均 (用 datasheet Cauer 网络)
- ✗ 不算 hottest cell 温度(假设 die 均匀)
- ✗ 不识别 Spirito 不稳定区域( 但 SOA 外)
工程后果:仿真说 ,实际 hot cell 已经 烧毁。所有 linear mode 跨越 的设计必须有 wrapper 兜底。
2. SOA 几何参数提取
Wrapper 不修改 L3 模型本身,而是用 behavioral source 把 SOA 数据手册的几何信息编进 SPICE 等式。需要 5 个参数,全部能从数据手册 SOA 图读出。
2.1 5 个关键参数
以 Infineon BSC010NE2LS 为例(本 paper 实测器件):
由这些参数可算出:
- = 0.8 V(thermal limit 拐点电压)
- thermal limit 斜率
斜率 决定 thermal stability limit line 在 log-log SOA 图上的陡度。
2.2 hottest cell 温度公式
任意工作点 距 thermal limit 的"功率余量":
其中 是用斜率 从当前 沿 thermal limit line 反推到 的电压。
最热 cell 温度公式(paper 公式 8):
其中 是当前电气功率。
2.3 物理直觉
三种工况:
- (工作点低于 thermal limit):SOA 内安全,但 hot cell 仍可能比 高 1.5-3 倍
- (工作点恰在 thermal limit): 接近
- (工作点超 thermal limit):hot cell 失稳 → 不可控,die 损毁
thermal limit ≠ Pt…
thermal limit ≠ 工作点 不等于安全!只要 thermal limit @ 该 ,就会 hot cell runaway。这是 Spirito 效应的核心 —— L3 模型完全看不到,必须用 wrapper。
3. Wrapper Subcircuit 架构
Wrapper 是一个独立的 SPICE 子电路,把标准 L3 MOSFET 包裹起来,提供 6 端口接口。
3.1 端口定义
子电路声明指定 6 个外部 pin,以及 5 个 SOA 参数作为 .param 输入,工程师可按器件自由替换。
.SUBCKT SOA_JE_Wrapper Drain DrainFET Source Tjhot Tj Tc
+ Params: Icrit=120 Ptot=96 IcritDCBR=0.12 VBRDSS=25 Tjmax=150
6 端口:
- Drain:接 application circuit drain(原 L3 的 Drain 现在接 DrainFET)
- DrainFET:接 L3 模型的 Drain pin
- Source:与 L3 模型 Source 共享
- Tjhot:输出 hottest cell 温度(.probe 读)
- Tj:从 L3 模型 Tj pin 读入
- Tc:从 L3 模型 Tc pin 读入
3.2 关键 SPICE element
wrapper 内部由 7 个 behavioral source 组成,每个负责 SOA 计算链中的一步。
.param Vcrit={Ptot/Icrit}
.param m={LOG10(IcritDCBR/Icrit)/LOG10(VBRDSS/Vcrit)}
.FUNC y(x) {x*x*(3-2*x)} ; smooth Heaviside
E1 aux 0 ... ; disable in avalanche
Epel pel 0 VALUE={abs(I(VDC2)*(V(drainFET)-V(source)))}
Edtjhot dTjhot 0 VALUE={...} ; ΔT 计算核心
E7 pmin 0 VALUE={IcritDCBR*VBRDSS*(Tjmax-V(Tc))/(Tjmax-25)}
E5 aux5 0 VALUE={y(limit(V(pel)/V(pmin),0,1))}
ETjhot Tjhot 0 VALUE={V(Tc)+(V(Tj)-V(Tc))*(1+V(aux5)*V(dTjhot)/(1u+V(pel)))}
.ends
设计要点:
- Epel 算实时电气功率(用 100 nΩ 检流电阻 R1 测电流)
- Edtjhot 是 计算的核心(实现公式 5-7)
- smooth Heaviside 用于平滑 SOA 边界,避免仿真不收敛
- E7 pmin 当 升高时,允许的最小功率(线性化)
- ETjhot 最终输出公式(paper 公式 8)
3.3 接线规则
application 不直接接 MOSFET 的 Drain,而是接到 wrapper 的 Drain;wrapper 内部把它转发到 MOSFET 的 DrainFET。
* application
V_drain in 0 PULSE(0 12 ...)
* wrapper + MOSFET
X_wrap in DrainFET Source Tjhot Tj Tc SOA_JE_Wrapper
X_mos DrainFET Gate Source Tc Tj BSC010NE2LS
注意 application 的 drain 接到 wrapper 的 Drain,而不是直接接 MOSFET。wrapper 内部把 DrainFET 端口转回到 L3 模型的 Drain。
3.4 cell time constant
为了让 时间响应正确,wrapper 内部还要算单个 cell 的时间常数:
(BSC010NE2LS 例)。这是 die 上单个 cell 内部热扩散时间,远短于 die 整体 。
用 R4 (datasheet 取的 ) + 实现:
加在 wrapper 内部,作为 filter 消除数值噪声。
4. 仿真验证 — Test1 vs Test2
Paper 给出两个对比仿真,展示 wrapper 真正的价值。
4.1 Test 1:持续 140 A,1 ms
工况: A( A)持续 1 ms, V。
结果:
- 工作点超 SOA(超 thermal limit)
- 但电流均匀分布(所有 cell 都过载)
- 全程
意义:稳态超 SOA → L3 模型已经能识别,wrapper 与 L3 结果一致。
4.2 Test 2:140 A → 1 A,1 ms 线性下降(关键)
工况: 从 140 A 线性降到 1 A,历经 1 ms, 同时由 0 V 升到 1.2 V(linear mode 穿越)。
结果:
- 平均 随平均功率下降而下降
- 反而上升,最后超过 !
- 穿越 时,hot cell 抓住所有电流, 同时升高,功率集中在少数 cell
意义:这是 Spirito 失效模式 的 SPICE 复现。L3 模型告诉你" 还低,安全",但 wrapper 揭示 hot cell 已经在烧。只有 wrapper 能捕获这种失效。
4.3 工程意义
linear mode 应用(eFuse / Oring / SMPS 启动 / load switch)在电流上升/下降时必然穿越 SOA 边界。L3 仿真过得了的设计,实际产线测试可能失效 —— 这就是为什么很多"看起来设计正确"的电路在量产时烧 MOSFET。
设计规则:所有 linear mode 跨 切换的电路,必须用 wrapper 仿真,直接 .probe V(Tjhot) 验证不超 。
5. 工程边界与限制
paper §V 明确给出 wrapper 模型的边界条件,工程中必须遵守。
| 限制 | 说明 |
|---|---|
| 行为模型,非器件物理 | 不是 TCAD level,简化了 die 内部细节 |
| 假设 cell 热阻均匀分布 | 实际 die 边缘 cell 热阻 < 中心 |
| Spirito 区域过保守 | 实际 hot cell 周围 cells 帮忙散热,模型不算 |
| avalanche 区不准 | E1 element 在 时切到平滑过渡,但不是物理 avalanche |
| 短脉冲过保守 | 模型按稳态 thermal limit 推 hottest T,短脉冲实际 hot cell 来不及升温 |
过保守 vs 漏检 wrapper…
过保守 vs 漏检 wrapper 倾向过保守(报警太多),这在安全设计中可接受 —— 总比 L3 模型漏检 hot cell 失效好。如果设计在 wrapper 仿真中显示 SOA 违例,但工程师不能放弃这个设计,需要做 double pulse test 实测验证模型与实际偏差。详见 topic-mosfet-double-pulse-test。
6. 工程 cheat-sheet
下表组织 wrapper 使用的关键决策。
| 阶段 | 决策 | 推荐做法 |
|---|---|---|
| 选型 | 是否需要 wrapper? | linear mode 跨 必须 |
| 选型 | 应用类型 | eFuse / Oring / load switch / SMPS soft-start 必须 |
| 参数 | 提取 5 参数 | 数据手册 SOA 图 + table 5 项 |
| 参数 | 斜率 | |
| 仿真 | 接线 | application drain → wrapper Drain → MOSFET DrainFET |
| 仿真 | .probe | V(Tjhot),看是否超 |
| 测试 | 必跑 Test2 | 电流跨 的瞬态(linear mode 触发) |
| 边界 | 短脉冲 | wrapper 过保守,实测会更宽松 |
| 边界 | avalanche | 切到 L3 + Zth,wrapper 不在那里准 |
7. 常见误区
工程实践中遇到的 SOA wrapper 陷阱,主要来自"对 L3 模型的过度信任"。
- ❌ "L3 模型 已经够" — 错,linear mode 必须看
- ❌ " 就 SOA 内" — 错,thermal stability limit 比 更严
- ❌ "wrapper 仿真过了就实际安全" — wrapper 过保守 + 不准 avalanche,实测必须做
- ❌ "switch mode 也用 wrapper" — 不必要,switch mode 时 几乎 0,wrapper 输出 = L3
- ❌ "wrapper 改变 MOSFET 电学行为" — 不改变,wrapper 只读 + 输出
- ❌ "5 个参数随便取" — 必须用 datasheet 同温度同条件值, 25°C 才线性
8. 自检题
前 3 题考 hot-cell 物理与 L3 局限,4-6 考参数提取与公式,7-10 考工程应用与边界。
- 什么是 Spirito thermal instability?为什么 switch mode 不出问题?
- L3 模型为什么算不出 hottest cell 温度?
- SOA "thermal stability limit" 比 更严还是更宽?
- 写出 thermal limit 斜率 公式
- 与 、、、 的关系?
- wrapper 6 端口分别是?哪个用 .probe 读结果?
- Test1(持续 140A)和 Test2(电流降低)的物理差异?
- 哪些应用必须用 wrapper?哪些不需要?
- wrapper 的 5 个限制中,哪个最严重?
- cell time constant 典型多少?为什么和 die 不同?
Cross-references
- ← 索引
- topic-mosfet-soa — SOA 物理 / Spirito 数学(本页 SPICE 实现的理论基础)
- topic-mosfet-soa-engineering — SOA 工程估算(图解 + α_lim + RTH 退化)
- topic-electro-thermal-simulation — 单通道 Foster/Cauer + SPICE 基础
- topic-mosfet-double-pulse-test — 实测验证 wrapper 仿真结果
- topic-zth-transient-thermal — 数据手册解读
- topic-mosfet-loss-decomposition — 损耗五分量(wrapper 的输入)
- topic-spice-mosfet-models — L0/L1/L2/L3 模型层级
- topic-mosfet-datasheet-reading — 5 个 SOA 参数所在位置