Cascode电路原理详解:抑制密勒效应提升增益带宽

📅 2026/8/26 10:28:33
Cascode电路原理详解:抑制密勒效应提升增益带宽
1. 所有增益和带宽问题的源头密勒效应和输出电阻1.1 一次让人印象深刻的放大器调试做模拟或射频电路的朋友大概率都遇到过这类怪事电路图看着完全没问题晶体管尺寸也是按书上的经验值取的可上了仿真器一测增益比手工计算少了差不多10dB-3dB带宽也比预期低了一半。更难受的是不管你怎么调静态工作点这两个指标就像跷跷板一样压住一个另一个就窜起来死活不给你同时达标。我之前在0.18μm CMOS工艺下做过一个共源放大器目标增益30dB带宽100MHz。手工计算时输入管M1的栅漏电容Cgd只有大约1.5fFW5μm看起来是个完全可以忽略的寄生参数。当时我心里还想着这怎么着也算不上瓶颈吧。结果一仿真带宽直接掉到标称值的一半以下。后来我在M1上面叠了一颗共栅管把结构改成了Cascode同一个静态工作点、同一套尺寸增益和带宽居然同时回来了。这个叠一个管子的操作在圈子里有一个专门的名字Cascode Circuits中文通常叫共源共栅电路。这篇文章我就从为什么需要Cascode讲起把它的原理、偏置设计、电流镜变体、射频LNA应用以及容易踩的坑一次说清楚。适合正在学模拟集成电路的学生、做射频前端设计的工程师以及任何被密勒效应折磨过的电路爱好者。1.2 密勒效应看不见的电容是怎么被放大的要理解Cascode必须先理解它要解决的第一个问题——密勒效应。在一个反相放大器中输出端电压和输入端电压是反相的。也就是说输入端往上摆输出端往下摆。对于接在栅极和漏极之间的Cgd来说它两端的电压变化量不是输入信号Vin而是Vin减去Vout。如果放大器的增益是A那么Vout -A×VinCgd两端的电压变化就是Vin - (-A×Vin) (1A)×Vin。电容阻抗的计算公式是Xc 1/(2πfC)而电流等于电压变化率乘以电容。当Cgd两端同时承受输入和输出两个方向相反的摆动时同样的输入电压变化流过Cgd的电流比只有一端在动的情况大了(1A)倍。从输入端看进去这个电容就等效于被放大了(1A)倍实际呈现出的输入电容是Cgd×(1A)。这就是密勒效应。举个例子就直观了。设Cgd1.5fF单管增益A30倍那么输入端的密勒等效电容就是1.5fF×3146.5fF。如果输入管本身的栅源电容Cgs是30fF输入端总电容瞬间从30fF级别涨到接近80fF。遇到高阻信号源或高阻匹配网络时这个电容就是带宽杀手。要是你想通过用Cascode负载把增益做到60dBA1000倍Cgd等效到输入端就是1.5fF×1001≈1.5pF这已经不是带宽问题了是直接把有用信号吃掉的问题。1.3 输出阻抗增益公式背后的隐性限制Cascode要解决的第二个问题是单管输出阻抗不够高。共源放大器的增益公式很简单Av gm×(ro∥RL)。这里的关键是如果负载电阻RL很大增益就取决于单管的本征增益gm×ro。在常规CMOS工艺里gm×ro大概在20到100倍之间也就是26dB到40dB。想做得更高两条路一是加大电流提高gm功耗上来了二是拉长沟道提高ro器件变大了速度下来了。无论哪条路到一定程度就卡住了。Cascode的结构相当于在M1上面再叠一个共栅管M2把M1漏端的输出阻抗从ro抬升到gm×ro²的量级。也就是说你的放大器不再受限于单管的本征增益而是可以轻松获得60dB甚至更高的增益潜力。这个提升不是靠加大电流或拉长沟道换来的而是靠电路结构换来的代价只是多了一个管子和一点电压裕度。1.4 密勒效应到底能被抑制到多少很多人以为Cascode只是把增益做高了其实它对密勒效应的抑制同样关键。普通共源放大器里M1漏端看到的是整个输出电阻RoutM1自身的电压增益等于gm1×Rout所以Cgd的密勒倍增系数是(1gm1×Rout)能到几十上百倍。但在Cascode结构里M1的漏端不是直接接输出而是接到M2的源端。M2是个共栅管它的源端输入阻抗约等于1/gm2非常低。于是M1漏端的小信号电压变化只有大约gm1×(1/gm2)×Vin。如果两个管子尺寸相同、流过相同电流gm1和gm2基本相等这个增益约等于1。注意这是一个同相增益而且值很小。M1自身只贡献大约1倍的电压增益Cgd的密勒倍增系数就从(1gm1×Rout)骤降到(11)2左右。输入端的等效电容从可能上千fF级别降到几乎可以忽略的几fF级别。这就是为什么Cascode能在提高增益的同时反而把带宽也救回来了。看起来反直觉但拆开看就是这么一个逻辑。2. 两管如何协作Cascode的电路原理与关键参数计算2.1 结构拆解一个电压放大器加一个电流搬运工Cascode电路的结构其实不复杂。下管M1是共源接法信号从栅极输入漏极输出电流上管M2是共栅接法源极接M1漏极栅极接固定偏置V_CAS漏极接输出端。两个管子垂直堆叠看起来像一个管子实际上各司其职。从电流信号流的角度理解最清楚M1是一个跨导放大器负责把输入电压Vin转换成电流信号gm1×VinM2则是一个电流缓冲器把M1漏极的电流原封不动地搬运到输出端。M2自身并不提供电压增益它的核心作用是维持M1漏端电压基本恒定。为什么能维持因为M2的源极输入阻抗只有约1/gm2是个低阻节点。M1漏端稍微有点电压变化就会通过M2产生很大的源极电流变化把这个变化怼回去。最终效果是M1漏端的小信号电压摆动被压缩到接近零。用一句通俗的话概括M2像一位警卫把M1漏端的治安管得死死的任何风吹草动都被它当场压下去。所以M1的漏端电压在小信号下几乎不摆Cgd两端的电压差没有被放大密勒效应就失去了作威作福的基础。2.2 关键公式从输出阻抗推导增益Cascode的输出阻抗公式是理解这个电路价值的钥匙。从M2漏端向下看Rout ≈ (gm2×ro2)×ro1其中ro1是M1的漏源电阻ro2是M2的漏源电阻gm2是M2的跨导。如果M1和M2尺寸相同、电流相同gm2×ro2就是M2的本征增益通常在50左右。再乘以ro1输出阻抗就是50×ro1比单管的ro1高了一个数量级以上。有了这个RoutCascode作为放大器的增益就是Av gm1×Rout gm1×gm2×ro1×ro2代入一组典型参数gm11mSgm21mSro1ro250kΩ那么Rout1mS×50kΩ×50kΩ2.5MΩAv1mS×2.5MΩ2500V/V换算成dB是68dB。而同样是这两个管子如果只做单管共源增益最多50V/V大概是34dB。两者相差了34dB相当于增益差了50倍。注意一个前提这个推算默认负载电阻是无穷大也就是理想电流源负载。在实际电路里输出端总会接一个实际负载电阻RL。Cascode的输出阻抗再高和RL并联之后实际增益就被RL拉下来了。简单算一下如果RL100kΩ而Cascode输出阻抗是2.5MΩ并联后是96.2kΩ增益是gm1×96.2kΩ96.2V/V。虽然不如理想情况夸张但比单管加同样RL的增益gm1×(ro1∥RL)1mS×(50k∥100k)33.3V/V还是高了不少。所以Cascode的增益价值在负载是高阻抗的场合才能充分体现比如输出端也用Cascode电流源做负载的情况。2.3 一个具体的数值计算对比为了更直观看清Cascode带来的变化我做了个对比。设定条件0.18μm CMOS工艺VDD1.8V信号源内阻Rs1kΩ负载电容CL200fF输入管M1的Cgs50fFCgd2fFgm1.5mSro40kΩ。普通共源放大器中如果负载电阻RL40kΩ增益Av1.5mS×(40k∥40k)30V/V≈29.5dB。密勒等效电容Cgd×(130)2fF×3162fF。输入端总电容Cgs62fF112fF。输入极点频率f_in1/(2π×Rs×Cin)1/(2π×1000×112e-15)≈1.42GHz。这个看起来还行但如果把增益目标提高到45dBRL做到200kΩAv1.5mS×(40k∥200k)50V/V密勒电容变成2fF×51102fF输入端总电容152fF输入极点降到1.05GHz。增益越高密勒电容越大带宽越差。Cascode结构下假设M2和M1同尺寸同电流gm1gm21.5mS。输出阻抗Rout≈1.5mS×40kΩ×40kΩ2.4MΩ。如果负载仍为40kΩ增益Av1.5mS×(2.4M∥40k)59V/V≈35.4dB。密勒等效电容只有2fF×(11)4fF输入端总电容54fF输入极点频率f_in1/(2π×1000×54e-15)≈2.95GHz。同样的负载条件下Cascode增益高了差不多一倍带宽还翻倍了。指标普通共源Cascode增益理想电流源负载gm×rogm1×gm2×ro1×ro2增益RL40kΩ约30V/V约59V/V密勒等效电容Cgd×(1A)≈62fFCgd×2≈4fF输入极点频率约1.42GHz约2.95GHz输出阻抗ro≈40kΩgm×ro²≈2.4MΩ这个表格能解释为什么叠一个管子能同时救回增益和带宽Cascode恰恰就是把密勒电容这个对增益和带宽的双重破坏者给按住了。2.4 Cascode和Cascade不是一回事很多初学者会把Cascode共源共栅和Cascade级联搞混这里顺手澄清一下。Cascade是两级或多级放大器首尾串联的架构第一级的输出接到第二级的输入信号逐级放大总增益是各级增益的乘积。比如一个两级放大器第一级增益20dB第二级增益20dB总增益就是40dB。但这种串联结构也有明显副作用每一级的带宽和相位都会累积级间匹配和稳定性问题也随之而来。Cascode则是把两个管子垂直堆叠在一起的单级结构中间节点M2源端并不是信号输出点它只是提供了一个低阻接口让上级管的漏端电压被固定。所以Cascode的增益本质上是M1贡献的跨导乘以M2贡献的高输出阻抗相当于一个增益级被拆成两个角色配合完成。这个区别在面试和考试中经常出现在实际设计中更是决定了你的电路架构选择。3. 偏置、摆幅和上电让Cascode稳定工作的设计细节3.1 偏置电压怎么定V_CAS的取值过程Cascode要想正常工作M1和M2都必须工作在饱和区。很多人只会搭管子不会算偏置结果电路一仿就翻车。以NMOS Cascode为例设两个管子都工作在饱和区过驱动电压分别为Vov1和Vov2。M2的栅极电压V_CAS减去它的源极电压也就是M1漏端电压必须大于M2的阈值电压Vth2同时M2的Vds要大于Vov2。而M1要饱和它的Vds必须大于Vov1。综合下来V_CAS ≥ Vth2 Vov1 Vov2举个例子Vth0.5VVov1Vov20.2V那么V_CAS至少取0.9V。如果VDD1.8V输出端最小电压让电流源仍工作在饱和区的极限值约等于Vov1Vov20.4V。也就是说输出摆幅的底部被抬高到0.4V顶部还要给上面的电流源留Vov实际可用的信号摆幅大约1.4V。这个公式看着简单但工程上最容易被忽略的是corner和温度变化。Vth随温度漂移大约是-1mV/°C到-2mV/°C不同工艺corner下Vth能差出±50mV甚至更多。设计时最好留出50到100mV的裕量否则到了慢corner或高温工况M2可能已经在线性区边缘挣扎了。3.2 偏置生成电路别用电阻分压凑合我在很多项目里看到有人图省事直接用两个电阻从电源分压得到V_CAS。这个做法在低压高频设计里隐患很大。电阻分压完全不跟踪M1和M2的工作点温度一变、corner一变V_CAS要么偏高导致M2漏端电压不足要么偏低导致M1和M2都进入线性区。反正就是仿真时没毛病流片后一上高低温测试就露馅。正规做法是用基准电流Iref流过一颗二极管连接的MOS管尺寸与M2一致或成比例在其源极再串一颗尺寸与M1一致的管子让这两颗管子分别复制Vgs2和Vov1的需求从而生成V_CAS。这个偏置链的好处是它对温度、工艺的漂移方向与主电路完全一致。M2的Vth漂了偏置链里的Vth也漂了两者互相抵消。如果实在没有条件搭完整偏置也至少要在V_CAS节点和地之间放一个足够大的去耦电容把高频噪声滤掉。3.3 上电顺序和M1漏端过压容易烧管子的隐藏问题这个坑我印象极深。某次做高压LDO用到了Cascode结构。第一次上电两块样片直接烧了。示波器抓到M1漏端电压瞬间冲到6V才明白问题出在上电时序上。故障机理是这样的VDD先上电但V_CAS偏置还没建立到正常值可能是0V。此时M2完全关断M1漏端没有到地的下拉路径。如果此时M1栅极恰好有输入信号整个电源电压就会直接压在M1的Vds上。当VDD3.3V或更高时M1的漏源击穿电压可能就这样被硬生生超过当场报废。解决办法有三个按优先级排加启动电路让V_CAS在上电初期跟随VDD建立确保M2先导通再承受电压在M1漏端加钳位二极管把过压尖峰钳到安全范围如果只是电流镜外部输入端的电压范围也要做限制。3.4 温度漂移和饱和区边界普通的共源放大器对偏置不那么敏感因为M1的饱和条件相对宽松。但Cascode是两个管子串联任何一个进入线性区整个电路的增益就崩了。尤其是M2它的栅极电压一旦低于V