2、SPICE仿真基础:网表结构、元件模型、分析类型(DC、AC、瞬态)及仿真流程

SPICE(Simulation Program with Integrated Circuit Emphasis)仿真并非简单的“画原理图—点运行—看波形”操作,其底层逻辑完全围绕网表(Netlist)展开。无论是使用HSPICE、LTspice、PSpice还是Spectre,所有图形化界面最终都会转化为一个文本形式的网表文件。网表是仿真器的“唯一语言”,它描述了电路的拓扑连接关系、元件属性、模型调用以及分析指令。理解网表结构、元件模型参数、三大分析类型(DC、AC、瞬态)的内在数学含义与适用场景,是诊断仿真错误(如不收敛、直流工作点异常、波形失真)的前提。本章将系统拆解SPICE仿真的核心骨架,并给出标准化的仿真流程与常见误区。

SPICE仿真核心架构与执行链路 ① 网表结构 (Netlist) - 标题行 / 注释 - 元件声明: R1 N1 N2 10k - 模型调用: Q1 C B E NPN - 电源: V1 N1 0 DC 5V - 分析指令: .TRAN / .AC / .OP - .END 结束 ② 元件模型 (Models) - 无源器件: R/L/C 寄生参数 - 半导体: MOSFET (Level 1/49) - 二极管: IS, N, RS - 行为源: B1 (V=...) - 子电路: .SUBCKT - 工艺角: TT/SS/FF ③ 分析类型 - DC: 工作点 / 扫描 - AC: 小信号频响 (Bode) - TRAN: 时域大信号 - 噪声 / 失真 / 灵敏度 - 参数扫描 (.STEP) - 蒙特卡洛分析 ④ 标准仿真流程 (五步闭环) 1. 原理图/网表 2. 模型检查 3. 仿真执行 4. 结果分析 5. 迭代修正 收敛失败/精度不足 核心:网表是唯一事实来源,模型决定精度边界,分析类型决定求解器路径

上图展示了SPICE仿真的四大支柱及其交互关系。在实际工程中,工程师往往过度关注“波形长什么样”,而忽略了网表与模型的正确性。例如,一个看似简单的RC低通滤波器,若电容模型未包含ESR(等效串联电阻),AC分析结果在10MHz以上会与实测严重偏离。因此,掌握本章基础内容,是后续诊断“不收敛”、“直流漂移”、“相位裕度不足”等高频问题的基石。

2.1 网表结构:电路拓扑的文本化表达

核心原理:网表是仿真器的“法律条文”

SPICE网表是一种基于行的文本描述,每一行代表一个元件或一条指令。其基本语法规则如下:

  • 第一行:标题行,通常以“*”开头或直接写电路名称,仿真器会忽略该行内容。
  • 元件行:格式为 元件名 节点1 节点2 [节点3] 参数值。节点编号可以是数字(0为地)或命名(如VCC、OUT)。
  • 模型行:以 .MODEL 开头,定义半导体器件的工艺参数。
  • 分析指令:以点号(.)开头,如 .DC、.AC、.TRAN。
  • 结束行:.END 必须位于文件末尾。

一个典型的反相器网表如下:

* CMOS Inverter Netlist
M1 OUT IN VDD VDD PMOS W=2u L=0.18u
M2 OUT IN 0 0 NMOS W=1u L=0.18u
VDD VDD 0 DC 1.8V
VIN IN 0 PULSE(0 1.8 0 1n 1n 10n 20n)
C1 OUT 0 50fF
.MODEL NMOS NMOS (LEVEL=49 VTH0=0.4 KP=200u)
.MODEL PMOS PMOS (LEVEL=49 VTH0=-0.4 KP=80u)
.TRAN 0.1n 50n
.END

判断方法:网表错误的快速定位

当仿真器报错时,90%的语法错误集中在以下三类:

  1. 节点悬空:元件引脚连接到不存在的节点,或节点名拼写不一致(如“VCC”与“Vcc”)。
  2. 元件值格式错误:SPICE不支持“10K”这种写法,必须写为“10k”或“10e3”。后缀单位(F、H、Ohm)可省略,但比例因子(M=1e-3,MEG=1e6)必须正确。
  3. 模型引用缺失:元件声明中调用了 .MODEL 或 .SUBCKT,但网表中未定义。
经验提醒:在LTspice中,按住Ctrl键点击元件符号,可以直接查看生成的网表。养成“先看网表,再谈仿真”的习惯,能过滤掉至少30%的初级错误。

