☰
IC5141下Bandgap四大仿真实战:稳定、噪声、启动与PSRR调参指南
2026/10/5 6:16:23 网站建设 项目流程

1. 仿真环境准备:IC5141 下的工艺库与原理图搭建细节

在用 Cadence IC5141 做 Bandgap 仿真之前,有一件事必须想清楚:Bandgap 是一个模拟混合信号电路,它同时考验 DC 工作点、环路稳定性、噪声特性和电源抑制能力,所以仿真不能只在一种视角下完成,而是要靠四种仿真互相印证。很多初学者一上来就把 bandgap 当成"一个能输出 1.2V 的电路",只跑一个 DC 扫描看输出电压,这其实远远不够,因为你根本不知道它在真实工况下会不会振荡、会不会启动失败、纹波抑制够不够。

IC5141 是老一代工具,很多同学刚接触时会被它的界面和操作逻辑劝退,但说实话,老工具有老工具的好处:它稳定,不乱报错,而且大部分工艺厂到现在还有 IC5141 的 PDK 支持。我的建议是先把环境理顺,再谈仿真。具体来说,需要确认以下几个配置:

  • 工艺库路径:在.cdsinit文件里正确加载lib.defs,确保器件库、仿真库、激励库都能被识别。这一步出错,后面所有仿真都会显示"器件未定义"之类的报错。
  • 原理图视图:Bandgap 电路建议用schematic视图完成,不要偷懒用symbol或网表直驱,因为后续做噪声、稳定性、启动分析时需要频繁修改器件参数,图形化界面更直观。
  • ADE 环境版本:IC5141 自带的 ADE 是老版图形化仿真环境,支持 spectre 和 ultrasim 两种仿真器。Bandgap 这类精细模拟电路,强烈建议使用 spectre,不要用 ultrasim,因为 ultrasim 在大规模混合信号仿真时对噪声和稳定性分析的精度有妥协。

在搭建原理图时有一个我踩过很多次的坑:Bandgap 电路中的电阻类型选择会直接决定温漂曲线的形状。很多 PDK 提供多种电阻模型,比如高阻多晶电阻、N 阱电阻、金属薄膜电阻等,它们的温度系数各不相同。如果你用的是高阻多晶电阻,温度曲线可能表现出正温漂;如果你用 N 阱电阻,可能会叠加出明显的非线性。所以从原理图搭建阶段就要想好:你期望的 Bandgap 输出是多少?你允许的温漂范围是多少?这两个问题直接决定你选什么电阻。另外,BJT 管的模型也要留心,IC5141 中常见的是analogLib里的npn和pnp器件,但很多工艺库会提供专用 BJT 模型,比如vertical_pnp,它的电流增益和发射区面积对 bandgap 核心的 PTAT 电压产生非常关键。

下面我用一个典型的带隙基准电路举例,包括:

  • 运放(OTA)
  • 两个 BJT(面积比 1:8)
  • 两个电阻(R1、R2)
  • 一个电阻 R3 连接到负反馈支路

这是 classic 的 Brokaw 或 CMOS 带隙的变体,核心思想是通过 ΔVBE 的正温度系数和 VBE 的负温度系数叠加,得到一个近似零温漂的输出电压。原理图搭建完成后,先做一次 DC 工作点仿真,确认所有管子都工作在饱和区或放大区。如果某个管子工作点不对,后面四个仿真全都会失真。

还有一个细节:IC5141 中 DC 仿真的dcOp信息非常关键,它会把每个器件的region、vdsat、gm、rds、vbe等列出来,你应该养成仿真后立刻查看 dcOp 表的习惯。Bandgap 中运放两个输入管的 VDS 必须匹配良好,两个 BJT 的集电极电压也应当接近相等,否则会产生系统失调,这部分失调会直接叠加到输出电压上。

在跑四大仿真前,我还习惯做一次温度扫描的 DC 仿真,看 27 度下的输出是否在 1.2V 附近,再看 -40 到 125 度的温度曲线是否呈现"碗形"或"驼峰形"。这一步相当于对电路进行"体检",体检不过关,后面的稳定性、噪声、启动、PSRR 都没有意义。

2. 稳定性仿真:环路增益、相位裕度和补偿网络的调参逻辑

Bandgap 的稳定性分析和普通运放环路分析有一个很大的不同:Bandgap 有两个环路,一个正反馈,一个负反馈。如果正反馈增益大于负反馈增益,整个电路就会锁存或振荡,这可不是仿真发散那么简单,而是真实的电路功能异常。所以在做稳定性仿真前,必须搞清楚两个环路的增益关系。

在 IC5141 中用 spectre 做稳定性仿真,推荐的方式是STB 仿真(Stability Analysis)。STB 仿真会在环路中插入一个测试信号源,自动计算环路的增益和相位。操作步骤是:

