3、仿真前的准备工作:PDK模型选择、仿真器设置(Spectre/HSPICE)、DC工作点分析基础

说实话,很多新手工程师拿到运放电路,上来就点仿真按钮。结果跑出来一堆奇怪的数据,也不知道对不对。我当年也犯过这个错——浪费了整整两天,最后发现是PDK模型选错了。

嗯,仿真前的准备工作,其实比仿真本身更重要。就像盖房子打地基,地基歪了,上面盖得再漂亮也没用。这一章,我们就聊聊仿真前必须做好的三件事。

3.1 PDK模型选择:别小看这一步

PDK(Process Design Kit)是代工厂提供的工艺套件。里面包含了各种器件的模型参数。你想想看,如果模型选错了,仿真结果跟实际芯片的差距可能大到离谱。

我曾经踩过的坑: 有一次做低功耗运放,仿真时偏置电流只有1nA,觉得完美。结果流片回来一测,实际偏置电流是50nA。查了三天,最后发现是用了tt(典型)模型,但实际工艺角是ff(快)模型。从那以后,我每次仿真前都会再三确认模型选择。

3.1.1 常见的模型类型

代工厂通常会提供以下几种模型,你得根据仿真目的来选:

模型类型 描述 适用场景
tt (typical-typical) 典型工艺角,NMOS和PMOS都是典型值 功能验证、典型性能评估
ff (fast-fast) 快工艺角,器件速度快、阈值电压低 评估最高速度、最小延迟
ss (slow-slow) 慢工艺角,器件速度慢、阈值电压高 评估最差速度、最大延迟
fs / sf 混合工艺角,NMOS和PMOS速度不一致 评估失配影响、特殊场景
mc (Monte Carlo) 统计模型,包含随机失配 良率分析、失配仿真

我个人习惯,在做偏置电流仿真时,至少跑三个工艺角:tt、ff、ss。如果时间允许,再加上fs和sf。这样能覆盖大部分工艺波动情况。

小技巧: 在Spectre中,可以通过 model 语句选择模型。比如 model nmos_tt nmos 就指定了使用tt模型的NMOS。记得在仿真脚本或ADE环境中明确指定。

3.2 仿真器设置:Spectre vs HSPICE

现在主流模拟仿真器就两个:Cadence的Spectre和Synopsys的HSPICE。两者功能差不多,但细节上有差异。我两个都用过,说实话,各有千秋。

3.2.1 Spectre设置要点

如果你用Spectre,有几点要注意:

  • 仿真精度: 默认的 trap 算法对偏置电流仿真够用。但如果遇到收敛问题,可以试试 gear2 或 euler。
  • 相对容差(reltol): 默认1e-3。对于偏置电流这种小信号,我建议设到1e-4或更小。不然电流误差可能大到无法接受。
  • 绝对电流容差(iabstol): 默认1e-12。如果偏置电流在pA级别,这个值太大了。我一般设到1e-15。
  • DC仿真选项: 记得勾选 Save DC Operating Point,不然你看不到工作点信息。
// Spectre netlist 示例
simulator lang=spectre
global 0 vdd

// 模型路径
include "path/to/pdk/models.scs" section=tt

// 电路网表
M1 (d g s b) nmos w=1u l=0.18u

// 仿真设置
dc dc dev=vdd param=dc start=0 stop=3.3 step=0.1
options reltol=1e-4 iabstol=1e-15 vabstol=1e-6
save M1:all

3.2.2 HSPICE设置要点

HSPICE的设置思路类似,但语法不同:

  • 精度控制: 用 .OPTIONS POST=2 PROBE 开启输出。用 .OPTIONS RELTOL=1e-4 ABSTOL=1e-15 控制精度。
  • 收敛辅助: 如果仿真不收敛,可以加 .OPTIONS GMINDC=1e-12 或 .OPTIONS ITL1=500。
  • 模型选择: 在 .LIB 语句中指定工艺角。比如 .LIB 'path/model.lib' TT。
// HSPICE netlist 示例
.TITLE "Opamp Bias Current Simulation"

.OPTIONS POST=2 PROBE
.OPTIONS RELTOL=1e-4 ABSTOL=1e-15

.LIB 'path/model.lib' TT

M1 d g s b nmos W=1u L=0.18u

.DC VDD 0 3.3 0.1

.PROBE DC I(M1)
.END
我的建议: 如果你刚开始学,用Spectre就好。图形界面友好,调试方便。HSPICE更适合跑大批量仿真或做corner分析。但不管用哪个,精度设置一定要手动调,别用默认值。

3.3 DC工作点分析基础

DC工作点分析,说白了就是看电路在静态下各个节点的电压和电流。这是所有仿真的基础。你想想看,如果DC工作点都不对,AC、瞬态仿真结果能对吗?

3.3.1 为什么要做DC工作点分析?

我遇到过不少工程师,直接跳过DC分析去跑AC。结果AC增益算出来100dB,高兴得不行。后来一查,管子都工作在线性区了。嗯,这种错误其实很常见。

DC工作点分析能告诉你:

  • 每个MOS管工作在哪个区(饱和、线性、截止)
  • 偏置电流的实际值是多少
  • 节点电压是否合理
  • 功耗是否超标

3.3.2 关键参数怎么看?

对于运放偏置电流仿真,我重点关注这几个参数:

参数 含义 正常范围
VGS 栅源电压 通常 > VTH,且 < VDD
VDS 漏源电压 饱和区要求 VDS > VGS - VTH
ID 漏极电流 与设计值偏差 < 10%
gm 跨导 与设计值一致
VDSAT 饱和电压 (VGS - VTH) 通常 100mV ~ 300mV

3.3.3 实操步骤

我个人习惯的DC分析流程是这样的:

  1. 设置电源电压: 从0V开始扫描到额定值。这样能看到电路是怎么启动的。
  2. 检查所有MOS管的工作区: 用计算器或脚本检查每个管子的 VDS > VGS - VTH。如果发现线性区的管子,先标记出来。
  3. 对比偏置电流: 把仿真得到的偏置电流跟设计值对比。偏差超过10%就要查原因。
  4. 检查节点电压: 重点关注运放输入端的共模电压、输出端的静态电压。
  5. 记录数据: 把关键工作点参数记录下来,方便后续对比。
避坑指南: 我曾经在DC分析时发现偏置电流只有设计值的一半。查了半天,发现是电流镜的宽长比写错了。所以,DC分析时一定要逐级检查电流,从偏置源开始,一级一级往下查。

3.4 本章知识体系

下面这张图总结了仿真前准备工作的核心逻辑:

仿真前准备工作知识体系 仿真前准备工作知识体系 PDK模型选择 仿真器设置 DC工作点分析 tt / ff / ss fs / sf / mc Spectre HSPICE 工作区检查 电流对比 核心原则:先选对模型 → 再设好仿真器 → 最后检查DC工作点 模型选择 仿真器设置 DC工作点 可靠仿真结果

嗯,准备工作做到位了,后面的仿真才能事半功倍。别嫌麻烦,这一步省下来的时间,后面会加倍还给你。