案例拆解:一个“神秘”的电阻报错

某工程师在仿真一个分压偏置电路时,仿真器提示“Error: R1 has no value”。检查原理图发现R1的阻值被误设为“1K”(大写K)。在SPICE中,K 代表开尔文温度单位,并非千欧姆。修正为“1k”后,仿真正常。此案例说明:SPICE对大小写敏感,且单位后缀必须符合标准。

常见误区与复盘

  • 误区1:认为图形化原理图可以替代网表。实际上,原理图只是网表的“可视化外壳”,最终仿真器读取的仍是网表。
  • 误区2:忽略节点0(地)的全局性。所有名为“0”的节点在仿真器中被视为同一电位,若原理图中存在多个“GND”符号但网络名不同,会导致隔离。
  • 复盘:在编写或检查网表时,建议按“电源—地—信号路径—负载”的顺序逐行核对,并利用文本编辑器的查找功能检查节点名一致性。

2.2 元件模型:精度与速度的博弈

核心原理:模型是物理器件的数学近似

SPICE仿真的准确性上限由元件模型决定。模型分为三个层级:

模型层级 典型代表 精度 仿真速度 适用场景
理想模型 R、L、C(无寄生) 低 极快 拓扑验证、概念设计
宏模型 运算放大器(如LM741) 中 快 系统级仿真、环路稳定性
晶体管级模型 BSIM3/4 (MOSFET) 高 慢 IC设计、精确时序/功耗分析

以MOSFET为例,BSIM3模型包含超过100个参数,如沟道长度调制系数(LAMBDA)、亚阈值摆幅(SS)、栅漏交叠电容(CGDO)等。若使用Level 1模型(仅含VTH0、KP等基础参数),仿真结果在深亚微米工艺下会严重失真。

判断方法:如何选择正确的模型

  1. 确认工艺节点:0.18um工艺应使用BSIM3/4模型,而非Level 1。
  2. 检查模型文件来源:代工厂提供的PDK模型(如TSMC 28nm)通常包含统计误差带(SS/TT/FF角)。
  3. 验证模型调用语法:.MODEL NMOS1 NMOS (LEVEL=49 ...) 与元件行 M1 D G S B NMOS1 的名称必须完全匹配。
风险提示:切勿将不同工艺角的模型混用。例如,在同一个网表中,NMOS使用TT角模型,PMOS使用SS角模型,会导致仿真结果毫无物理意义。

案例拆解:运放宏模型导致的相位裕度误判

某电源工程师使用理想运放模型(增益无穷大)仿真LDO环路,得到相位裕度75°,认为系统稳定。但实际流片后测试发现振荡。原因在于理想模型未包含运放的输出阻抗与极点。改用厂商提供的宏模型(含有限增益、主极点、输出电阻)后,仿真显示相位裕度仅35°。此案例说明:模型精度直接决定仿真结论的可靠性。

常见误区与总结

  • 误区:认为“模型越复杂越好”。实际上,对于开关电源的环路仿真,平均开关模型比全桥MOSFET模型更高效且足够准确。
  • 总结:模型选择应遵循“够用就好”原则,在精度与仿真时间之间取平衡。对于关键性能指标(如稳定性、EMI),务必使用高精度模型。

2.3 三大分析类型:DC、AC与瞬态

核心原理:不同分析对应不同的数学求解路径

SPICE的三大分析类型并非简单的“不同波形查看方式”,而是基于不同的数学算法:

  • DC分析(.OP / .DC):求解电路的静态工作点。将所有电容视为开路、电感视为短路,通过牛顿-拉夫逊迭代法求解非线性方程组。.OP仅计算工作点,.DC则扫描某个源或参数。
  • AC分析(.AC):小信号频域分析。首先计算DC工作点,然后在工作点处将非线性器件线性化(求导),得到小信号等效电路。最后在指定频率范围内计算传递函数的幅频与相频特性。AC分析是线性的,因此无法处理大信号或非线性失真。
  • 瞬态分析(.TRAN):时域大信号分析。采用数值积分法(如梯形法、Gear法)求解微分方程。每一步都需要重新计算非线性器件的工作点,因此计算量最大。

操作流程:分析指令的标准写法

* DC 工作点
.OP

* DC 扫描:VIN 从0到5V,步长0.1V
.DC VIN 0 5 0.1

