3. SPICE中的基本元件:电阻、电容、电感、独立源、受控源的网表描述

SPICE网表是电路仿真中最底层的描述语言,它将电路拓扑与元件参数以文本形式精确表达。理解基本元件的网表语法,是后续进行模型参数提取与优化的重要基础。本节将系统介绍电阻、电容、电感、独立源和受控源的标准网表描述格式,并通过实例与图示帮助建立直观认识。

3.1 无源元件:电阻、电容、电感

无源元件是电路中最基础的构成单元。在SPICE网表中,每个元件行通常遵循以下通用格式:

<元件名> <正节点> <负节点> <模型名或参数值>

元件名必须以特定的字母开头,用于区分元件类型:R 代表电阻,C 代表电容,L 代表电感。

3.1.1 电阻(Resistor)

电阻的网表描述最为简单,直接指定阻值即可。基本格式为:

R<名称> <正节点> <负节点> <阻值>

示例:

R1 1 0 1k
R_load Vout 0 10k
R_feedback 2 1 100k

其中,1k 表示1000欧姆,10k 表示10000欧姆。SPICE支持科学计数法与工程后缀(如k、m、u、n、p)。

工程后缀速查: T=10¹², G=10⁹, MEG=10⁶, k=10³, m=10⁻³, u=10⁻⁶, n=10⁻⁹, p=10⁻¹², f=10⁻¹⁵。

3.1.2 电容(Capacitor)

电容的网表描述与电阻类似,但可以附加初始条件(IC,即Initial Condition),用于瞬态分析的初始电压设定。

C<名称> <正节点> <负节点> <容值> [IC=<初始电压>]

示例:

C1 1 0 10p
C_bypass Vdd 0 100n IC=0V
C_load Out GND 1p IC=1.5V

在PN结电容建模中,电容值通常不是常数,而是偏压的函数。此时需要使用模型语句(.MODEL)来定义非线性电容特性,这在后续章节会详细展开。

3.1.3 电感(Inductor)

电感的网表格式与电容对称,同样支持初始电流设定。

L<名称> <正节点> <负节点> <感值> [IC=<初始电流>]

示例:

L1 1 0 1u
L_choke Vin Vout 10m IC=0A
关键对比: 电阻、电容、电感在网表中的本质区别在于元件名的首字母(R/C/L)以及数值单位。电容和电感的IC选项只在瞬态分析(.TRAN)中生效,直流分析(.OP)中忽略。

3.2 独立源:电压源与电流源

独立源为电路提供激励信号。SPICE中独立源分为独立电压源(V)和独立电流源(I),支持直流、交流、瞬态等多种波形。

3.2.1 独立电压源(Independent Voltage Source)

V<名称> <正节点> <负节点> [[DC] <直流值>] [AC <幅值> [<相位>]] [<瞬态波形>]

常见形式:

类型 网表示例 说明
直流源 Vdd 1 0 DC 5V 节点1对地输出5V直流
交流源 Vin 1 0 AC 1V 0 交流幅值1V,相位0°,用于AC分析
脉冲源 Vpulse 1 0 PULSE(0 5 0 1n 1n 50n 100n) 0→5V脉冲,延迟0,上升/下降1ns,脉宽50ns,周期100ns
正弦源 Vsin 1 0 SIN(0 1 1k 0 0 0) 偏置0V,幅值1V,频率1kHz

3.2.2 独立电流源(Independent Current Source)

格式与电压源完全对称,仅将首字母V换为I:

I<名称> <正节点> <负节点> [[DC] <直流值>] [AC <幅值> [<相位>]] [<瞬态波形>]

示例:

I1 0 1 DC 1mA
I_sense 2 0 AC 1uA
注意电流方向: SPICE中电流的正方向定义为从正节点流入、负节点流出。对于电流源 I1 0 1 DC 1mA,电流从节点0流向节点1,即实际电流从节点1流出。

3.3 受控源:四种基本类型

受控源是模拟有源器件(如晶体管、运放)行为的关键元件。SPICE提供四种线性受控源,其输出与输入控制量成线性比例。

类型 首字母 控制量 输出量 增益参数
电压控制电压源 E 电压 电压 电压增益 (V/V)
电压控制电流源 G 电压 电流 跨导 (A/V)
电流控制电压源 H 电流 电压 互阻 (V/A)
电流控制电流源 F 电流 电流 电流增益 (A/A)