在 ADE 中依次选择 Analyses -> Stability,设定 STB 仿真,并指定要分析的正负反馈环路。STB 可以同时给出loopGain、phaseMargin、gainMargin。和传统的iprobe方法不同,STB 不需要你手动打断环路,处理复杂反馈结构时更不容易出错。

但这里有一个极其关键且经常被忽略的细节:STB 仿真只能分析你指定的环路,如果 Bandgap 内部存在多环路,你必须要分别检测。以我前面举例的带隙结构来说,运放的负反馈通常通过 R3 和下面的 BJT 形成,而正反馈则通过上方电阻和上面的 BJT 形成。当这两个环路嵌套在一起时,STB 扫出来的带宽和相位可能混合了两个环路的特性。

一个更实用的做法是:把两个环路分别断开,单独看环路增益。正反馈环路的低频增益应当小于负反馈环路的低频增益,一般需要留出 20% 以上的余量。相位裕度建议大于 60 度,最差不要低于 45 度。

我在实际调参中发现,Bandgap 稳定性不好通常表现为两种情况:

  1. 低频振荡:电源上电后输出出现低频等幅振荡,这通常是因为正反馈环路增益太接近负反馈环路增益,电路处于临界状态。
  2. 高频振铃:瞬态仿真中输出有一个高频衰减振荡,这通常是因为运放带宽太宽,次主极点和高频寄生极点距离太近,相位裕度不足。

解决低频振荡的关键是调整 R3 和 BJT 的面积比,确保负反馈系数大于正反馈系数。解决高频振铃则通常要增加补偿电容,或者在运放输出端加一个 RC 补偿网络。我在一个项目中使用的运放是两级 OTA,第一级是折叠共源共栅,第二级是共源极。原本相位裕度只有 38 度,瞬态时有明显振铃,后来在第二级输出和地之间加了一个 2pF 的补偿电容,相位裕度提升到了 61 度,振铃基本消失。补偿电容的代价是带宽下降,但 Bandgap 对带宽要求并不高,关键是要稳定。

还有一个值得注意的地方:负载电容的影响。Bandgap 输出端通常会接一个片内负载电容,或者某些情况下需要驱动一个片外大电容。当负载电容较大时,输出极点会向低频移动,反而有可能改善稳定性,但如果负载电容和运放输出电阻产生谐振,也可能引入新的问题。所以稳定性的仿真应该覆盖最小和最大负载电容两种极端情况,而不是只在典型值下仿真。

调参过程中的操作建议:

  • 在 ADE 中用 "Parametric Analysis" 扫补偿电容,观察相位裕度变化趋势。
  • 把phaseMargin设为需要监测的输出,方便直接看不同参数下的裕度值。
  • 稳定性仿真最好在三个温度点都跑一遍:-40 度、27 度、125 度。因为 BJT 的 gm 和电容的绝对值都会随温度变化,相位裕度在低温和高温下的表现可能相差很大。

最后说一个容易被忽略的问题:STB 仿真本身的收敛性。IC5141 老版本偶尔会出现 STB 仿真不收敛的情况,通常是 dc 工作点附近出现数值噪声。解决办法是先把gmin调大一点,比如默认 1e-12 调到 1e-9,仿真收敛后再恢复到默认值验证。

3. 噪声仿真:等效输入噪声、输出噪声和电阻/运放噪声贡献拆分

很多同学把噪声仿真当成"跑出来一个曲线"就完了,实际上噪声分析是 Bandgap 设计中非常考究的一环。Bandgap 的输出噪声会直接进入 LDO、ADC 参考或时钟电路的电源域,噪声太大,整个系统的信噪比就毁了。在 IC5141 中做噪声仿真,用 spectre 的noise分析即可,操作不复杂,但解读曲线才是难点。

我习惯把噪声仿真分成两条主线来看:

  • 输出噪声谱密度:单位通常是V/sqrt(Hz),表示在某个频率下,bandgap 输出端每单位带宽的噪声电压。
  • 等效输入噪声:Spectre 可以自动输出等效输入噪声,但 Bandgap 不是放大器,它的"输入"定义比较含糊。更实用的做法是只看输出噪声谱密度,然后结合后级电路的 PSRR 和带宽需求来分析。

Bandgap 噪声的主要来源有三个:

  1. 电阻热噪声:所有电阻都会贡献热噪声,其功率谱密度是4kTR。Bandgap 中的电阻值通常在几十 kΩ 到几百 kΩ,所以电阻热噪声非常显著,尤其是在低频段。
  2. BJT 的 shot noise 和 base resistance noise:BJT 的集电极电流散粒噪声和基极电阻热噪声会通过环路放大,在输出端形成噪声。
  3. 运放的输入噪声:运放输入管的 flicker noise(1/f 噪声)和热噪声,经过环路增益后也会出现在输出端。

