
模集这行有个很有意思的现象你问一个刚学完拉扎维的同学“共源极增益是多少”他能秒答-gm*ro。但你给他一个带源极退化电阻的CS、一个负载是二极管连接管子的CG、一个衬底不接源的SF让他把输入阻抗和输出阻抗都推一遍他大概率要卡壳。更别说工作中遇到“这级增益怎么和手算差这么多”这种问题了。这篇文章就是把CS、CG、SF这三种单级放大器的小信号分析彻底讲透。不光是背公式而是把每个公式怎么推出来的、每个近似在什么条件下成立、每种拓扑最适合干什么活、仿真里怎么验证全部过一遍。适合正在学模拟集成电路设计的学生、准备 analog 方向面试的求职者以及实际流片中需要快速手算估算的工程师。1. 小信号分析之前先把这三件事想明白很多人做小信号分析翻车不是不会列方程而是没搞明白这套方法的边界在哪。小信号分析的前提是“大信号工作点已经确定”然后在这个工作点附近研究微小的变化量。这就像研究水塔水面的波动——你得先知道水面在哪个高度才能讨论波纹怎么传播。波纹足够小才不会改变管道阻力、水泵工况这些“直流状态”。1.1 工作点决定一切小信号参数从哪来小信号模型里的gm、ro、gmb全部是直流工作点的函数。同一个管子偏置在弱反型区和强反型区gm差好几倍VDS不同ro也完全不同。所以拿到任何电路图第一步永远是做DC分析确认每个管子都工作在饱和区然后才能谈小信号。这也是为什么流片回来的芯片测出来和仿真对不上第一反应不是怀疑模型而是先怀疑工作点是不是偏了。比如一个CS放大器理论上增益应该是40dB实测只有20dB大概率是输出管掉出饱和区了——输出电压摆幅太大把管子压到线性区ro骤降增益自然就没了。1.2 gm、ro、gmb三个参数管住所有公式小信号分析绕不开这三个参数我强烈建议你做任何分析之前先在脑子里把它们的物理含义过一遍gm跨导VGS变化1V漏极电流变化多少安培。单位是西门子S在实际工艺里常见量级是几十µS到几mS。gm越大同样的输入电压变化能产生更大的电流变化增益越高。ro输出电阻沟道长度调制效应的体现。在长沟道模型里ro≈1/(λ·ID)λ是沟道长度调制系数短沟道工艺里ro更小而且和VDS的关系更复杂。单位是欧姆常见量级几十kΩ到几MΩ电流越小ro越大。gmb背栅跨导衬底相当于第二个栅极。VBS变化1V漏极电流变化多少安培。典型值gmb≈0.1~0.3·gm在某些电路里比如源随器绝对不能忽略。1.3 一套通用的分析流程三个拓扑通吃我习惯的流程是固定的推任何单级放大器都这么干画出小信号等效电路。所有直流电压源短路到地直流电流源开路。管子的模型就是压控电流源gm·Vgs并联ro源衬之间有gmb·Vbs的电流源。找出控制电压Vgs和Vbs分别是谁和谁的差用节点电压表示出来。在关心的端口列KCL方程消去中间变量。整理出增益、输入阻抗、输出阻抗的表达式。这套流程看着朴素但它是后面所有推导的基本功。千万不要觉得公式简单就跳过推导直接背结论考试时题目一变型背结论的人第一个挂。2. 共源极CS单级放大器里的“增益担当”共源极是模拟IC里最核心的增益级。几乎所有的运放输入级、中间增益级本质上都是在用CS或其变体做电压放大。搞懂CS等于搞懂了大半个模拟IC。2.1 从等效电路推出那个负号先看最基础的电阻负载CSM1的栅极接输入vin漏极通过电阻RD接到电源VDD源极接地。小信号等效电路里vin直接加在Vgs上产生电流gm·vin这个电流从漏极流向源极。输出节点对地的阻抗是ro并联RD所以vout -gm·vin·(ro∥RD)负号哪来的因为从漏极节点流出的电流方向是向下的在输出节点上建立的反向电压。用节点方程写一遍更清楚在漏极节点列KCL流出的电流gm·vgs加上vout/(ro∥RD)0理想电流源模型下解出来vout/vin -gm·(ro∥RD)。如果负载是理想电流源RD趋于无穷大增益变成-gm·ro这就是常说的本征增益。本征增益是单个管子能提供的最大电压增益在0.18µm工艺里大约20~40倍在更先进工艺里往往只有10~20倍。记住这个数量级后面选结构的时候很有用。我见过很多人推导到这里就停了其实还有一个细节值得留意输出阻抗。从输出端看进去CS放大器的输出阻抗是Rout ro∥RD。这个参数决定了CS级驱动下一级的能力——如果下一级输入阻抗不够高信号会被分压实际增益会低于空载计算值。第一节说的工作点检查在级联场景里就变成了“别忘了算负载效应”。2.2 米勒效应CS高频受限的根因CS放大器的输入节点并不只是栅极电容那么简单。栅漏之间有个Cgd在放大状态下Cgd的两端电压变化方向相反栅极上升Δv漏极下降Av·Δv所以Cgd上的电压变化是(1Av)·Δv。从输入端看这个电容等效为(1Av)·Cgd。这就是米勒效应。一个本来只有几fF的Cgd在增益为20的CS后面看起来像几十fF增益为100时就是几百fF。输入极点频率fp 1/(2π·Rin·Cin)Rin是前级的输出阻抗Cin包含了这个被放大的米勒电容结果就是CS放大器的带宽被死死压住。米勒效应在工程上有两个直接后果。第一CS不适合直接做大带宽放大除非用中和电容或Cascode抵消它第二CS的输入阻抗在高频下是容性的而且这个电容会随增益变化——你可以利用这一点但大多数时候它是麻烦。2.3 退化电阻与二极管负载CS的两个经典变体源极串一个电阻RsCS就变成了带退化电阻的CS。这时从栅极看进去有效跨导变成Gm gm/(1gm·Rs)增益变成Av -gm·RD/(1gm·Rs)。当gm·Rs远大于1时Gm≈1/Rs增益几乎由电阻比决定不再依赖gm的绝对值。这个特性的工程价值非常大gm随工艺和温度变化剧烈但两个电阻的比值很稳定所以带退化的CS增益更可预测同时线性度也更好。代价是什么增益掉得厉害。所以它一般用在需要线性放大或需要稳定增益的场合比如某些LNA。另一个经典变体是把负载电阻换成二极管连接的MOS管。二极管连接管子的等效电阻是1/(gmgmb)所以增益变成Av -gm/(gm2gmb2) ≈ -sqrt((W/L)1/(W/L)2)忽略体效应和沟道长度调制时这个式子说明了一件很漂亮的事增益只取决于两个管子的宽长比和具体的gm绝对值无关。也就是说不管工艺角怎么漂只要版图里两个管子匹配好增益就是稳定的。代价是输出摆幅受限——二极管连接的负载管至少要留一个过驱动电压Vov的空间。3. 共栅极CG低输入阻抗的电流搬运工共栅极是三种拓扑里最容易被误解的一个。很多人觉得它“输入阻抗低不好用”但恰恰是低输入阻抗让它在电流模式电路里扮演了不可替代的角色。3.1 节点方程与输入阻抗的推导CG的接法是输入信号加在源极栅极接交流地或接偏置漏极输出。画等效电路时要注意Vgs 0 - Vs -vin所以gm电流源的方向和输入信号是反相的。在源极节点列KCL流入源极节点的电流iin gm·vgs gmb·vbs vs/(ro∥RD的折算项)这里为了清晰先忽略ro后面再补。因为vgs -vsvbs -vs衬底交流接地所以iin (gmgmb)·vs。于是输入阻抗Rin vs/iin 1/(gmgmb)这就是CG输入阻抗的核心结论——低非常低典型值几百欧姆。相比CS的输入阻抗“很大且容性”CG几乎是一个纯电阻性的低阻输入。加上ro以后推导稍微复杂一些因为ro两端跨在源极和漏极之间会引入一个从输出到输入的反馈通路。完整的输入阻抗会变成Rin (RDro)/(1(gmgmb)·ro)当RD远小于ro时又回到1/(gmgmb)。实际工程里只要RD不是太夸张用1/(gmgmb)做估算就够用了。3.2 CG为什么不做电压放大却总出现在电流路径里CG的电压增益是正的约等于(gmgmb)·(ro∥RD)。单看这个公式它好像也能提供增益但问题出在输入端前级电压源通常输出阻抗很高接到CG的低输入阻抗上信号绝大部分都分压分掉了。所以CG几乎没有拿来做电压放大的它真正的战场是电流信号路径。电流镜的输出节点就是一个典型场景。镜像电流需要被复制到高阻输出节点上如果直接用一个高阻节点去“接收”电流微小电流变化会产生很大的电压变化非线性严重。但如果用CG做输入级它的低输入阻抗可以稳定地吸收电流同时把电流变化传递到高阻输出的漏极实现电流到电压的转换。一句话总结CG是电流搬运工输入端要的是电流不是电压输出端才把电流变成电压。这个定位想清楚了CG的很多“反直觉”特性就都顺了。3.3 CascodeCG和CS组队的高增益玩法CG最高光的应用就是和CS组成Cascode结构。CS提供跨导和电流CG负责把CS的输出节点“保护”起来让CS的输出阻抗不被负载拉低。原理是CS的漏极接在CG的源极而CG源极阻抗很低所以CS漏极看到的电压变化很小ro1两端电压几乎恒定等效流过ro1的电流变化很小——也就是说CS的输出阻抗被“提升”了。从Cascode整体输出端看进去输出阻抗约为Rout ≈ gm2·ro2·ro1简化形式这个数值通常比单个ro大两个数量级。增益也随之变成gm1·(gm2·ro2·ro1)非常可观。代价是输出摆幅减少——Cascode堆叠了两个过驱动电压同时还牺牲了输入共模范围。在实际的折叠Cascode运放、共源共栅电流镜里这个思路被反复使用。你甚至可以把它类比成“给CS请了一个保镖”CS负责干活CG负责挡住外界干扰保镖的代价是占地方电压余度。4. 源随器SF增益不到1却是最被低估的一级源随器也叫共漏极在教材里的存在感最低因为它的电压增益小于1看起来“没什么用”。但凡是做过一个完整的两级运放或者LDO的人都知道没有源随器输出级驱动大电容负载这件事会变得非常痛苦。4.1 源随器的本质是“电压跟随功率放大”SF接法是输入加在栅极输出从源极取漏极接电源交流地。等效电路里Vgs vin - vout电流gm·(vin-vout)从漏极流向源极在输出节点上建立电压vout。如果先忽略体效应和ro输出节点的电流关系是gm·(vin-vout) vout/RLRL是负载电阻解出来Av gm·RL/(1gm·RL) 1/(11/(gm·RL))。当gm·RL远大于1时Av趋近于1但永远小于1。它做的是“电压增益小于1、电流增益远大于1”的活儿输入电压几乎不变地传到输出但输出端可以提供大电流驱动重负载。就像电压不变、电流放大的缓冲器。4.2 输出阻抗1/gm和体效应的双重影响从SF输出端看进去输出阻抗的表达式需要认真推。在源极节点注入一个测试电压vx产生的电流ix gm·vgs gmb·vbs 流过ro的电流其中vgs -vxvbs -vx衬底交流接地时。忽略ro时Rout vx/ix 1/(gmgmb) ≈ 1/gm典型值几百欧到几千欧。相比CS的输出阻抗动辄几百kΩSF输出阻抗低了两到三个数量级这就是它能驱动后级大电容负载的原因。但这里有个非常容易忽略的细节——体效应。如果源随器的衬底没有接到源极NMOS源极电位不是最低电位vbs就不为零gmb就会起作用。增益公式会变成Av gm/(gmgmbgds后级负载导纳)体效应直接把增益拉低了百分之十到三十。这不是小数目在精密电路里必须算进去。反向解决的办法是深N阱工艺把NMOS的衬底单独接出来或者在版图里把SF的source和body短接但后者在P衬底工艺里不一定做得到。4.3 SF在电路里的两个高频职责低阻驱动与电平移位SF在复杂电路里承担了两个很重要的职责。第一个是低阻驱动。两级运放的输出级如果直接接一个1nF的片外负载电容第一级的高阻输出节点会被这个电容压出低频极点稳定性直接崩掉。中间插一个SF输出阻抗变成1/gm和负载电容形成的极点频率被推高到很高不再威胁主极点稳定性问题就缓解了。这里注意SF虽然能降低输出阻抗但它不提供任何电压增益所以运放的大部分增益必须由前面的CS级或者Cascode级提供。第二个是电平移位。因为Vout Vin - VgsNMOS源随器输出直流电平比输入低一个Vgs大约0.7~1V。在AB类输出级、电平移位网络里经常利用多个SF串联来实现直流电平的精确搬移。很多带隙基准Bandgap电路里的运放输入共模范围不够时也会用SF先把电平抬高或降低再接进去。5. 三个拓扑放一起比选型逻辑和面试题套路分开看每个拓扑都清楚了但实际设计时你面对的是“这个节点该用什么结构”的选择题。把三个拓扑放在同一张表里对比决策逻辑会清晰很多。5.1 一张表看穿CS/CG/SF的本质差异拓扑电压增益输入阻抗输出阻抗核心用途主要局限CS大-gm·(ro∥RD)反相高栅极高频下呈容性高ro∥RD电压放大、运放输入级米勒电容限制带宽增益与偏置强相关CG约(gmgmb)·(ro∥RD)同相低1/(gmgmb)高ro∥RD电流输入缓冲、Cascode不适合直接放大前级电压信号SF≤1约为gm/(gmgmb...)极高栅极低≈1/gm电压缓冲、电平移位、驱动重负载无电压增益且有直流电平偏移设计时的选型逻辑其实很直白你需要电压增益去找CS或者它的变体你需要把电流信号转成电压或搬运电流上CG你需要驱动后级大电容并且不在乎电压损失用SF。如果输出摆幅和增益都想要就把CS和CG组Cascode再用SF做缓冲。整个信号链路的拓扑选择基本就是这三种单元的组合游戏。5.2 复杂电路里的“拓扑识别”差分对、Cascode与折叠结构实际电路里很少只有一个管子但几乎所有复杂结构都能拆成这三种基本单元。差分对是模集的基础很多人只记住了“半边电路等效为CS”却忽略了一个关键细节共模信号下尾电流源节点看进去是什么答案是CG。差分对尾电流源处两个输入管的源极连在一起对共模扰动来说每个管子都在共栅极接法下工作——源极看到的阻抗是1/gm量级所以共模增益很小。这就是差分对抑制共模的另一种理解方式。Cascode结构前面讲过了是CSCG的组合。折叠Cascode把CS改成折叠结构拓扑本质没变变的只是电流方向和偏置网络。两级运放的第一级是差分CS或折叠Cascode第二级往往还是CS输出缓冲可能需要SF。看到任何运放原理图第一件事就是找“哪些管子在提供跨导哪些管子在做缓冲哪些管子是电流源负载”剥完之后剩下的就是一张写满CS/CG/SF的电路图。5.3 面试/笔试常见变形题与应对思路Analog方向的面试题千变万化但考察小信号分析的题目万变不离其宗高频出现的几类我列一下带源极退化电阻的CS增益怎么变答案不是死记公式而是理解Gm gm/(1gm·Rs)以及当gm·Rs远大于1时增益接近-RD/Rs线性度提升、增益变稳定。CG放大器的输入阻抗为什么低要会画等效电路推导而且要主动提到1/(gmgmb)说明你注意到了体效应。SF的增益为什么小于1体效应对它有什么影响答出gm/(gmgmbgo)这个表达式再解释gmb如何拉低增益。如果CS的输出接到SF的输入整体增益是多少这是典型的级联题。CS输出阻抗很大SF输入阻抗更大所以CS增益基本不受影响整体增益约等于CS的增益乘以SF的增益≈1也就是约等于CS自己的增益。但如果你忽略了SF体效应会觉得增益刚好就是CS的实际上SF增益比1小一点。同相放大该怎么办CS是反相CG是同相但输入阻抗低。很多面试官会问“有没有同相的高增益放大器”答案就是Cascode或者两级结构组合。应对这些题的核心思路是别急着报答案先把等效电路画出来标注Vgs和Vbs的关系再列KCL。画图的过程本身就等于在提醒你注意各种细节。6. 手算、仿真与踩坑小信号分析在工程里怎么落地理论聊完了聊点工程里实际的东西。小信号分析不是考试完就扔的工具它是我日常设计里最常用的判断手段。一个电路该不该加Cascode、SF能不能驱动这个负载、这个节点的阻抗是几M还是几百k全是靠小信号分析在脑子里快速过一遍。6.1 快速手算的时间和精度平衡我手算从来不会追求精确到小数点后两位重点是数量级和趋势。gm、ro的具体数值从DC仿真或者初版估算里拿然后按照拓扑公式做估算。比如我预期某个节点的输出阻抗是MΩ级别仿真出来是300kΩ我不会觉得算错了我会先检查工作点——是不是某个管子掉出饱和区了或者是不是我漏算了一个并联支路。一个非常实用的手算技巧是永远同时估算“最乐观”和“最悲观”两种情况。最乐观是全按理想电流源负载加长沟道ro最悲观是把所有ro都算进去、把gmb加上。真实的仿真结果一定落在这两个值之间。如果仿真结果跑出去了不是模型算错就是我电路结构判断错了。6.2 Cadence验证小信号参数的具体操作在Cadence环境里验证上述分析我通常这么做DC仿真跑工作点查看每个管子的gm、gds、gmb、region参数。确认全部饱和。用iprobe或直接在输出端加AC激励源跑AC仿真看低频增益和带宽。把仿真增益和手算的gm·(ro∥RD)对比误差在10%以内说明建模正确超过20%就要检查等效电路哪里漏了。测输入阻抗和输出阻抗时可以用stb分析或者直接加测试源做阻抗扫描。扫描频率从1Hz到10GHz看低频平台的阻抗值是不是和手算的1/gm或ro∥RD吻合。特别留意SF的仿真结果把vbs的波形调出来看看衬底电位是否真的在波动。如果衬底通过寄生电容耦合信号高频率下的SF输出阻抗会变得不再平坦这说明简化模型在高频崩了——不是公式的问题是等效电路在这个频率下要加入寄生参数了。6.3 我踩过的坑负载效应、短沟道ro和gmb最后分享几个我在实际项目中踩过的坑每个都是血泪教训。第一个坑是负载效应。我曾经设计一个两级放大器第一级是CS第二级是CS手算第一级增益50倍整体增益设计目标70dB仿真却只有55dB怎么调都不对。最后排查发现是第一级的输出阻抗和第二级的输入阻抗出现了严重分压。第二级的栅极输入阻抗虽然“理论上无穷大”但米勒电容在目标带宽附近把输入阻抗拉低到只有几百kΩ直接和第一级的输出阻抗并联分压。从那以后我做任何级联第一件事就是看前级的Rout和后级的Rin能不能解耦。第二个坑是短沟道器件的ro比想象中小太多。学校里学的长沟道模型ro动辄几MΩ但先进工艺下一个最小沟长管子在100µA电流下的ro可能只有50kΩ本征增益也就十出头。如果你还用“ro无穷大”的乐观思路去做运放设计增益目标大概率会翻车。所以我现在做任何高增益设计第一时间确认工艺节点对应的本征增益上限再决定要用Cascode还是增益增强技术。第三个坑是gmb。在学校做题时题目一般会提示“忽略体效应”导致很多人形成了肌肉记忆看到MOS管就直接把gmb划掉。但SF这种拓扑gmb直接出现在主通路上忽略它会让增益计算偏差百分之二十以上。在CG的输入阻抗里gmb也一样重要——1/(gmgmb)和1/gm差得不是一星半点。所以我现在习惯拿到任何拓扑先问自己一句这里衬底是不是交流接地如果不是gmb就一定得留着。要说小信号分析最大的价值我觉得不是让你能算出某个精确数值而是让你在图纸上扫一眼就知道这个节点的阻抗大概在哪个量级、这个管子主要起什么作用、这个结构的增益上限是多少。这种直觉建立起来以后看任何运放原理图都有一种“这不过是一堆CS、CG、SF拼积木”的轻松感。我自己平时有个习惯每隔一段时间就会找一个没见过的运放架构逼自己在五分钟内把信号通路上的每个晶体管的拓扑归属标出来再估算每一级的增益和极点。这个练习做了两三年之后面试和设计时的反应速度都有了质的提升。如果你也想把分析能力练扎实可以试试这个方法。