前阵子在实验室连续蹲了五个晚上,总算把一颗180nm工艺的无片外电容LDO(capless LDO)从架构设计一路推到版图后仿真通过。这个项目压在我心里很久了——"双环快速响应""极点分裂"这些概念,学生时代都能背,可真到自己画原理图、拉管子、盯AC曲线的时候,才发现书上的每一句话背后都藏着一堆"为什么"。今天不打算写成教程,就按这次实际落地的顺序,把设计动机、环路怎么搭、补偿怎么算、工艺里藏着哪些坑,以及两回翻车之后怎么改的,全部摊开聊聊。如果你也在做无片外电容的LDO,或者正要接一颗片上电源管理模块,这篇应该能帮你少走几段夜路。
1. 为什么非做无片外电容:从省引脚到躲不掉的稳定性账
1.1 传统LDO那颗大电容到底在干什么
传统方案里,输出端那颗1uF到4.7uF的陶瓷电容,表面上是滤波,实际是整个环路稳定性的支点。输出电容和负载电阻共同决定主极点位置,极点对LDO来说就是"锚",锚只要在,相位裕度就不难凑。更妙的是,陶瓷电容本身自带ESR零点,不少设计干脆靠这个零点抵消第二个极点的相移,整个环路设计基本是照方抓药。
但放到片上集成的场景,问题全变了。一颗片外电容至少占掉一个引脚,引脚在SoC和先进封装里是最贵的资源之一;封装引线还带寄生电感,高频时输出节点可能再冒出一个谐振峰,反而把环路搞坏。所以无片外电容LDO要解决的事情很清楚:把输出端电容从微法级压到几百皮法甚至完全靠负载寄生,同时还得保证全负载范围内环路稳定。
这里有个很直白的比喻:传统LDO像随身背了个大水箱,瞬态来了有存量顶着;无片外电容LDO等于把水箱撤掉,瞬态能量只能靠环路速度现产现送。这个定位决定了后续所有设计取舍——你不能再用"大电容压纹波"的思路,只能跟环路带宽和相位裕度死磕。
1.2 电容一撤,三个麻烦同时冒出来
第一个麻烦是输出极点上移。输出电容变小,极点频率升高,原来"单极点加ESR零点"的教科书方案直接失效。第二个麻烦是极点随负载漂移。负载电流从零到满载差两个数量级,调整管的跨导和输出阻抗都在剧烈变化,极零点位置整段漂移,固定补偿很难同时覆盖所有工作点。第三个麻烦是瞬态能量缺口。负载电流快速跳变时,没有外部大电容兜底,输出电压在几个纳秒内就能冲出几十上百毫伏,再等主环路去救,那是以微秒计的响应速度,时间上根本来不及。
看清这三个麻烦之后,双环加极点分裂的架构就不是什么炫技了,而是被问题倒逼出来的必然选择。下面分别拆开说。
2. 双环到底怎么分活:主环管精度,辅环管"事故现场"
2.1 主环路的常规操作
主环路是标准的负反馈结构:折叠共源共栅误差放大器、PMOS调整管、电阻分压反馈。直流增益做到60dB以上,负载调整率才能压进几十毫伏以内。误差放大器的输出节点接调整管栅极,这个节点在我这颗设计里是全场最敏感的节点,后面所有补偿动作几乎都围着它转。
我第一版主环的带宽目标定在GBW三兆赫兹左右,静态电流给误差放大器主支路留了大概35微安。为什么不敢再往上顶?因为GBW抬高之后,主环开始跟调整管栅极寄生极点、误差放大器内部镜像极点搅在一起,相位裕度哗啦一下往下掉,后面调起来极其痛苦。这也是很多第一次做capless LDO的人容易踩的:总想把带宽做高救瞬态,结果稳定性先崩了。
2.2 辅环的思路:dV/dt检测加瞬态增强
辅环的定位很明确——平时别插手,只在输出端出现快变时拉一把。我用的方案是在输出节点接一个小检测电容,配合高通网络提取dV/dt信号。负载从轻跳重、输出电压往下掉的那一刻,检测网络把负向dv/dt变成一股电流,直接对调整管栅极放电,把栅压往下拽,PMOS开得更狠,输出就能以最快速度被抬回来。反过来,负载从重跳轻、输出往上冲的时候,互补的灌电流支路负责抬高栅压,把过冲压住。
检测电容的取值很讲究。我第一版取了1pF,太小,瞬态信号提取不出来;后来并到1.2pF,配上几十纳秒的时间常数才顺起来。注意,这颗电容本身挂在输出节点上,等于给输出极点添了一份实打实的负载,设计时必须把它算进稳定性账里。辅环带宽我最终做到20MHz左右,比主环GBW高一个数量级,这样它在主环带宽内基本表现为一个高频支路,不会在低频段跟主环抢控制权。
2.3 两个环不许打架的约束
双环设计最忌讳的是两个环抢同一个节点。我的经验是:主环负责DC和低频,低频段增益必须绝对占优;辅环只在高频段出现,增益不需要高,能把栅极拉出足够的压摆就行。实现上要反复确认辅环的偏置电流、检测网络时间常数,以及它在栅极节点上的接入阻抗,确保辅环不会在几十千赫兹以下贡献任何相移。第一版我就是没管这点,辅环在低频留了一串寄生相位滞后,把主环的相位裕度硬生生吃掉一大块,这个坑放到后面详细复盘。
3. 极点分裂不是玄学:密勒补偿在LDO里的完整推导视角
3.1 从两级放大器公式看"分裂"
极点分裂说白了就是密勒补偿在LDO里的变体。把主环路等效成两级放大器:第一级是误差放大器,输出电阻记为R1,跨导记为gm_ea;第二级是调整管,跨导gm_p,输出电阻Rout。补偿电容Cc跨接在调整管栅极(第二级输入)和输出节点(第二级输出)之间。
由于密勒效应,Cc在栅极节点上看起来被放大了很多倍,等效电容约为Cc乘以(1+gm_p×Rout)。栅极节点本来就是高阻节点,被这个放大后的电容一压,自然变成环路主极点,频率大约在1除以(R1×Cc×gm_p×Rout)。与此同时,输出端那个极点被"推"向高频,理论上限大约在gm_p除以Cc。一个极点往下走,一个极点往上走,两个节点之间的频带被拉开,这就是"分裂"两个字的实际含义。
3.2 拿数值算一笔账
拿我这个设计算。满载50mA时,调整管过驱动电压设计在200mV左右,gm_p等于2倍电流除过驱动电压,算下来约0.5安培每伏。Cc取18pF,按教科书公式输出极点理论位置在4MHz以上。再看环路单位增益带宽,GBW约等于gm_ea除以Cc,误差放大器跨导设计到400微西门子,配18pF,GBW大约3.5MHz。这个数值是反复折中出来的:再往上顶,内部寄生极点全跑出来;再往下压,瞬态完全没法看。
这里必须说句实话——教科书公式成立的前提是输出端没有比Cc更大的电容。后仿一跑,输出节点因为ESD、检测电容、功率管体二极管,总寄生电容有280pF上下,比Cc大了一个数量级,所以输出极点并不能被推到理论那么高,最终数值全以仿真为准。这也是capless LDO跟普通两级运放补偿最大的区别:你以为在套公式,其实是在给一整套寄生系统做平衡。
3.3 轻载才是真正的修罗场
轻载是所有capless LDO的噩梦。负载电流100微安时,调整管gm_p掉到大约2毫西门子,而输出端280pF寄生电容一动不动,输出极点直接掉到1MHz附近——这个频率已经钻进GBW内部了,加上误差放大器内部极点和密勒前馈零点的相移,相位裕度能好看才怪。
我最后给调整管加了一条最小静态电流支路,轻载时保证有几十微安流过功率管,把gm_p托在4毫西门子以上,输出极点勉强压到2MHz开外。同时Cc串联的消零电阻Rz也起了关键作用:Rz大于1/gm_p时,密勒前馈的右半平面零点会翻到左半平面,反而给相位加分。轻载时1/gm_p大约500欧姆,Rz取3.3k,翻了近一个数量级,零点落在几百千赫兹,正好在主环交叉频率之前提供一段相位抬升。这套组合拳打下来,轻载才算站得住。
4. 180nm工艺的摩擦力:仿真器算不出、版图才告诉你的那些事
4.1 调整管的大尺寸与栅极阻抗
无片外电容LDO里,调整管是绝对的主角。50mA满载、过驱动电压200mV,按180nm工艺的p管参数粗算,宽长比要几千比一。实际我把单管做成8000微米比0.35微米,沟道故意拉长到0.35,不只是为了抗沟道调制,对匹配和漏电控制也有好处。这么大的管子必须切成上百个finger,栅极是poly加多层金属堆出来的,整条栅极线的寄生电阻电容都不能忽略。
瞬态响应最快的路径是"误差放大器输出到调整管栅极"。栅极本身的RC迟延一大,环路速度全被吃掉。所以我把栅极在版图上做成中间进、两端出,用长条形金属栅总线供电,每一段finger的栅电阻压到几欧姆以内。这个细节在LVS之前根本看不出来,但后仿差异非常明显——第一版后仿满载下冲比前仿多了40mV,查了半天,根源就是栅总线寄生。
4.2 关键支路的匹配和寄生
误差放大器输入对管、电流镜负载用common centroid加dummy,这些是模拟设计的童子功,不展开。但有两处容易忽略:一是反馈分压电阻,我用的poly电阻,阻值比例要精确,但电阻工艺角跟电容是反着走的,后仿在不同温度和工艺角下反馈系数有百分之几的波动,直接换算成输出电压误差;二是瞬态检测网络的匹配,检测电容和偏置管必须顺着功率管的方向走,否则版图不对称,两个方向的瞬态响应会出现肉眼可见的差异。
4.3 PVT和蒙特卡洛:轻载是真的筛人
我的关键规格是负载0到50mA、压差0.2V到1V、温度零下40到125摄氏度、工艺角FF/SS/FS/SF全跑。最折磨人的组合永远是轻载加SS角加高温:gm_p极低,密勒分裂能力最弱,相位裕度经常跌破45度。蒙特卡洛跑300次,能筛出好几颗相位裕度不到40度的样本,最后靠把Cc从15pF加到18pF、同时把辅环在轻载时的增益压低一档,才勉强全部捞回来。
还要提醒一句:180nm节点做LDO,ESD保护结构和功率管体二极管都会给输出节点加寄生电容。估算输出总寄生时别只盯着负载本身,我后仿拉出来的输出节点总电容比前仿预估多了一倍,轻载相位裕度第一版惨不忍睹,一半就是被这个坑的。
5. 两次翻车复盘:轻载振荡与重载瞬态的超标问题
5.1 翻车一:轻载相位裕度只剩11度
第一版设计前仿看着还行,一到轻载AC仿真,相位裕度直接掉到11度,时域仿真输出端出现了几百毫伏的振荡纹波。当时第一反应是补偿不够,盲目加大Cc,结果纹波没压下去,GBW反而掉到1MHz以下,瞬态变得更糟。
后来把各个负载点的极零点轨迹画出来才看清真相:轻载时调整管gm大幅下降,输出节点叠加上检测电容和ESD寄生,在增益交叉频率附近出现了第二簇密集极点;更致命的是密勒电容的前馈零点在轻载时飘到了低频,右半平面零点直接砍掉一半相位。这已经不是加大Cc能解决的问题。
我做了三件事救回来。第一,消零电阻Rz从2.2k调到3.3k,把轻载零点往左半平面推;第二,误差放大器内部镜像节点的本地补偿电容从0.2pF加到0.35pF,把那个内部极点推远;第三,辅环检测电容改到1.2pF并压缩时间常数,减少它在输出节点上的额外相移。三招齐下,轻载相位裕度稳定在55度以上。
5.2 翻车二:1ns边沿重载跳变,下冲320mV
相位调稳后还没高兴两天,瞬态又翻车。负载电流从10mA以1ns边沿跳到50mA,输出下冲320mV,离100mV的目标差了三条街。原因很清楚:主环GBW摆在那里,3MHz上下的闭环带宽,根本不可能在几十纳秒内补回能量。辅环虽然动了,但第一版瞬态放电支路的驱动能力太弱,栅极压摆率不够,调整管没有第一时间开满。
改法分两步。第一步,把辅环的瞬态支路从简单电流源改成拉灌两级结构:大压差时用锁存比较器直接把栅极低阻放电,等效一个开关,栅极压摆率瞬间提上去,平时则回到电流源模式,不影响DC。第二步,检测网络时间常数从100ns压到50ns,让辅环在负载跳变后更早介入。这两步改完,下冲降到85mV,过冲大约70mV,总算摸到目标线。
5.3 收敛后的关键参数清单
折腾到最后,核心参数如下,可以参考着对:
| 参数 | 最终值 |
|---|---|
| 调整管尺寸 | 8000μm/0.35μm,PMOS,120 fingers |
| 主环GBW | 约3.5MHz(满载,SS角略低) |
| 密勒电容Cc | 18pF |
| 消零电阻Rz | 3.3kΩ |
| 辅环带宽 | 约20MHz |
| 检测电容 | 1.2pF |
| 全链路静态电流 | 约85μA |
| 满载相位裕度 | 70度以上 |
| 轻载(100μA)相位裕度 | 55度以上 |
| 瞬态过冲/下冲 | 小于80mV |
| 输出节点后提取寄生电容 | 约280pF |
6. 双环调参的实操心得:先拆开练,再合体打
6.1 把辅环先断开,主环单独调到无懈可击
双环一起调,十有八九调成一团浆糊。我的做法是绝对分开:先断开辅环,只留主环,把主环在全负载、全工艺角下的相位裕度全部调到60度以上——瞬态慢一点没关系,但必须稳定——然后再动辅环。主环自己都不稳的时候去调辅环,你根本分不清相位裕度是被谁吃掉的。
6.2 辅环单独验"速度",看压摆不看增益
辅环单独调试时,别盯着它的直流增益,要看它面对阶跃输入时的压摆能力。我习惯在输出端人为加一个1ns的电压阶跃,然后观察栅极电压在50ns内能摆多少伏。目标很简单:比主环单独作用时的栅极压摆快十倍以上,但又不能快到产生新的振铃。摆得太快,负载恢复之后会诱发二次过冲;摆得太慢,瞬态指标直接报废。这个"快与稳"的平衡点,只能反复试。
6.3 合体之后固定做三件事
两环合体之后,我固定检查三件事。第一,全工艺角拉一遍AC,确保交叉频率附近没有留下双峰,双峰基本等于辅环和主环在抢带宽。第二,做两轮蒙特卡洛,一轮只跑失配看轻载相位裕度,一轮跑工艺角加温度看瞬态角点。第三,把版图后提取的寄生加回去,回到AC和瞬态重新验收,通常还要再调一轮Rz和Cc。这一轮后调往往差10%到15%的参数,非常正常,心里有预期就不会慌。
走完这条调参流程,我最大的体会是:无片外电容LDO本质上把储能从电容挪到了环路上,没有大电容兜底,所有问题最后都会变成环路速度问题。双环和极点分裂都不是某个独立的"模块",它们是一整套速度分配策略的落地表现。书上的推导只负责告诉你方向,真正把方向走通,靠的是一遍遍AC曲线、瞬态波形和版图寄生之间的来回拉锯。
最后分享两个小习惯。一个是养成画极零点轨迹图的习惯,别只看相位裕度数值,要看极点在负载变化时怎么移动,很多莫名其妙的不稳定,本质都是极点跑得比你想象中快。另一个是流片前把最坏角点——我这里是SS角加125度加轻载——的瞬态波形放在多轮蒙特卡洛里反复看,别只盯典型值,失配对于无片外电容LDO轻载稳定性的杀伤力极大。这两点听起来平常,但真能省下流片之后无数个debug的通宵。