1. 直流工作点分析

直流工作点分析:电阻分压偏置电路 学习卡片

1.1 SPICE 的前世今生

SPICE 这东西,说起来年头不短了。1970 年代伯克利大学开发的,全称是 Simulation Program with Integrated Circuit Emphasis。说白了,就是给集成电路做仿真用的。

我刚开始用 SPICE 那会儿,还是命令行界面,跑个简单反相器都要写半天网表。现在各种图形界面工具多了,但底层核心还是那套东西。你想想看,一个发展了五十多年的工具,至今仍是芯片设计的黄金标准,这本身就说明问题。

SPICE 的核心作用是什么?就三件事:

  • 验证电路功能 — 你的电路能不能正常工作?
  • 检查性能指标 — 增益、带宽、功耗、噪声,够不够?
  • 发现潜在问题 — 振荡、失真、温度漂移,有没有?

我个人习惯:每次流片前,至少跑三轮仿真——功能仿真、PVT 角仿真、蒙特卡洛仿真。少一轮,我都不敢 tapeout。

1.2 标准网表结构

SPICE 网表,说白了就是描述电路的文本文件。结构很固定,我拆开来讲。

网表的基本骨架

* 标题行 — 任何网表的第一行
* 注释行以星号开头

* 器件声明
M1  D  G  S  B  NMOS  W=1u  L=0.18u
R1  A  B  10k
C1  X  Y  1p

* 模型定义
.MODEL NMOS NMOS  VTO=0.7  KP=120u

* 分析语句
.DC  VIN  0  5  0.1
.TRAN  1n  100n

* 控制语句
.OPTIONS  POST=2  PROBE
.END

嗯,这里要注意:.END 是必须的,没有它仿真器不知道网表结束了。我曾经见过一个实习生,网表写了三百行,漏了 .END,仿真器一直报错,查了半天。

五大组成部分

部分 作用 示例
标题 网表第一行,描述电路名称 * Two-Stage Opamp
器件 定义元件及其连接关系 M1 1 2 3 4 NMOS W=2u L=0.18u
模型 描述器件物理参数 .MODEL NMOS1 NMOS VTO=0.7
分析 指定仿真类型和条件 .AC DEC 10 1 1G
控制 设置仿真选项和输出 .OPTIONS RELTOL=1e-6

避坑指南:我曾经在 .OPTIONS 里写错过参数名,仿真器不报错,但结果完全不对。后来我养成了习惯——每次改完网表,先跑一个简单 DC 点,确认基本连接没问题。

1.3 完整仿真流程

一个正经的芯片仿真流程,分三步走。我画了张图,你看一眼就明白了。

芯片仿真完整流程 前仿(Pre-Sim) 后仿(Post-Sim) 寄生提取 原理图网表 理想器件模型 功能验证 版图网表 含寄生参数 性能验证 版图寄生参数 RC 提取 反标网表 关键说明 • 前仿:用理想模型验证功能,速度快,适合早期迭代 • 后仿:带寄生参数,结果更接近真实芯片 • 寄生提取:从版图中提取 R、C、耦合电容,反标回网表 • 三者缺一不可,跳过任何一步都可能流片失败

第一步:前仿(Pre-Simulation)

前仿用的是理想模型。什么意思?就是不考虑版图带来的寄生电阻、寄生电容。这时候的仿真结果,说白了就是「理论值」。

我一般在前仿阶段做这些事:

  • 检查 DC 工作点是否合理
  • 验证电路功能是否正确
  • 初步调参,让性能达到设计指标

注意:前仿结果再漂亮,也别高兴太早。我见过太多项目,前仿指标全过,后仿直接崩了。原因?寄生参数把电路特性完全改变了。

第二步:后仿(Post-Simulation)

后仿用的是版图提取出来的网表。这时候的模型里,已经包含了走线的寄生电阻、寄生电容,甚至耦合电容。

后仿的目的就一个:验证你的版图画完之后,电路还能不能正常工作。

我记得有一次做高速比较器,前仿跑出来 500MHz 没问题。结果后仿一跑,直接掉到 300MHz。查了半天,发现是版图里一条关键走线太长,寄生电容太大。后来改了版图,才把性能拉回来。

第三步:寄生提取

寄生提取是连接前仿和后仿的桥梁。工具从版图里把寄生参数抽出来,生成一个带 R、C 的网表,然后拿这个网表去跑后仿。

常用的寄生提取工具有:

  • Calibre xRC — 业界主流,精度高
  • StarRC — Synopsys 家的,速度快
  • QRC — Cadence 家的,集成度高

寄生提取的精度,直接影响后仿的可靠性。我建议你至少跑两种模式:

  • R+C 模式 — 只提电阻和电容,速度快
  • RC 耦合模式 — 考虑耦合电容,精度高

我的经验:对于高频电路(>1GHz),一定要跑 RC 耦合模式。耦合电容带来的串扰,有时候比主路径的寄生还致命。

1.4 仿真收敛的初步认识

说到仿真,就绕不开「收敛」这个问题。什么叫收敛?说白了就是仿真器能不能算出结果来。

我刚开始做仿真那会儿,经常遇到仿真跑着跑着就崩了,报错信息一堆。后来慢慢摸索出一些规律:

  • DC 收敛是基础 — DC 点都算不对,后面的 AC、TRAN 就别想了
  • 模型质量很关键 — 有些第三方模型本身就有问题
  • 仿真选项要调 — 默认设置不一定适合你的电路

关于收敛调试的具体技巧,后面章节我会详细讲。这里先记住一句话:仿真不收敛,90% 是电路本身有问题,10% 是设置不对。

一句话总结:SPICE 仿真流程就是「前仿验证功能 → 寄生提取 → 后仿验证性能」三步走。每一步都有坑,但每一步都不能省。