4. SPICE 仿真基础介绍

好,咱们进入正题。说实话,ESD 防护回路的设计,光靠手算和直觉,风险太大了。我早年吃过不少亏,看着电路图觉得没问题,结果流片回来一打 ESD,立马现原形。

SPICE 仿真,说白了就是给芯片设计装了一台「虚拟测试机」。你不用真的流片,也不用扛着静电枪去实验室,就能把防护回路的行为摸个七七八八。今天这节,我就带你捋一遍 SPICE 仿真的底子。

4.1 什么是 SPICE 仿真

SPICE 的全称是 Simulation Program with Integrated Circuit Emphasis。这个名字挺老派,但内核一直没变。它用数学方程描述每个元件的电气行为,然后解出一大堆节点电压和支路电流。

你想想看,一个 ESD 事件持续几十纳秒,电流能冲到几安培甚至几十安培,靠示波器抓都费劲。SPICE 却能把这个过程「慢放」给你看。我个人的习惯是:所有新设计的 ESD 防护结构,必须先在 SPICE 里跑一遍传输线脉冲(TLP)仿真,再决定要不要流片。

核心要点: SPICE 帮你低成本、高效率地验证 ESD 防护回路的导通特性、维持电压和泄放能力。

4.2 网表——仿真的「电路图」

SPICE 不认识原理图,它只认网表(Netlist)。网表就是一串文本,描述了元件类型、连到哪个节点、参数是多少。

一个最简单的二极管反接防护网表长这样:

* ESD 二极管防护回路
V1 1 0 DC 5V
D1 1 2 DIO_ESD
R1 2 0 1k
.MODEL DIO_ESD D (IS=1e-15 BV=10 CJO=1p)
.DC V1 0 10 0.1
.PROBE
.END

我来拆解一下:

  • V1 1 0 DC 5V – 一个直流电压源,正极在节点 1,负极在节点 0(地)。
  • D1 1 2 DIO_ESD – 二极管,正极接节点 1,负极接节点 2,模型名叫 DIO_ESD。
  • .MODEL DIO_ESD D (...) – 定义这个二极管的参数,饱和电流 IS、击穿电压 BV、结电容 CJO。
  • .DC V1 0 10 0.1 – 扫描 V1 从 0V 到 10V,步长 0.1V,看电流变化。

嗯,这里要注意:* 开头的是注释,不参与仿真。我见过很多新人忘了关注释符号,结果仿真报错半天找不出原因。

4.3 基本元件模型

ESD 仿真用的元件模型,和普通数字电路仿真不太一样。我们更关注大电流、高电压下的行为。

元件 SPICE 关键字 ESD 仿真关注点
电阻 R 大电流下的线性度、自热效应
电容 C 耦合路径、频率响应
二极管 D 反向击穿、正向导通电阻、寄生电容
BJT Q 回滞特性(Snapback)、维持电压
MOSFET M 寄生 BJT 触发、沟道泄放能力

举个例子。我早期设计一个 GGPMOS(栅接地 PMOS)防护结构,用了普通的 MOS 模型,仿真结果一直偏乐观。后来发现,标准 MOS 模型在大电流下漏电流拟合不准确,必须用专门的 ESD 模型或者加外部的子电路来修正。你想想看,漏电流差一个数量级,防护效果可能就完全失效了。

个人技巧: 对于二极管和 BJT,我习惯在 .MODEL 语句里显式指定击穿电压(BV),不要让 SPICE 用默认值。默认 BV 往往是极高甚至无限大,完全体现不出 ESD 场景下的雪崩击穿。

4.4 分析类型

SPICE 提供了几种分析模式,ESD 仿真最常用的是下面三种:

  1. 直流扫描分析(.DC) – 改变某个源电压,看电路静态工作点。我给 TLP 仿真做校准的时候,会先用 .DC 扫一遍二极管的 I-V 曲线,确认击穿电压没写错。
  2. 瞬态分析(.TRAN) – 模拟随时间变化的激励。ESD 脉冲就是个典型的瞬态信号。我会用双指数源或 PWL 源来模拟 HBM(人体模型)波形。
  3. 交流小信号分析(.AC) – 看频率响应,主要用来评估 ESD 寄生电容对高速信号的影响。比如,USB 3.0 线路上加的 ESD 二极管,寄生电容不能超过 0.5pF,不然信号眼图就关掉了。

一个 ESD 瞬态仿真的小例子:

* HBM 脉冲打向 ESD 二极管
Vpulse 1 0 PULSE(0 8 0 2n 2n 100n 1u)
D1 1 0 D_ESD_CLAMP
.MODEL D_ESD_CLAMP D (IS=1e-14 BV=5 CJO=0.3p)
.TRAN 0.1n 200n
.PROBE
.END

这个脉冲在 0 时刻从 0V 跳到 8V,上升时间 2ns,维持 100ns,然后降回来。你看,仿真时间才 200ns,算得飞快。

避坑指南: 我曾经设过太大的仿真步长(比如 10ns),结果 ESD 脉冲的上升沿只采到一两个点,峰值电流完全没体现出来。你现在知道了——瞬态分析的步长至少要小于脉冲上升时间的 1/10。

4.5 仿真流程

我自己画了个知识图,帮你把 SPICE 仿真的核心逻辑串起来。你看下面这张 SVG 结构图:

SPICE 仿真核心流程 ① 建立网表 ② 定义模型参数 ③ 选择分析类型 ④ 设置激励源 ⑤ 运行仿真核心 ⑥ 提取 I-V / 波形 ⑦ 评估 & 迭代 反馈迭代:结果不对 → 检查网表 / 模型参数 / 激励设置,重新仿真

这个流程你可能觉得眼熟,但我要强调两点:

  • 反馈箭头 不是摆设。我几乎每次仿真都会至少迭代三次。第一次跑通,第二次调参数拟合实测,第三次做工艺角仿真看鲁棒性。
  • 模型参数 那个红框是最大的陷阱。你用厂商 PDK 里的模型,那是给数字电路用的,大电流下偏差很大。我曾经遇到一个 ESD 二极管,用 PDK 标准模型仿真导通电阻只有 0.3Ω,实测 1.2Ω。从那以后,我坚持先用测试结构校准模型,再用到全芯片仿真里。

4.6 本节小结

SPICE 仿真不是什么魔法,它就是你桌面上一个可以随时调用的虚拟测试台。网表、模型、分析类型、激励源,这四样东西搭好了,你就能在电脑上把 ESD 防护回路的特性看得清清楚楚。

下一个小节,我会手把手带你搭一个完整的 ESD 防护回路仿真环境,从网表到波形输出一条龙。你准备好了吗?