这三部分噪声的大小和频率分布不同,调参策略也完全不同。如果输出噪声曲线在低频呈明显上升趋势,那基本是 flicker noise 主导,说明运放输入管的面积太小,或者 BJT 的基极电阻太大。如果噪声谱在很宽的频带内是平坦的,那主要就是热噪声主导,这时候增大电阻工作电流、降低电阻阻值会有帮助,但要注意功耗和面积的平衡。

我在实际项目中遇到过一个头痛的情况:Bandgap 输出噪声在 1kHz 处达到 300nV/√Hz,规格要求是 100nV/√Hz,差了 3 倍。最初以为是运放噪声大,后来把运放的输入管面积增大、工作电流提高,噪声只下降了一点点,效果不明显。后来把噪声贡献图打开一看,发现最大的噪声来源是 Bandgap 核心中的两个高阻值电阻。因为这两个电阻阻值都在几百 kΩ,热噪声贡献非常大。解决思路不是去改运放,而是把电阻分流,用多个电阻串并联的组合来降低等效阻值,同时保持分压比不变,结果 1kHz 噪声降到了 130nV/√Hz 左右,配合运放输入对管优化,最终压到了目标以下。

IC5141 中查看噪声贡献的方法是:在 noise 仿真结束后,使用 Results -> Direct Plot -> Main Form,然后选择 Noise Summary,里面会列出每个器件对输出噪声的贡献占比。这是我强烈推荐的一个操作,不要只盯着总噪声曲线,一定要看 breakdown,否则你根本不知道噪声该往哪里调。

Bandgap 低频噪声还有一个隐藏来源:基准电流镜的噪声。如果 bandgap 里面有一个电流源给运放提供尾电流,那么电流镜管的 flicker noise 会调制尾电流,进而影响运放增益和失调,最终反映到输出。这种噪声在低频时非常讨厌,因为它的频率特性和 1/f 噪声很像,而且往往被误判为运放输入管噪声。排查方法是把噪声贡献图打开,看哪些管子的 contribution 在低频最大,重点检查噪声来源是不是集中在电流镜管上。

调噪声的实操经验整理如下:

  • 如果低频噪声偏大,优先关注运放输入对管和电流镜管的 WL,加大面积。
  • 如果高频平坦噪声偏大,优先关注核心电阻和 BJT。
  • 如果噪声在所有频段都大,优先检查工作电流是不是太低,Bandgap 有时为了省功耗把电流调得很小,但电流太小会放大所有噪声源的影响。
  • 在噪声仿真中同时跑多个工艺角,因为电阻绝对值和 BJT 的寄生电阻在不同工艺角下变化很大,噪声曲线差异可能达到 30% 以上。

还有一个细节,就是噪声仿真需要设置合理的频率范围。IC5141 中默认噪声起始频率可能比较高,如果你关心 1kHz 以下的应用,建议把噪声扫描从 0.1Hz 或 1Hz 开始。因为 flicker noise 在低频段的功率密度非常大,如果不看低频,你会严重低估噪声对低频参考电压的影响。

4. 启动仿真与简并点分析:为什么 Bandgap 可能不启动,以及如何验证并修复

Bandgap 有一个几乎所有教科书都会提但很多工程新手在仿真时会忽略的问题:简并点(degenerate point)。这个名词听起来唬人,其实意思很简单:Bandgap 在理论上存在不止一个平衡态,一个是正常工作态——输出 1.2V;另一个是零电流态——所有管子都截止,输出为 0。如果没有任何启动电路,上电后电路有可能停在零电流态,永远无法进入正常工作区。

在仿真中体现为:瞬态仿真跑完,输出恒为 0,或者非常接近 0。在真实芯片里体现为:芯片上电后带隙基准输出电压被拉低,系统整个失灵。所以"启动仿真"绝对不是走过场,它直接关系到一个基准电路能不能在真实环境下用。

IC5141 中做启动仿真的标准做法是:

  1. 在 ADE 中新建一个瞬态分析(tran)。
  2. 设置电源 VDD 从 0 开始,在一个很短的时间内(比如 10µs)从 0 阶跃到标称值。这里推荐用pulse源或者vpulse,让电源有个明确的边沿,而不是 DC 直接给高电平。
  3. 仿真总时长要足够长,通常是几十微秒到几百微秒,取决于 bandgap 的环路带宽和启动电路的恢复速度。
  4. 观察输出电压是否最终收敛到稳定值。

