4. SPICE 仿真基础:网表结构、直流分析与瞬态分析

SPICE(Simulation Program with Integrated Circuit Emphasis)是集成电路设计中最核心的电路仿真工具。在进行蒙特卡洛分析之前,必须掌握 SPICE 的基本仿真流程。本章将围绕 网表结构、直流分析(.DC) 和 瞬态分析(.TRAN) 三个基础模块展开,为后续的工艺波动仿真打下坚实的语法与原理基础。

💡 学习目标: 能够独立编写 SPICE 网表,理解直流扫描与瞬态响应的区别,并能在仿真结果中提取关键电学参数。

4.1 SPICE 网表结构

SPICE 网表是描述电路拓扑、元件参数及分析指令的文本文件。一个标准的网表由以下五个部分组成:

  1. 标题行:网表的第一行,通常为注释或电路名称,SPICE 将其忽略。
  2. 元件语句:定义电阻、电容、MOSFET、独立源等元件及其连接关系。
  3. 模型语句(.MODEL):定义半导体器件的工艺参数(如阈值电压、迁移率等)。
  4. 分析指令(.DC / .TRAN / .AC):指定仿真类型及扫描范围。
  5. 结束语句(.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 曲线):

NMOS 反相器直流传输特性(VTC) 输入电压 VIN (V) 输出电压 VOUT (V) 0 1.25 2.5 3.75 5 0 2.5 5 VOH ≈ 5V(逻辑1) VOL ≈ 0V(逻辑0) 转折区宽度 ≈ 0.8V

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 示意图

下图展示了反相器在脉冲输入下的输出响应,标注了关键的时域指标:

反相器瞬态响应波形 时间 (ns) 电压 (V) 0 50 100 150 200 0 2.5 5 VIN VOUT tp tr tf

4.4 直流分析与瞬态分析对比

在蒙特卡洛分析中,选择 .DC 还是 .TRAN 取决于待评估的电路性能指标。下表总结了两种分析的核心差异:

对比维度 直流分析(.DC) 瞬态分析(.TRAN)
自变量 电压/电流源(静态扫描) 时间(时域演化)
输出结果 节点电压 vs 扫描变量 节点电压/电流 vs 时间
典型应用 VTC 曲线、静态功耗、噪声容限 传播延迟、上升/下降时间、过冲
电容/电感处理 开路/短路 动态充放电
蒙特卡洛适用性 评估静态工艺波动(如 Vth 偏移) 评估动态工艺波动(如开关速度分布)
仿真速度 较快(无时间步进) 较慢(需迭代时间步)
📖 实践建议: 在首次搭建蒙特卡洛仿真环境时,建议先使用 .DC 分析验证网表正确性,再切换到 .TRAN 分析获取时域统计分布。这样可以快速定位网表错误,避免长时间瞬态仿真因语法问题而失败。

4.5 本章小结

  • SPICE 网表由标题、元件、模型、分析和结束五部分构成,.MODEL 是蒙特卡洛参数注入的入口。
  • .DC 分析 用于静态特性扫描,适合评估传输特性和静态功耗。
  • .TRAN 分析 用于时域响应计算,适合评估开关速度和信号完整性。
  • 两种分析在蒙特卡洛场景下各有侧重,直流分析速度快,瞬态分析信息更丰富。