ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

IC5141下Bandgap四大仿真实战:稳定、噪声、启动与PSRR调参指南

IC5141下Bandgap四大仿真实战:稳定、噪声、启动与PSRR调参指南 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 稳定性不好通常表现为两种情况低频振荡电源上电后输出出现低频等幅振荡这通常是因为正反馈环路增益太接近负反馈环路增益电路处于临界状态。高频振铃瞬态仿真中输出有一个高频衰减振荡这通常是因为运放带宽太宽次主极点和高频寄生极点距离太近相位裕度不足。解决低频振荡的关键是调整 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 噪声的主要来源有三个电阻热噪声所有电阻都会贡献热噪声其功率谱密度是4kTR。Bandgap 中的电阻值通常在几十 kΩ 到几百 kΩ所以电阻热噪声非常显著尤其是在低频段。BJT 的 shot noise 和 base resistance noiseBJT 的集电极电流散粒噪声和基极电阻热噪声会通过环路放大在输出端形成噪声。运放的输入噪声运放输入管的 flicker noise1/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 中做启动仿真的标准做法是在 ADE 中新建一个瞬态分析tran。设置电源 VDD 从 0 开始在一个很短的时间内比如 10µs从 0 阶跃到标称值。这里推荐用pulse源或者vpulse让电源有个明确的边沿而不是 DC 直接给高电平。仿真总时长要足够长通常是几十微秒到几百微秒取决于 bandgap 的环路带宽和启动电路的恢复速度。观察输出电压是否最终收敛到稳定值。如果启动仿真的结果是输出最终稳定在 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µsVDD 慢速上升1msVDD 先快速上升、中途回落再上升模拟掉电重启每种场景都要验证输出电压最终都能收敛到正常值。如果其中任何一个场景启动失败说明启动电路余量不足需要重新设计。在简并点分析方面IC5141 中可以直接用 DC 扫描来看是否存在多个平衡点。方法是对 VDD 做 DC 扫描从 0 扫到标称值看输出电压的转移曲线。如果曲线出现跳变或回滞说明存在多个稳定点。更细致的做法是用 spectre 的dc分析配合sweep指定不同初始条件看最终稳定在哪个点。值得提醒的是这种 DC 扫描的结果和初始条件设置有很大关系同一个电路不同的ic可能得到完全不同的 DC 解这正好说明了简并点存在的本质。修复简并点问题的经验是启动电路必须在所有工艺角和温度下都能正常工作。冷启动、高温启动、工艺偏差下的启动能力差异很大我在一个项目里就遇到过 27 度启动正常、-40 度启动失败的例子。原因是启动电路的偏置在低温下电流太小无法把核心节点拉到足够的电位。后来把启动管的宽长比加大并且增加一个轻微的上拉支路问题就解决了。5. PSRR 仿真从 DC 增益到高频抑制的完整频谱分析和提升手段PSRRPower Supply Rejection Ratio是 Bandgap 基准最重要的指标之一因为它直接决定了电源上的纹波和噪声有多少会耦合到基准输出。对于后级接 LDO 或 ADC 参考的电路来说如果 Bandgap 的 PSRR 太差电源上的开关噪声或者 50Hz 工频干扰就会直接进入输出整个系统的精度就无从谈起。在 IC5141 中做 PSRR 仿真标准的做法是交流小信号分析将 VDD 设为标称值并在 VDD 上串联一个 AC 幅值为 1V 的小信号源也可以用 AC 源并联在 VDD 上根据电路结构来定。设置 AC 仿真扫描频率从 1Hz 到 1GHz 或更高。输出端取 Bandgap 输出电压的 AC 幅值这个值就是电源到输出的增益记为G_ps。因为输入是 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 或电阻没有对应的 modelSpectre 会直接报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 的仿真结果可以直接生成柱状图分布你可以很方便地读取均值和标准差。这部分数据对项目的最终评审非常重要因为流片前的电路评审几乎一定会问到全工艺全温度最差情况下的输出误差是多少。我自己的经验是每做完一轮仿真都要把关键数据记录在一个表格里包含工艺角、温度、相位裕度、PSRR1kHz、输出噪声积分、输出电压、启动状态等等。这样你可以很快地看到哪些组合是最差的然后在优化时重点关注这些组合。如果只在典型角下看数据你可能会对自己电路的健壮性产生过度乐观的估计。9. 从 Bandgap 仿真延伸到系统设计四大指标如何支撑整体芯片架构很多初学者做完 Bandgap 仿真后会觉得这四个指标就是一堆数值跟整个芯片设计没什么关系。但实际上Bandgap 是几乎所有模拟系统的基础模块它的性能直接决定了系统级芯片的精度和稳定性。在项目评审或者写设计文档时你需要能够把 Bandgap 的噪声、PSRR、稳定性和启动特性映射到系统需求上这才是仿真价值最大化的体现。以 LDO 为例LDO 的输出噪声和电源抑制能力不仅取决于 LDO 本身更取决于其内部基准电压源的性能。如果 Bandgap 的输出噪声很大LDO 输出噪声会被直接放大如果 Bandgap 的 PSRR 不好VDD 上的纹波会通过基准支路进入 LDO 的误差放大器最终耦合到 LDO 输出。所以在设计 LDO 时通常要反过来给 Bandgap 定指标比如基准噪声在 1kHz 处不得高于 XPSRR 至少达到 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希望这篇教程能帮你少走一些我当年走过的弯路。
返回列表