
干模拟IC这行的运放设计是躲不开的基本功。做ADC前端、开关电容滤波器、比较器预放大翻来覆去就是那几个结构而折叠式共源共栅放大器Folded Cascode OTA绝对是出场率最高的一个。它像是套筒式共源共栅的“改进版”靠牺牲一点功耗和噪声换来了更宽的输出摆幅和更友好的输入共模范围。这篇就当我的工作备忘把设计思路、参数估算、偏置和CMFB的坑、版图注意点一次性串起来给准备动手搭这个结构的同学一个可以直接抄作业的参考。这套结构特别适合低电压、中等增益需求的全差分场景比如12bit以内流水线ADC的残差放大器、SAR比较器的前置级、或者各种开关电容积分器。如果你是刚接触模拟IC设计的研究生或者工作里第一次被安排画OTA这篇文章的节奏应该能帮你减少很多“仿真挂了不知道查哪里”的痛苦。1. 为什么选择折叠式套筒式的死穴和折叠式的妥协1.1 套筒式共源共栅到底输在哪里套筒式共源共栅的增益高、噪声小、功耗在同性能下也漂亮但它的输出摆幅是真难受。原因很简单从电源到地每个支路要同时叠着尾电流源、输入管、两级共源共栅管加起来四五层管子。每一层都要留一个过驱动电压Vov的余量输出摆幅被压缩得非常厉害。拿1.8V电源举例如果每层过驱动电压取0.15V套筒式四到五层堆叠之后输出高电平被拉到VDD减掉两个Vov输出低电平又被拉到GND加上两个Vov实际可用的差分摆幅常常不到0.6Vpp。这个摆幅喂给ADC残差放大器信噪比根本不够看。更麻烦的是输入共模范围也被绑定在输出共模附近前级想直接驱动它就很难受。低电压工艺下套筒式的生存空间越来越窄。大家不是不喜欢它的噪声和增益优势而是真的放不下那个输出摆幅。1.2 折叠的本质把“垂直堆叠”改成“水平分流”折叠式共源共栅的思路很直白不要把所有管子都串在一次电流路径上而是把输入对管产生的信号电流“折”到另一条支路上再通过共源共栅管把这股电流送到输出端。这样做的好处立刻体现出来了。输出节点到电源和地之间只叠了两层左右的关键管子输出摆幅由“输出共源共栅管的Vov 负载管的Vov”决定比套筒式多出整整一两层管子的电压余量。代价则是功耗增加因为多了一整条折叠支路的静态电流另外因为信号路径变长第二极点位置会低一些速度上略吃亏。说到底折叠式是用功耗和一部分高频性能换输出摆幅和设计灵活性。1.3 我怎么判断该不该用折叠式说到底折叠式适合三个典型场景电源电压低但系统又要求大摆幅比如1.2V/1.8V下的全差分开关电容电路。需要单级就拿到高增益不想做两级补偿的场合折叠式加上cascode负载通常能打出60dB以上。希望输入共模电平可以放在一个比较宽的范围内比如输入信号可以直接通过自举开关进来。如果你做的是高速、低功耗、又不缺摆幅的专用场景套筒式反而更合适。自己动手做选择之前先把摆幅预算和噪声预算算明白比直接抄结构重要得多。2. 拓扑结构与工作点纸上先让每个管子饱和2.1 本文参考的折叠共源共栅拓扑我下面分析用的结构是工程里最常用的一类NMOS输入管、PMOS折叠电流源、PMOS共源共栅输出级、NMOS负载。左边和右边完全对称中间以输出端Vout-和Vout引出差分信号。把左半边画出来是这样一条支路电源VDD自上而下先经过PMOS管M5构成折叠电流源电流IF注入折叠节点折叠节点同时接输入NMOS管M1的漏极和PMOS共源共栅管M3的源极M3的栅极接固定偏置Vbp漏极接输出节点输出节点下方是NMOS负载管尾电流源Mtail接在输入管源极和地之间。信号流通路是这样的输入电压变化加在M1栅极引起M1漏极电流变化这个变化电流进入折叠节点又直接“灌”进M3的源极经过M3的共栅放大送到输出节点。输出节点的电压变化再通过M3的cascode高输出阻抗作用形成电压增益。2.2 折叠节点的电流平衡不能随便凑折叠节点是这类拓扑的命门。这里三条电流交会输入管M1从折叠节点抽走ISS/2折叠电流源M5从VDD注入IF共源共栅管M3作为PMOS电流从源极流向漏极也就是从折叠节点流向输出节点数值为IM3。列KCL流入折叠节点的电流IF必须等于流出的ISS/2加上IM3所以IM3等于IF减掉ISS/2。因此第一步设计约束就出来了IF必须严格大于ISS/2否则IM3算出来是负的输出级直接没电流。常见的电流比例有两种取法。一种让IF等于ISS于是IM3等于ISS/2总电流消耗大约是两倍ISS另一种让IF等于1.5倍的ISSIM3等于ISS输出级电流更充裕共源共栅管的gm更大折叠节点的阻抗更低但功耗也更高。具体选哪个取决于你给输出级留了多少电流预算。2.3 输出摆幅的计算决定管子过驱动的分配折叠结构最大的收益在输出节点。从输出向上看只有M3一个共源共栅管它的VSD只要大于一个Vov3就能维持在饱和区从输出向下看负载管也要一个Vov_load。所以输出高电平上限大约等于VDD减Vov3低电平下限大约等于Vov_load如果负载也是cascode就再多加一个过驱动电压。再往细节说折叠节点电压也要卡在两边的约束里输入管M1要饱和折叠节点就得比输入源极高出至少Vov1也就是约等于Vov_tail加上几个Vov折叠电流源M5也要饱和VDD减去折叠节点电压必须大于Vov5。这些约束加在一起就是一张不等式网络做设计时最好先手工把每个管子需要多少Vov列出来再反推每个偏置电压放到哪里。我个人的习惯是先把输出摆幅指标拆成过驱动预算。比如1.8V电源要求差分1.2Vpp那单端摆幅大约就是0.6V上下各留0.6V分给M3的Vov和负载管的Vov各0.2V到0.25V剩下的当安全余量。这个余量宁可多留也不要在版图上被IR drop吃掉。3. 从规格到尺寸一套可以照着做的设计流程3.1 先写清楚设计规格拿到设计任务第一件事不是画电路而是把规格表写出来。我一般会列成这样的形式指标目标值备注电源电压VDD1.8V低电压下的代表场景输出摆幅≥1.2Vpp差分单端0.6V考虑余量开环增益Av≥60dB100倍以上ADC残差放大器够用单位增益带宽GBW100MHz CL2pF全差分按gm/(2πCL)估算功耗≤250μA整个OTA的总静态电流负载电容CL2pF含采样电容和寄生相位裕度≥60°用补偿电容和版图控制寄生这个表不是拍脑袋写的而是和系统架构挂钩。比如GBW从采样速度倒推CL从开关电容的负载估算。把这些先固定下来后面算尺寸才有边界。3.2 电流预算分配总电流从哪里花出去折叠式共源共栅的静态电流由几块构成尾电流ISS、左右两条折叠支路电流各IF、偏置电路电流。如果按IF等于ISS来选那总电流大约是2倍的ISS再额外加偏置链路的电流。回到上面例子假设总电流预算是220μA左右我可以这样分配尾电流ISS取60μA左边和右边折叠支路各取60μA总电流就是180μA剩下40μA给偏置电路和共模反馈。每条输出支路静态电流为IF减ISS/2即30μA。这里给个实际操作建议输出支路电流不要取得太小。虽然它只决定噪声和摆率的一小部分但如果输出电流低于10μA输出级在摆率阶段很容易电流不足建立时间会变得很难看。输出支路电流约等于输入对管支路电流的一半以上是一个比较稳的甜点区。3.3 用gm/ID方法替代盲目套平方律公式很多教材教你先用平方律公式手算宽长比但现代工艺里短沟道效应明显平方律算出来的值经常偏差很大。我更推荐用gm/ID的方式先在那个工艺的模型库里把NMOS和PMOS在不同L、不同电流密度下的gm/ID曲线扫出来然后根据你需要的gm来决定电流和尺寸。比如GBW是100MHz、负载电容2pF那么输入差分对需要的等效gm至少是2π乘以GBW乘以CL算出来大约是1.26mS。如果输入对管每条支路电流是30μA那么需要的gm/ID大约是1.26mS除以30μA约42V^-1。这个值听起来偏大意味着要把输入管推到弱反型区附近尺寸会比较大但换来的是高gm和低噪声。如果尺寸大到你接受不了就反过来加大输入管电流降低需要的gm/ID。我通常会用这样一条流程先根据GBW和CL算所需的输入管gm。再从功耗预算定输入支路电流。查gm/ID曲线找到对应的宽长比同时也把实际的反型系数记录下来。最后把输入管长度设为工艺允许范围内的一个合适值通常是最小长度的三到五倍兼顾匹配和增益。3.4 校核输出阻抗和开环增益尺寸定好以后手算一下输出阻抗用来确认开环增益有没有可能达标。输出阻抗是上下两条高阻路径的并联。向上看M3作为共栅管它源极下面接的是折叠电流源和输入管漏极的并联阻抗等效输出阻抗大约为gm3乘以rds3再乘以(rds5并联rds1)。向下看是负载管的输出阻抗如果用了cascode负载还要再乘一级增益。把典型值代进去gm3取300μSrds3取0.3MΩrds5并联rds1大约0.15MΩ那么向上看就是300μS×0.3MΩ×0.15MΩ约为13.5MΩ。向下的负载若也是十几兆欧并联后Rout大约7MΩ。再乘输入管gm1为1.26mS开环增益约为8800倍也就是接近79dB余量是够的。如果算出来增益差一截优先检查是不是折叠支路电流取得太大把共源共栅管推到了中等反型区导致gm3下降或者是负载管尺寸太小rds不够大。这两个地方是增益最容易掉链子的位置。4. 偏置电路与共模反馈最容易被坑的两个模块4.1 共源共栅偏置电压的产生折叠共源共栅对偏置电压的要求比普通电流镜严苛得多。M3的栅极偏置电压如果产生得不精准输出共源共栅管的VDS可能偏大或偏小直接影响摆幅和增益。最简单的偏置法是用二极管连接的管子生成Vgs再复制到目标管。但这种方法的问题是二极管连接管的VDS等于VGS而实际工作管的VDS未必和VGS相等两者工作点不同镜像精度就会打折。更好的办法是用自偏置cascode结构。原理是给每一级cascode都单独调出一个合适的源漏电压让上面的工作和下面镜像管的工作状态保持一致。这样即使工艺角偏移过驱动电压也会跟着同向变化镜像管不容易掉出饱和区。我强烈建议在正式设计里直接用低压cascode自偏置结构不要图省事用电阻分压那是调试时拿来凑合用的方法。4.2 全差分结构离不开共模反馈折叠式共源共栅如果用在全差分结构里输出共模电平不会自己稳定。因为电流镜和cascode只能约束差分电流对共模漂移毫无抑制力输出共模可能跑到一个某个管子的线性区整个放大器就废了。连续时间CMFB是最常想到的方案用两个大电阻从输出端取出共模电压和参考共模电压比较误差放大器再输出一个控制电压去调节负载管的栅极把输出共模拖回参考值。在实际电路里我喜欢用开关电容共模反馈尤其是在开关电容应用里。它是用电容采样输出共模再和参考电荷相比不会像电阻那样给输出端引入额外直流负载也不会吃掉输出摆幅。不过开关电容CMFB要在时钟非交叠相里工作设计时要额外考虑电容值和时钟馈通。4.3 共模反馈环路的稳定性同样要仿真很多人把CMFB环路当成事后的“补丁”但CMFB环路如果相位裕度不够照样振荡。因为它的环路增益和主环路共享大量低频增益但采样网络又会引入额外的极点和延迟。我的调试顺序是这样的先开环把主放大器的直流工作点调好然后用理想共模电压源直接拉住负载管栅极只测差分信号通路的AC特性确认差分环路稳定后再接上真实的CMFB电路看共模环路的开环增益和相位。这样做的好处是即使共模环路出问题也能快速定位到底是谁的锅。5. 性能优化方向增益、噪声、电源抑制比和版图5.1 增益不够时先动cascode偏置再动尺寸增益不达标不要一上来就疯狂加管子长度。先确认输出共源共栅管是不是真的在饱和区这是最常见的原因。如果M3的VDS太小它可能已经工作在弱饱和甚至线性区边缘输出阻抗下降一个数量级。这时候调高M3栅极偏置电压把它往饱和区拉深一点增益可能立刻回升好几dB。如果偏置已经到顶了还不够再加大M3的长度或者把负载改成cascode负载用多一级增益把输出阻抗顶上去。还有一个小技巧折叠节点的寄生电阻如果太大会吃掉有效跨导。缩小输入管和折叠电流管的面积或者稍微增大输入管电流可以降低折叠节点的等效阻抗让信号电流尽量多流向M3的源极。5.2 噪声优化要把每一路电流噪声折算回输入端折叠式共源共栅的噪声理论上比套筒式差主要原因是额外的折叠电流源和负载管都往输出注入噪声折合到输入端时都会除以输入管的跨导。热噪声这一块输入参考噪声电压正比于各项噪声电流除gm1的平方和开根。要降噪第一优先是增大输入管gm这是最有效的手段第二是限制折叠支路电流的噪声方法是把折叠电流源管子的gm压低也就是让它们工作在深饱和区用大过驱动电压负载管的噪声贡献也一样它的等效跨导越小越好。闪烁噪声则更多依赖输入对的尺寸特别是输入端如果用PMOS闪烁噪声往往比NMOS小。如果系统带宽很低输入管面积就得往大了做。5.3 电源抑制比为什么弱又怎么弥补折叠式共源共栅的电源抑制比确实比套筒式弱因为电源上的扰动可以通过折叠电流源管直接耦合到折叠节点再传到输出端。尤其是高频时电源噪声更是无处可逃。提升PSRR的手段有几种把折叠电流源也做成cascode结构增加它对电源扰动的隔离度确保输入管对管和尾电流源管与大信号路径的寄生电容尽量对称让电源噪声在差模端被抵消掉必要时在版图上给敏感节点加屏蔽。如果你的系统对电源噪声特别敏感又不想牺牲太多性能那么在折叠式OTA旁边加一个低噪声稳压器是更实际的工程方案。片内LDO的噪声指标反而比OTA本身更容易控制。5.4 版图匹配输入对管和镜像管是亲儿子版图布局对于折叠共源共栅的影响很大主要看三处。第一是输入对管必须采用交叉指或者共质心布局尽量保证两个输入管的源漏寄生电容和沟道应力一致否则失调电压和二阶谐波都会被拖累。第二是折叠电流源左右两边的PMOS管它们的镜像比例一定要配好否则折叠节点的静态电流不对称输出共模会偏移。第三是输出级两个cascode管它们决定了差分信号路径的对称性寄生电容不一致会直接破坏高频共模抑制比。我的经验是输入对周围加一圈接地保护环把衬底噪声隔在外面输出走线要短粗对称不要为了好看绕大圈。6. 常见问题速查与排查实录6.1 输出摆幅比理论计算小很多如果实际仿真摆幅比计算的窄优先查折叠节点电压。折叠PMOS如果没进入饱和区它的漏极会把折叠节点电压拉得很高输出高电平就上不去。另外负载管的Vov是不是被CMFB控制电压抬得太高也经常是原因。CMFB环路为了把共模拉到目标值可能会把负载管栅压压得过低等效负载管的Vov变大输出低电平被顶高。这个问题的解法是回头调整CMFB参考电压和负载管尺寸让调节范围落在正常区。6.2 所有管子都报饱和但增益依旧不达标这是仿真里最气人的问题DC工作点明明都正常交流小信号增益却只有40dB不到。我遇到过好几次最后定位到的原因基本是某条低阻路径寄生并联在输出节点上。常见的低阻路径有cascode管的体效应使输出阻抗下降、输出节点的ESD二极管漏电、折叠节点的寄生电容在高频时形成了信号旁路。查的时候可以用AC仿真里的输出阻抗曲线从低频开始看Rout到底多大如果Rout远低于手算值说明有额外的低阻路径被忽略了。6.3 共模反馈环路振荡CMFB环路振荡的表现是输出共模开始上下抖动或者上电后共模总在固定的几个电平之间跳来跳去。排查思路是先断开实际CMFB用理想电压源托住输出共模确认主差分环路稳定然后用AC仿真单独测CMFB环路的相位裕度。多数情况下问题出在CMFB采样电阻或电容太大给环路增加了一个低频极点或者CMFB运放的带宽太高在单位增益频率附近贡献了太多相移。把CMFB运放的GBW压低一些一般就能治好。6.4 温度变化后偏置点漂移严重工艺角扫一下没问题温度一拉到85℃或-40℃有些管子就掉出饱和区。这通常说明Vov分配余量留得太小尤其是折叠节点附近的电压窗口。解决方案是给关键偏置电压留更宽的电压余量同时在偏置电路里加入与主支路同类型的二极管连接管让偏置电压随温度同趋势漂移。仿真时把温度从-40℃到85℃、三个工艺角、再加上电阻10%偏差全部跑一遍再下结论。7. 设计和版图备忘一张可以贴在工作站前的checklist电流平衡确认IF大于ISS/2输出支路静态电流在合理范围。过驱动分配把输出摆幅目标拆到每个管子的Vov留好温度余量。偏置产生用自偏置cascode结构不要用电阻硬分压。CMFB先做开环DC和差分AC验证再接CMFB环最后扫环路稳定性。噪声预算输入管gm优先做高折叠电流源和负载管gm尽量压低。电源抑制折叠电流源加cascode敏感节点屏蔽。版图匹配输入对共质心左右折叠支路严格对称输出走线对称短粗。角仿真五个工艺角、三个温度、电源电压±10%都要过一遍。这套设计流程我用了很多年每次做一个新的折叠式共源共栅都是从头把这些检查项过一遍。它的好处是任何一个环节出问题都能从清单里快速定位是哪一步没做到位而不是对着仿真波形乱猜原因。折叠式共源共栅这个结构本身并不复杂真正复杂的是那些藏在工作点、偏置、版图里的细节。把它们一条条理顺你做出来的OTA会稳很多。