ARTICLE DETAIL

资讯详情

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

Cadence IC5141 Bandgap电路四大仿真完整流程与调参实战

Cadence IC5141 Bandgap电路四大仿真完整流程与调参实战 玩模拟 IC 流片前Bandgap 电路往往是大家第一个认真啃的模块。它看似简单——一个差分放大器、一对双极管、一串电阻目标只有一个输出一个不随温度乱飘的基准电压。但真到了 Cadence IC5141 里把它端到台面上做仿真你会发现稳定性、噪声、启动、PSRR 这四座大山是躲不掉的。尤其是 IC5141 这个版本已经有年头了很多新版本里自动帮你处理的东西都得手动配稍不注意仿真器就不收敛或者跑出来一个看起来正常、但实际上完全偏离真实电路状态的结果。这篇保姆级教程就是冲着解决这些问题来的。我会按实验室实际跑仿真的顺序把 Bandgap 四大仿真的完整流程拆开先是环境和电路准备然后是稳定性STB、噪声Noise、启动Start-up、电源抑制比PSRR各自的操作方法、参数设置、结果判读、调参思路最后再把那些容易踩的坑整理成速查表。无论你是刚入门模拟 IC 的研究生还是准备 Tape out 前做一轮完整验证的工程师这篇内容都可以直接拿来当操作手册用。1. 跑 Bandgap 仿真前先把模型库和电路准备做扎实1.1 Cadence IC5141 里的模型库配置检查IC5141 是个老工具但胜在稳定。很多老工艺和高校实验室到现在还在用它。跑 Bandgap 我推荐直接用 Spectre 仿真器主要原因是它内置的 stb 分析集成度高读取后端提取寄生后的网表也更顺利不像 hspice 那样还要自己倒腾各种控制语句。操作上打开 ADE L 之后先做三件事。第一确认 Simulator 选择的是 spectre位置在菜单 Simulation - Simulator别选成 hspiceS。第二检查 Model Library在 Setup - Model Libraries 里把工艺厂商提供的 Spectre 模型文件加进来常见后缀是 .scs 或 .lib。第三先跑一次最简单的零输入 DC 仿真看仿真器有没有报“模型读不进来”的警告。这一步别看简单我见过不少同学仿真发散、管子逻辑符号报错查半天最后发现只是 model 路径指错了。尤其注意Spectre 吃的是 .scs 这类格式不是 hspice 的 .lib如果你拿 hspice 模型硬灌进去仿真器不会明着拒绝但 DC 点经常会莫名其妙偏掉。由于 IC5141 的默认搜索路径是按安装目录写死的如果 model 文件放在自定义目录我建议直接在 ADE 的 Model Libraries 窗口里填绝对路径不要偷懒写相对路径。这个环节多花五分钟后面四种仿真能省下至少两个小时。1.2 Bandgap 核心电路节点规划与 DC 点预检Bandgap 的基本原理是把负温度系数的 VBE 和正温度系数的 PTAT 电压按比例合成得到一个理论上随温度变化很小的基准电压。典型结构是一个运放强制两输入端电压相等让 ΔVBE 加在电阻上产生 PTAT 电流再复制到输出支路与 VBE 叠加。对仿真来说开始之前要先把电路里四类关键节点规划好基准输出节点、反馈网络检测点、启动电路控制点、电源和地。为每个节点取一个有意义的名字比如 vout、vfb、vstart、vdd后面在 ADE 里写表达式时会非常省事。别用原理图默认生成的 N0、N1 这种序号节点跑复杂分析时很容易把自己绕晕。我还有个习惯正式开始四大仿真之前一定先跑一遍 DC 分析预检工作点。重点看 vout 的静态电压是否落在设计值附近比如 1.2V 的基准就不要偏出几十 mV 太多。如果 DC 点差得离谱不要急着上 AC、tran、noise因为后面所有仿真全部建立在正确 DC 工作点之上。DC 点过不来常见原因无非三种管子工作区不对、反馈极性接反、模型库有问题。先解决这三个再往下走。2. 稳定性仿真完整流程STB 分析设置与相位裕度调参2.1 STB 探针插在哪、为什么插那稳定性仿真要回答的问题把环路断开从某一点注入一个小信号绕着环路走一圈回来信号增益和相位变化了多少。当环路增益降到 0dB 也就是单位增益时如果相位裕度不够负反馈系统就可能变成正反馈电路振荡输出出现持续抖动这是 Bandgap 绝对不能接受的现象。工程上最关注两个数单位增益带宽 UGBW 和相位裕度 PM。对带隙基准这种常年工作在直流附近、输出稳定慢速变化的模块通常要求 PM 大于 60°保守一点的设计目标是 70°UGBW 则根据功耗预算和系统要求的建立时间确定。Bandgap 的主环路一般包括运放内部增益级、运放输出到调整管的连接再通过反馈电阻网络回到运放输入。在 Cadence IC5141 里我习惯在环路断口处放一个 analogLib 库里的 iprobe 元件它符号是一个带箭头的两端口器件串在反馈路径里直流是短路的不会破坏电路工作点却能给 AC 小信号提供测量端口。探针放置位置很有讲究。推荐放在运放输出到反馈电阻串入点之间或者用 PMOS 调整管时放在调整管栅极和运放输出之间。这样量到的是从运放输出、经过反馈网络、回到输入的整个主环路。注意不要放在辅助偏置支路或启动电路里否则测出来的不是主环路的裕度判别结果会失真。2.2 ADE L 中的 STB 参数设置与结果判读在 ADE L 中打开 Analyses - stbSpectre 的 STB 分析界面会让你指定 probe 实例直接选 schematic 里的 iprobe 元件即可。频率扫描范围我一般设 1Hz 到 1GHz如果知道环路带宽比较低可以缩小到 0.1Hz 到 100MHz。默认扫描点数可能只有几十建议手动设到 500 点以上否则相位曲线在穿越频率附近会严重失真相位裕度读数根本不可靠。跑完 STB最方便的是从 Results - Direct Plot 里选择 Loop Gain 和 Phase MarginSpectre 会把幅频曲线、相频曲线和裕度值一起画出来。你也可以在计算器里用 phaseMargin() 函数直接读数值。我强烈建议至少手工读一次曲线找到增益曲线与 0dB 线的交点频率再从相位曲线上读出该频率对应的相位值离 -180° 的差值就是相位裕度。手工读能逼着你理解环路行为而不是只看一个数字。很多所谓的“指标通过”其实是在一个错误仿真设置下自欺欺人。注意iprobe 的插入点必须保证直流回路不被切断。如果探针方向接反或者插在偏置电流镜支路里DC 解一开始就是错的后面全白跑。2.3 相位裕度不足时的三个调整方向第一版 Bandgap 跑 STB最常见的现象是 PM 只有 20° 到 40°输出波形带着高频毛刺。调参有四个常规方向增加米勒补偿电容。把运放输出级的非主极点往低频推让增益交点前的主极点、第二极点和零点相互错开。补偿电容一般从几百 fF 扫到几 pF每扫一个值都重新看 PM。调运放输入管的跨导 gm 和尾电流。降低 gm 能减小环路增益峰值但也可能压低 DC 增益。想同时保住增益优先考虑增大第二级的输出阻抗或者用 cascode 尾电流源。在反馈电阻上并联前馈电容。这个电容会引入一个零点帮助拉升相位同时还能压掉一部分高频噪声。起始值可以从 100fF 量级开始试。检查启动电路是否还在工作。如果启动管没有完全关断它会给环路额外塞进一个传输函数极点严重影响 PM。调完主环路再看启动。调完一轮重新跑 STB同时观察 UGBW 和 PM。补偿电容不能无限加它占面积还会把后面要讲的 PSRR 高频特性拖垮。3. 噪声仿真完整流程Noise 分析设置与低噪声化调参3.1 Noise 分析参数怎么填带隙基准在系统里承担的是提供“干净”参考电压的角色它的噪声会直接进入 ADC 的信噪比、PLL 的抖动预算。所以噪声仿真不是可选项而是必须项。在 ADE L 里打开 Analyses - noise需要设置三个东西。Output Noise Voltage 填 VF(/vout)也就是把基准输出端的噪声谱密度给出来。Input Noise Source 我习惯选一个无关紧要的直流源或 AC 源因为这里关心的是输出端自身噪声不是算输入等效噪声。Frequency Sweep 覆盖关心的频带对基准源我一般扫 0.1Hz 到 10MHz0.1Hz 到 10Hz 看长期漂移和极低频闪烁10Hz 到 10kHz 关注 1/f 噪声10kHz 到 1MHz 关注白噪声和热噪声。跑完后用 Direct Plot 或者直接 plot 输出噪声谱密度单位是 V/sqrt(Hz)。很多同学一上来就看“噪声积分值”但我建议先看谱密度曲线因为不同频段的噪声来源完全不同一条曲线能告诉你问题到底出在哪一段。3.2 怎么找出噪声大头器件Spectre 的 Noise 分析会给出每个器件对总输出噪声的贡献百分比。你可以通过 Results - Direct Plot - Noise 调出那张器件贡献表非常直观。排在前面的通常就是设计重点。按我的经验Bandgap 噪声的头号来源是运放输入差分对管。输入对管的热噪声正比于 4kTγ/gm闪烁噪声与沟道面积、氧化物界面态密度相关。第二个大头是 PTAT 电流生成电阻和输出分压电阻阻值越大热噪声越大。第三个是双极晶体管的基极电阻和集电极电流散弹噪声这个在简化模型里经常被忽略但实际仿真贡献不小。低频段尤其要警惕输入管的闪烁噪声。闪烁噪声谱密度大致与 1/(Cox·W·L·f) 成正比所以加大输入管的沟道长度 L 和面积 W·L 是最直接手段。与此同时不能无脑加大尾电流因为功耗和稳定性都会跟着变。3.3 降噪声的三个实用调参方向输入管面积翻倍低频噪声往往能降 3 到 6dB。我常用 20u/1u 起步往 40u/1u 调每次调整都重新看噪声谱同时跑一次 STB 确认环路没炸。把带隙核心的电阻值往下压。在电流不变的前提下阻值减半热噪声下降约 3dB但 ΔVBE 电阻分压的电压裕量会变紧要回头查 DC 点是否还能满足温度特性。在输出端按应用需求加一级 RC 低通或片外大电容。这个对高频白噪声特别有效但基本救不了低频闪烁因为 RC 截止频率往往在几千赫兹以下时对 1/f 噪声的抑制作用有限。调噪声的过程是“牵一发动全身”。你为了降噪声把尾电流加大环路增益变了稳定性又得重调电阻减小、电流增大功耗又上去了。所以我的习惯是噪声仿真和稳定性仿真交替进行每改一个器件尺寸就同步跑一把 STB避免噪声指标达标了环路却开始振荡。4. 启动仿真完整流程简并点验证与启动电路调参4.1 简并点是怎么回事Bandgap 电路天然有两个直流工作点一个是我们希望的正常工作点另一个是“零电流”的简并点。上电时如果所有管子都处于关断状态环路电流接近零运放输入差分对建立不起来有效增益反馈网络会把电路锁在零电流状态输出电压趴在 0V 附近怎么等都等不醒。这是 Bandgap 必须要带启动电路的根本原因。启动电路的本质是打破零电流平衡。常见做法是用一个小电流支路检测某个节点电压输出电压太低时就强制往外拉或者往内灌电流把主回路从简并点“踹”到正常解附近一旦主环路自己建立起正确电压启动电路再自动关断不影响正常工作点。在 Cadence 仿真里验证启动是否成功最直接的方法是看完整 Bandgap 从 0V 电源爬坡到目标电压时vout 能不能自己爬起来并且最终稳定在设计值。4.2 上电瞬态仿真与简并点检查方法操作上我会给 VDD 设成一个脉冲源或分段线性源。用 analogLib 里的 vpulse 时参数可以这样给V10VV23.3Vdelay0rise1usfall1uswidth1msperiod1ms。上升沿不要太陡太陡会掩盖一些启动瞬间的动态问题也不要太缓太缓会拖长仿真时间一般 1us 到 10us 都合理。然后在 ADE L 里设置 Tran 分析停止时间设 1ms 左右最大步长 maxstep 设 100ns 或更小精度选 moderate 或 conservative。仿真完成后同时 plot vout 和启动控制节点 vstart 的波形。判断标准有三条第一上电后 vout 能迅速爬起来没有长时间趴在低电平第二最终电压与 DC 分析得到的基准值一致误差在 mV 级而不是 V 级第三启动控制节点最终被关断启动支路不再消耗明显电流。如果想更严格地排查简并点我还会做一次不同初始条件下的 DC 扫描。具体做法是在 DC 分析之前给 vout 节点设置不同的 nodeset 或 ic分别设为 0V、1.2V、3.3V看三次收敛结果是否都是同一个解。如果初始条件为 0 时永远收敛到 0V说明启动电路力度不够没法把环路从死锁里踢出来。4.3 启动失败、启动过慢的排查经验卡死在 0V检查启动管尺寸是否太小驱动电流到没到 μA 量级或者启动支路本身没有从 VDD 形成完整通路。我见过比例很高的情况是启动 NMOS 的源漏接反了或者串的电阻太大导致启动电流微乎其微。启动后先冲到目标值又掉回来说明启动电路没有完全关断它还在和主环路抢电流。这时候要增强关断逻辑调整启动管的宽长比让它在正常节点电压下彻底截止。启动时间过长比如到了几百微秒量级系统里通常无法接受。可以适当加大启动电流但代价是功耗和面积也可以减小启动电阻但启动支路稳态漏电会增大需要按规格去平衡。启动过程中出现振荡往往是启动电路引入了一条额外反馈路径破坏了主环路相位。检查启动管栅极是否寄生耦合到了运放敏感节点必要时给启动节点加一个小 RC 滤波。5. PSRR 仿真完整流程VDD 上叠 AC 与提升方法5.1 PSRR 测试原理与仿真设置PSRR 反映的是电源扰动对基准输出电压的抑制能力数学上可以定义为 ΔVDD 到 ΔVREF 的小信号增益单位是 dB一般给负值数值越小说明抑制能力越强。仿真方法说起来非常简单在 VDD 直流源上设置 AC magnitude 1V然后跑 AC 分析看 vout 的 AC 响应。因为 AC 源幅度是 1Vvout 上的 AC 小信号电压直接就是传递函数 Vout/VDD。比如低频处得到 -80dB说明电源纹波传到输出后只剩万分之一。跑完 AC 后在输出表达式里用 dB20(VF(/vout)) 画图纵轴越往下越低PSRR 越好。这里有一个容易翻车的细节AC 小信号必须加在真正的电源节点上而且要保证给偏置电流源供电的电源树也一起抖动。如果只把 VDD 的小信号加上了但某个偏置支路却接在另一个独立电源节点上测出来的 PSRR 会虚高流片后电源网络一合并指标立刻现原形。5.2 低频段和高频段分别怎么提升 PSRR从低频到高频PSRR 曲线大致是这样直流和低频段环路增益很高电源噪声经过负反馈被压得很低曲线一般在 -60dB 以下随着频率升高环路增益下降PSRR 逐渐变差到了运放带宽附近高频噪声可能直接从电源寄生电容耦合到输出曲线会有一个抬头甚至上翘的趋势。低频段提升 PSRR 的本质是提高环路增益。可以增大运放输入跨导或输出阻抗采用 cascode 电流镜、cascode 输出级。高频段则要降低输出到电源之间的寄生耦合注意保护环和阱电位布局必要时在输出支路加 RC 低通同时在 Bandgap 的镜像电流源与电源之间放一个去耦电容把高频毛刺引到地这对 1MHz 以上的 PSRR 改善非常明显。实际工程中低频 PSRR 通常要求小于 -60dB。如果要求更严格比如给低噪声 LDO 提供基准我一般会先加一个简单的预调节器把电源噪声洗一遍再给 Bandgap 供电。跑 Bandgap 自己的 PSRR 时我习惯把 1kHz 和 1MHz 两个点单独记下来对照规格书顺便和噪声仿真在 1kHz 处的谱密度交叉验证确保低频段没有异常峰。6. 四项指标联调经验牵制关系、问题速查与避坑技巧6.1 四大仿真指标之间的牵制关系Bandgap 的四个仿真指标不是独立优化的它们共享同一套器件尺寸和偏置电流。调完一个再调另一个往往会把前面的结果破坏掉。我自己的实践体会是稳定性与 PSRR 存在直接矛盾。提高环路增益能改善低频 PSRR但往往带来更低的相位裕度必须靠补偿电容找回稳定。补偿电容加得越大高频 PSRR 就越差因为补偿电容本身就提供了电源到输出的直通路径。噪声与功耗是另一对矛盾。降噪声要加大电流和管子面积功耗随之上升想压功耗就要在噪声和稳定性余量上让步。启动电路与正常环路同样有冲突。启动管尺寸太大、关断不彻底时会拉低正常工作点的 DC 精度和 PSRR所以启动支路电流通常控制在主回路稳态电流的 1% 以内。噪声与 PSRR 的取舍也常常被忽略。输出端加 RC 滤波高频 PSRR 改善但输出噪声带宽变小积分噪声可能反而升高关键看你关心哪个频段。我的调参顺序是先定功耗预算再定输入管尺寸和尾电流接着跑噪声和稳定性最后把启动电路接回去看整体瞬态。这样走一圈比上来就抠某一个指标效率高得多。6.2 仿真器常见报错与问题排查表我把这几年带新人调 Bandgap 时遇到的典型问题整理成了速查表方便直接对照。现象可能原因排查与解决spectre 提示模型文件读取失败model path 写错或格式不匹配用绝对路径重新添加 .scs 模型确认与仿真器匹配stb 仿真不收敛DC 工作点没有建立先单独跑 DC检查 vout、vfb 电压是否合理tran 波形一直停在 0V无启动电路或启动管失效检查启动支路电流确认器件没有接反相位裕度小于 30 度环路增益过高或带宽过大增大补偿电容或减小运放 gm输出噪声谱异常高输入管面积太小或电阻阻值过大增大输入管 W·L降低核心电阻阻值PSRR 低频只有 -40dB环路增益不足增大运放增益或采用 cascode 输出级PSRR 高频明显抬头补偿电容或电源寄生耦合输出加 RC 滤波电源加去耦电容这张表覆盖了最常见的几类问题但底层逻辑是共通的如果遇到仿真发散先不要急着改电路参数优先检查模型库、初始条件、浮空节点这三个最基础的地方。很多时候问题根本不在 Bandgap 本身而是电源或地节点没有接全ESD 模型混进来或者节点名字写错导致表达式取到了空信号。最后再分享一个我自己坚持了很久的小习惯每改一次关键器件尺寸我会在 ADE 里同时打开 STB、Noise、AC 三个分析一次性跑完再用计算器把相位裕度、1kHz 噪声、1kHz 和 1MHz 的 PSRR 四个数值抄进一个 Excel 表边改参数边看趋势。这样很容易找到一组相对均衡的尺寸组合而不是在四个仿真之间反复横跳。用 Cadence IC5141 跑 Bandgap 这件事流程不复杂真正难的是把四个指标放到一起权衡。希望这份完整流程能帮你少走一点弯路。
返回列表