如果启动仿真的结果是输出最终稳定在 1.2V 附近,说明启动没问题;如果输出停留在 0 或者很低的值,就需要检查启动电路。

启动电路的形式多种多样,最常见的是:

  • 电阻下拉/上拉启动:用一个小电阻把 bandgap 核心节点拉到某个非零电位,使电流镜脱离零态。
  • 二极管连接启动管:一个二极管连接的管子在上电初期提供一条小电流通路,把核心节点从地拉起来,等 bandgap 正常工作后,启动管被关断。
  • 动态充放电启动:用电容耦合一个上电脉冲,启动完成后再放电。

在 IC5141 中做启动验证时,有一个非常容易犯的错误:直接给 VDD 一个理想阶跃。理想阶跃太陡,并不能反映真实芯片上电时的缓变过程。真实芯片的电源是逐渐上升的,典型上升时间是几百微秒到几毫秒,而 IC5141 的仿真器对理想阶跃的响应可能和实际不同。建议采用带斜坡的电源模型,比如 10µs 上升时间,从 0 到 3.3V,然后保持。观察启动过程中是否出现"假启动"——也就是说,输出电压在某一段时间冲到了正常值附近,然后又掉下来。这种情况往往意味着启动电路把核心节点拉起来了,但正反馈环路没有正确接管,电路在短暂的非平衡态漂移后重新回到了简并点。

启动仿真里还会遇到一个和仿真器相关的坑:tran 仿真发散。Bandgap 这类带强反馈的电路,在电源快速上升时,很容易出现电流突变,spectre 默认的积分步长可能不够,导致仿真发散。解决办法是在瞬态仿真设置中把tstep调小,比如从 1µs 调到 100ns,同时把maxstep限制在一个合理范围,避免仿真器因为大步长跳过关键状态。另外一个常用技巧是加上ic=初始条件,把关键节点初始化为一个合理电压,然后再跑瞬态,这样可以避开仿真器数值振荡的问题。

除了常规的启动仿真,还有一种极端但必要的启动验证:上电时序错位启动。如果 Bandgap 电路是某个大系统的一部分,VDD 的上升时间可能和其他数字电源不同步,这时 Bandgap 可能会在不同的初始条件下启动。我的做法是分别设置三个上电场景:

  • VDD 快速上升(10µs)
  • VDD 慢速上升(1ms)
  • VDD 先快速上升、中途回落再上升(模拟掉电重启)

每种场景都要验证输出电压最终都能收敛到正常值。如果其中任何一个场景启动失败,说明启动电路余量不足,需要重新设计。

在简并点分析方面,IC5141 中可以直接用 DC 扫描来看是否存在多个平衡点。方法是对 VDD 做 DC 扫描,从 0 扫到标称值,看输出电压的转移曲线。如果曲线出现跳变或回滞,说明存在多个稳定点。更细致的做法是用 spectre 的dc分析配合sweep指定不同初始条件,看最终稳定在哪个点。值得提醒的是,这种 DC 扫描的结果和初始条件设置有很大关系,同一个电路,不同的ic可能得到完全不同的 DC 解,这正好说明了简并点存在的本质。

修复简并点问题的经验是:启动电路必须在所有工艺角和温度下都能正常工作。冷启动、高温启动、工艺偏差下的启动能力差异很大,我在一个项目里就遇到过 27 度启动正常、-40 度启动失败的例子。原因是启动电路的偏置在低温下电流太小,无法把核心节点拉到足够的电位。后来把启动管的宽长比加大,并且增加一个轻微的上拉支路,问题就解决了。

5. PSRR 仿真:从 DC 增益到高频抑制的完整频谱分析和提升手段

PSRR(Power Supply Rejection Ratio)是 Bandgap 基准最重要的指标之一,因为它直接决定了电源上的纹波和噪声有多少会耦合到基准输出。对于后级接 LDO 或 ADC 参考的电路来说,如果 Bandgap 的 PSRR 太差,电源上的开关噪声或者 50Hz 工频干扰就会直接进入输出,整个系统的精度就无从谈起。

在 IC5141 中做 PSRR 仿真,标准的做法是交流小信号分析:

  1. 将 VDD 设为标称值,并在 VDD 上串联一个 AC 幅值为 1V 的小信号源(也可以用 AC 源并联在 VDD 上,根据电路结构来定)。
  2. 设置 AC 仿真,扫描频率从 1Hz 到 1GHz 或更高。
  3. 输出端取 Bandgap 输出电压的 AC 幅值,这个值就是电源到输出的增益,记为G_ps。
  4. 因为输入是 1V AC,所以输出 AC 的幅值直接就是G_ps的绝对值,PSRR 可以定义为20*log10(1/|G_ps|),单位是 dB。也就是说,电源纹波抑制越好,|G_ps|越小,PSRR 越大。

