ARTICLE DETAIL

资讯详情

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

两级密勒补偿运算放大器设计全流程:从指标拆解到版图实践

两级密勒补偿运算放大器设计全流程:从指标拆解到版图实践 模拟CMOS集成电路设计这件事两级运算放大器可以说是绕不开的经典模块。我刚完成了一版带完整版图的两级密勒补偿运放设计从指标拆解、电路实现到仿真验证再到版图绘制整个流程走下来踩了不少坑也攒了一些经验趁热整理成笔记分享出来。这篇内容适合正在学模拟IC的在校学生、准备课程设计或流片项目的工程师也适合想系统了解运放设计全流程的朋友参考。1. 设计目标与架构选型思路1.1 最开始定的指标动手画电路之前我习惯先把指标写到一张纸上贴屏幕旁边不然很容易在仿真中迷失方向。这次设计的核心指标如下参数设计目标备注直流开环增益≥70dB覆盖一级达不到的需求单位增益带宽 GBW≥2MHz负载电容5pF相位裕度 PM≥60°稳定性底线负载电容 CL5pF典型片内负载功耗≤1mW电源电压3.3V共模输入范围 ICMR1.0V~2.3V考虑输出摆幅折中输出摆幅0.3V~3.0V轨到轨不需要管够共模抑制比 CMRR≥65dB用共模反馈测试方案为什么二级结构而不是一级一级运放理论上也能做到70dB增益但需要把增益集中在差分对和电流镜负载上在3.3V电源下输出摆幅会非常受限。两级结构把“高增益”和“大摆幅”拆开第一级负责把信号放大约40dB第二级再贡献30~35dB增益同时保证输出摆幅这是一种工程上更务实的取舍。代价就是多了一个极点必须引入密勒补偿来处理稳定性问题这也是“两级密勒补偿运算放大器”这个名称的由来。共模抑制比是这次设计里比较费心思的一块。第一级的尾电流源有限输出阻抗会直接限制CMRR所以我用了共源共栅尾电流源牺牲一点点摆幅换取CMRR的提升。这个设计选择在后面仿真中验证效果确实不错。1.2 拓扑结构选择经典结构其实是最优解这次采用的拓扑是教科书上的经典两级结构第一级是PMOS输入的差分放大器负载是NMOS电流镜第二级是共源放大器负载也是电流源密勒电容Cc跨接在第二级输入输出之间串联一个调零电阻Rz。我知道有人会问为什么不用套筒式共源共栅或者折叠共源共栅——套筒结构增益高但不适合低压和需要共模输入范围宽的场合折叠结构带宽好但偏置电路复杂、功耗高。经典两级结构在增益、摆幅、功耗、设计难度上取得了平衡作为通用型运放是很合适的选择。整套偏置由一路主电流源和几个电流镜分配产生。为了压低偏置功耗主偏置电流设成20μA各级按比例镜像。需要说明的是这个结构里PMOS输入对的选择是基于共模输入范围考虑的PMOS输入对允许输入共模电压靠近地而本次设计要求1.0V下限PMOS是合理的。如果设计目标是输入共模范围靠近电源轨那就该换成NMOS输入对这是一个容易让初学者踩坑的选择点。2. 电路设计关键点与器件尺寸的确定过程2.1 偏置电路与尾电流源设计偏置电路决定了整个运放的静态工作点稳定程度我把它看作运放的“地基”。本次设计的偏置采用简单电流镜结构基准电流20μA从外部理想电流源灌入然后通过NMOS电流镜分配到各级。这里有个容易被忽略的问题电流镜的沟道长度调制效应会让镜像电流偏离设定值所以电流镜管子的L我只量放大了取2μm而不是最小沟长保证镜像精度。尾电流源我做成了共源共栅结构下层管子提供主要电流上层管子把输出阻抗抬高。共源共栅尾电流源的好处很大它对共模抑制比CMRR有直接贡献。简单尾电流源在长沟道工艺下输出阻抗大约几百kΩ对应的CMRR可能只有50dB左右做成共源共栅之后输出阻抗可以推到几十MΩ甚至更高CMRR也就能提上来。当然代价是输入对管上方的电压余量被多占了一个Vdsat输入共模范围会略微收窄。我在设计时给尾电流源留了0.4V的余量具体分配给上下两层管子各0.2V。电流镜实现时我还特别注意匹配。理论计算是第一步真正的性能还得靠版图来保证这部分会在后面专门说。偏置电路建议单独加退耦电容在版图里放1pF左右到地的MIM电容可以滤掉电源噪声和耦合进来的数字开关噪声这是我在一次后仿中发现的刚需。2.2 第一级输入对管与电流镜负载的尺寸推演第一级是整个运放噪声、失调和带宽的核心所在。PMOS输入对的尺寸我按如下思路推演先根据GBW确定跨导gm1。单位增益带宽与第一级跨导的关系近似为GBW gm1 / (2π·Cc)由2MHz的GBW和5pF的密勒电容反推gm1至少需要628μS。再根据设计功耗预算尾电流设定为40μA每边支路20μA那么过驱动电压Vov选择0.2V可算出(W/L) gm / (μp·Cox·Vov)代入工艺参数得到大约(W/L) 80/1。这个管子我拆成了两个并联的40/1方便版图匹配。输入对管还承担着失调和噪声控制的任务。PMOS管的1/f噪声比NMOS小这也是我选PMOS输入的一个隐藏原因。尺寸越大失调和匹配越好但寄生电容也会增加影响高频特性。80/1这个尺寸在匹配性和寄生之间算是平衡点。电流镜负载NMOS尺寸与输入对管的匹配策略不同负载管需要的是“精确镜像”所以L取1.5μm以抑制沟长调制W根据Vdsat反推算出(W/L) 30/1.5。第一级的增益就是gm1·(ro2∥ro4)共源共栅化虽然可以进一步推高增益但会占用输出电压余量所以我保持简单电流镜负载依靠第二级来补充增益。2.3 第二级放大器与电流源负载第二级是带电流源负载的共源放大器这一级的主要任务有两个提供30dB左右的附加增益以及在输出端提供足够的摆幅。输出管MP5我设定了120μA的静态电流尺寸根据输出摆幅选为(W/L) 120/0.8。为什么选0.8μm的L而不是最小0.5μm因为这是输出级如果L太短沟长调制会导致输出电阻降低直流增益上不去输出摆幅范围内的线性度也会变差。L0.8μm算是一个不错的折中。电流源负载MN6的尺寸和输出管匹配确保静态电流一致且输出节点不产生系统失调。这里有一个很重要的设计点系统失调电压主要由第二级输入节点也就是第一级输出节点的电流失配决定。如果在第一级输出节点上电流镜负载的电流与第二级栅极泄露电流不匹配静态输出电压就会偏移反映到输入端就是系统失调。计算时我把系统失调预算控制在3mV以内通过调整MN6的W使其Vdsat和MP5匹配。第二级的增益大约等于gm5·(ro5∥ro6)按当前尺寸估算在30~36dB之间。加上第一级的增益整个运放的开环增益就落在75dB上下满足70dB的设计指标。2.4 密勒补偿电容与调零电阻的定量计算密勒补偿是两极运放设计的灵魂。Cc跨接在第二级输入输出之间通过密勒效应把第一级输出极点主极点向低频方向推把第二级输出极点推向高频从而拉大极点间距。Cc的选择直接影响GBW和相位裕度我按Cc 5pF来设计与CL同量级。极性补偿后主极点频率大约是GBW / (gm2·ro1·ro2)这个值在低频区域而次级点约为gm2 / (2π·CL)这里CL代表第二级输出端的总等效电容。单纯的密勒补偿会带来一个右半平面零点因为Cc为信号提供了从第一级输出到第二级输出的一条前馈通路。这个零点在频率特性上会减小相位裕度严重时甚至导致振荡。标准解决方案就是串联调零电阻Rz把零点从左半平面移到右半平面或者干脆推到很远的高频区。零点频率 1 / (2π·Cc·(1/gm6 - Rz))。为了把零点推至无穷远理论上取Rz 1/gm6如果把零点移到左半平面来抵消次级点Rz需要更大。我最终选择的Rz是一个多晶硅电阻阻值约4.5kΩ实际取值得根据gm6的仿真值微调。加了这个电阻稳定裕度立刻提升这也是“带调零电阻的密勒补偿”在设计中的关键一招。2.5 器件尺寸汇总表器件类型W/L (μm)电流/功能M1/M2PMOS输入对40/1 ×2各20μAM3/M4NMOS电流镜负载30/1.5镜像电流M5PMOS输出管120/0.8120μAM6NMOS电流源100/1.5120μAM7/M8共源共栅尾电流源40/1 ×2、50/1 ×240μACc密勒补偿电容MIM 5pF-Rz调零电阻poly 4.5kΩ-器件尺寸计算不是一次定型的。我通常先手工计算得到一个初始值然后用Cadence仿真逐个调整每改一次都回头重新计算工作点确保推导逻辑闭环。模拟IC设计最忌讳的就是“仿真调参调到好看但不知道为什么”一旦工艺角变化结果就会暴露问题。3. 仿真流程与关键参数验证3.1 搭建测试电路与DC工作点检查拿到初步尺寸后我在Cadence Virtuoso里搭好测试电路。运放接成单位增益反馈最稳定测试拓扑之一。需要考虑的是开环增益仿真需要AC通路和DC反馈通路分开典型做法是在反馈回路里串一个大电感把直流反馈到输入端和并联一个大电容把交流短路到地或者用stb仿真直接在反馈环断开处注入激励。仿真开始第一件事不是看AC曲线而是查DC工作点。我逐个检查所有管子是否工作在饱和区输入对管的Vdsat应该在约0.15~0.25V之间电流镜负载管以及输出管、尾电流源管子都应处于饱和区。这一步很多人直接跳过但后仿出问题的根源往往就是静态工作点本身没设对。从DC结果中看到输入对管两端Vds分别为1.73V与1.71V都在饱和区尾电流源上下两管Vds分别0.22V和0.21V说明设计正确。记录DC工作点数据时顺带看各支路电流确认与设计值的偏差。实测发现第二级偏置电流比设计值偏高了约8%这主要是电流镜沟道调制导致我通过在NMOS电流源上略微调整宽长比来修正。3.2 开环增益与相位裕度仿真开环增益仿真用stbLoop Gain方法这是Spectre里比较靠谱的方案比传统的“大电感大电容”方法精度高且使用方便。仿真频率范围1Hz到100MHz得到低频增益78.2dB单位增益带宽GBW为2.3MHz相位裕度65°。各项指标满足设计要求。相位裕度是一个需要留足余量的参数。工艺角变化时相位裕度可能掉5~10°所以我把默认工艺角下做到65°以上保证SS工艺角下最低还有约55°的裕度。仿真确认在SS、FF、SF、FS四个工艺角下GBW落在1.7MHz到2.9MHz之间相位裕度最低57°全部在可控范围。观察频率响应时我额外注意了两点一是低频增益是否平滑无谐振若有谐振说明有意外正反馈通路二是次级点是否出现在GBW之外出现“增益曲线穿越0dB后继续上翘”这种异常形态时通常意味着反馈环路内部有隐藏极点。3.3 共模抑制比与电源抑制比仿真共模抑制比的仿真在运放闭环测试电路中进行在运放同相输入端加AC小信号输出与输入之比即CMRR。仿真结果CMRR低频为72.5dB满足65dB的指标。从曲线可以看到CMRR在100kHz左右开始下降这主要是尾电流源共源共栅管在高频下阻抗降低导致。电源抑制比PSRR我也一并测了在电源端加AC扰动测输出传递函数。正电源和负电源的PSRR不尽相同本次设计比较关心高频PSRR因为实际应用中电源噪声往往在高频段耦合进来。结果在1MHz时正电源PSRR约45dB属于可接受范围。如果想进一步提升高频PSRR可以在电源与偏置节点之间加RC滤波这次我没有使用因为会增加版图面积。共模抑制比和电源抑制比这两个参数在单端输出运放中很关键它们决定了系统在共模干扰和电源噪声下的表现。很多课程设计只关注开环增益和相位裕度把这两个指标忽略掉在实际工程项目中会吃亏——真正的系统里电源纹波、地弹噪声往往比信号本身更致命。3.4 瞬态仿真与建立时间瞬态仿真检验闭环稳定性输入给一个1V阶跃观察输出波形是否过冲、振荡。实测在单位增益接法下输出从0到1V阶跃时上冲约110mV对应11%过冲建立时间约为380ns到0.1%精度与相位裕度65°的预期一致。手头经验公式1/(相位裕度损失) 与过冲量成正比关系可以利用来反推稳定性过冲过大说明相位裕度不足需要增大密勒电容或调零电阻。我还测试了压摆率Slew Rate给大信号阶跃测量输出信号上升斜率最大处。实测SR约为4.6V/μs这个数值与第一级尾电流40μA、密勒电容5pF的理论估算基本一致。压摆率不足时直觉上增加尾电流或减小密勒电容但这会与相位裕度产生矛盾需要联合权衡。瞬态仿真中如果有振荡发散现象第一反应检查是否Rz取值不当导致零点位置异常是否密勒电容过小导致极点分裂不足是否反馈环路接反正反馈排查优先级就按这个顺序来90%的问题都出在这三处。3.5 仿真不收敛问题的排查经验Cadence仿真不收敛是常见问题我这次也遇到了。Spectre在瞬态仿真到几十微秒时停止并提示“Matrix singular”查工作点时确认所有管子状态正常但瞬态一跑大信号就发散。最终定位原因一是电路中有两个高阻节点第一级输出节点和偏置支路节点这两个节点没有明确的DC通路到地导致矩阵条件数很差二是初始条件设置不合理运放一开始工作在大信号非线性区。解决方法有三招按顺序尝试第一招给所有高阻节点设置初始条件initcond通过设置两个关键节点的初始电压跳过启动过程第二招在Spectre瞬态选项中开启gmin步进gmin stepping它会在仿真初期自动为每个节点并联小电导帮助矩阵求逆在收敛后再恢复原电路第三招将积分方法从默认的trapezoidal改为gear2only虽然精度略降但稳定性更好。实际排查中还发现仿真器报错信息中提到的节点名能直接帮我们锁定问题所在。我强烈建议不要盲目改参数碰运气认真读仿真器日志的警告信息往往写着“Node X has no DC path”这句话基本就是高阻节点的判断依据。4. 版图设计与后仿真4.1 版图布局策略与隔离环设计版图设计我是用它来保证“测得的性能”和“仿真的性能”趋近于一致。本次版图的整体布局呈左右对称左侧是输入对管和尾电流源右侧是第二级和补偿网络。电源线和地线各自两侧走尽可能降低信号路径与电源路径的耦合。隔离环的设计我在这次里做了完整处理。所有NMOS周围画了P型保护环P ring接GND所有PMOS周围画了N型保护环N ring接VDD。这两个环的作用是收集衬底中的少子防止闩锁效应同时降低衬底噪声耦合。深N阱隔离我也给NMOS区域加上了因为电路里数字噪声可能从衬底串扰进来深N阱相当于给NMOS区域多了一层防护代价是版图面积增加了约15%。对于轻载模拟电路来说这个面积代价值得。版图用Virtuoso Layout编辑我习惯打开“应用DRD”模式在布局过程中实时检查设计规则比最后统一DRC再返工效率高很多。布线时特别注意金属层电流密度根据顶层金属的允许电流密度下限计算这个运放最大支路电流只有120μA常规布线全部满足但电源线仍然走了双倍最低宽度算是习惯性留余量。4.2 电流镜匹配的具体做法电流镜匹配是整个模拟版图的核心工艺我这次设计里差分输入对和电流镜负载都用了严格的匹配措施。差分输入对M1/M2使用共质心交叉布局将每个管子拆成两个指按“ABBA”四指交叉排列中心对称。这样做的好处是工艺中的线性梯度效应比如氧化层厚度梯度、注入剂量梯度会被对称抵消输入失调电压可以从10mV级别降到1mV级别。电流镜负载管M3/M4则采用叉指Interdigitation两个管子交替排列成梳状结构。每个管子的指宽设为单指宽度两端各加一个虚拟管dummy指且dummy管子的栅极接固定电位不参与工作这样边缘刻蚀效应不会导致有源区宽度不均匀。经验表明不加dummy的电流镜失配可能比加dummy的恶化50%以上这是从大量数据中看到的务必不要省略。共源共栅尾电流源的匹配同样重要。它的上下两层管子因为电流方向不同匹配策略略有差异上层PMOS用共质心下层NMOS用叉指。偏置镜像电流源在主偏置电路里单独做一组通过专门的偏置线送到运放区域。这条偏置线需要加金属屏蔽避免信号线耦合噪声串入偏置节点。4.3 后仿寄生提取的调整版图完成后依次跑DRC和LVS。DRC指的是设计规则检查确认版图没有违反工艺规则LVS指电路一致性检查确认提取出的网表与原理图一致。这两步过了之后再用PEX寄生提取生成带版图寄生虫网表进行后仿真。PEX结果出来后寄生参数主要体现在输入对管的栅极寄生电容增加了约0.8fF密勒电容的寄生底板电容约0.5pFMIM电容本身较大这个比例可以接受输出节点寄生电容约0.7fF。后仿真结果显示GBW从2.3MHz降到2.1MHz相位裕度从65°降到61°还在可接受范围。注意输出节点寄生电容会把次级点频率拉低如果后仿相位裕度掉太多可以在前仿阶段把负载电容设计值略微调大预留寄生容差。后仿还发现了一个有意思的问题LVS通过但后仿增益下降约3dB排查后确认是输入对管交互连线间的寄生电容产生了一条从第一级输出到地的低阻抗路径在高频端形成零点。解决方法是把输入对管的交互连线改成上下两层金属正交走线同时加大线间距。这个案例给我的教训是版图上细小的走线变化对寄生影响可能比大器件的尺寸变化还明显后仿调试时要重视连线的寄生不只看器件寄生。4.4 版图后仿振荡问题一例后仿瞬态仿真中出现了一次输出振荡发散检查发现是我在版图中调零电阻Rz的走线引入了约0.3pF的额外寄生电容改变了零点位置相位裕度掉到50°以下。因为Rz在密勒补偿支路极性很敏感任何节点寄生电容都会产生频率响应偏移。解决办法是把Rz和Cc的位置布局尽可能靠近减少中间连线长度。用Virtuoso里的寄生标注工具找出这段走线寄生电容确认来源后在版图里把Rz下方不打底层避免与衬底形成寄生电容同时加宽Rz两端的金属接触孔以降低串联电阻。改版后重新提取寄生相位裕度恢复到60°振荡消除。这类问题在前仿完全无法预见只有通过后仿才能发现事实也说明后仿在模拟版图设计中不可或缺。5. 部分经验与心得整理5.1 常见问题速查表现象可能原因解决思路低频增益不足管子未饱和、电流镜失配查DC工作点、调整L或偏置相位裕度过低密勒电容偏小、Rz不合理增大Cc或调整Rz瞬态仿真不收敛高阻节点无DC通路设置initcond或开启gmin输出共模电平偏移第二级电流失配重新匹配MN6和MP5后仿增益下降寄生电容耦合检查线条布线、调整布局振荡无法消除版图寄生改变了补偿支路缩短Cc/Rz走线、优化版图CMRR过低尾电流源阻抗不足共源共栅结构、增大L压摆率不足尾电流过小或Cc偏大提高功耗预算或减小Cc5.2 个人经验碎碎念写给同路人的话整个设计流程走下来我最大的体会是模拟IC设计里“理性和经验同样重要”。公式推算可以把架构选定和工作点推导出来做出个合理起点但真正把性能调到最优、把问题定位清楚靠的是对物理本质的理解和一次次踩坑积累的敏感度。比如密勒补偿的零点问题教科书上说得清清楚楚但第一次调不出来的时候根本想不到是Rz寄生电容闹的直到后仿振荡才恍然大悟这就是经验的代价。给还在学校或者刚入行的朋友提几个建议第一每个管子尺寸都要亲手算一遍不要直接抄参考设计第二仿真的每个结果都要找到物理层面的解释第三版图阶段留足时间DRC/LVS和后仿发现问题时修改一轮往往要半天以上不要压着截止时间才动手。这三点是我这次项目最想传达的东西。如果后续想把这个运放用在更高精度场合可以考虑把第一级电流镜负载改为共源共栅结构或者引入斩波稳定来消掉失调和1/f噪声针对低功耗场景还可以研究亚阈值区偏置设计。这些扩展方向都是在现有版本上围绕同一核心架构可以继续深入的路径。
返回列表