* AC 扫描:频率从10Hz到1GHz,十倍频程,每十倍频10个点
.AC DEC 10 10 1G

* 瞬态分析:步长1ns,总时长10us
.TRAN 1n 10u

案例拆解:用AC与TRAN联合诊断放大器失真

某音频放大器设计,AC分析显示带宽为20kHz,增益平坦。但瞬态仿真输入1kHz正弦波时,输出波形出现削底失真。原因在于AC分析仅反映小信号特性,而瞬态分析暴露了大信号摆率限制(Slew Rate)问题。通过对比两种分析结果,工程师发现输出级偏置电流不足,导致正负摆率不对称。此案例表明:AC与TRAN必须结合使用,才能全面评估电路性能。

常见误区与复盘

  • 误区1:用AC分析观察开关电源的纹波。AC分析是线性的,无法处理开关动作,必须使用瞬态分析。
  • 误区2:忽略瞬态分析的初始条件。若未设置IC(初始条件),仿真器默认从零状态开始,可能导致振荡器无法起振。
  • 复盘:在仿真前,先明确“我要回答什么问题”。若关心稳定性,用AC;若关心波形失真,用TRAN;若关心功耗,用DC工作点。

2.4 标准仿真流程:从原理图到可信结果

核心原理:流程是质量保障体系

一个规范的SPICE仿真流程包含五个阶段,每个阶段都有明确的输入与输出,以及质量检查点。

阶段 关键动作 输出物 质量检查点
1. 网表生成 从原理图导出或手写网表 .sp / .cir 文件 ERC检查(电气规则检查)
2. 模型准备 加载工艺库、宏模型 模型文件路径 模型版本与工艺角确认
3. 仿真执行 设置分析类型、参数扫描 原始波形数据 收敛性检查(无报错)
4. 结果分析 测量增益、带宽、功耗等 图表、数据表 与手算/实测对比
5. 迭代修正 调整参数、优化设计 最终网表与报告 灵敏度分析、蒙特卡洛验证

操作流程:一个完整的仿真执行示例

  1. 步骤1:在原理图中完成电路绘制,设置元件参数。
  2. 步骤2:在仿真设置中,先运行 .OP 检查工作点是否合理(如MOS管是否处于饱和区)。
  3. 步骤3:若工作点正确,再运行 .AC 或 .TRAN。
  4. 步骤4:使用波形查看器中的测量工具(如光标、FFT)提取关键指标。
  5. 步骤5:若结果异常,返回步骤1,检查网表或模型。
实战要点:在大型电路(如PLL)仿真中,建议采用“自底向上”策略:先仿真子模块(如VCO、分频器),确保每个模块正确后,再整合进行系统仿真。这能显著降低排错难度。

案例拆解:一个DC工作点不收敛的完整排查

背景:某LDO稳压器设计,使用0.18um BCD工艺。仿真时,.OP 分析报错“No convergence in DC analysis”。

初始现象:误差放大器输出节点电压在迭代中震荡,无法收敛。

关键参数:误差放大器尾电流源设置为10uA,负载电容100pF。

分析判断过程:

  1. 首先检查网表,确认所有MOS管模型调用正确,无悬空节点。
  2. 检查工作点:将尾电流源临时改为理想电流源(用 I1 替代 M1),仿真收敛。说明问题出在MOS管模型或尺寸上。
  3. 检查MOS管尺寸:发现尾电流源管的宽长比(W/L)被误设为0.5u/10u,导致阈值电压过高,管子无法导通。

实际操作步骤:将W/L修正为10u/1u,重新仿真,.OP 正常收敛,输出稳定在1.2V。

结果对比:修正前,仿真器报错;修正后,工作点正确,后续AC分析显示环路增益为60dB,相位裕度60°。

风险与代价:若不修正,直接尝试瞬态仿真,会浪费大量计算时间,且结果无意义。

复盘经验:DC不收敛时,优先检查“器件是否工作在预期区域”,而非盲目调整仿真器迭代次数。

常见误区与总结

  • 误区:跳过 .OP 直接进行 .TRAN。这会导致瞬态初始状态错误,波形出现“假振铃”。
  • 总结:标准流程的核心是“逐步验证,层层递进”。每完成一个阶段,都要确认输出是否符合物理直觉。
风险提示:在仿真流程中,务必记录仿真器版本、模型文件版本、温度、工艺角等环境信息。这些参数直接影响结果的可复现性,也是后续排障的重要线索。