实际操作中,我更习惯在 Calculator 里直接写出 PSRR 表达式,这样能在同一个图中直接看 PSRR 曲线,而不是看电源增益曲线。这个表达式大概是dB20(VF("/VOUT") / VF("/VDD"))的倒数取负,注意频谱和相位要匹配好。

PSRR 曲线的典型形态是:低频段 PSRR 很高,通常在 60dB 以上;随着频率升高,PSRR 开始滚降;到某个频率点后会趋于平坦。这是因为低频时环路的开环增益高,电源噪声被环路抑制得很好;高频时环路增益下降,抑制能力减弱,输出端的耦合主要通过寄生电容和器件 Cgd、Cgs 等路径实现。

Bandgap 中影响 PSRR 的主要因素有:

  • 运放的环路增益:环路增益越高,低频 PSRR 越好。所以提升运放增益能直接改善低频 PSRR。
  • 内部节点的寄生电容:寄生电容会在高频段形成前馈通路,把电源噪声直接耦合到输出。尤其是 BJT 的集电极-基极电容和运放输入管的 Cgd,最容易形成高频耦合。
  • 电流源/电流镜的电源抑制能力:如果 bandgap 内部的偏置电流是从电源直接镜像过来的,那么电源纹波会通过电流镜进入核心电路。提升尾电流源的输出阻抗会对 PSRR 有帮助。

我在调 PSRR 时的一个常用方法:先看 PSRR 曲线的转折频率。如果转折频率在 1kHz 以内,说明抑制带宽很差,可以检查是否某个节点的阻抗设计得过高。如果低频 PSRR 已经很高但高频仍然不理想,那重点就是寄生电容的优化,比如减小输入管的尺寸、优化版图布局。

PSRR 和稳定性往往是一对矛盾:提升运放增益会改善低频 PSRR,但增益过高可能导致相位裕度下降。这个矛盾在 Bandgap 设计中经常出现,因此我通常先用 AC 仿真确定运放增益的合理范围,再根据 PSRR 指标微调。如果 PSRR 仍然不达标,可以在输出端增加一个 RC 低通滤波,或者增加一级 cascode 结构来提高输出阻抗。

在 IC5141 中调 PSRR 时还有一些小的技巧值得分享:

  • 在扫描频率范围上,建议从 1Hz 或 10Hz 开始,因为 PSRR 低频段的平坦区能让你判断环路是否正常工作。
  • 如果把 PSRR 仿真跑出来后低频部分就低于 40dB,说明电路大概率处于错误的工作状态,建议回到 DC 工作点检查,不需要急着调参数。
  • 使用 spectre 的ac分析时,可以同时输出输出节点电压和电源节点电压,然后用 Calculator 绘制 PSRR 曲线,这样能得到一个连续的 PSRR 频谱,比逐点测试效率高很多。

我在一个实际项目中曾经遇到一个很奇怪的现象:PSRR 曲线在 10kHz 处出现了一个明显的尖峰,上升了大概 15dB。调查后发现,这是因为输出端存在一个 LC 谐振,寄生电感和负载电容在 10kHz 附近发生了谐振。解决方法是在输出端增加一个小电阻来阻尼谐振,尖峰就被抑制掉了。这个经历提醒我,PSRR 曲线上的异常尖峰不要简单当成仿真误差,它可能揭示了真实电路中的寄生谐振。

6. 四大仿真的联动调参与实战心得:一套调通 Bandgap 的判断顺序

前面四章分别讲了稳定性、噪声、启动和 PSRR 的仿真方法与调参思路,但在真实项目中,这四件事并不是独立完成的,它们之间会互相制约。很多新手按顺序做完稳定性仿真后,好不容易把相位裕度调到了 60 度,结果一跑噪声仿真,发现噪声偏大,然后去改运放输入管尺寸,回来再跑稳定性,发现相位裕度又变了。这种"按下葫芦浮起瓢"的循环非常消耗时间。

我在实践中的一套联动调参顺序是这样的:

  • 先做 DC 工作点扫描,确认电路核心工作正常,输出在目标电压附近。
  • 再做稳定性仿真,确保在所有工艺角和温度下相位裕度都大于 45 度。
  • 接下来的重点是 PSRR 仿真,原因是 PSRR 反映的是环路增益和寄生耦合情况,如果 PSRR 很差,调节运放增益或输出阻抗通常会改变稳定性,所以要先定下来。
  • 然后是噪声仿真,因为噪声调整通常涉及工作电流和管子尺寸,这会改变功耗和面积,放在 PSRR 后面调,可以避免反复。
  • 最后做启动仿真,这是因为启动问题往往和器件尺寸、偏置条件有关,其他指标调完后,启动电路再针对性地修改,不会牵一发动全身。

