1. 从单管到Cascode为什么我们需要共源共栅结构做过模拟IC设计的朋友都有体会单级共源放大器Common Source是最基础的增益级一个管子加一个负载就能跑起来仿真波形看着也挺漂亮。但一旦你把它放到真实的电路环境里——比如要求增益上到60dB以上、输出摆幅还要兼顾、同时得保证带宽不能塌——单管共源就开始捉襟见肘了。问题出在哪儿核心就两个字本征增益。一个MOS管的本征增益是gm×ro。在先进工艺节点下沟道长度调制效应越来越严重ro被压得很低单管能提供的增益往往只有20~30dB。你可能会想那我多级级联不就行了理论上没错但级联带来的问题是极点增多、稳定性变差、频率补偿变得复杂。这时候Cascode共源共栅结构就登场了。Cascode的本质思路非常朴素在共源管的漏极上面再叠一个共栅管Common Gate利用共栅管低输入阻抗的特性把共源管漏极的电压摆幅压得很小。这样一来共源管的漏源电压几乎不变沟道长度调制效应被大幅抑制等效输出阻抗从ro提升到了gm×ro×ro的量级。增益自然就上去了。我经常用一个类比来解释这件事共源管像一个在风中摇晃的旗杆ro就是它的“晃动程度”。Cascode管相当于在旗杆旁边加了一个稳固的支架让旗杆底部几乎不动整个结构的等效刚度就大大提升了。这个“支架”本身不产生额外的增益但它让下面那个管子的增益潜力被充分释放出来。从应用场景来看Cascode结构几乎渗透了模拟IC设计的每一个角落。折叠式共源共栅放大器Folded Cascode是运放设计中的主力拓扑Cascode电流镜提供了极高的电流匹配精度误差放大器里也经常能看到Cascode的影子。甚至在全差分高增益放大器的设计中Cascode几乎是绕不开的选择。所以搞懂Cascode不只是学一个电路结构而是打通了模拟IC设计的一条主干道。这篇文章适合谁看如果你正在学模拟IC设计的基础课程或者刚进入这个行业不久对Cascode的理解还停留在“知道有这么个东西”的阶段那这篇文章就是写给你的。我会从设计思路、参数计算、实操仿真、常见问题几个维度把Cascode共源共栅结构彻底拆开讲清楚。有经验的工程师也可以看看我在实操中踩过的坑说不定能帮你省几个通宵。2. Cascode共源共栅的核心设计思路与方案选型2.1 为什么Cascode能提升增益从输出阻抗说起要理解Cascode的增益提升机制必须先把输出阻抗这件事搞清楚。对于一个简单的共源放大器输出阻抗就是M1的ro1。增益Av -gm1 × ro1。现在我们在M1上面叠一个M2共栅管M2的源极接M1的漏极M2的栅极接一个固定偏置通常是VDD或者某个参考电压。从M1漏极往上看M2的输入阻抗大约是1/gm2因为共栅管的源极看进去阻抗很低。这个低阻抗把M1漏极的电压摆幅钳住了M1的Vds几乎不变。而整个结构的输出阻抗从M2漏极往下看变成了Rout ≈ gm2 × ro2 × ro1注意这个乘积关系gm2 × ro2本身就是M2的本征增益再乘以ro1输出阻抗直接提升了gm2×ro2倍。如果gm2×ro2是20那输出阻抗就提升了20倍增益也相应提升20倍也就是大约26dB。这就是Cascode的威力。但这里有个关键前提M2必须工作在饱和区。如果M2进入了线性区那它的gm会急剧下降整个Cascode的增益提升效果就大打折扣。所以偏置设计是Cascode电路的核心难点之一。2.2 套筒式还是折叠式两种Cascode拓扑的取舍在实际设计中Cascode结构主要分为两种套筒式共源共栅Telescopic Cascode和折叠式共源共栅Folded Cascode。这两种拓扑各有优劣选哪个取决于你的具体需求。套筒式Cascode的结构非常直观输入差分对在上面下面叠两层Cascode管电流源在底部。整个结构像一根套筒一样层层叠起来。它的优点是功耗低、噪声小、增益高因为所有电流都流经同一个路径没有浪费。但缺点也很明显输出摆幅被严重压缩。你想想VDD减去输入对的Vdsat、再减去两个Cascode管的Vdsat、再减去尾电流源的Vdsat剩下的才是输出摆幅。在低电源电压下这个摆幅可能只有几百毫伏很难满足后级电路的需求。折叠式Cascode则换了一种思路输入差分对的电流不是直接往上叠而是被“折叠”下来流入下面的Cascode支路。这样一来输入对和Cascode管可以分别独立偏置输出摆幅不再受输入对的Vdsat限制。代价是功耗增加因为折叠支路需要额外的电流而且噪声也会比套筒式略大。我个人的经验是如果电源电压充裕比如3.3V以上、对功耗和噪声要求严格优先选套筒式如果是低电源电压1.2V、1.8V、需要较大的输出摆幅折叠式更合适。当然具体选型还要看增益、带宽、摆率等指标的折中。2.3 偏置方案的选择为什么不能随便接个电压Cascode管的栅极偏置是整个电路能否正常工作的关键。很多人刚开始做的时候直接把M2的栅极接到VDD觉得这样最简单。但这样做有个致命问题M2的Vgs等于VDD减去M1的漏极电压这个值可能非常大导致M2的Vdsat很大输出摆幅被严重压缩甚至可能让M2进入线性区。正确的做法是给M2的栅极提供一个精确的偏置电压使得M2的Vds刚好等于它的Vdsat加上一点裕量。通常我们会用宽摆幅Cascode偏置电路来实现这个目标。这个偏置电路的核心思想是用一个二极管连接的管子产生Vgs再通过一个源极跟随器或者电阻分压网络生成一个比M1漏极电压高出一个Vgs的偏置电压。具体来说宽摆幅偏置电路通常由四个管子组成两个用于产生偏置电压两个用于跟踪工艺角和温度变化。这样设计的好处是M2的Vdsat可以被精确控制在100~200mV左右输出摆幅的损失被降到最低。注意偏置电路的设计往往比主放大器本身更费时间。我建议在仿真时单独把偏置电路拿出来跑DC扫描确认在所有工艺角TT、SS、FF、SF、FS和温度范围-40°C到125°C下M2都稳定工作在饱和区。3. 核心参数计算与实操要点3.1 增益计算从手算到仿真验证Cascode放大器的低频小信号增益公式是Av -gm1 × (gm2 × ro2 × ro1 || ro3)其中ro3是负载管的输出阻抗。如果负载也是Cascode结构那ro3同样很大增益可以轻松做到60dB以上。手算的时候你需要从工艺库中提取gm和ro的值。以TSMC 180nm工艺为例假设NMOS在W/L10/1、Id100μA时gm≈1mSro≈50kΩ。那么gm×ro≈50也就是34dB。单管共源增益就是34dB。加上Cascode管后如果gm2×ro2也是50那总增益就是343468dB。当然实际仿真值会略低一些因为负载不是无穷大而且存在寄生电容的影响。我通常的做法是先用手算确定大致的设计方向比如需要多大的W/L、多大的偏置电流然后在Cadence或华大九天Aether中搭建电路进行DC仿真确认工作点。手算和仿真之间的偏差主要来自工艺参数的不确定性所以手算不用太精确够用就行。3.2 输出摆幅的估算与优化输出摆幅是Cascode设计中最容易被忽视的指标。很多人只盯着增益看结果仿真出来增益很漂亮但输出摆幅只有0.3V根本没法用。对于套筒式Cascode输出摆幅的估算公式是Vout,swing VDD - Vdsat,input - Vdsat,cascode1 - Vdsat,cascode2 - Vdsat,tail假设VDD1.8V每个Vdsat0.15V那输出摆幅就是1.8-0.15×41.2V。看起来还不错但这是峰峰值单边摆幅只有0.6V。如果VDD降到1.2V输出摆幅就只剩0.6V峰峰值单边0.3V非常紧张。优化输出摆幅的方法有几个一是降低每个管子的Vdsat通过增大W/L来实现但代价是寄生电容增大、带宽下降二是采用折叠式结构把输入对和Cascode管的偏置分开三是使用宽摆幅偏置电路把Cascode管的Vdsat压到最低。3.3 频率响应与极点分析Cascode结构的一个显著优势是米勒效应被大幅削弱。在单管共源放大器中Cgd1会从输入到输出形成米勒电容等效到输入端是Cgd1×(1Av)这个电容可能非常大严重限制带宽。而在Cascode结构中M1的漏极电压摆幅很小Cgd1的米勒效应被抑制了输入端的等效电容大大减小带宽得到改善。但Cascode结构也引入了新的极点。主极点通常在输出节点由Rout和CL决定。次主极点则在M1的漏极节点由1/gm2和该节点的寄生电容决定。如果次主极点离主极点太近相位裕度就会不够电路可能振荡。我通常会在仿真中跑AC分析看幅频和相频曲线。如果相位裕度低于60度就需要调整补偿电容或者改变偏置电流。有时候在输出端加一个米勒补偿电容Cc可以有效地把主极点往低频推同时利用米勒效应把次主极点往高频推实现极点分裂。3.4 噪声分析Cascode管的贡献有多大Cascode结构的噪声性能通常比单管共源好因为M2的噪声贡献被M1的增益抑制了。具体来说M2的等效输入噪声要除以M1的增益才能折算到输入端。所以M2的噪声贡献通常可以忽略不计。但M1的噪声是主要的。M1的输入参考噪声电压谱密度是Vn,in² 4kTγ/gm1 Kf/(Cox×W×L×f)第一项是热噪声第二项是闪烁噪声。要降低热噪声就得增大gm1也就是增大偏置电流或W/L。要降低闪烁噪声就得增大W×L面积。这两个需求有时候是矛盾的因为增大W/L会增大面积但增大面积又会增大寄生电容。所以噪声优化本质上是一个折中过程。实操心得在噪声仿真中我习惯先跑一个噪声总结Noise Summary看看各个器件的噪声贡献占比。如果M1的闪烁噪声占主导就考虑增大M1的面积如果热噪声占主导就考虑增大偏置电流。不要盲目调参数先定位主要噪声源。4. 完整实操流程从原理图到仿真验证4.1 设计目标与工艺选择假设我们要设计一个折叠式Cascode放大器设计指标如下参数指标直流增益≥60dB单位增益带宽≥10MHz相位裕度≥60°输出摆幅≥1.0V峰峰值功耗≤1mW电源电压1.8V负载电容2pF工艺选择TSMC 180nm CMOS因为这是一个非常成熟的工艺适合教学和入门级设计。如果你用的是华大九天Aether流程类似只是界面和仿真器不同。4.2 原理图搭建与器件参数初选首先确定偏置电流。功耗≤1mW电源1.8V总电流≤556μA。折叠式Cascode的输入对电流通常占总电流的1/3到1/2我们取输入对电流为200μA折叠支路电流为200μA偏置电路电流为100μA总共500μA功耗0.9mW满足要求。输入对的W/L根据gmsqrt(2×μn×Cox×W/L×Id)假设μn×Cox200μA/V²Id100μA每个管子要得到gm1mS需要W/L≈50。取W10μmL0.2μmW/L50。Cascode管的W/LCascode管的gm不需要很大但ro要大所以L取大一些比如L0.5μmW5μmW/L10。尾电流源的W/L尾电流源需要输出200μAL取1μm以保证ro足够大W根据需要的Vdsat来确定。4.3 DC仿真确认工作点搭建好原理图后第一步是跑DC仿真。在Cadence中用DC Operating Point分析查看每个管子的Vgs、Vds、Vth、Vdsat和region。关键检查点所有管子是否工作在饱和区region2M1和M2的Vds是否大于Vdsat尾电流管的Vds是否足够输出节点的直流电压是否在合理范围通常是VDD/2附近如果发现某个管子在线性区就需要调整偏置电压或W/L。我遇到过最常见的问题是Cascode管的栅极偏置不对导致M2的Vds太小进入线性区。这时候就需要调整宽摆幅偏置电路中的电阻分压比。4.4 AC仿真增益、带宽与相位裕度DC工作点确认无误后跑AC仿真。在输出端加一个AC信号源频率从1Hz扫到1GHz。查看幅频曲线和相频曲线。如果增益不够60dB可能的原因有ro不够大增大L、gm不够大增大W/L或电流、负载阻抗太低检查负载管的设计。如果带宽不够10MHz可能是主极点太低需要减小输出节点的电容或增大输出阻抗。如果相位裕度不够60°需要调整补偿电容或改变次主极点的位置。我通常会在AC仿真中同时查看增益、带宽和相位裕度然后根据结果迭代调整。一般需要3~5轮迭代才能达到所有指标。4.5 瞬态仿真验证摆率和建立时间AC仿真通过后跑瞬态仿真验证大信号性能。输入一个阶跃信号比如从0.9V跳到1.1V观察输出的建立时间。建立时间包括压摆率限制阶段和线性建立阶段。压摆率SR I/C其中I是输出级的最大充放电电流C是负载电容。对于我们的设计I200μAC2pFSR100V/μs。这个值对于10MHz带宽来说足够了。如果建立时间太长可能是压摆率不够需要增大输出级电流也可能是相位裕度不够导致振铃。瞬态仿真可以直观地看到这些问题。4.6 工艺角与温度仿真最后一步是跑PVTProcess, Voltage, Temperature仿真。工艺角包括TT、SS、FF、SF、FS温度从-40°C到125°C电源电压从1.62V到1.98V。这一步非常关键因为很多电路在TT下表现完美但在SS或FF下就出问题了。比如在SS角下gm可能下降20%增益就不够了在FF角下gm可能上升20%相位裕度就不够了。所以PVT仿真是检验设计鲁棒性的必要步骤。注意PVT仿真会跑很多个组合仿真时间可能很长。我建议先用DC仿真快速扫描所有工艺角确认工作点都正常再跑AC和瞬态。这样可以节省大量时间。5. 常见问题与排查技巧实录5.1 增益远低于预期怎么办这是最常见的问题。仿真出来增益只有40dB离60dB的目标差很远。排查思路如下首先检查DC工作点确认所有管子都在饱和区。如果某个管子在线性区增益肯定上不去。其次检查ro的值在DC Operating Point中查看每个管子的ro。如果ro很小说明L太小需要增大L。最后检查负载如果负载不是Cascode结构负载阻抗可能很低限制了总增益。我遇到过一次增益怎么调都上不去后来发现是尾电流源的ro太小导致共模抑制比很差差分增益也受影响。把尾电流管的L从0.5μm增大到2μm后增益立刻提升了10dB。5.2 相位裕度不足导致振荡相位裕度不足通常表现为瞬态仿真中出现振铃严重时直接振荡。排查方法先看AC仿真中的相位曲线找到单位增益频率处的相位值。如果相位裕度小于45°说明系统不稳定。解决方法有几种一是增大补偿电容Cc把主极点往低频推二是减小输出级的gm降低次主极点的频率三是调整偏置电流改变极点的位置。我通常优先调整Cc因为最直接有效。5.3 输出摆幅不够输出摆幅不够的原因通常是某个管子的Vdsat太大。排查方法在DC仿真中查看每个管子的Vdsat找出最大的那个。然后通过增大W/L来降低Vdsat或者调整偏置电压。对于套筒式Cascode输出摆幅天生就紧张。如果指标要求大摆幅建议直接改用折叠式结构。虽然功耗会增加但摆幅问题可以从根本上解决。5.4 噪声仿真结果异常噪声仿真结果异常通常有两种情况一是噪声谱密度在某频率处出现尖峰可能是电路存在振荡倾向二是噪声值远高于手算预期可能是某个器件的噪声贡献被放大了。排查方法跑噪声总结查看每个器件的噪声贡献。如果某个管子的噪声贡献异常大检查它的工作点是否正常。有时候一个管子进入线性区后噪声会急剧增大。5.5 常见问题速查表问题现象可能原因排查方法解决措施增益不足管子在线性区查看DC工作点调整偏置或W/L增益不足ro太小查看ro值增大L相位裕度不足补偿电容太小查看AC相位曲线增大Cc输出摆幅不够Vdsat太大查看Vdsat增大W/L或改折叠式噪声异常器件在线性区噪声总结调整工作点建立时间太长压摆率不够瞬态仿真增大输出电流共模抑制比差尾电流源ro小查看尾管ro增大尾管L5.6 独家避坑技巧第一个坑偏置电路和主电路分开仿真。很多人把偏置电路和主电路放在一起仿真结果出了问题不知道是偏置的问题还是主电路的问题。我的做法是先把偏置电路单独跑DC和AC确认偏置电压在所有工艺角下都正确再接到主电路上。第二个坑忽略寄生电容。在原理图仿真中寄生电容是理想化的。但在版图后仿真中寄生电容会显著影响频率响应。所以我在原理图阶段就会预留一定的裕量比如带宽目标定在12MHz而不是刚好10MHz。第三个坑忘记检查启动条件。有些Cascode电路存在简并工作点比如所有管子都截止的状态。虽然理论上不会发生但在仿真中如果初始条件不对可能会收敛到错误的工作点。解决方法是在仿真中设置合理的初始条件或者加一个启动电路。第四个坑工艺角仿真只跑TT。TT角下表现好不代表电路能用。我见过太多电路在TT下完美在SS下增益掉10dB在FF下相位裕度只剩30°。所以PVT仿真是必须的不能偷懒。6. Cascode结构的扩展应用与进阶方向6.1 Cascode电流镜高精度电流复制的利器Cascode电流镜是Cascode结构最经典的应用之一。普通电流镜的电流匹配精度受限于沟道长度调制效应输出电流会随输出电压变化。加上Cascode管后输出阻抗大幅提升电流匹配精度可以做到0.1%以内。在Cascode电流镜中参考支路和输出支路各叠一个Cascode管栅极互相连接。这样输出支路的Vds变化对电流的影响被Cascode管隔离了。设计要点是Cascode管的L要足够大以保证ro足够大偏置电压要精确确保Cascode管工作在饱和区。6.2 折叠式Cascode在误差放大器中的应用误差放大器是电源管理芯片中的核心模块要求高增益、低失调、足够的带宽。折叠式Cascode结构因为输出摆幅大、增益高非常适合做误差放大器。在误差放大器的设计中除了增益和带宽还需要关注失调电压。Cascode结构本身的失调主要来自输入对的失配和负载管的失配。通过增大器件面积、采用共质心版图布局可以有效地降低失调。6.3 全差分高增益放大器的设计要点全差分结构相比单端输出具有更好的共模抑制比和电源抑制比。在全差分Cascode放大器中除了差模增益还需要关注共模反馈电路的设计。共模反馈的作用是稳定输出共模电压防止其漂移。共模反馈电路通常由一个差分放大器和一个分压网络组成。分压网络检测输出共模电压与参考电压比较然后反馈到尾电流源或负载管的栅极。设计共模反馈时要注意环路稳定性避免共模振荡。6.4 低电源电压下的Cascode设计挑战随着工艺节点演进电源电压越来越低。在1.2V甚至更低的电源下套筒式Cascode几乎无法工作因为Vdsat的叠加效应太严重。这时候就需要采用折叠式结构或者使用低压CascodeLow-Voltage Cascode技术。低压Cascode的核心思想是用一个源极跟随器或者电阻分压网络给Cascode管提供一个精确的偏置电压使其Vds刚好等于Vdsat。这样输出摆幅的损失可以降到最低。但低压Cascode的偏置电路更复杂对工艺变化的敏感度也更高设计难度更大。我在实际项目中遇到过1.2V电源下设计Cascode放大器的需求最终选择了折叠式结构加上宽摆幅偏置电路输出摆幅做到了0.8V峰峰值增益65dB功耗1.5mW。虽然功耗比套筒式高但在低电源电压下这是必要的代价。6.5 从Cascode到增益自举进一步提升增益如果Cascode的增益还不够可以考虑增益自举Gain Boosting技术。增益自举的本质是在Cascode管的栅极加一个辅助放大器让Cascode管的栅极电压随源极电压变化从而进一步提升输出阻抗。增益自举可以把输出阻抗再提升一个辅助放大器的增益倍总增益可以做到80dB以上。但代价是电路复杂度增加稳定性设计更困难。辅助放大器的带宽必须足够大否则会影响主环路的相位裕度。我个人的建议是如果60~70dB的增益够用就用普通Cascode如果需要80dB以上再考虑增益自举。不要为了追求高增益而过度设计稳定性和功耗同样重要。7. 写在最后一些个人体会做模拟IC设计这些年Cascode结构是我用得最多、也踩坑最多的拓扑之一。刚开始学的时候觉得公式推导都懂但一到实际仿真就各种问题。后来慢慢发现模拟IC设计的核心能力不是背公式而是建立直觉。你得看到电路图就能大致判断哪个节点阻抗高、哪个节点极点低、哪个管子可能出问题。Cascode结构的精髓在于“隔离”和“提升”。它用共栅管把输入管的漏极电压摆幅隔离掉从而释放了输入管的增益潜力。这个思路可以推广到很多地方比如共源共栅电流镜、共源共栅负载、甚至多级Cascode。理解了这一层很多电路拓扑就变得顺理成章了。如果你正在学模拟IC设计我的建议是不要只跑仿真看波形要多手算、多推导、多思考“为什么”。仿真只是验证工具真正的设计能力来自于对电路原理的深刻理解。Cascode是一个很好的切入点把它吃透了后面学折叠式、增益自举、全差分结构都会轻松很多。最后分享一个小技巧在仿真Cascode电路时我习惯在输出端加一个理想开关和阶跃信号源用来测试大信号建立行为。这个方法比单纯的AC仿真更能暴露问题尤其是压摆率和相位裕度的问题。你可以试试看效果很直观。
