4. SPICE 仿真基础:网表结构、直流分析与瞬态分析
SPICE(Simulation Program with Integrated Circuit Emphasis)是集成电路设计中最核心的电路仿真工具。在进行蒙特卡洛分析之前,必须掌握 SPICE 的基本仿真流程。本章将围绕 网表结构、直流分析(.DC) 和 瞬态分析(.TRAN) 三个基础模块展开,为后续的工艺波动仿真打下坚实的语法与原理基础。
💡 学习目标: 能够独立编写 SPICE 网表,理解直流扫描与瞬态响应的区别,并能在仿真结果中提取关键电学参数。
4.1 SPICE 网表结构
SPICE 网表是描述电路拓扑、元件参数及分析指令的文本文件。一个标准的网表由以下五个部分组成:
- 标题行:网表的第一行,通常为注释或电路名称,SPICE 将其忽略。
- 元件语句:定义电阻、电容、MOSFET、独立源等元件及其连接关系。
- 模型语句(.MODEL):定义半导体器件的工艺参数(如阈值电压、迁移率等)。
- 分析指令(.DC / .TRAN / .AC):指定仿真类型及扫描范围。
- 结束语句(.END):网表的最后一行。
以下是一个简单的 NMOS 反相器网表示例:
Inverter DC Analysis
VDD 1 0 DC 5V
VIN 2 0 DC 0V
M1 3 2 0 0 NMOS W=10U L=1U
R1 3 1 10K
.MODEL NMOS NMOS (VTO=0.7 KP=120U)
.DC VIN 0 5 0.1
.PROBE
.END
📌 网表书写规范: SPICE 不区分大小写;节点编号必须为整数或名称(如 VDD、GND);每行末尾不能有空格;注释行以星号(*)开头。
4.1.1 元件与模型对应关系
在工艺波动仿真中,.MODEL 语句是蒙特卡洛分析的核心入口。下表列出了常见半导体器件与其对应的模型语句结构:
| 器件类型 | 元件前缀 | 模型关键字 | 典型工艺参数 |
|---|---|---|---|
| NMOS | M | NMOS / NMOS1 | VTO, KP, TOX, LAMBDA |
| PMOS | M | PMOS / PMOS1 | VTO, KP, TOX, LAMBDA |
| 双极型 NPN | Q | NPN | BF, IS, VA, CJE |
| 二极管 | D | D | IS, N, BV, CJO |
| 电阻 | R | R | R, TC1, TC2 |
4.2 直流分析(.DC)
直流分析用于计算电路在 静态工作点 下的电压、电流及功耗。通过扫描一个或多个独立源,可以观察电路传输特性(如反相器的电压传输曲线 VTC)。
.DC 语句语法:
.DC SRC_NAME START STOP STEP
- SRC_NAME:被扫描的独立电压源或电流源名称。
- START:扫描起始值。
- STOP:扫描终止值。
- STEP:扫描步长。
例如,对反相器进行直流传输特性扫描:
.DC VIN 0 5 0.05
该指令会从 0V 到 5V,以 0.05V 步长扫描输入电压 VIN,并输出各节点电压。
⚠️ 直流分析注意事项: 直流分析中电容视为开路,电感视为短路。如果电路包含非线性元件(如 MOSFET),SPICE 使用 Newton-Raphson 迭代法求解,若迭代不收敛,需检查初始条件或增加 .OPTIONS 中的迭代限制。
4.2.1 直流传输特性 SVG 示意图
下图展示了 NMOS 反相器在直流扫描下的输入-输出关系(VTC 曲线):
4.3 瞬态分析(.TRAN)
瞬态分析用于计算电路在 时域 中的响应,即电压和电流随时间的变化。它是评估数字电路开关速度、模拟电路建立时间以及蒙特卡洛分析中时域波动的标准方法。
.TRAN 语句语法:
.TRAN TSTEP TSTOP [TSTART [TMAX]] [UIC]
- TSTEP:打印或输出的时间步长(建议为仿真总时长的 1/100 ~ 1/1000)。
- TSTOP:仿真终止时间。
- TSTART(可选):输出起始时间,默认从 0 开始。
- TMAX(可选):SPICE 内部计算的最大步长。
- UIC(可选):使用初始条件(Use Initial Conditions),跳过直流工作点计算。
例如,对反相器输入一个脉冲信号,观察输出波形:
VIN 2 0 PULSE(0 5 0 1N 1N 50N 100N)
.TRAN 0.1N 200N
🔬 瞬态分析关键参数: 上升时间(tr)、下降时间(tf)、传播延迟(tp)、过冲(Overshoot)和建立时间(Settling Time)。这些参数在蒙特卡洛分析中会因工艺波动而产生统计分布。
4.3.1 瞬态响应 SVG 示意图
下图展示了反相器在脉冲输入下的输出响应,标注了关键的时域指标:
4.4 直流分析与瞬态分析对比
在蒙特卡洛分析中,选择 .DC 还是 .TRAN 取决于待评估的电路性能指标。下表总结了两种分析的核心差异:
| 对比维度 | 直流分析(.DC) | 瞬态分析(.TRAN) |
|---|---|---|
| 自变量 | 电压/电流源(静态扫描) | 时间(时域演化) |
| 输出结果 | 节点电压 vs 扫描变量 | 节点电压/电流 vs 时间 |
| 典型应用 | VTC 曲线、静态功耗、噪声容限 | 传播延迟、上升/下降时间、过冲 |
| 电容/电感处理 | 开路/短路 | 动态充放电 |
| 蒙特卡洛适用性 | 评估静态工艺波动(如 Vth 偏移) | 评估动态工艺波动(如开关速度分布) |
| 仿真速度 | 较快(无时间步进) | 较慢(需迭代时间步) |
📖 实践建议: 在首次搭建蒙特卡洛仿真环境时,建议先使用 .DC 分析验证网表正确性,再切换到 .TRAN 分析获取时域统计分布。这样可以快速定位网表错误,避免长时间瞬态仿真因语法问题而失败。
4.5 本章小结
- SPICE 网表由标题、元件、模型、分析和结束五部分构成,.MODEL 是蒙特卡洛参数注入的入口。
- .DC 分析 用于静态特性扫描,适合评估传输特性和静态功耗。
- .TRAN 分析 用于时域响应计算,适合评估开关速度和信号完整性。
- 两种分析在蒙特卡洛场景下各有侧重,直流分析速度快,瞬态分析信息更丰富。