3. 元件模型语法:电阻、电容、电感、独立源、受控源的标准声明格式

在 SPICE 网表中,无源元件(R、C、L)与有源源(独立源、受控源)的声明格式是语法调试的基础。格式错误是新手最常见的报错来源,包括列数不对、单位缺失、极性反接等。本节逐一拆解标准声明格式,并给出调试对照表。

核心原则:每个元件行必须严格遵循 <元件名> <正节点> <负节点> <模型/值> 的四段式结构,节点编号必须存在于网表顶层 .SUBCKT 或全局节点中。

3.1 电阻(R)声明格式

电阻是最简单的无源元件,其标准格式为:

R<名称> <正节点> <负节点> <阻值> [模型名] [L=] [W=]

其中 R 是前缀,必须大写;阻值支持科学记数法(如 1.2k、4.7e3)。

参数 必填 说明 示例
名称 是 以 R 开头,后跟字母/数字,如 R1、Rload Rload
正节点 是 电流流入端,整数或符号名 VCC
负节点 是 电流流出端 GND
阻值 是 单位 Ω,可省略单位后缀 10k
模型名 否 引用 .MODEL 定义的工艺模型 RES_MOD
L / W 否 几何尺寸,用于集成电阻 L=1u W=0.5u
调试技巧:阻值不能为 0 或负值;如果使用模型,模型名必须在网表内通过 .MODEL RES_MOD R ... 提前定义。
电阻声明结构图 Rload VCC GND 10k 四段式:元件名 + 正节点 + 负节点 + 值

3.2 电容(C)与电感(L)声明格式

电容和电感的声明格式与电阻高度相似,但增加了初始条件(IC)选项,用于瞬态分析的初始状态设定。

C<名称> <正节点> <负节点> <容值> [模型名] [IC=]
L<名称> <正节点> <负节点> <感值> [模型名] [IC=]
元件 值单位 IC 含义 典型错误
C 法拉(F),常用 pF、nF、uF 初始电压(V) IC 值超出电源轨
L 亨利(H),常用 nH、uH、mH 初始电流(A) IC 与 DC 工作点冲突
常见语法错误:电容值写为 1e-12 而非 1p 不会报错,但可读性差;电感值写为 0.000001 而非 1u 容易导致小数点位数误判。建议始终使用 SPICE 单位后缀。
电容/电感声明对比 C1 VCC GND 10p L1 IN OUT 1uH IC=1.8V IC=0mA IC 仅在 .TRAN 分析中生效 .OP 分析忽略 IC

3.3 独立源:V 与 I 的声明格式

独立电压源(V)和独立电流源(I)是网表中的激励来源。标准格式包含直流值、交流小信号参数和瞬态波形定义。

V<名称> <正节点> <负节点> [[DC] <值>] [AC <幅值> [相位]] [瞬态波形]
I<名称> <正节点> <负节点> [[DC] <值>] [AC <幅值> [相位]] [瞬态波形]
字段 说明 示例
DC 值 直流工作点电压/电流 DC 5V
AC 幅值 交流小信号幅度(AC 分析用) AC 1V
AC 相位 可选,默认 0° AC 1V 90
瞬态波形 PULSE/SIN/PWL/EXP 等 PULSE(0 5 0 1n 1n 50n 100n)
调试技巧:如果网表同时包含 DC 和 AC 字段,DC 值用于 .OP 和 .TRAN,AC 值仅用于 .AC 分析。忘记写 AC 幅值会导致 AC 仿真输出为零。
独立源声明字段分解 V1 VCC GND DC 3.3 AC 1 PULSE(...) DC 值不可省略:即使只做 AC 分析,也必须给 DC 值(可设为 0)

3.4 受控源:四种类型声明格式

SPICE 支持四种线性受控源,用于行为级建模和反馈网络。每种受控源的控制变量不同,声明格式也各有差异。

类型 前缀 控制变量 标准格式
电压控制电压源 E 电压差 E<名> <正> <负> <控制正> <控制负> <增益>
电压控制电流源 G 电压差 G<名> <正> <负> <控制正> <控制负> <跨导>
电流控制电压源 H 支路电流 H<名> <正> <负> <控制电压源名> <增益>
电流控制电流源 F 支路电流 F<名> <正> <负> <控制电压源名> <增益>
* 示例:电压控制电压源,增益=2
E_AMP OUT 0 IN 0 2.0

* 示例:电流控制电流源,增益=5,通过 Vsen 感知电流
F_SENSE OUT 0 VSEN 5.0
VSEN IN 0 DC 0V
关键调试点:H 和 F 型受控源的控制变量必须是 独立电压源 的电流,不能直接引用节点。如果控制支路没有放置零值电压源(VSEN IN 0 DC 0),仿真器会报“未知控制源”错误。
受控源类型与连接关系 E (VCVS) G (VCCS) H (CCVS) 控制:节点电压 控制:节点电压 控制:支路电流 需 4 个节点参数 需 4 个节点参数 需零值电压源感知

3.5 语法调试速查表

以下表格汇总了元件声明中最常见的语法错误及其根因,适合在调试时快速对照。

错误现象 可能原因 修复方法
“Unknown parameter” 报错 元件名拼写错误,如 res1 而非 R1 确保前缀大写且正确:R/C/L/V/I/E/G/H/F
“Node not found” 报错 节点名未在 .SUBCKT 端口或全局定义 检查节点名大小写,SPICE 默认区分大小写
“Value out of range” 报错 电阻为 0、电容为负值 修正为正值;最小电阻建议 > 1mΩ
“Missing control source” 报错 H/F 型受控源未定义感知电压源 添加 VSEN <节点> 0 DC 0
AC 仿真输出全零 独立源缺少 AC 幅值字段 在 DC 值后添加 AC 1
调试工作流建议:当网表报错时,优先检查第一行元件声明——通常第一个错误会阻断后续所有解析。使用 .PRINT 或 .PROBE 输出节点电压,验证独立源是否按预期输出 DC/AC 值。