1. 为什么折叠式共源共栅结构值得花时间吃透做模拟集成电路设计的人迟早会碰到一个经典命题在低电源电压下如何同时拿到高增益和足够的输出摆幅。套筒式共源共栅Telescopic Cascode虽然增益高、频率响应好但它有一个致命短板——输出摆幅被严重压缩而且输入共模范围很窄。在0.18μm工艺下电源电压通常只有1.8V套筒式结构留给输出信号的余量往往捉襟见肘。折叠式共源共栅Folded Cascode就是在这个矛盾下最实用的折中方案。它把输入管和共源共栅管放在不同的电流支路上输入管的漏极不再被共源共栅管“叠”在上面而是通过一条折叠的电流路径连接到输出节点。这个“折叠”动作带来的直接好处是输入共模范围和输出摆幅可以分别独立优化两者不再互相挤压。我第一次在Cadence Virtuoso里搭这个结构的时候最大的感受是理论推导看起来顺理成章但真正在ADE里跑仿真时工作点、偏置、增益、相位裕度之间的拉扯远比教科书复杂。这篇文章就把我从零开始搭一个0.18μm工艺下折叠式共源共栅放大器的完整过程拆开来讲包括每个管子尺寸怎么定、偏置怎么给、仿真怎么设、版图要注意什么。适合已经学过基础模拟电路、想动手在Cadence里跑通一个完整放大器设计流程的人。2. 设计目标与整体架构拆解2.1 先定指标再谈结构动手画原理图之前必须先把设计指标写清楚。没有指标的放大器设计就是无头苍蝇管子尺寸根本没法定。我这次的设计目标如下参数目标值说明电源电压1.8V0.18μm工艺典型值直流增益≥60dB单级折叠共源共栅可达到单位增益带宽≥50MHz取决于负载电容相位裕度≥60°保证稳定性输出摆幅≥1.2Vpp差分输出静态功耗≤2mW每支路电流约0.5mA负载电容1pF典型片上负载这些指标不是随便写的。60dB增益意味着需要两级以上的增益级或者单级共源共栅50MHz带宽在1pF负载下要求输出节点的等效跨导和输出电阻的乘积足够大1.2Vpp的输出摆幅在1.8V电源下要求每个输出管至少留0.3V的过驱动电压余量。这些约束条件会直接决定后面每一个管子的尺寸和偏置电流。2.2 折叠式共源共栅的拓扑选择理由折叠式共源共栅之所以适合这个场景核心原因有三个。第一输入共模范围宽。输入差分对的漏极电压可以低到Vov附近不需要像套筒式那样把输入管“顶”到很高的位置。这意味着输入共模可以接近地电位对于低电压应用非常友好。第二输出摆幅大。输出节点的摆幅只受共源共栅管和电流源管的过驱动电压限制通常是2×Vov加上一点余量。在0.18μm工艺下如果Vov取0.2V输出摆幅可以做到1.8V - 4×0.2V 1.0V以上满足1.2Vpp的要求。第三偏置灵活。折叠支路的电流可以独立于输入支路调整这意味着可以单独优化输入管的跨导和共源共栅管的输出电阻而不必在两者之间做痛苦的折中。代价也是有的折叠结构多了一条电流支路功耗比套筒式高折叠节点存在寄生电容高频响应会受影响噪声也比套筒式略大。但在1.8V电源和1pF负载的条件下这些代价完全可以接受。2.3 整体电路框图与信号流向整个放大器由四部分组成偏置电路、输入差分对、折叠共源共栅级、输出级。信号从输入差分对的栅极进入经过差分放大后从漏极流出被折叠到共源共栅管的源极再经过共源共栅管放大后从漏极输出。偏置电路提供所有管子的栅极电压和尾电流。在Cadence Virtuoso里我习惯先画一个单端半边电路来验证工作点确认无误后再扩展成全差分结构。这样调试起来更直观出问题也更容易定位。3. 0.18μm工艺下的管子尺寸与偏置计算3.1 工艺参数提取与手算起点在Cadence里开始画图之前我通常会先从工艺库的模型文件中提取几个关键参数NMOS和PMOS的阈值电压Vth、迁移率μ、氧化层电容Cox、以及沟道长度调制系数λ。0.18μm工艺的典型值大致是NMOS的Vth约0.4VPMOS的Vth约-0.45VCox约8.5fF/μm²μn约350cm²/V·sμp约100cm²/V·s。这些参数不需要背在Virtuoso的模型文件里都能找到。我一般会打开模型文件搜索“VTH0”、“U0”、“TOX”这几个关键字把数值记下来。手算的目的不是精确而是给仿真一个合理的起点。如果完全靠仿真试凑管子尺寸的搜索空间太大效率极低。3.2 输入差分对的尺寸确定输入差分对的跨导gm决定了整个放大器的增益和带宽。根据指标单位增益带宽GBW gm1 / (2π × CL)其中CL 1pFGBW 50MHz可以反推出gm1 2π × 50M × 1p 314μS。有了gm1再根据功耗预算确定尾电流。我设定输入管的过驱动电压Vov1 0.15V则尾电流Itail 2 × gm1 × Vov1 / 2 gm1 × Vov1 314μ × 0.15 47μA。这个电流偏小实际我会取100μA左右留一些余量。输入管的宽长比由gm μn × Cox × (W/L) × Vov计算。代入数值314μ 350 × 8.5f × (W/L) × 0.15解得W/L ≈ 7。在0.18μm工艺下我取L 0.18μm则W ≈ 1.26μm。实际我会取W 2μmL 0.18μm这样W/L ≈ 11gm会略大一些带宽更有保障。3.3 折叠共源共栅管的尺寸与偏置共源共栅管的尺寸主要影响输出电阻和输出摆幅。输出电阻Rout ≈ gm3 × ro3 × ro1其中gm3是共源共栅管的跨导ro3和ro1分别是共源共栅管和输入管的输出电阻。为了达到60dB增益Rout需要满足Av gm1 × Rout ≥ 1000即Rout ≥ 1000 / 314μ ≈ 3.2MΩ。在0.18μm工艺下单管的ro大约在几十kΩ到几百kΩ量级。通过共源共栅结构输出电阻可以提升到MΩ级别。我取共源共栅管的L 0.18μmW 4μmVov3 0.2V这样gm3 ≈ 2 × Id / Vov3 2 × 100μ / 0.2 1mSro3 ≈ 1 / (λ × Id) ≈ 1 / (0.1 × 100μ) 100kΩ。输入管的ro1也类似最终Rout大约在几MΩ满足增益要求。偏置电压方面共源共栅管的栅极需要偏置在Vgs3 Vth3 Vov3 ≈ 0.4 0.2 0.6V。这个电压由偏置电路产生我通常用一个简单的电流镜加二极管连接管来生成。3.4 电流源管与偏置电路的配合折叠支路的电流源管负责提供恒定的折叠电流。我设定折叠电流等于尾电流的一半即50μA每边。电流源管的尺寸需要保证在输出摆幅范围内保持饱和。取Vov5 0.2V则W/L 2 × Id / (μp × Cox × Vov5²) 2 × 50μ / (100 × 8.5f × 0.04) ≈ 29。取L 0.18μmW ≈ 5.2μm实际取W 6μm。偏置电路我用一个简单的宽摆幅电流镜产生所有需要的栅极电压。在Virtuoso里我会先单独仿真偏置电路确认各节点电压正确后再连接到主电路。4. Cadence Virtuoso实操全流程4.1 原理图绘制与器件选型打开Cadence Virtuoso新建一个schematic view。从工艺库中调用nmos和pmos器件。0.18μm工艺通常提供多种器件类型比如nmos_18、pmos_18、nmos_rf等。对于这个设计我用标准nmos_18和pmos_18就够了不需要RF器件。画原理图时我习惯从左到右、从输入到输出依次摆放器件。输入差分对放在最左边折叠共源共栅管放在中间电流源管放在上下两侧偏置电路放在最右边。这样信号流向清晰调试时也容易定位问题。器件参数设置时注意W和L的单位。在Virtuoso里默认单位是米但工艺库通常用微米。我一般直接在属性里填“2u”表示2μm“0.18u”表示0.18μm。多指结构fingers也要设置对于W较大的管子我会用多个finger来降低栅极电阻。比如W 6μm的管子可以用3个finger每个finger宽度2μm。4.2 直流工作点仿真与调试原理图画完后第一件事是跑直流工作点仿真DC Operating Point。在ADE L或ADE XL里选择dc分析勾选“Save DC Operating Point”。仿真完成后用“Annotate”功能把各节点的电压和电流标注在原理图上。我重点看几个地方输入管的Vgs是否在0.5V到0.7V之间共源共栅管的Vds是否大于Vov电流源管的Vds是否足够。如果某个管子进入了线性区说明偏置有问题需要调整。常见的问题是折叠节点的电压不对。折叠节点是输入管漏极和共源共栅管源极的连接点它的电压应该大约等于Vdd - Vgs3 - Vov1。如果这个电压偏离太多说明电流源管的电流和输入管的电流不匹配。解决方法通常是调整电流源管的W或偏置电压。4.3 交流小信号仿真与增益带宽验证直流工作点确认无误后跑交流小信号仿真AC Analysis。在ADE里设置频率范围从1Hz到1GHz扫描类型选对数。输出节点选差分输出的一端输入加一个AC幅度为1的差分信号。仿真完成后用Calculator或Direct Plot功能画出增益曲线和相位曲线。增益曲线在低频段应该平坦然后以-20dB/dec的斜率下降。相位曲线从0°开始在单位增益频率处应该有至少60°的相位裕度。如果增益不够通常是输出电阻不够大。可以增大共源共栅管的L或者增大输入管的gm。如果带宽不够可以增大尾电流或减小负载电容。如果相位裕度不够可能是次极点太靠近单位增益频率需要调整共源共栅管的尺寸或增加补偿电容。4.4 瞬态仿真与输出摆幅测试交流仿真验证了增益和带宽但输出摆幅需要瞬态仿真来验证。在ADE里设置transient分析输入加一个差分正弦波频率1MHz幅度从0.1V逐步增大到0.6V。观察输出波形是否失真。我通常会用“Parametric Analysis”功能让输入幅度从0.1V扫到0.6V步长0.05V自动记录每个幅度下的输出THD。当THD超过1%时对应的输出幅度就是最大不失真输出摆幅。如果这个值小于1.2Vpp说明输出管的过驱动电压太大需要减小Vov或调整偏置。4.5 噪声与功耗的折中检查噪声仿真在ADE里用noise分析。设置输出节点和输入源扫描频率范围。0.18μm工艺下折叠式共源共栅的输入参考噪声通常在几十nV/√Hz量级。如果噪声偏大可以增大输入管的gm或者减小电流源管的噪声贡献。功耗检查很简单在直流仿真结果里看电源电流乘以电源电压就是总功耗。如果超过2mW需要减小尾电流或折叠电流。但要注意减小电流会影响增益和带宽需要重新迭代。5. 版图设计与后仿真要点5.1 版图布局的基本策略原理图仿真通过后下一步是画版图。折叠式共源共栅的版图布局有几个关键点输入差分对必须对称共源共栅管和电流源管要匹配偏置电路的走线要远离信号路径。我通常采用“中心对称”布局输入差分对放在中间左右完全对称共源共栅管放在输入对的上方和下方电流源管放在最外侧。这样热梯度和工艺梯度的影响可以相互抵消。5.2 匹配与寄生优化差分对的匹配直接影响失调电压。在版图上我会用交叉指结构interdigitated或者共中心common-centroid布局。比如两个输入管各用4个finger交叉排列成ABAB或ABBA。这样即使工艺有梯度两个管子的等效参数也能保持一致。寄生电容方面折叠节点的寄生电容会降低高频增益。在版图上我会尽量减小折叠节点的面积走线用高层金属减少对地电容。共源共栅管的漏极输出节点也要注意走线尽量短而宽降低电阻和电容。5.3 后仿真流程与结果对比版图画完后用Calibre或Assura做LVSLayout Versus Schematic检查确认版图和原理图一致。然后提取寄生参数生成带寄生的网表。在ADE里用这个网表跑后仿真对比前仿真结果。后仿真的增益通常会比前仿真低几个dB带宽也会下降这是寄生电容和电阻的影响。如果下降太多说明版图寄生太大需要优化布局。我一般要求后仿真增益不低于前仿真增益的90%带宽不低于80%。6. 常见问题与排查技巧实录6.1 直流工作点不收敛怎么办这是新手最常遇到的问题。Virtuoso的直流仿真有时候会不收敛尤其是电路里有正反馈或高增益环路时。解决方法有几个在ADE的dc分析设置里把“Convergence”选项改成“Gear”或“Trap”给关键节点加初始条件Initial Condition或者先用一个简单的偏置电路让电路启动再切换到完整电路。我个人的习惯是在偏置电路里加一个启动电路Start-up Circuit防止电路进入零电流状态。启动电路很简单就是一个二极管连接的管子加一个电容上电时给偏置节点充电。6.2 增益远低于预期怎么查增益不够先查直流工作点。如果某个管子不在饱和区增益肯定上不去。重点看共源共栅管的Vds是否大于Vov电流源管的Vds是否足够。如果都正常再查输出电阻。可以在输出节点加一个AC电流源仿真输出电压直接算出输出电阻。另一个常见原因是负载效应。如果输出节点接了测试电路或寄生电容增益会下降。检查ADE里的输出负载设置确认没有意外的电阻或电容。6.3 相位裕度不足的补偿手段相位裕度不足通常是因为次极点太靠近单位增益频率。折叠式共源共栅的主极点在输出节点次极点在折叠节点。如果折叠节点的寄生电容太大次极点就会下移。补偿方法有三种减小折叠节点的寄生电容优化版图增大共源共栅管的gm增大W或电流在输出节点加补偿电容米勒补偿。我一般优先用前两种因为加补偿电容会降低带宽。6.4 仿真速度太慢的优化技巧Cadence仿真大电路时速度慢是常态。几个提速技巧在ADE里把仿真精度从“conservative”改成“moderate”减少保存的节点数量只保存关键节点用ADE XL的并行仿真功能同时跑多个corner。另外仿真前先跑一个简化的直流仿真确认工作点合理再跑完整的AC和瞬态。这样可以避免在错误的工作点上浪费大量仿真时间。7. 从原理图到流片的经验沉淀整个流程走下来我最大的体会是折叠式共源共栅的设计难点不在理论而在迭代。手算给出的尺寸只是一个起点真正的优化需要在仿真中反复调整。我通常会把关键参数做成变量在ADE里用Parametric Analysis扫描找到最优组合。另一个经验是不要忽视偏置电路。很多设计失败不是因为核心放大器不好而是偏置电路在某个corner下失效了。我一般会跑TT、SS、FF、SF、FS五个corner确认所有corner下偏置都正常。最后版图阶段一定要留足时间。后仿真和前仿真的差距往往超出预期尤其是高频应用。我习惯在版图完成后先跑一遍后仿真根据结果微调管子尺寸再重新画版图。这个迭代过程可能需要两到三轮但最终流片的成功率会高很多。对于想进一步扩展的读者可以尝试把这个单端输出改成全差分输出增加共模反馈电路或者把折叠式共源共栅作为两级放大器的第一级第二级用简单的共源放大器这样可以同时拿到高增益和大摆幅。这些扩展在0.18μm工艺下都是可行的只是需要更多的仿真和调试时间。