4. 独立源与受控源:SPICE 世界的能量来源
各位同学,咱们今天聊聊 SPICE 里的“源”。说白了,没有源,电路就是一潭死水。无论是做电源管理还是信号链,你都得跟这些源打交道。我刚开始学 SPICE 那会儿,总觉得电压源电流源太简单,结果在脉冲源设置上栽过跟头——仿真出来的波形跟预期完全对不上,查了半天才发现是上升沿设得太陡,收敛出问题了。
这一章,咱们把独立源和受控源掰开揉碎讲清楚。你想想看,搞懂了这些,你就能在仿真里“无中生有”,造出任何你想要的激励信号。
4.1 独立源:最基础的激励
独立源就是那些不依赖电路中其他电压或电流的源。SPICE 里最常用的有四种:直流源、脉冲源、正弦源、分段线性源。
4.1.1 直流电压源与电流源
这是最基础的。语法很简单:
Vxxx N+ N- DC value
Ixxx N+ N- DC value
举个例子:
V1 1 0 DC 5V ; 5V 直流电压源,正极接节点1,负极接地
I1 2 0 DC 10mA ; 10mA 直流电流源,电流从节点2流向地
4.1.2 脉冲源 (PULSE)
脉冲源是做瞬态仿真的利器。语法如下:
Vxxx N+ N- PULSE(V1 V2 TD TR TF PW PER)
参数含义:
| 参数 | 含义 | 典型值 |
|---|---|---|
| V1 | 初始电压 | 0V |
| V2 | 脉冲电压 | 5V |
| TD | 延迟时间 | 0 |
| TR | 上升时间 | 1n |
| TF | 下降时间 | 1n |
| PW | 脉冲宽度 | 10n |
| PER | 周期 | 20n |
举个例子,一个 1MHz 的方波:
Vclk 1 0 PULSE(0 5 0 1n 1n 499n 1u)
4.1.3 正弦源 (SIN)
正弦源用于 AC 分析和瞬态分析。语法:
Vxxx N+ N- SIN(VO VA FREQ TD THETA PHASE)
参数说明:
- VO:直流偏置
- VA:振幅
- FREQ:频率
- TD:延迟
- THETA:阻尼因子(用于产生衰减正弦波)
- PHASE:初始相位(度)
来个 10MHz 的正弦波:
Vsin 1 0 SIN(0 1 10MEG 0 0 0)
4.1.4 分段线性源 (PWL)
这个我最喜欢用。你可以定义任意形状的波形。语法:
Vxxx N+ N- PWL(T1 V1 T2 V2 T3 V3 ...)
比如模拟一个上电序列:
Vpwr 1 0 PWL(0 0 1m 0 1.1m 3.3 2m 3.3 2.1m 1.8 3m 1.8)
这个波形在 0-1ms 为 0V,1ms-1.1ms 上升到 3.3V,保持到 2ms,然后 2.1ms 降到 1.8V。
4.2 四种线性受控源
受控源的输出由电路中其他地方的电压或电流决定。SPICE 支持四种线性受控源,我管它们叫“四大金刚”。
4.2.1 电压控制电压源 (VCVS)
语法:EXXX N+ N- NC+ NC- VALUE
输出 = VALUE × (V(NC+) - V(NC-))
举个例子,一个 10 倍放大器:
Eamp 3 0 1 0 10
节点 3 的电压 = 10 × V(1)。
4.2.2 电压控制电流源 (VCCS)
语法:GXXX N+ N- NC+ NC- VALUE
输出电流 = VALUE × (V(NC+) - V(NC-))
比如一个跨导为 1mS 的 VCCS:
Ggm 2 0 1 0 1m
节点 2 流向地的电流 = 1mS × V(1)。
4.2.3 电流控制电压源 (CCVS)
语法:HXXX N+ N- VNAM VALUE
注意,这里用的是流过某个电压源的电流。VNAM 是电压源的名字。
比如:
Vsense 1 0 DC 0 ; 0V 电压源,用于检测电流
Htrans 3 0 Vsense 100
节点 3 的电压 = 100 × I(Vsense)。
4.2.4 电流控制电流源 (CCCS)
语法:FXXX N+ N- VNAM VALUE
输出电流 = VALUE × I(VNAM)
比如一个电流镜:
Vsense 1 0 DC 0
Fmirror 4 0 Vsense 2
节点 4 流向地的电流 = 2 × I(Vsense)。
4.3 知识结构图
下面这张图帮你理清独立源和受控源的关系:
4.4 实战对比表
我把四种受控源的关键区别整理成了一张表,方便你查阅:
| 类型 | 关键字 | 控制量 | 输出量 | 典型应用 |
|---|---|---|---|---|
| VCVS | E | 电压 | 电压 | 理想运放、电压放大器 |
| VCCS | G | 电压 | 电流 | 跨导放大器、OTA |
| CCVS | H | 电流 | 电压 | 电流检测、互阻放大器 |
| CCCS | F | 电流 | 电流 | 电流镜、电流放大器 |
4.5 避坑与经验
最后分享几个我这些年踩过的坑:
- 受控源不要形成直流通路:我曾经用 VCVS 直接连接两个节点,结果 DC 分析时出现了无穷大电流。记住,受控源本身不提供 DC 路径,需要配合电阻使用。
- CCVS 和 CCCS 的电流传感器:必须用 0V 电压源,不能用电流源。这是 SPICE 的硬性要求。
- 脉冲源的上升时间:别设成 0。SPICE 不允许 TR=0,至少设一个很小的值,比如 1ps。
- PWL 源的时间点:必须单调递增。我见过有人不小心写成了时间倒序,仿真结果完全乱套。
嗯,这一章的内容就这些。独立源和受控源是 SPICE 仿真的基本功,搞懂了它们,你就能搭建出各种复杂的测试电路。下次做仿真时,试着用 PWL 源模拟一个真实的电源纹波,或者用 VCCS 搭一个简单的 OTA,你会对电路行为有更深的理解。