Cascode电路设计实战:破解增益与带宽矛盾的高速放大器方案 📅 2026/8/26 3:19:52 做模拟集成电路的人多半在某个深夜对着仿真结果产生过这种疑惑明明增益算得清清楚楚带宽却总是被一只看不见的手死死摁住。等你在工程里真正把Cascode电路用起来才会意识到这个由两只晶体管纵向堆叠而成的结构其实是解决高频设计里“增益与带宽互相打架”这一老大难问题的经典钥匙。Cascode电路本质上是一个共源放大管与一个共栅隔离管串联的拓扑它的核心价值在于把米勒效应带来的等效输入电容大幅压低同时把输出阻抗抬升一个量级。这篇文章我从原理讲到实操包含偏置计算、参数选型、仿真验证以及我在流片和调试中真实踩过的坑适合正在设计高频放大器、电流镜或运算放大器输出级的工程师朋友参考。1. 内容整体设计与思路拆解Cascode电路的核心架构与设计初衷1.1 从米勒效应说起为什么高频放大这么难要理解Cascode的价值绕不开米勒效应。MOS管的栅极和漏极之间存在寄生电容Cgd单管共源放大时栅极输入信号被放大后出现在漏极而漏极电压变化方向与栅极相反于是Cgd两端承受的电压变化量被放大成了(1 Av)倍。从输入端看进去这只电容的等效值变成了Cgd × (1 Av)。Av是放大器的小信号电压增益假设做到20倍Cgd如果是50fF等效输入电容就超过1pF。再叠加信号源阻抗和上一级输出阻抗输入极点频率就被压低带宽自然上不去。这就是所谓的“增益带宽矛盾”——你越想提高增益米勒电容被放大的倍数越大带宽牺牲越严重。很多人在课堂上听老师讲过这句话但真正在项目里看到同一个放大器因为负载变化导致带宽腰斩之后才会对这句结论有切肤之感。Cascode电路就是冲着这个问题来的它换了一种思路与其让Cgd承受那么大的电压摆幅不如干脆把漏极电压钉住让Cgd两端几乎没有交流电压变化米勒效应自然就失效了。1.2 架构拆解M1和M2的职责划分一个最基本的NMOS Cascode结构是这样连接的输入信号加在底部管子M1的栅极M1的源极接地M1的漏极直接接到顶部管子M2的源极M2的栅极接固定偏置电压Vbias输出从M2的漏极取出。M1采用共源接法负责把输入电压转换成电流提供整个电路的跨导gmM2采用共栅接法栅极交流接地它不提供电流放大核心作用在于传递M1漏极电流的同时把输出节点和M1的漏极隔离开来。M2为什么能做到隔离因为共栅管的源极输入阻抗很低大约等于1/gm2。这意味着M1的漏极看到的是一个很轻的负载M1从栅极到漏极的小信号增益被压低到gm1/gm2这一量级。如果两管尺寸相同这个增益近似为1。于是Cgd上的交流电压变化极小等效输入电容从Cgd × (1 Av)直接降回Cgd附近的水平。与此同时从M2漏极朝下看进去输出阻抗却因为共栅管的共栅共源级联效应被抬升到gm2 × ro2 × ro1的量级相比单管ro提升了几十倍到几百倍。两条核心优势同时到手Cascode这个名字在模拟设计里想不被记住都难。2. 核心细节解析与实操要点偏置、阻抗与版图2.1 静态工作点设计Vbias怎么定才算稳Cascode电路在原理上漂亮但工程里最容易翻车的地方就在偏置。Vbias决定M1的漏极电压也就是M2的源极电压而M1必须始终工作在饱和区否则跨导和输出阻抗都会崩塌。基本约束是Vd1必须大于Vov1。由于Vd1等于Vbias减去Vgs2设计条件可以写成Vbias ≥ Vgs2 Vov1。我看到不少初学者在这里会踩一个细节坑Vgs2本身随工艺角和温度漂移Vov1也随电流变化所以Vbias不能卡着理论最小值的边设计。工程上一般要留出0.1V到0.2V的裕量。举个例子假设VGS2约为0.5VM1过驱动电压为0.2V那Vbias理论下限为0.7V实际我会取0.8V左右确保M1在所有corner下都稳稳待在饱和区。偏置电压的栅极走线最好单独布一条星型连接到电流镜偏置源避免被输出级的大信号扰动耦合进去。还有一个容易忽略的点是M1漏极电压的交流摆幅。虽然Cascode大幅度抑制了米勒效应但M1漏极并非完全纹丝不动它仍有约gm1/gm2量级的微小电压波动。设计时如果M1的Vds余量只剩一点点这个波动可能把M1周期性推入线性区导致增益和线性度突然恶化。稳妥的做法是在AC仿真时专门观察M1漏极电压波形确保它在整个输出摆幅范围内的瞬态最低值仍然高于Vov1。2.2 输出阻抗与增益Cascode的核心优势来源Cascode另一项招牌能力是大幅度提高输出阻抗。单管共源放大器的输出阻抗大约等于ro在0.18um工艺里典型只有几十kΩ到几百kΩ。一旦叠上M2从输出端看进去的小信号阻抗接近(1 gm2 × ro2) × ro1近似为gm2 × ro2 × ro1。假设gm2为1mSro1和ro2各取100kΩ这个值就能冲到10MΩ级别整整高出两个数量级。输出阻抗变大带来的直接好处有两个。第一在运放和比较器内部做高增益级时增益从gm × ro提升到gm × gm × ro × ro轻轻松松多获得40dB以上的低频增益。第二电流镜的输出阻抗提升意味着电流源更“硬”受负载电压变化影响更小这在高精度数模混合电路里特别重要。我自己做过一个Cascode电流镜给SAR ADC的电容阵列充电输出阻抗从50kΩ提到几MΩ之后电压误差从几个毫伏降到0.3毫伏以内效果立竿见影。当然天下没有免费的午餐。M2的沟道热噪声会直接出现在输出端带来额外噪声贡献同时M1和M2各需要一个过驱动电压输出摆幅下限被抬高到Vov1 Vov2。低压应用中这两个代价往往比带宽更棘手所以才会有折叠式Cascode这类变体架构。2.3 摆幅、噪声与版图容易被忽略的三个坑先说摆幅。标准Cascode结构在1.8V电源下如果每个管子的过驱动电压是0.2V输出摆幅下限就是0.4V上限接近VDD减去M2进入线性区之前的余量。看起来1.4V还算宽敞但实际还要考虑阈值电压的conner漂移以及负载电流带来的IR压降。如果电源已经降到1.2V甚至1V标准Cascode就会非常局促这时候要么接受更小的摆幅要么换成折叠式结构。再来说噪声。M1的噪声经历共栅管M2后基本以电流形式传递到输出贡献与单管差不多但M2自身就是一个额外噪声源它的沟道热噪声直接叠加到输出电流上。因此从噪声角度讲Cascode相比单管确实更差。在低噪声前置放大器这类对噪声极其敏感的场景需要综合权衡或者在M2的gm和偏置电流上做优化。最后是版图。Cascode的版图核心原则是让M1和M2共用有源区也就是把两个管子的drain/source合并到一起最大程度减少中间节点的寄生电容。因为寄生电容大M1漏极对地电容形成的极点会出现在信号通路里严重时直接吃掉高频增益。还有M2栅极的偏置走线一定要加宽并做好屏蔽避免偏置线上的噪声通过Cgs2耦合到M2源极。我见过一个设计因为Vbias走线跨过了一个数字信号总线仿真里没有任何异常实测谐波却突然恶化最后查出来就是这个耦合路径在作怪。3. 实操过程与核心环节实现一个完整的Cascode放大器案例3.1 指标设定与拓扑选择纸上谈兵说完了我用一个真实做过的设计来把整个流程串起来。项目需求是一个前端缓冲放大器用在传感器信号链里电源电压VDD为1.8V需要中频电压增益不低于30dB-3dB带宽不低于100MHz输出驱动能力为10pF负载电容同时静态功耗控制在1mW以内。考虑到增益和带宽的双重指标单管共源放大器在这个工艺下几乎不可能兼顾我直接选择Cascode结构作为增益级核心。拓扑选择上第一版我用了标准NMOS Cascode。为什么没有一上来就上折叠式因为折叠式需要额外的PMOS电流源和偏置网络电路复杂度更高在电源电压还算宽裕、带宽要求也没有极端到GHz的量级时标准结构更简单可靠。等后续产品升级到更低电压版本再考虑折叠架构迭代。3.2 参数计算与偏置确定先把静态电流定下来。预算1mW功耗1.8V电源总电流约为0.55mA。考虑到输出级或其他辅助电路也要耗电分配给增益级放大管的电流取到0.3mA左右这是一个典型的单级预算分配。之后在0.18um工艺库里选管子尺寸目标是把M1的过驱动电压控制在0.2V附近。根据饱和区电流公式ID 0.5 × μnCox × (W/L) × Vov²反推W/L约为160左右。我取了W/L 20um/0.18um这样既保证电流能力又把栅极寄生电容控制在一个可接受范围。M2的尺寸和M1保持一致这样M1的漏极增益约等于1米勒电容压低效果最明显。M1的Vgs大约为0.5VVov1为0.2V理论Vbias下限为0.7V。我取了0.8V作为偏置多出的0.1V是为了压住M1的线性区风险。偏置源用一个简单的二极管连接MOS管配合电流镜产生并在偏置节点对地加了一个10pF的去耦电容确保M2栅极的交流电位稳定。3.3 仿真验证与结果解读在Cadence Virtuoso里搭好电路先用DC仿真看工作点。M1漏极电压显示0.3V高于Vov1的0.2V说明管子落在饱和区。接着跑AC仿真结果中频增益为34dB-3dB带宽约130MHz都满足指标。如果把M1直接用单管替换成同尺寸放大器同样负载下带宽只有22MHz增益还因为输出阻抗不够高而掉到28dB。这个对比很直观地说明Cascode的收益。稳定性方面在输出端接入10pF负载后做stb仿真相位裕度从72度降到41度有明显趋向振荡的风险。我在输出端和负载之间串了一个25Ω的小电阻同时把偏置节点去耦电容加大到50pF再次仿真相位裕度回到63度。这里想提醒一句仿真里看到的相位裕度只是一个参考它取决于负载模型是否准确实际板上电容、引脚寄生都会改变这个值所以一定要留出足够的裕量不要把设计做到临界稳定。3.4 折叠式Cascode何时该换玩法如果电源电压降到1.2V标准Cascode的摆幅劣势就会变得难以忍受。折叠式Cascode通过把输入对管放成差分结构用PMOS共栅管把信号电流“折叠”回放大路径从而避免两层NMOS堆叠带来的电压头损失。折叠式结构的输出摆幅可以接近轨到轨在低压运放里几乎是标准配置。代价是折叠节点引入了额外的寄生电容以及PMOS电流源本身会贡献噪声所以折叠式Cascode的噪声特性通常比标准Cascode更差带宽也不会因为折叠而自动变好。我的经验是VDD高于1.5V优先考虑标准Cascode低于1.2V直接上折叠式或增益增强型架构。至于中间那一段就看你对噪声和功耗的接受程度了。4. 常见问题与排查技巧实录工程师踩过的坑4.1 自激振荡最让人头疼的高频问题Cascode电路在板上或芯片里自激振荡是我见过最多也最难查的问题。表象是输出波形叠了一层几MHz到几十MHz的正弦波有时候只在某个输入电平区间出现再有时候只有用探棒一碰才出来。根因几乎都指向偏置节点的高阻抗。M2的栅极Vbias若是由电流镜提供这个节点的输出阻抗可能高达几百kΩ甚至MΩ级别而M2栅极到源极的寄生电容Cgs2会与这个高阻形成一个极点如果信号通过寄生路径反馈回来环路就可能满足巴克豪森条件。排查步骤我一般按这个顺序做第一步在仿真里给Vbias节点做stb分析看环路增益曲线有没有在0dB附近出现可疑峰第二步检查版图上Vbias走线附近有没有跨接其他信号线特别是数字线或大摆幅模拟信号线第三步尝试在Vbias节点对地并联一个电容如果振荡频率立刻变化或消失基本可以锁定问题点位。实际修复时除了加大去耦电容还可以降低偏置电流镜的输出阻抗比如给偏置管加一层低压Cascode双管齐下往往最有效。4.2 输出摆幅不够低压应用的经典矛盾不少人在仿真阶段就发现Cascode放大器输出摆幅比预期小很多。最典型的原因是Vbias取值过高导致M1漏极电压偏高输出还没摆到下限M1就提前脱离饱和区。我在2.1节说过Vbias要留裕量但留多了同样有问题。一个折中做法是把Vbias调节范围数字化比如用几个开关控制的电阻分压网络根据工艺角仿真结果做实际校准。工艺角扫描时优先盯M1漏极电压和输出摆幅的关系确保最差corner下管子都还在饱和区。如果调Vbias还是不够就得从拓扑下手。把负载电流源也换成Cascode有助于提高增益但会进一步压缩摆幅反过来减小过驱动电压又可能让管子进入亚阈值区增益和速度都会掉。这个链条没有两步能走完的解法归根结底是设计指标里的贪婪守恒。我个人的建议是如果不是对流片良率有极高要求宁可在标称corner下把摆幅设计到理论极限的85%左右也不要为了多留余量把增益级做垮。4.3 仿真增益与理论计算对不上一步步排查很多人在仿真里发现Cascode放大器的增益远远低于手算值第一反应是怀疑手算公式错了。实际上更常见的元凶有三个。第一负载阻抗不够高。Cascode的输出阻抗再高如果下一级输入阻抗只有几十kΩ等效负载阻抗依然被压低增益自然上不去。这时候要把输出节点对地的寄生电容和下一级输入阻抗都建模进去重新算一遍有效Rout。第二偏置点是否真的饱和。可以用DC工作点列表直接检查M1和M2的Vds是否分别大于Vov1和Vov2。我遇到过M1差一点点进线性区增益就掉了将近6dB的情况原因只是Vbias比理论值低了0.05V。第三寄生电容在作怪。M1漏极与M2源极之间的寄生电容以及版图上这个节点对地的电容会和M2源极的1/gm2形成极点如果这个极点落在信号带宽以内增益会在过那个频点后迅速下滑。仿真里看不到版图寄生但这恰恰解释了为什么前仿真结果和流片后实测会在高频段出现明显偏差。5. 最后分享一个我用Cascode的体会Cascode电路用了这么久我自己最大的体会是它不像某些教科书结构那样“搭出来就行”而是需要在偏置细节和版图细节上下真功夫。很多人初学时觉得它只是个堆管子的小技巧实际在项目中做出的每一次带宽提升和增益改善背后都是对米勒效应、输出阻抗和寄生电容这些基础概念的不断复盘。如果你正在被高频放大器的带宽问题折磨不妨先搭一个最简的Cascode结构对比一下仿真结果再根据实际指标去调偏置和负载多半能在半小时内看到结构带来的明显差异。希望这篇从原理到实战的记录能帮你在自己的设计里少走几步弯路。