
前两天给一个刚工作的师弟看电路他指着一个共源放大级问我这个放大倍数到底应该怎么算他手里拿着小信号等效电路列了三四行方程组算了半天结果还差一个符号。我扫了一眼输入级直接说你先找跨导再看从漏极看出去的等效电阻增益就是 gm 乘以这个电阻。他听完愣了一下还能这么算其实他不是不会列方程而是没用对角度。在模拟电路设计里“利用跨导和输出阻抗求放大倍数”是一套被老工程师用得很熟、但很多教材没有单独拿出来讲的方法。它不只是一个速算技巧更像是一条理解放大电路行为的主线输入电压转化为输出电流输出电流流过输出等效电阻转化为输出电压。想清楚这个链条增益就不再是一堆方程而是一个可以被估算、被调试、被设计出来的量。下面我按自己的使用经验把这个方法从头到尾拆开讲。后面凡是出现RD || ro都表示“并联”最后会算成一个等效阻抗。1. 先想清楚为什么跨导和输出阻抗能拼出增益1.1 放大电路的本质受控源 阻抗任何线性放大器工作点偏置好以后在小信号范围内都可以用一个受控电流源加输出电阻来描述。以 MOSFET 为例栅极电压的小变化vgs不会直接改变输出电压它只会改变漏极电流id gm * vgs这里的gm就是跨导单位西门子本质是“电压转电流”的能力。BJT 也类似ic gm * vbe虽然内部物理机制不同但在小信号等效层面输入电压控制输出电流这个模式完全一样。输出电压是怎么产生的这个受控电流源不是单独存在的它内部总会并联一个有限的输出电阻ro。对 MOSFET 来说这是沟道长度调制带来的漏源电阻对 BJT 来说这是 Early 效应带来的集电极-发射极电阻。电流源产生的电流一部分会流过外部负载电阻一部分会被这个内部ro吃掉。所以真正决定输出电压的不是外接电阻RD一个人而是RD || ro。电压增益可以写成Av -gm * (RD || ro)负号来自输出与输入反相。如果把括号里的积看成输出端到地的总等效电阻Zout那么更一般的说法是Av -gm * Zout其中Zout RD || ro这是共源放大器、且没有源极退化时的结果。这就是整个方法的核心。不是先列 KCL/KVL 解方程而是先找跨导再找输出端向下看的总阻抗然后用乘法把两者组合起来。为什么这个方法有效因为小信号模型已经在最底层把“晶体管是一个电压控制电流源”这件事说清楚了。每次列方程解出来的结果最终都会回到gm和阻抗的乘积上。与其绕一圈列方程不如直接抓住输出端的诺顿等效一个电流源并联一个阻抗输出电压就是电流乘以阻抗。工程上用这个方法手算速度能快很多还不太容易丢项。1.2 从列方程到“找阻抗”的转变传统的教材推导通常会这样做画出小信号模型在输出节点列 KCL把vgs、vout、RD、ro放到同一个方程里最后解出vout/vin。这个方法当然准确但对初学者来说最大的问题是“迷路”。我见过很多人在列方程时把ro放错位置或者在符号上反复纠结。原因不是不会列方程而是没有先建立一个整体图景。如果你先承认“输出端就是一个受控电流源并联一个阻抗”那么诺顿等效直接告诉你输出电流 gm * vgs输出等效电阻 RD || ro输出电压 输出电流 * 输出等效电阻增益 gm * (RD || ro)这个过程完全不需要列方程只需要两步找到跨导找到输出端看出去的总阻抗。举个例子感受一下差异。假设一个 NMOS 共源放大器gm 2mSRD 10kΩro 50kΩ。如果只算gm * RD增益是 20 倍如果算gm * (RD || ro)实际增益是RD || ro 10 * 50 / (10 50) 8.33kΩAv -2mS * 8.33kΩ -16.7这里的差别不是 20 和 16.7 谁更精确的问题而是ro本来就是器件内部的一个有限电阻。你越是用手算越应该把它放在公式里。真正的工程判断力就是看到RD和ro之后立刻知道“这个放大级的增益上限其实被ro卡住了”。2. 实操第一步找到 gm找到从输出端看进去的总阻抗2.1 MOSFET 和 BJT 的 gm 怎么定用这个方法的第一步是拿到一个可信的gm。对 MOSFET 饱和区常见公式有三个gm μn Cox (W/L) * (VGS - VTH)gm 2 * ID / (VGS - VTH)gm sqrt(2 * μn Cox * (W/L) * ID)工程手算时我最常用的是第二个gm 2 * ID / VOV其中VOV VGS - VTH。一个 NMOS 工作在ID 1mAVOV 0.2V那么gm 2 * 1mA / 0.2V 10mS。对 BJT公式更简单gm IC / VT常温下VT ≈ 26mV如果IC 1mA那么gm 1mA / 26mV ≈ 38.5mS。所以很多教材里会说 BJT 的跨导更大这是对的。但跨导大不代表增益一定大因为 BJT 的输入阻抗更低还要看输出阻抗和外部负载的配合。如果是做仿真验证不需要用手算gm直接在.op工作点信息里读gm就行。这里有一个很容易踩的坑仿真模型里的gm和工作点电流、宽长比、过驱动电压强相关。你手动估算时如果VOV随便取了一个值和仿真对不上后面所有计算结果都会偏。2.2 输出阻抗 ro 的获取方法ro不是一个固定常数它和工作点电流直接相关。MOSFET 常用近似ro ≈ 1 / (λ * ID)或者写成ro ≈ VA / ID其中VA 1/λ可以理解为类似 BJT 的厄利电压。假设λ 0.05 / VID 1mA那么ro 1 / (0.05 * 1mA) 20kΩ。BJT 更简单ro VA / IC比如VA 50VIC 1mAro 50kΩ。在仿真里可以直接读gds然后ro 1 / gds注意短沟道 MOS 的ro会小很多因为沟道长度调制更严重。这也是为什么长沟道器件做高增益放大器更容易的原因之一。如果你发现手算的增益和仿真对不上先别急着怀疑公式而是去查你用的gm和ro是不是工作点下的真实值。很多时候问题出在参数取错而不是方法错。2.3 最小可用的增益公式把gm和Zout找出来之后就可以套一个最小可用的骨架公式。对一个直接漏极输出的 MOS 共源级Av -gm * (RD || ro)对一个发射极输出的 BJT 共射极Av -gm * (RC || ro)对共栅/共基这类输出从漏极或集电极取出、输入从源极或发射极进入的结构Av gm * (RD || ro)共栅/共基的相位和共源不同所以符号是正号。幅度结构仍然很像跨导乘以输出节点总阻抗。我把最小流程总结成四步遇到低频小信号放大器可以直接按这个顺序走确认管子工作在饱和区/放大区。从工作点算出gm和ro。画出小信号等效把输出节点到地之间的所有电阻并联得到Zout。根据输出位置套用增益公式再用交流小信号仿真核对一次。这套流程最大的好处是能让你在拿到一个陌生电路时先不说精确解至少能把增益量级判断出来。量级对了后面再讨论修正项才有意义。3. 从共源到共漏同一套思路的三个典型变化3.1 共源/共射Av -gm * (RD || ro)以一个实际计算为例。NMOS 共源级RD 10kΩID 1mAVOV 0.2Vλ 0.02。先算gm 2 * 1mA / 0.2V 10mS再算ro 1 / (0.02 * 1mA) 50kΩ输出端总阻抗RD || ro 10kΩ || 50kΩ 8.33kΩ增益Av -10mS * 8.33kΩ -83.3这个结果意味着如果输入一个 10mV 的小信号正弦输出大约会得到 833mV 的反相正弦。前提是输出摆幅没有碰到电源轨或接地轨也没有进入非线性区。为什么这里不能只算gm * RD -100因为ro是并联在受控电流源上的它会分走一部分电流。这个现象在短沟道器件里更明显ro可能只有 10kΩ 甚至更小如果RD也是 10kΩ那么实际增益只有-gm * 5kΩ和gm * RD差了整整一倍。忽略ro不是“保守误差”而是结构错误。另外一个容易被忽略的点是信号源内阻。如果输入信号源经过一个电阻Rs到栅极栅极还有偏置电阻RG那么真正加到栅极的电压vgs是vgs vin * RG / (RG Rs)所以实际增益还要乘上这个分压系数。很多人在计算时已经算对了gm * Zout但忘了输入端的衰减结果和仿真对不上。3.2 共栅/共基输入阻抗低输出阻抗高共栅放大器的输入信号从源极进入输出从漏极取出增益大小仍然接近Av gm * (RD || ro)但它的输入阻抗非常低大约是Rin ≈ 1/gm这是什么意思如果你用一个电压源直接驱动共栅输入源内阻稍微大一点信号就会被分压掉很大一部分。所以共栅电路更适合接收电流信号常用于电流模电路或作 cascode 结构的上管。共栅的另一个特点是输出阻抗比较高。如果源极再接一个电阻RS从漏极看进去的阻抗会被RS放大甚至出现类似“阻抗变换”的效果。虽然这时增益公式不再是简单的gm * (RD || ro)但核心思路仍然不变先找输出端的等效阻抗再找输入到输出的跨导关系。对于做高频或宽带放大器的人来说共栅的低输入阻抗是一张好牌因为它让输入端的时间常数变小。但在用它之前先要回答清楚输入信号到底适合电压驱动还是电流驱动如果用电压源驱动且源内阻很高那实际增益会比gm * RD低很多。3.3 共漏/共集为什么不能直接拿 gmR 收工共漏放大器也就是源极跟随器最容易让人踩坑。很多人一看“跨导乘以输出阻抗”直接写成Av gm * (RS || ro)这个写法在大部分情况下是错的。源极跟随器的输出从源极取出而输出电压会反馈到Vgs Vg - Vs。输入信号进入后源极电压跟着输出变化这部分变化会抵消掉一部分输入电压形成串联负反馈。所以增益近似为Av ≈ gm * (RS || ro) / (1 gm * (RS || ro))当gm * (RS || ro)很大时Av趋近于 1但永远不会简单等于gm * (RS || ro)。举个例子gm 10mSRS 1kΩ忽略rogm * RS 10源极跟随器增益Av ≈ 10 / (1 10) 0.909如果你直接写成 10 倍那就完全错了。这个问题给我们的提醒是“跨导 × 输出阻抗”这个公式适用于“输出节点就是受控电流源直接驱动的节点”。共源和共栅满足这个条件共漏不满足。共漏的输出节点处在负反馈回路里必须先把反馈关系处理掉再谈增益。4. 常见“帽子戏法”源极退化、体效应、米勒电容4.1 源极退化增益从 gmR 变成 gmR/(1 gmRs)共源放大器源极加一个电阻RS如果没有旁路电容增益会明显下降。忽略ro时公式变成Av ≈ -gm * RD / (1 gm * RS)为什么因为源极电阻形成了一个电流串联负反馈输出电流变大时源极电压上升自动让Vgs减小从而限制电流变化。等效跨导变成了Gm gm / (1 gm * RS)于是增益变成Gm * RD。这个“退化”不是坏事。它牺牲了增益换来了线性度、带宽和偏置稳定性。很多工艺波动大的电路反而希望用一点源极退化来让增益不那么依赖gm。但如果你在调试时看到某个共源级增益比预期低很多先检查一下源极电阻是不是真的被旁路电容短路了。如果旁路电容焊错、没焊或者容值太小中频增益就会掉下来。这个问题的排查优先级非常高。4.2 体效应被忽略的跨导变化MOS 管的衬底并不是总是和源极同电位。如果源极电压和衬底电压不一致就会出现体效应产生一个额外的背栅跨导gmb。近似关系gmb ≈ η * gm其中η通常在 0.1 到 0.3 之间。在共源级中如果源极直接接地并且衬底也接地那么vbs 0体效应不存在。但如果源极接了电阻或者源极电位比衬底高gmb就会参与小信号模型导致从源极看进去的阻抗变低增益也随之下降。特别是在源极跟随器里体效应会让输出阻抗从1/gm变成大约1/(gm gmb)增益会略微偏低。你用手算时如果发现实测/仿真比理论值低可以考虑是不是gmb没有算进去。4.3 米勒效应当增益的“朋友”变成“敌人”利用gm * Zout算出低频增益Av之后还能顺便估算一个高频 bug米勒效应。跨接在栅极和漏极之间的电容Cgd在放大状态下等效到输入端会变成Cin ≈ Cgd * (1 |Av|)例如Av -20Cgd 0.5pF那么输入等效电容约为0.5pF * 21 ≈ 10.5pF这还没算Cgs。如果信号源内阻有 10kΩ这个输入电容就会形成主极点带宽可能低到几百 kHz 到几 MHz 量级。为什么米勒效应会放大电容因为输入变化一点点输出变化得更厉害而且方向相反。电容两端电压变化比输入端单独变化时更大流过电容的电流也就更大看起来就像电容变大了一样。所以高频设计里共源级并不总是最优选择。cascode 结构能把漏极电位“固定”住减小Cgd两端的电压变化从而削弱米勒效应。这是另一套方法但它的出发点还是从gm * Zout算出的增益来的先知道增益大小才能知道米勒电容被放大了多少倍。5. 算出来的增益和仿真对不上按这个顺序排查5.1 先确认直流工作点如果手算结果和仿真差异很大第一件事不是重算而是看工作点对不对。你需要确认MOS 是否真的处于饱和区如果在线性区gm不再是你用的那个公式ro也非常小。BJT 是否在正向放大区如果进入饱和区增益会明显异常。工作点电流ID或IC是不是你假设的值gm对电流高度敏感电流差一倍跨导就可能会翻倍。在仿真器里直接看.op信息里的region、ID、VDS。在实物调试里用万用表量各极电压反推电流是否合理。很多“增益算不准”的问题本质是“偏置没落在预期工作点”。5.2 再看模型参数工作点没问题再看gm和ro取没取对。仿真模型里的gm通常包含二阶效应。你手工估算时用的VOV可能和模型实际值不一样导致gm差 20% 甚至更多。ro也很容易被低估或高估因为短沟道器件的λ不是常数和工作点有关。最稳的做法是打开仿真器的.op表直接读gmgdsgmb然后算ro 1 / gds如果你在电路里看到输出节点还接了下一级输入电阻、偏置电阻、负载电阻它们都会和RD || ro并联。别漏掉这些“隐藏电阻”。这里有一个很好的验证手段把输入信号源设成 0在输出节点加一个交流测试电流源做 AC 仿真测输出节点的电压得到的就是输出端到地的等效阻抗Zout。然后再单独找gm两者相乘能对上说明增益就是由这个结构决定的。5.3 最后检查拓扑是不是还有电阻藏在旁边如果工作点、gm、ro都对那就要回头画一遍小信号图找找有没有被忽略的路径。常见漏项有源极电阻没有旁路电容等效跨导降低。体效应没有关闭gmb没有被考虑。偏置电阻分压器与输入节点并联降低了实际输入信号。输出端还挂着其他反馈网络或负载改变了Zout。关心频率下电容已经开始起作用低频增益公式不再适用。我在调试时会把排查顺序固定下来这样可以减少来回折腾。排查步骤检查内容常用操作1. 直流工作点管子区域、电流、VDS/VCE.op读 region、ID、VDS2. 小信号参数gm、gds、gmb.op读 gm、gds、gmb3. 输出阻抗输出节点看到的等效阻抗输入置零加测试电流源4. 拓扑关系源极电阻、反馈、偏置画出小信号图逐项核对5. 频率效应电容、带宽AC 扫频看低频平台这个排查链路看起来简单但能解决绝大多数“算出来的增益和仿真对不上”的困惑。6. 这个“大杀器”的真正边界6.1 适合快速估算和面试手算这个方法的适用场景其实很广但前提是要用在“低频、小信号、线性放大”的框架里。我用它最多的地方有三个第一做电路设计选型。一个共源级gm 2mSRD 10kΩro 20kΩ那增益就是-13.3。如果需求是 30 倍我就知道要么把gm提到 4.5mS要么把输出端总阻抗提到 15kΩ而不是盲目增大RD。第二面试手算。面试官给一个带工作点的共源级要求立刻说增益量级这个公式几乎是标准答案。重点不是“会算”而是能解释清楚为什么ro要并联进来。第三做 debug 的锚点。仿真结果离谱时手算能给我一个“合理范围”。如果仿真值和手算差 2 倍可能是工作点偏了如果差 10 倍可能是拓扑上还有反馈我没看到。6.2 不适合的场景高频、大信号和多级强反馈但也要说清楚这个方法不是万能钥匙。高频条件下Zout不再是一个纯电阻Cgd、Cgs、负载电容都会参与进来增益会变成频率的函数还有相位问题。这时候单纯使用gm * Zout只能算低频极限或者某个频率下的粗略估算不能作为完整传递函数。大信号条件下gm本身会随输入电压变化不能再用工作点附近的线性化数值。只有信号幅度很小工作点近似不移动gm才能当成常数。多级强反馈电路里整个系统的增益由环路决定不是简单把每级gm * Zout乘起来。闭环增益、反馈系数、相位裕度都要重新建模。如果电路里有一个反馈电阻跨接在输入输出之间那它已经在改变输出阻抗了这时候必须先识别反馈结构再决定能不能用这个公式。还有一类完全不适用开关电容、比较器、振荡器、非线性电路。它们的工作状态不是小信号线性放大gm和ro这种小信号参数没有意义。所以每当我看到一个放大电路都会