4. 扫描变量定义:电压源、电流源、温度、器件参数作为扫描变量

做直流扫描仿真,第一步就是搞清楚:你到底要扫什么?

很多人一上来就设参数,结果跑出来的曲线自己都看不懂。我刚开始带项目时也犯过这毛病——扫了一堆变量,最后发现关键问题根本没覆盖到。

说白了,扫描变量就四大类:电压源、电流源、温度、器件参数。咱们一个一个说清楚。

4.1 电压源扫描:最常用的起点

电压源扫描是最基础的。比如你想看一个反相器的传输特性,那就扫输入电压 Vin,观察 Vout 怎么变。

典型场景:MOSFET 输出特性曲线(ID vs VDS)

在 SPICE 里怎么写?

.dc VDS 0 5 0.1

这行命令的意思是:VDS 从 0V 扫到 5V,步长 0.1V。简单直接。

但我建议你注意一点:步长别设太粗。我曾经为了省时间,把步长设成 0.5V,结果漏掉了一个拐点,后来查了半天才发现是步长问题。你想想看,0.1V 的步长也就多跑几十个点,换来的是曲线平滑度,值不值?

4.2 电流源扫描:别忽略它

很多人只扫电压,忘了电流源也能扫。其实电流源扫描在某些场景下更直观。

比如你设计了一个电流镜,想看输出电流随输入电流的变化关系。这时候扫电流源就比扫电压源直接得多。

.dc IIN 0 100u 1u

嗯,这里要注意:电流源扫描的步长要根据你的电路量级来定。微安级的电路,步长设 1uA 没问题;要是毫安级的,步长可以放大到 10uA 甚至 100uA。

扫描类型 典型应用 步长建议
电压源扫描 传输特性、输出特性 0.01V ~ 0.1V
电流源扫描 电流镜、恒流源 1% ~ 5% 满量程

4.3 温度扫描:最容易翻车的变量

温度扫描,我愿称之为「设计照妖镜」。很多电路在 27°C 跑得漂漂亮亮,一到高温或低温就原形毕露。

我个人习惯是在设计初期就做温度扫描,而不是等到最后才补。为什么?因为温度对阈值电压、迁移率、电阻值都有影响,这些影响会叠加,早发现早处理。

避坑提醒:我曾经有一个带隙基准设计,27°C 时精度 0.5%,觉得稳了。结果一跑 -40°C 到 125°C 的温度扫描,输出偏差直接飙到 3%。后来查出来是一个电阻的温度系数没匹配好。从那以后,温度扫描我都是必做项。

SPICE 里温度扫描的写法:

.dc TEMP -40 125 5

从 -40°C 到 125°C,步长 5°C。这个范围基本覆盖了绝大多数工业级和汽车级应用。

4.4 器件参数扫描:深入电路内部

器件参数扫描是进阶玩法。你可以扫 MOSFET 的宽长比、电阻的阻值、电容的容值,甚至工艺参数。

举个例子,你想看一个共源放大器的增益随负载电阻 RL 的变化:

.dc RLOAD 1k 100k 1k

但这里有个坑:参数扫描的收敛性。有些参数变化范围太大,仿真器可能不收敛。我建议你先做一次单点仿真确认电路能正常工作,再放大范围去扫。

小技巧:参数扫描时,如果遇到不收敛,可以试试先扫小范围,再逐步扩大。或者用 .step 命令配合参数列表,而不是连续范围扫描。

4.5 多变量联合扫描:实战中的常态

单变量扫描只是热身。真正做设计时,你往往需要同时看两个甚至三个变量的影响。

比如你想看一个 LDO 的输出电压随输入电压和温度的变化:

.dc VIN 3 5 0.1 TEMP -40 125 10

这会生成一个二维扫描结果。你可以用波形查看器的「等高线图」或「3D 图」来观察。

为什么会这样?因为实际芯片工作时,电压和温度是同时变化的。单变量扫描只能告诉你「如果只有这个变会怎样」,而多变量扫描才能还原真实场景。

下面这张图总结了四种扫描变量的关系:

直流扫描变量分类与关系 扫描变量 电压源扫描 电流源扫描 温度扫描 器件参数扫描 应用场景:传输特性 · 输出特性 · 温度漂移 · 工艺角分析 · 参数优化 关键要点: • 单变量扫描:适合初步分析,快速定位问题 • 多变量联合扫描:还原真实工作场景,发现交互影响 • 温度扫描:必做项,尤其对于模拟和混合信号电路

4.6 实战中的变量选择策略

说了这么多,到底怎么选?我总结了一个简单的判断流程:

  1. 先问自己:我想观察电路的什么行为?
  2. 再问:哪个外部激励对这个行为影响最大?
  3. 最后问:这个变量在实际芯片中会变化吗?

举个例子。你在设计一个比较器,想知道它的传输延迟。那扫描变量应该是输入电压的过驱幅度,而不是电源电压——除非你专门想看电源抑制特性。

我的经验:新手容易犯的错是「扫了太多没用的变量」。仿真时间有限,把精力放在关键变量上。我一般先做一次灵敏度分析,找出影响最大的 2-3 个变量,然后针对性地做联合扫描。

4.7 常见陷阱与避坑指南

  • 步长太粗:漏掉关键拐点。我曾经因为这个多花了三天 debug。
  • 范围太窄:没覆盖到极端工况。比如温度只扫了 0~70°C,结果产品在 -20°C 时失效。
  • 忽略收敛性:参数变化太大导致仿真不收敛。建议先做单点验证。
  • 变量之间相互影响:比如扫电阻值时,电路的工作点变了,结果可能不是你想的那样。

嗯,这些坑我基本都踩过。现在每次做扫描前,我都会花 5 分钟想清楚:到底要扫什么、为什么扫、扫到什么范围。这 5 分钟往往能省下后面几小时的弯路。