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
2.6 语句组织与执行顺序
SPICE网表的执行遵循严格的顺序:
- 标题行:网表的第一行被忽略,通常用作注释。
- 元件与模型定义:SPICE读取所有元件和模型语句,构建电路拓扑。
- 分析语句执行:按网表中出现的顺序执行
.DC、.TRAN、.AC等分析。 - 输出控制:在每个分析点,根据
.PRINT、.PLOT、.PROBE输出数据。 - 结束:遇到
.END语句仿真终止。