1. 从一颗管子的憋屈说起为什么需要Cascode做模拟IC这行的尤其是刚入门的头两年几乎都经历过同一个困惑明明算出来单管共源放大器的增益是gm乘以ro公式背得滚瓜烂熟可一到实际仿真增益就是上不去。你调偏置、加电流、换沟长折腾半天增益也就几十倍想上100都费劲。问题出在哪出在ro这个本征输出电阻上。在先进工艺节点下沟道长度调制效应越来越明显一颗管子自身的ro其实相当有限。你就算把L拉到工艺允许的最大值单管能给你的本征增益也就那么回事。更要命的是如果你需要高增益就得堆多级但多级放大器带来的是频率补偿的噩梦和功耗的飙升。Cascode共源共栅结构就是在这个背景下登场的。它的核心思路非常朴素既然一颗管子的输出电阻不够大那我就在它上面再叠一颗管子让下面那颗管子的漏极电压波动被上面那颗管子“屏蔽”掉。这个屏蔽效应就是Cascode提升输出电阻的本质。我打个比方。单管共源放大器就像一个站在风口的人风一吹漏极电压变化他整个人都在晃电流变化大。而Cascode是在这个人前面又站了一个人后面那个人挡住了大部分风前面那个人只感受到很小的风力变化。结果就是整个“人墙”对外表现出来的稳定性大大提升——对应到电路里就是输出电阻大幅增加。这个结构在模拟IC设计里几乎是必修课。无论是做运算放大器、误差放大器、还是折叠式共源共栅放大器Cascode都是绕不开的基本功。它解决的问题很明确在不大幅增加功耗和面积的前提下把单级增益从几十倍提升到几百甚至上千倍。适合谁看适合正在学模拟IC设计、准备做全差分高增益放大器、或者正在用华大九天Aether之类EDA工具做电路仿真的同学。2. 核心原理拆解Cascode到底做了什么2.1 输出电阻的“乘法效应”先看最基本的Cascode结构一个共源管M1上面叠一个共栅管M2。M1的源极接地栅极接输入信号M2的源极接M1的漏极栅极接一个固定偏置漏极接负载。关键点在于M2的源极也就是M1的漏极这个节点。当输出端电压变化时M2的源极电压变化量远小于漏极电压变化量。为什么因为M2是共栅组态从它的源极看进去的电阻大约是1/gm2。这个1/gm2很小所以M1的漏极电压几乎不变。M1的漏极电压不变意味着M1的电流几乎不变。从输出端看进去整个结构的等效输出电阻就变成了Rout ≈ (gm2 × ro2) × ro1 ro1 ro2简化一下当gm2×ro2远大于1时Rout ≈ gm2 × ro2 × ro1。这就是所谓的“乘法效应”——M2把自己的本征增益gm2×ro2乘到了M1的ro1上。假设每颗管子的本征增益是20那么Cascode结构的输出电阻就是单管的20倍。增益直接翻20倍这就是Cascode最直接的贡献。2.2 增益提升的代价电压余度天下没有免费的午餐。Cascode叠了一层管子输出摆幅就被吃掉了一部分。M2需要一定的漏源电压才能工作在饱和区这个电压至少是过驱动电压Vov2。也就是说输出端的最大电压比单管结构低了大约一个Vov。在低电源电压设计中这个代价有时候是致命的。比如电源电压只有1.2V单管结构可能还能勉强工作叠了Cascode之后输出摆幅被压缩得所剩无几。这时候就需要考虑折叠式共源共栅结构或者用低压Cascode技术来缓解。我个人的经验是如果电源电压大于1.8VCascode随便用如果电源电压在1.2V到1.8V之间要仔细算摆幅如果低于1.2V就得认真考虑折叠式或者别的拓扑了。2.3 为什么偏置电压不能随便给M2的栅极偏置电压决定了M2的工作状态。如果偏置太低M2可能进入线性区Cascode的屏蔽效应就没了输出电阻急剧下降。如果偏置太高M2的源极电压被抬得太高M1的漏源电压被压缩M1可能进入线性区。所以M2的栅极偏置需要精确设计通常用电流镜或者电阻分压来产生。在实际设计中我习惯把M2的栅极偏置设在VDD减去一个Vov再减去一点余量的位置确保M2始终工作在饱和区同时给M1留足够的漏源电压。这里有个细节M2的衬底接法。如果M2是PMOS衬底接VDD如果是NMOS衬底接地。但在某些工艺里M2的衬底可以接自己的源极这样可以消除体效应让阈值电压更稳定。不过这会增加工艺复杂度需要根据具体工艺库来决定。3. 从单管到Cascode完整设计流程与实操3.1 设计指标定义假设我们要设计一个Cascode共源共栅放大器指标如下参数目标值增益≥60dB带宽≥10MHz电源电压1.8V功耗≤1mW输出摆幅≥1Vpp这些指标在模拟IC设计中很典型。60dB增益对应1000倍电压放大单管结构很难做到Cascode是合理选择。3.2 工艺库选择与管子参数确定我以某0.18μm工艺为例。NMOS的典型参数μnCox ≈ 300μA/V²Vth ≈ 0.45Vλ ≈ 0.1V⁻¹对应L0.5μm时。PMOS的μpCox大约是NMOS的三分之一。先确定沟道长度。为了获得较高的本征增益L不能取最小尺寸。0.18μm工艺里L取0.5μm到1μm比较合适。我选L0.6μm此时λ大约0.08V⁻¹本征增益gm×ro ≈ 1/(λ×Vov)。如果Vov取0.2V本征增益约60倍也就是35dB左右。单管35dB离60dB差25dB。Cascode能提供多少理论上Cascode的输出电阻是单管的gm2×ro2倍。如果M2的本征增益也是60倍那总输出电阻就是单管的60倍增益提升35dB。353570dB超过60dB目标有足够余量。3.3 偏置电流与管子尺寸计算功耗≤1mW电源1.8V总电流≤556μA。单级Cascode放大器我分配500μA给这一级。M1的过驱动电压选0.2V则gm1 2×ID/Vov 2×500μA/0.2V 5mA/V。M1的宽长比ID 0.5×μnCox×(W/L)×Vov² 500μA 0.5×300μA/V²×(W/L)×0.04V² 解得W/L ≈ 83.3。取W50μmL0.6μmW/L83.3正好。M2的尺寸可以和M1相同也可以略小。为了减小寄生电容我取M2的W25μmL0.6μmW/L41.7。M2的过驱动电压会略大因为电流相同但W/L减半Vov2 Vov1×√2 ≈ 0.283V。M2的栅极偏置Vg2 VDD - Vov2 - Vmargin。Vmargin取0.1V则Vg2 1.8 - 0.283 - 0.1 1.417V。这个电压可以用一个简单的电阻分压或者电流镜偏置来产生。3.4 仿真验证与调优用华大九天Aether或者Cadence做DC仿真先看静态工作点。确认M1和M2的Vds都大于Vov都在饱和区。然后跑AC仿真看增益和带宽。我第一次仿真的时候增益只有55dB比预期低。查了半天发现是M2的衬底接法有问题。原来我把M2的衬底接地了但M2的源极电位在0.5V左右存在体效应导致Vth升高gm2下降。后来把M2的衬底接源极增益恢复到68dB。这个坑很典型。在双阱工艺里NMOS的衬底可以独立接源极消除体效应。但在单阱工艺里所有NMOS共享衬底就只能忍受体效应带来的性能损失。3.5 版图注意事项Cascode结构的版图有几个要点。M1和M2要放在一起保持方向一致减少工艺梯度的影响。M2的栅极走线要尽量短避免引入额外寄生电容。输出节点的寄生电容要控制因为Cascode的输出电阻很高任何寄生电容都会在输出节点形成一个低频极点影响带宽。我习惯在输出节点做guard ring减少衬底噪声耦合。另外M1和M2之间可以加一个dummy管子改善匹配。4. 常见问题与排查技巧实录4.1 增益远低于理论值这是最常见的问题。原因通常有几个M2没工作在饱和区、体效应导致gm2下降、输出节点有漏电通路、仿真设置不对。排查步骤先看DC工作点确认所有管子的VdsVov。然后看M2的Vth是否因为体效应升高。再检查输出节点有没有意外的电阻通路比如ESD保护电路或者测试焊盘。最后确认AC仿真的频率范围是否覆盖了主极点。4.2 带宽不达标Cascode的输出电阻高输出节点的主极点频率低。如果带宽不够要么减小输出节点的寄生电容要么降低输出电阻牺牲增益要么增加功耗提高gm。我通常先优化版图减少输出节点的金属面积。如果还不够就在输出端加一个源极跟随器做缓冲把主极点推到更高频率。4.3 输出摆幅被压缩这是Cascode的固有代价。如果摆幅不够可以考虑折叠式共源共栅结构。折叠式把输入管和Cascode管分开输出摆幅可以做到接近电源电压。代价是功耗增加因为折叠支路需要额外的电流。4.4 偏置电路不稳定M2的栅极偏置如果来自电流镜电流镜的匹配很重要。如果电流镜的管子失配M2的偏置电压会偏离设计值导致增益下降或者摆幅不够。我习惯在偏置电路里加去耦电容滤掉电源噪声。4.5 仿真与实测差距大仿真里增益70dB实测只有50dB这种情况太常见了。原因可能是键合线电感、PCB寄生电容、电源噪声、或者工艺角偏差。我的经验是仿真时一定要跑所有工艺角TT、SS、FF、SF、FS看最差情况下的增益。如果最差情况能达标实测才有希望。5. 从Cascode到折叠式进阶拓扑选择5.1 折叠式共源共栅放大器的适用场景折叠式共源共栅放大器是Cascode的升级版。它的核心思路是把输入管和Cascode管放在不同的支路上输入管的漏极不再直接叠Cascode管而是通过一个电流源折叠到另一条支路。这样做的好处是输出摆幅大大增加因为输出节点只需要一个Cascode管的Vov。代价是功耗增加因为折叠支路需要额外的电流而且输入管的电流和Cascode管的电流是分开的。什么时候用折叠式电源电压低于1.5V或者需要大输出摆幅的时候。我做过一个1.2V电源的误差放大器用普通Cascode摆幅只有0.4V换成折叠式之后摆幅做到0.9V效果很明显。5.2 全差分高增益放大器的设计要点全差分结构在模拟IC里很常见因为它能抑制共模噪声还能提供双端输出。用Cascode做全差分放大器需要注意共模反馈电路的设计。共模反馈的作用是稳定输出共模电压。如果没有共模反馈全差分放大器的输出共模电压会漂移导致管子进入线性区。共模反馈电路通常是一个差分放大器检测输出共模电压和参考电压比较然后反馈到偏置电路。我在设计全差分Cascode放大器时习惯把共模反馈的带宽做得比主放大器低避免共模环路和差模环路互相干扰。5.3 误差放大器中的Cascode应用误差放大器在电源管理芯片里很常见它的增益直接影响系统的精度。Cascode结构能提供高增益适合做误差放大器的第一级。但误差放大器通常需要单端输出所以Cascode后面还要加一个电流镜或者有源负载做差分到单端的转换。这个转换级的匹配很重要失配会引入输入失调电压。我做过一个误差放大器第一级用Cascode第二级用共源总增益80dB。实测失调电压只有2mV效果不错。关键是把第一级的管子做大减小随机失配。6. 实操心得与避坑指南6.1 管子尺寸不是越大越好刚开始做设计的时候我总想把管子做大觉得大了匹配好、噪声低。但管子大了寄生电容也大带宽就下来了。而且大管子的栅极电阻也大高频性能差。我的经验是输入管可以适当大一些减小闪烁噪声和失配。Cascode管不用太大因为它的gm对增益的贡献是乘法关系稍微小一点影响不大但寄生电容小很多。6.2 偏置电压要留足余量M2的栅极偏置电压我通常会在理论值基础上留50mV到100mV的余量。因为工艺角变化、温度变化都会影响Vth如果偏置卡得太紧某个工艺角下M2就进入线性区了。6.3 仿真时一定要看瞬态AC仿真看增益和带宽DC仿真看工作点但瞬态仿真才能看出建立时间、压摆率、过冲这些动态性能。我见过很多设计AC指标很漂亮瞬态一跑就振荡。Cascode结构的相位裕度通常不错但如果负载电容太大或者偏置电路有极点也可能振荡。瞬态仿真时加一个阶跃信号看输出的建立过程心里就有数了。6.4 版图匹配比电路参数更重要电路仿真用的是理想匹配版图里管子失配是随机的。Cascode结构里M1和M2的匹配直接影响输出电阻和增益。我习惯用共心布局或者交叉指状布局让M1和M2的质心重合。6.5 别忘了电源和地的走线Cascode的输出电阻高对电源和地的噪声很敏感。版图里电源和地的走线要尽量宽减少IR drop和电感效应。我通常会在电源和地之间加去耦电容位置尽量靠近管子。7. 一个完整的Cascode放大器设计实例7.1 指标与拓扑确定目标增益70dB带宽5MHz电源1.8V功耗2mW。拓扑选NMOS输入CascodePMOS电流镜做有源负载。7.2 具体参数管子类型W/LVovgmroM1NMOS50/0.60.2V5mA/V25kΩM2NMOS25/0.60.28V3.5mA/V35kΩM3PMOS100/0.60.25V4mA/V20kΩM4PMOS50/0.60.35V2.8mA/V28kΩ输出电阻Rout ≈ gm2×ro2×ro1 3.5m×35k×25k 3.06MΩ 增益Av gm1×Rout 5m×3.06M 15300约84dB。留了14dB余量。7.3 仿真结果TT工艺角增益82dB带宽6MHz相位裕度65度。 SS工艺角增益78dB带宽5.5MHz相位裕度60度。 FF工艺角增益85dB带宽6.5MHz相位裕度70度。所有工艺角都达标。7.4 版图与后仿版图面积0.05mm²后仿增益79dB带宽5.2MHz。寄生电容导致增益下降3dB带宽下降0.8MHz在可接受范围内。这个设计后来流片了实测增益76dB带宽4.8MHz。和仿真差距主要来自键合线和PCB寄生。整体性能满足要求。8. 写在最后一些零散但有用的经验做模拟IC设计这些年Cascode是我用得最多的结构之一。它简单、有效、可靠。但我也踩过不少坑有些是理论没吃透有些是仿真设置不对有些是版图疏忽。如果你刚开始学我的建议是先把单管共源放大器的增益公式推导一遍理解gm和ro的物理意义。然后手动算一遍Cascode的输出电阻不要直接套公式自己推。推完之后再仿真验证看看理论和仿真的差距在哪里。工具方面华大九天Aether和Cadence都可以关键是理解仿真器的设置。AC仿真里的频率范围、扫描点数、输出节点选择都会影响结果。我习惯把频率范围设成1Hz到1GHz扫描点数设成每十倍频程100个点这样既能看到低频增益也能看到高频滚降。最后说一个细节Cascode的噪声。Cascode结构本身不会显著增加噪声因为M2的噪声贡献被M1的gm放大了折算到输入端的等效噪声电压主要是M1的噪声。但如果M2的gm太小它的噪声贡献就会变大。所以M2的gm不能取太小一般建议gm2≥gm1。这些经验都是我在实际项目中一点一点积累的希望对正在学模拟IC设计的你有所帮助。Cascode只是起点后面还有折叠式、套筒式、两级米勒补偿等等每一个都值得深入。慢慢来把每一个结构吃透比贪多嚼不烂强得多。
