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/L=10/1、Id=100μA时,gm≈1mS,ro≈50kΩ。那么gm×ro≈50,也就是34dB。单管共源增益就是34dB。加上Cascode管后,如果gm2×ro2也是50,那总增益就是34+34=68dB。当然,实际仿真值会略低一些,因为负载不是无穷大,而且存在寄生电容的影响。
我通常的做法是:先用手算确定大致的设计方向,比如需要多大的W/L、多大的偏置电流,然后在Cadence或华大九天Aether中搭建电路进行DC仿真,确认工作点。手算和仿真之间的偏差主要来自工艺参数的不确定性,所以手算不用太精确,够用就行。
3.2 输出摆幅的估算与优化
输出摆幅是Cascode设计中最容易被忽视的指标。很多人只盯着增益看,结果仿真出来增益很漂亮,但输出摆幅只有0.3V,根本没法用。
对于套筒式Cascode,输出摆幅的估算公式是:
Vout,swing = VDD - Vdsat,input - Vdsat,cascode1 - Vdsat,cascode2 - Vdsat,tail
假设VDD=1.8V,每个Vdsat=0.15V,那输出摆幅就是1.8-0.15×4=1.2V。看起来还不错,但这是峰峰值,单边摆幅只有0.6V。如果VDD降到1.2V,输出摆幅就只剩0.6V峰峰值,单边0.3V,非常紧张。
优化输出摆幅的方法有几个:一是降低每个管子的Vdsat,通过增大W/L来实现,但代价是寄生电容增大、带宽下降;二是采用折叠式结构,把输入对和Cascode管的偏置分开;三是使用宽摆幅偏置电路,把Cascode管的Vdsat压到最低。
3.3 频率响应与极点分析
Cascode结构的一个显著优势是米勒效应被大幅削弱。在单管共源放大器中,Cgd1会从输入到输出形成米勒电容,等效到输入端是Cgd1×(1+Av),这个电容可能非常大,严重限制带宽。而在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:根据gm=sqrt(2×μn×Cox×W/L×Id),假设μn×Cox=200μA/V²,Id=100μA(每个管子),要得到gm=1mS,需要W/L≈50。取W=10μm,L=0.2μm,W/L=50。
Cascode管的W/L:Cascode管的gm不需要很大,但ro要大,所以L取大一些,比如L=0.5μm,W=5μm,W/L=10。
尾电流源的W/L:尾电流源需要输出200μA,L取1μm以保证ro足够大,W根据需要的Vdsat来确定。
4.3 DC仿真:确认工作点
搭建好原理图后,第一步是跑DC仿真。在Cadence中,用DC Operating Point分析,查看每个管子的Vgs、Vds、Vth、Vdsat和region。
关键检查点:
- 所有管子是否工作在饱和区(region=2)
- M1和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是负载电容。对于我们的设计,I=200μA,C=2pF,SR=100V/μs。这个值对于10MHz带宽来说足够了。
如果建立时间太长,可能是压摆率不够,需要增大输出级电流;也可能是相位裕度不够,导致振铃。瞬态仿真可以直观地看到这些问题。
4.6 工艺角与温度仿真
最后一步是跑PVT(Process, 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 | 增大尾管L |
5.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的叠加效应太严重。这时候就需要采用折叠式结构,或者使用低压Cascode(Low-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仿真更能暴露问题,尤其是压摆率和相位裕度的问题。你可以试试看,效果很直观。