这个顺序并不是绝对的,但对我来说成功率最高。

在工艺角仿真方面,IC5141 中可以用 "Design Variable" 或 "corner" 配置来跑多个工艺角。Bandgap 最常用的是tt、ff、ss、sf、fs五个角,再加上温度范围 -40、27、125,共 15 种组合。你可能觉得 15 种组合很多,但 spectre 跑起来其实很快。我的建议是,不要只跑典型角就收工,至少跑两个极端角(ss 125 和 ff -40),它们往往能暴露最恶劣的情况。比如 ss 角下 BJT 增益低,启动可能失败;ff 角下寄生电容大,稳定性可能变差。

还有一个容易被忽视的仿真技巧:蒙地卡罗分析。IC5141 中 spectre 支持 Monte Carlo 仿真,用于模拟工艺偏差对输出精度的影响,包括失配分析。对 Bandgap 来说,运放输入对管的失配会直接导致系统失调电压,这会影响输出电压精度。一般来说,Mismatch 引起的最差失调大约在几毫伏到十几毫伏之间,对应到输出大约会造成 0.1% 到 1% 的误差。如果你的 Bandgap 要求全温全工艺下精确到 1% 以内,那么失配分析基本是必须的。

在调参过程中,我积累了一些细节经验供参考:

  • 电流密度比不宜过大:两个 BJT 的面积比常用 1:8,但有些设计会用到 1:24 甚至更大。更大的面积比可以提高 ΔVBE 的幅度,但也会增加版图面积和失配风险。一般而言,1:8 是精度和面积的折中。
  • 运放失调电压要优先优化:Bandgap 输出电压的温度特性主要由电阻比例和 BJT 面积比决定,但运放失调电压是直接加在输出上的,它不随温度变化,但随机性很强。把输入对管做成交叉耦合等匹配方式,能显著降低失调。
  • 电阻温度系数匹配比绝对值更重要:Bandgap 的输出电压依赖两个电阻的比值,如果两个电阻用不同材料或不同宽度,其温度系数失配会导致温漂曲线弯曲。建议让两个电阻在同一层材料中实现,且保持相同的宽度和方向。

我在一个温度计项目中,用 IC5141 调一个 Bandgap 从初始状态到最终通过全角验证,花了整整两天。印象最深的问题是启动电路和 PSRR 之间的矛盾:为了让启动更可靠,我给启动管加了一条直流通路,但这条通路在高频时把电源噪声直接耦合到了输出,导致 1MHz 处的 PSRR 大幅下降。最后我改用一个小电容来耦合一阶钉扎信号,启动完成后该通路自动关闭,PSRR 才恢复正常。这个经历告诉我:Bandgap 的设计没有"局部最优",任何一项指标的改动都可能影响其他指标,所以仿真要联动,调参要整体。

7. IC5141 仿真常见报错速查与收敛性调优

IC5141 虽然成熟稳定,但在 Bandgap 仿真中还是会遇到不少报错和收敛性问题。这些报错很多不是电路问题,而是仿真设置问题,但如果不熟悉,会浪费大量时间。我把最常遇到的几类整理出来,并附上我的解决思路。

7.1 "No DC path to ground" 类报错

这类报错通常出现在电容耦合的启动电路中。Bandgap 输出端如果有一个纯电容负载,没有直流泄放电阻,Spectre 会报没有 DC 通路到地。解决方法是给输出节点加一个大电阻到地,比如 1GΩ,这个电阻不会影响正常工作点,但能提供 DC 通路,帮助仿真器收敛。这个电阻在最终版图中可以理解为输出负载的直流泄漏,不一定是真实电阻。

7.2 "Time step too small" 或瞬态不收敛

Bandgap 电路电源上电或启动过程中,电流变化剧烈,Spectre 可能因为步长太小而报错。解决方法包括:

  • 增大gmin到 1e-9。
  • 调整iabstol和vabstol到更宽松的值。
  • 将仿真器的reltol从默认值适度放大,比如从 1e-3 调到 1e-2,这样可以加快收敛,但精度会有一定折扣。
  • 使用gear2或trap积分方法切换,有时候可以改善数值稳定性。

值得注意的是,报错的根源也有可能是电路本身有问题——比如某个节点存在明显的环路增益过高导致的数值振荡,这时单纯调整仿真器参数只是掩盖了问题,建议先用 DC 扫描或 AC 仿真确认环路稳定性。

7.3 器件未定义或模型缺失

