简介:面向模拟集成电路学习者的设计参考文档,以两级全差分高增益放大器为设计对象,完整覆盖从性能指标设定、电路结构选型、参数计算到前仿真、版图绘制与物理验证的模拟IC全流程。文档基于华大九天Aether平台与0.18um PDK,针对DC增益≥90dB、0dB带宽≥500MHz、相位裕度≥50°、PSRR等指标,对比折叠式与套筒式共源共栅结构,详细给出各级电流分配、过驱动电压分配、MOS宽长比计算及偏置电压设定,并延伸至原理图绘制、测试电路搭建、AC/OP/瞬态仿真以及DRC/LVS验证等环节,适合微电子专业学生、IC设计工程师及赛前备考人员使用。资源为1个PDF文件,大小1.65MB,内容精炼紧凑,便携易读。目前已有96人学习收藏,是理解全差分OTA设计流程与国产EDA工具使用的实用参考资料,可据此建立从指标到版图的系统性认知。 模拟集成电路设计这个圈子,两级全差分高增益放大器是绕不开的基本功。不管你做的是ADC前端的采样保持放大器、传感器接口里的仪表放大器,还是DAC输出缓冲,最终都会落到同一个问题上:怎么在有限的功耗和面积预算下,把增益、带宽、摆率、噪声这些互相撕扯的指标揉到一起,还得保证流片回来能稳定工作不出幺蛾子。这篇文章我就拿“两级全差分高增益放大器”这条主线,把架构选择、指标反推、电路搭建、仿真验证的完整流程拆开讲一遍,里面穿插我个人流片和调试踩过的坑,适合正在学模拟IC设计的研究生,也适合刚入行被全差分电路折磨的工程师。
我见过不少同学拿到指标后直接打开Cadence开始画管子,画完一仿真发现某个指标怎么都调不上去,然后开始盲调,运气好调两天调通,运气不好直接换架构重来。其实全差分两级运放的设计路径非常固定,完全可以先在手算阶段把90%的矛盾暴露出来,再进EDA工具,事半功倍。下面按我习惯的设计顺序来讲。
1. 为什么是两级全差分:架构决策与设计逻辑
1.1 全差分结构:收益与代价
全差分的意思是运放有两个输出端,输出信号用Vout+减去Vout-来表示。相比单端结构,全差分最直观的好处是输出摆幅直接翻倍。你想象一下一个1.8V电源的系统,单端输出能摆到0.2V到1.6V已经不错了,摆幅1.4V;而全差分每端摆0.2V到1.6V,差分信号就是正负1.4V,等效动态范围大了整整6dB。这还没算它在共模噪声抑制上的天然优势——电源扰动和衬底噪声会同时作用在两个输出端,做差以后被抵消掉,这在混合信号芯片里简直太关键了。另一个容易被忽略的好处是偶次谐波抵消,因为差分输出的泰勒展开里偶次项是同相的,相减就没了,线性度会比单端干净不少。
代价也很明确:多了一个共模反馈环路。差模信号靠输入差分对放大,但是输出共模电平往哪飘没有人管,必须专门设计一个CMFB电路去检测输出共模电压,反馈到偏置端,把输出共模拉回目标值。这个环路单独有增益、有带宽、有稳定性问题,设计不好轻则共模漂移导致工作点跑飞,重则整个环路振荡。全差分电路调不出性能,十有八九是CMFB在作怪,这一点后面详细讲。
1.2 两级架构:把增益和摆幅分开解决
先看单级方案。套筒式共源共栅结构在长沟道工艺下做到60到70dB增益不算难,但你要做到80dB以上的高增益,单级就非常吃力了。因为单级增益本质上等于输入跨导乘输出阻抗,输出阻抗靠堆共源共栅管来提升,堆到三层甚至四层以后,输出摆幅被压缩得没法看,头尾电压余量都不够。反过来如果你想保住摆幅,输出阻抗就得妥协,增益又上不去。这就是单级天生的矛盾:增益和摆幅绑定在一起,只能互相迁就。
两级架构把这个问题解耦了。第一级不负责输出摆幅,可以放心用共源共栅堆增益;第二级用简单的共源级专门提供摆幅。级联总增益等于两级增益相乘,90dB甚至100dB都可行,输出摆幅依然可以接近轨到轨。当然天下没有免费的午餐,代价是多了一个低频极点,频率补偿变复杂了,得靠密勒电容做极点分裂。下面这个表是我的选型习惯:
| 方案 | 开环增益 | 输出摆幅 | 稳定性设计 | 功耗效率 | 适用场景 |
|---|---|---|---|---|---|
| 单级套筒 | 60~70dB | 小 | 简单 | 高 | 高速中等增益 |
| 单级折叠 | 50~60dB | 中 | 简单 | 中 | 输入共模范围要求高 |
| 两级密勒 | 80~100dB | 大 | 中等 | 中 | 高增益高精度 |
| 增益增强单级 | 80~100dB | 小 | 复杂 | 高 | 追求极致速度 |
我个人的看法是,如果不是对速度和功耗有特别极端的追求,第一版设计优先用两级密勒结构。它的行为模型最成熟,仿真工具里能用的辅助手段最多,出问题的概率相对可控。增益增强虽然纸面上性能漂亮,但环路嵌套带来的稳定性和偏置复杂度,对新手非常不友好。
2. 先算清楚再动手:指标分解与参数预设计
2.1 五个关键公式撑起预设计
做两级全差分运放,我不建议直接上手画原理图。先花半个小时做一次手算预设计,把大致电流、管子宽长比、电容值定下来,再进工具微调。整个预设计核心就五个关系:
第一个是单位增益带宽GBW,等于第一级跨导gm1除以2π乘以密勒电容Cc,GBW = gm1 / (2π·Cc)。这个公式告诉你,带宽和密勒电容成反比,想带宽大就把Cc做小,但Cc直接关系稳定性和噪声,不能无限小。
第二个是摆率SR,第一级摆率约等于尾电流Itail除以Cc。大白话就是你给电容充电的速度,充得快摆率就高。所以摆率不够的时候,不要只盯着管子尺寸,先看看尾电流够不够。
第三个是次主极点p2,约等于第二级跨导gm2除以2π乘以负载电容CL。这个极点位置直接决定相位裕度。相位裕度要想有60度,次主极点必须离GBW足够远,工程上习惯要求gm2/CL ≥ 2.2 × gm1/Cc。
第四个是调零电阻Rz,密勒补偿Cc上串联的那个电阻,取值约等于1/gm2。它能把右半平面零点推掉,否则零点落在GBW附近,相位裕度会很难看。
第五个是增益分配,总增益约等于gm1·Rout1·gm2·Rout2,两级各自承担多少增益要在手算时留好余量。实战中我一般让第一级贡献60dB左右的增益,第二级贡献30到40dB,这样总增益90dB以上轻松达到,还不用把每个单级都推到极限。
2.2 用一组实际指标反推参数
我拿一个实际项目里的指标来走一遍流程:直流增益≥90dB,GBW≥100MHz,负载电容2pF,摆率≥80V/μs,相位裕度≥60度,电源1.8V,0.18μm工艺。
第一步定密勒电容Cc。按经验Cc取1pF左右,和负载电容同量级。第二步由摆率公式反推尾电流,Itail = SR × Cc = 80V/μs × 1pF = 80μA,第一级输入对管每边分40μA。第三步由GBW反推第一级跨导,gm1 = 2π × 100MHz × 1pF ≈ 628μA/V。再用gm = 2Id/Vov反推输入对管过驱动电压,Vov = 2 × 40μA / 628μA/V ≈ 127mV,这个值落在100到200mV的经验区间里,合理。
第四步看第二级。相位裕度60度要求gm2 ≥ 2.2 × 2π × CL × GBW = 2.2 × 2π × 2pF × 100MHz ≈ 2.76mA/V。第二级电流取150μA的话,Vov = 2 × 150μA / 2.76mA/V ≈ 109mV,勉强可以接受。你注意这里有个权衡:如果第二级电流给太小,gm2不够,相位裕度就保不住;电流给太大功耗又上去。
第五步验增益。90dB对应电压增益31623倍,第二级用共源结构,Rout2大概可以做到250kΩ到500kΩ,取300kΩ计算,gm2 = 2.76mA/V,第二级增益约828倍。那第一级需要提供约38倍增益,这个量级对共源共栅结构来说非常轻松。到这里,所有管子的大致偏置电流和关键电容都有了,可以开图纸了。
2.3 手算的定位:不求精确,但求方向正确
我强调一下,这个阶段的数字全是量级级别的估算,不需要也没必要精确到小数点后三位。原因很简单:二级效应、寄生电容、沟道长度调制、温度变化,都会让实际值和手算差出20%甚至更多。手算的意义是让你在仿真之前就知道哪些指标是瓶颈,哪些器件是杠杆点。
举上面的例子,最关键的信息是第二级跨导gm2决定了你能否保住60度相位裕度。所以后面调电路时,如果PM上不去,我的第一反应不是去动密勒电容,而是检查第二级电流是否够大、负载电容是否被寄生电容抬高。手算提前告诉你这个方向,你就不会像无头苍蝇一样乱调一通了。
3. 电路模块拆解:输入级、第二级与共模反馈
3.1 输入级选型:套筒还是折叠
第一级选型第一件事是定输入管极性。PMOS输入管适合输入共模电平接近地的场景,噪声性能通常更好;NMOS输入管适合输入共模接近电源的场景。实际怎么选往往不是自己定的,而是看前一级电路给你的共模电平是多少,跟着应用走。
第二件事是定结构。套筒式共源共栅电流效率高、增益高,但输出摆幅小。折叠共源共栅多一路电流,功耗大一点,但输入共模范围和输出摆幅都更灵活。如果这次设计是第一级后面直接接第二级,没有中间节点需要对外输出,我偏向用套筒式;如果输入共模范围要求从轨到轨都能工作,那必须折叠,没有商量余地。
输入差分对的尺寸设计有个细节容易被忽略:在固定漏电流下,gm和W/L的平方根成正比,和过驱动电压的一次方成正比。也就是提高Vov比加大管子面积能更有效地提升gm,功耗代价还更小。但Vov不能太大,100到200mV是甜点区间——太小管子失配影响大,太大跨导效率和摆幅都被压制。
3.2 第二级与密勒补偿的实现细节
第二级是个共源放大级,输出端负载电容大、摆幅要求高,所以结构尽量简单。输出管沟道长度不要用最小尺寸,我一般取最小沟长的2到4倍,换来更高的ro,增益和输出精度都有改善。代价是速度变慢,通过合理设置电流来平衡。
密勒补偿电容Cc跨接在第一级输出节点和第二级输出节点之间。它的作用是极点分裂:把第一级输出节点的主极点往低频推,把第二级输出节点的次主极点往高频推,两者拉开距离,环路稳定性就有了保障。但Cc会引入一个右半平面零点,频率约等于gm2除以2πCc。这个零点在相位上的贡献是负的,严重时会吃掉一二十度相位裕度。
解决办法就是调零电阻Rz。Rz取值约为1/gm2,可以把零点推到无穷远甚至翻到左半平面。实现上,Rz可以用多晶硅电阻,也可以用工作在线性区的MOS管,后者可以跟随PVT变化自动调整阻值,实际流片时鲁棒性更好。设计初期先用一个理想电阻仿真相位裕度随Rz变化的曲线,找出最优值,再决定具体实现方式。这个扫描习惯我保持了多年,屡试不爽。
3.3 CMFB:全差分电路最容易翻车的环节
全差分运放必须有个共模反馈环路,否则输出共模电压会随着电源电压、温度、失配漂移,严重影响后级。CMFB的基本原理是:检测输出共模电平(Vout+ + Vout-) / 2,和参考电压Vcm比较,误差信号反馈到偏置端,把共模拉回目标值。
工程上CMFB有两种主流实现。连续时间CMFB用电阻分压检测共模,再用一个跨导级比较,直接调整输出级电流源,优点是带宽高,适合连续时间信号处理,但分压电阻会引入热噪声,还可能在输出节点增加一个低频极点。开关电容CMFB用电容分时采样输出共模,再通过电荷分享调节偏置,优点是不消耗静态电流、不增加输出噪声,但需要非交叠时钟和额外的动态功耗,主要用在开关电容链路里。
CMFB环路设计最核心的一条:它也要满足增益和相位裕度要求。我见过太多人只盯着差模环路的稳定性,忘了CMFB环路单独跑一个STB仿真,结果瞬态一跑发现输出共模以几百MHz的频率振荡,输出波形一片模糊。CMFB检测网络引入的寄生节点要尽量远离CMFB的单位增益带宽,必要时用小电容做一个主极点补偿。另外CMFB环路增益要适中——太小共模抑制不够,太大容易与差模环路耦合振荡。调CMFB的时候建议把差模输入固定,单独看共模环路的STB响应和瞬态共模阶跃响应,收敛趋势清楚了再合到一起看整体。
4. 仿真验证、问题排查与实操心得
4.1 仿真清单与推荐执行顺序
一个可靠的全差分运放设计,仿真不能只跑一个AC就完事。我自己的固定流程是这样的:
- DC工作点仿真:先确认所有管子都工作在饱和区,电流和手算值的偏差在合理范围内。这一步如果不过,后面全是空中楼阁。
- 开环AC仿真:把CMFB环路闭合,差模环路用大电感和电容配置成开环测试结构,看差模增益、GBW、相位裕度。
- STB稳定性仿真:分别测差模环路和CMFB环路的增益、带宽、相位裕度。Cadence里的stb分析默认能测两个环路,关键是接法要正确。
- 瞬态仿真:先接单位增益缓冲结构,输入加阶跃,看建立时间和过冲;再加大阶跃信号看摆率。
- 噪声仿真:看输入参考电压噪声谱和积分噪声,确认噪声指标是否落在规格内。
- PVT加蒙特卡洛:跑工艺角、温度、电源电压扫描,再跑失配蒙特卡洛看失调电压分布和良率。注意SS corner下管子跨导最小,相位裕度通常是最差的,要重点盯。
4.2 高频踩坑问题和排查手段
我把自己和身边同事遇到过的问题整理成一个速查表,虽然简单但非常实用:
| 现象 | 直接原因 | 排查手段 |
|---|---|---|
| 输出共模高频振荡 | CMFB环路不稳定 | 降低CMFB环路增益,检查检测网络极点 |
| 单位增益缓冲接法时严重过冲 | 差模相位裕度不足 | 看p2位置,查第二级gm和调零电阻 |
| 大阶跃信号边沿太慢 | 摆率不足 | 检查第一级尾电流和第二级电流能力 |
| DC输出共模对不上设计值 | CMFB闭环没建立或参考接错 | 检查CMFB反馈极性,确认参考电压 |
| PVT仿真下PM跌破45度 | SS角下gm下降、寄生增大 | 增加第二级电流,调整Rz跟随特性 |
处理器上我建议一个症状对应一个怀疑对象,不要同时动多个参数。比如顺手把尾电流调大又把Cc改小,最后PM是好了,但你根本不知道是哪个动作起的作用,换个corner可能又出问题。
4.3 几条真正好用的调参经验
做这个电路好几年,我总结出几条普通教科书上不会写的实操经验。
第一,调零电阻Rz一定要扫描。在原理图里把Rz设成一个变量,跑一遍Rz从0.5倍1/gm2到2倍1/gm2的扫描,输出PM和GBW两条曲线。你会很直观地看到最佳点在哪里,而且能用容差范围判断这个电阻的敏感度。我见过一个设计Rz从最佳点偏15%,PM就从68度掉到58度,这种对失配太敏感的设计必须改结构。
第二,相位裕度不够时,先检查负载电容是不是被寄生电容抬高了。有时候你画的时候以为CL是2pF,实际在版图里输出节点上一堆走线电容和下一级输入电容加起来可能变成2.8pF,次主极点直接被拉低,PM就掉下来了。先用后仿真提取结果确认真实负载,再决定要不要加大第二级电流,而不是一味去调Cc。
第三,CMFB环路在瞬态里表现为共模的低频漂移和高频振荡两种症状。低频漂移通常是增益不够,高频振荡通常是相位余量不足。上了示波器看瞬态波形,先区分是哪种,再决定往哪个方向下手。我见过有人把CMFB环路增益提到很高想把共模抑制做好,结果把环路调振荡了,纯属方向错误。
最后再分享一个小技巧。每次设计文件里,我会单独建一个测CMFB的testbench,只测共模环路,不做任何差模激励。这样每次改动电路后跑一遍这个bench,CMFB的稳定性变化趋势一目了然。全差分运放做多了你会发现,差模环路不太容易出问题,CMFB才是真正消耗时间的地方,把这个环节管好了,整个设计速度能快三分之一。
本文还有配套的精品资源,点击获取