2. SPICE网表语法基础:元件语句、模型语句、分析语句、控制语句的基本格式

SPICE(Simulation Program with Integrated Circuit Emphasis)的核心输入是网表(Netlist)。网表是一种文本描述,它告诉仿真器电路中有哪些元件、它们如何连接、使用什么模型以及需要执行哪些分析。掌握网表语法是进行模型参数优化的第一步。

一个完整的SPICE网表由四种基本语句构成:元件语句、模型语句、分析语句和控制语句。此外,注释语句和子电路语句也是常用的辅助结构。

💡 核心原则: SPICE语法是自由格式的,不区分大小写(节点名除外,部分版本区分)。每行以语句关键字开头,以换行符结束。若一行写不下,可在行末加 + 续行。

2.1 元件语句(Element Statements)

元件语句用于描述电路中的无源元件(电阻、电容、电感)和有源器件(二极管、MOSFET、BJT)。其基本格式为:

元件名 节点1 节点2 [节点3 ...] 模型名 [参数值]
  • 元件名:必须以特定的字母开头,例如 R 表示电阻,C 表示电容,D 表示二极管,M 表示MOSFET。
  • 节点:电路连接点,通常用数字(0表示地)或字母数字字符串表示。
  • 模型名:引用后续定义的 .MODEL 语句。
  • 参数值:可以是数值(如 1k)、表达式或模型参数覆盖。

常见元件语句示例

元件类型 语法格式 示例 说明
电阻 Rxxx N+ N- 值 R1 1 0 1k 1kΩ电阻连接节点1和地
电容 Cxxx N+ N- 值 [IC=初始电压] C1 2 0 10p IC=0V 10pF电容,初始电压0V
二极管 Dxxx N+ N- 模型名 [面积因子] D1 3 0 DMOD 1.0 二极管,阳极接节点3,阴极接地
NMOS Mxxx D G S B 模型名 [W= L=] M1 4 5 0 0 NMOS W=10u L=1u NMOS管,宽长比10/1
独立电压源 Vxxx N+ N- [DC] 值 [AC 幅值] VDD 1 0 DC 5V 5V直流电源
📌 参数单位: SPICE使用标准工程单位后缀:f(飞,10⁻¹⁵)、p(皮,10⁻¹²)、n(纳,10⁻⁹)、u(微,10⁻⁶)、m(毫,10⁻³)、k(千,10³)、MEG(兆,10⁶)、G(吉,10⁹)。

2.2 模型语句(Model Statements)

模型语句用于定义半导体器件的物理参数集。它通过 .MODEL 关键字将一组参数与一个模型名关联起来。基本格式为:

.MODEL 模型名 类型名 (参数名1=值1 参数名2=值2 ...)
  • 模型名:由用户定义,供元件语句引用。
  • 类型名:SPICE内置的器件类型关键字,如 D(二极管)、NMOS、PMOS、NPN、PNP 等。
  • 参数列表:括号内以键值对形式给出模型参数。

PN结二极管模型示例

.MODEL DMOD D (
+ IS   = 1e-14      ; 饱和电流
+ N    = 1.0        ; 发射系数
+ BV   = 100        ; 击穿电压
+ CJO  = 0.5p       ; 零偏结电容
+ VJ   = 0.7        ; 内建电势
+ M    = 0.5        ; 梯度因子
+ TT   = 10n        ; 渡越时间
)
⚠️ 模型参数覆盖: 在元件语句中,可以直接在模型名后附加参数来覆盖 .MODEL 中的默认值。例如:D1 1 0 DMOD CJO=1pF 将覆盖模型中的零偏电容值。

2.3 分析语句(Analysis Statements)

分析语句告诉SPICE仿真器执行何种类型的仿真。常见的分析类型包括直流分析、瞬态分析和交流小信号分析。

分析类型 关键字 基本格式 用途
直流扫描 .DC .DC 源名 起始 终止 步长 扫描直流电压/电流源,观察传输特性
瞬态分析 .TRAN .TRAN 步长 终止时间 [起始时间] 时域仿真,观察波形随时间变化
交流分析 .AC .AC DEC/OCT/LIN 点数 起始频率 终止频率 小信号频域分析,观察频率响应
工作点分析 .OP .OP 计算直流工作点(默认自动执行)

分析语句示例

.DC VIN 0 5 0.1        ; 扫描VIN从0V到5V,步长0.1V
.TRAN 1n 100n          ; 瞬态仿真,步长1ns,总时长100ns
.AC DEC 10 1Hz 1MHz    ; 交流分析,每十倍频10个点,1Hz~1MHz

2.4 控制语句(Control Statements)

控制语句用于设置仿真环境、输出结果和进行数学运算。它们通常以 . 开头。

  • .OPTIONS:设置仿真选项,如精度、迭代限制等。
  • .PRINT:在文本输出文件中打印指定节点的电压或电流。
  • .PLOT:在输出文件中生成低分辨率的ASCII波形图。
  • .PROBE:将数据保存到二进制文件(如用于波形查看器)。
  • .IC:设置初始条件。
  • .END:标志网表结束。

控制语句示例

.OPTIONS RELTOL=1e-4 ABSTOL=1e-12
.PRINT DC V(1) I(VDD)
.PROBE
.END

2.5 完整网表示例与SVG结构图

下面是一个完整的PN结二极管反向恢复特性仿真网表,以及对应的电路结构SVG图。

* PN结二极管反向恢复仿真
VIN 1 0 PULSE(-5V 5V 0 1n 1n 50n 100n)
D1 1 0 DMOD
.MODEL DMOD D (IS=1e-14 CJO=0.5p TT=10n)
.TRAN 0.1n 200n
.PROBE
.END
PN结二极管仿真网表结构图 VIN 脉冲源 D1 二极管 .MODEL DMOD .TRAN 分析 .PROBE 输出 GND (节点0) 元件语句定义器件,模型语句定义参数,分析语句控制仿真,控制语句管理输出

2.6 语句组织与执行顺序

SPICE网表的执行遵循严格的顺序:

  1. 标题行:网表的第一行被忽略,通常用作注释。
  2. 元件与模型定义:SPICE读取所有元件和模型语句,构建电路拓扑。
  3. 分析语句执行:按网表中出现的顺序执行 .DC、.TRAN、.AC 等分析。
  4. 输出控制:在每个分析点,根据 .PRINT、.PLOT、.PROBE 输出数据。
  5. 结束:遇到 .END 语句仿真终止。