IC5141 中常见的问题是,原理图中调用了某个器件,但工艺库没有绑定该器件的模型。我的排查方法是:在 ADE 中打开 Simulation -> Netlist and Run,先查看生成的网表,看是否有model语句缺失。如果某个 BJT 或电阻没有对应的 model,Spectre 会直接报"instance ... model not found"。此时需要检查lib.defs是否包含了正确的工艺库视图,或者在 netlist 中追加model定义。

7.4 STB 仿真环路选择报错

STB 仿真在 IC5141 中使用时,需要手动指定 probe 或自动探测环路。如果电路结构比较复杂,Spectre 可能找不到合适的断点,报"cannot find loop"。解决方法是改用iprobe明确指定断点,或者把环路简化后再跑 STB。我的经验是,在 Bandgap 中用 STB 时,尽量选择一个单一信号路径清晰的位置作为断点,比如运放输出到反馈网络之间的连线,这样 STB 才能准确计算环路增益。

7.5 运行 long tran 时的仿真速度问题

Bandgap 启动仿真需要跑较长的时间,但 spectre 在长仿真中可能很慢。一个提升效率的方法是先用较粗略的精度跑一遍,确认启动基本正常,然后用更高的精度跑最终验证。另一个方法是对电路做简单的简化——比如把运放的偏置电流源理想化,或者把某些对启动和瞬态影响很小的支路移除,这样可以减少节点数,仿真速度可能提升一倍以上。

IC5141 的 ADE 环境还有一个特性:它可以同时跑多个仿真视图。如果你的 Bandgap 有不同配置,你可以创建多个 config view,分别对应不同的仿真场景,比如一个用于稳定性和 PSRR 的 AC 仿真,一个用于启动的 tran 仿真,这样切换场景时不需要反复修改原理图的激励条件。

8. 仿真结果解读与项目验收:从"看起来能跑"到"数据可信"

跑完四大仿真只是第一步,更关键的是学会解读仿真结果,判断数据是否可信,是否能满足项目需求。我遇到过有些人跑出来的波形明明存在异常,但他们以为那是正常现象,最后流片回来才发现问题。所以我觉得有必要专门聊聊"结果验收"的问题。

先看稳定性结果。Bandgap 的相位裕度在不同工艺角、温度下的最小值和最大值的差异应当在一个合理范围内。如果发现某个角的相位裕度突然下降了 20 度,不要觉得只是运气不好,背后大概率有明确的物理原因——比如某个寄生电容在那个角下变大,或者某个电流变小导致极点向低频移动。这时候应该回到电路原理上找原因,而不是强行把补偿电容加大。我在调一个 Bandgap 时发现 ff 角下相位裕度明显偏小,排查后发现是运放第二级输出管的跨导在 ff 角下变大,导致输出极点往高频走,加剧了与次极点的相互作用。解决方法是减小第二级管的尺寸,让跨导回到合理水平。

再看噪声结果。输出噪声谱密度在低频和高频的值要分别记录,低频值一般对应 flicker noise,高频值对应热噪声。如果你的目标是给 ADC 提供基准电压,需要计算带内积分噪声,而不是只看单点噪声。比如 ADC 的带宽是 20kHz,你就应该对噪声谱从 0.1Hz 积分到 20kHz,得到总 RMS 噪声,再判断是否满足 ADC 的 SNR 要求。这个计算在 Calculator 中可以用积分函数完成,非常方便。

PSRR 结果的验收更要结合具体应用。如果 Bandgap 给 LDO 供电,那么你更关心的是电源纹波在 Bandgap 输出端的衰减,以及这个输出会不会通过 LDO 的反馈网络进入 LDO 的输出。如果 Bandgap 给 ADC 参考供电,那么你对 PSRR 频谱的全段都要有比较严格的限制,尤其是开关电源的开关频率附近,因为那些频率下往往有较大的纹波成分。通常情况下,我要求 Bandgap 在开关频率处的 PSRR 至少大于 40dB,否则需要在 Bandgap 输出端加一级额外的滤波。

启动结果的验收标准是:在所有工艺角、温度、电源上升时间组合下,输出电压最终都能达到正常值的 99% 以上,并且在整个瞬态过程中没有出现长时间的振荡或异常跌落。我还习惯同时观察几个内部节点的电压,比如启动电路和核心电流镜节点的电压,确认它们在启动完成后确实被关断或进入了正确的状态。启动电路如果启动完成后仍然有漏电,会引入额外的功耗和噪声,这在低功耗设计中是不能接受的。

最后是工艺角和蒙地卡罗的综合评估。Bandgap 的输出电压精度通常用 3σ 来评估,3σ 的偏差范围应当满足系统规格。如果 3σ 超过 2%,通常需要调整版图匹配方式或者增大相关器件面积。IC5141 中 Mont Carlo 的仿真结果可以直接生成柱状图分布,你可以很方便地读取均值和标准差。这部分数据对项目的最终评审非常重要,因为流片前的电路评审几乎一定会问到"全工艺全温度最差情况下的输出误差是多少"。