3.3.1 电压控制电压源(VCVS)—— E元件

E<名称> <输出正节点> <输出负节点> <控制正节点> <控制负节点> <增益>

示例: 理想电压放大器,增益为100倍

E_amp 3 0 1 2 100

表示节点3与0之间的电压 = 100 × (V(1) - V(2))。

3.3.2 电压控制电流源(VCCS)—— G元件

G<名称> <输出正节点> <输出负节点> <控制正节点> <控制负节点> <跨导>

示例: 跨导放大器,跨导为10mS

Gm1 4 0 1 2 10m

表示从节点4流向节点0的电流 = 0.01 × (V(1) - V(2))。

3.3.3 电流控制电压源(CCVS)—— H元件

电流控制源需要引用一个独立的电压源作为电流传感器:

H<名称> <输出正节点> <输出负节点> <传感电压源名> <互阻>

示例:

Vsen 5 0 DC 0V   ; 零值电压源,用于检测流过支路的电流
H_sense 6 0 Vsen 1k  ; 输出电压 = 1000 × I(Vsen)

3.3.4 电流控制电流源(CCCS)—— F元件

F<名称> <输出正节点> <输出负节点> <传感电压源名> <电流增益>

示例: 电流镜,增益为2倍

Vref 7 0 DC 0V
F_mirror 8 0 Vref 2

表示从节点8流向节点0的电流 = 2 × I(Vref)。

受控源在PN结建模中的应用: 在后续章节中,我们将使用G元件(VCCS)来构建非线性电容的等效电路模型,通过控制电压(PN结偏压)来产生与结电容成正比的位移电流。

3.4 网表结构综合示例

下面是一个完整的SPICE网表示例,包含上述所有基本元件类型:

Simple RC Circuit with Controlled Source

* 无源元件
R1 1 2 1k
C1 2 0 10p IC=0V

* 独立源
Vin 1 0 DC 5V AC 1V
Vdd 3 0 DC 3.3V

* 受控源:电压控制电压源,增益2倍
E_buf 4 0 2 0 2.0

* 受控源:电压控制电流源,跨导1mS
Gm_test 5 0 2 0 1m

* 分析指令
.OP
.AC DEC 10 1Hz 1MHz
.TRAN 1n 100n UIC
.END

3.5 元件网表描述关系图

下图总结了SPICE基本元件的网表描述体系,展示了元件类型、首字母、控制关系与典型应用场景:

SPICE基本元件网表描述体系 无源元件 R<名> N+ N- 阻值 C<名> N+ N- 容值 [IC] L<名> N+ N- 感值 [IC] 首字母:R / C / L 独立源 V<名> N+ N- [DC] [AC] [波形] I<名> N+ N- [DC] [AC] [波形] 首字母:V / I 波形:PULSE / SIN / EXP / SFFM 受控源 E: VCVS (电压→电压) G: VCCS (电压→电流) H: CCVS (电流→电压) F: CCCS (电流→电流) 首字母:E / G / H / F 网表描述核心规则 1. 元件名首字母决定类型(R/C/L/V/I/E/G/H/F) 2. 节点编号可以是数字或字符串,0/GND代表地 3. 受控源H/F必须引用零值电压源作为电流传感器 PN结电容建模中的元件应用 • 使用 C 元件定义PN结耗尽层电容,容值通过 .MODEL 定义为偏压函数 • 使用 G 元件(VCCS)构建非线性电容的等效电路模型 • 使用 V 元件提供偏置扫描电压,用于C-V特性仿真

3.6 常见错误与避坑指南

  • 节点悬空: 每个节点至少连接两个元件(除电源节点外),否则SPICE会报“floating node”错误。
  • 电流源串联回路: 独立电流源不能直接串联,会导致直流不收敛。需并联大电阻或使用其他拓扑。
  • 受控源增益极性: 控制节点顺序为“正节点 - 负节点”,颠倒会导致相位反转。
  • 单位后缀大小写: SPICE不区分大小写,但 M 代表毫(10⁻³),MEG 代表兆(10⁶),注意区分。
  • IC选项生效条件: 电容/电感的IC值必须在 .TRAN 语句中加上 UIC 关键字才会被使用。
调试技巧: 在网表开头添加 .OPTIONS NOPAGE 可以简化输出;使用 .PRINT 或 .PLOT 查看节点电压与支路电流,快速验证网表连接是否正确。