我自己的经验是,每做完一轮仿真,都要把关键数据记录在一个表格里,包含工艺角、温度、相位裕度、PSRR@1kHz、输出噪声积分、输出电压、启动状态等等。这样你可以很快地看到哪些组合是最差的,然后在优化时重点关注这些组合。如果只在典型角下看数据,你可能会对自己电路的健壮性产生过度乐观的估计。

9. 从 Bandgap 仿真延伸到系统设计:四大指标如何支撑整体芯片架构

很多初学者做完 Bandgap 仿真后,会觉得这四个指标就是一堆数值,跟整个芯片设计没什么关系。但实际上,Bandgap 是几乎所有模拟系统的基础模块,它的性能直接决定了系统级芯片的精度和稳定性。在项目评审或者写设计文档时,你需要能够把 Bandgap 的噪声、PSRR、稳定性和启动特性映射到系统需求上,这才是仿真价值最大化的体现。

以 LDO 为例,LDO 的输出噪声和电源抑制能力不仅取决于 LDO 本身,更取决于其内部基准电压源的性能。如果 Bandgap 的输出噪声很大,LDO 输出噪声会被直接放大;如果 Bandgap 的 PSRR 不好,VDD 上的纹波会通过基准支路进入 LDO 的误差放大器,最终耦合到 LDO 输出。所以在设计 LDO 时,通常要反过来给 Bandgap 定指标,比如"基准噪声在 1kHz 处不得高于 X,PSRR 至少达到 YdB",然后让 Bandgap 的仿真结果去 validate 这些指标。

对于 ADC 来说,Bandgap 提供的参考电压是转换器精度的基石。一个 12 位 ADC,如果参考电压偏差超过 1 LSB,那么整个转换器的线性度和增益误差都会恶化。所以 Bandgap 的温漂、噪声、负载调整率等指标都必须与 ADC 的位数和输入范围匹配。在做系统仿真时,可以把 Bandgap 的噪声模型和 PSRR 模型带入到 ADC 的行为级模型中,观察对 SNR、SFDR 的影响。IC5141 中虽然可以用 spectre 做混合信号行为级仿真,但对 Bandgap 这种精细模拟模块,我更推荐先用 Cadence 的各种分析功能把模块指标摸透,再在更高层次用 Simulink 或 Verilog-AMS 做系统级验证,这样效率更高。

启动特性在系统设计中也有重要作用。如果芯片有多个电源域,Bandgap 的启动时间决定了系统上电后的"准备时间"。如果 Bandgap 启动太慢,可能导致后级电路在上电初期出现错误状态,甚至引发闩锁。所以在系统设计时,需要规定 Bandgap 的启动时间上限,比如"必须在 VDD 上电完成后 100µs 内建立稳定输出"。这个指标必须在仿真中验证,而不是靠估算。

我还建议在设计文档中把四种仿真结果整理成一套完整的图表,包括:

  • 稳定性:Bode 曲线不同角度的叠加图
  • 噪声:输出噪声谱密度与各器件贡献 breakdown
  • 启动:VDD、输出电压、内部关键节点的瞬态波形
  • PSRR:频率扫描曲线,并标注关键频点

这样在向团队或导师汇报时,别人能一眼看出你做了哪些验证,结论是否可靠。IC5141 的 ADE 支持把仿真曲线直接导出成图片或者数据文件,方便插入文档。

最后提一个很多人忽略的点:仿真精度与实测差异。IC5141 的 spectre 是业界公认精度较高的仿真器,但它仍然基于模型和参数提取,和真实芯片之间会有偏差。尤其是 BJT 模型中的寄生电阻、电容参数,往往在典型值下的准确度较高,在极端工艺角下可能偏差较大。所以,仿真结果在接近指标边界时,要手动留出 10% 到 20% 的裕量,不要卡着规格值流片。我在实际项目中就遇到过仿真结果 PSRR 在 1MHz 处是 43dB,流片回来后实测只有 38dB 的情况。幸好当初设计时留了余量,否则整个芯片可能因为这一个指标不过关而返工。从那以后,我所有的指标验收都至少留 5dB 或 10% 的裕量。

调试 Bandgap 是一项很能锻炼模拟电路直觉的工作。每当你调整一个参数,观察四种仿真结果的变化,你会逐渐理解电路各个环节之间的耦合关系。这种直觉不是看书能获得的,而是靠一次一次仿真、一次一次排查报错、一次一次实测对比积累起来的。如果你正在用 IC5141 跑 Bandgap,希望这篇教程能帮你少走一些我当年走过的弯路。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询