共射共基(Cascode)电流源输出阻抗推导与工作条件详解 📅 发布时间:2026/8/30 4:19:15 👁 浏览次数: 很多教材讲共射共基Cascode电流源时会直接抛出一个结论输出阻抗等于 (g_m r_o^2)。读者把这个公式背下来做作业没问题可一到自己设计电流镜、做运放负载时就会发现仿真结果和公式对不上输出阻抗要么低了一个数量级要么输出电压稍微低一点整个电流源特性就崩掉了。问题出在哪里出在只背了结果没有理解推导更没有理解这个结果的成立条件。更准确地说输出阻抗表达式 (g_m r_o^2) 是“饱和区小信号模型”下的结果而工程设计真正要关心的是这个模型在什么电压范围内才成立。如果管子已经进入线性区小信号模型本身就不成立再漂亮的公式也只是纸面结论。这篇文章要做两件事第一把共射共基电流源的输出阻抗从零开始推一遍推导过程不仅是为了得到公式更是为了看清每个参数从哪里来第二把“高输出阻抗”的成立条件推导清楚也就是所有管子必须工作在什么电压范围偏置电压应该怎么选输出电压下限到底是多少。这两件事合在一起才算真正搞懂 Cascode 电流源。1. 这篇文章真正要解决的问题电流源是模拟集成电路里最基础的单元但它往往被低估。运放的尾电流源、有源负载里的电流镜、ADC 里的电流舵、基准源里的恒流支路全部依赖电流源。理想电流源的输出阻抗是无穷大输出电流不随输出电压变化。实际电流源做不到输出阻抗有限输出电流会随着输出电压轻微变化。这个“轻微变化”在单级电路里可能无所谓但在高增益放大器和精密电流镜里就是致命的。运放的开环增益有一个经典表达式[ A_v g_m \cdot R_{out} ](R_{out}) 就是输出节点的等效阻抗。你想提高增益要么增大跨导 (g_m)要么增大输出阻抗。(g_m) 受功耗和带宽约束不可能无限增大所以模拟 IC 设计者最常做的就是提高输出阻抗。这就是 Cascode 电流源存在的核心价值。但问题是Cascode 结构有两个必须同时满足的条件输出阻抗确实能提升到 (g_m r_o^2) 量级但前提是小信号模型成立小信号模型成立的前提是底部管和顶部管都工作在饱和区对 MOS或放大区对 BJT。很多文章只讲第 1 点不讲第 2 点。结果就是学生画原理图时知道要用 Cascode却不知道输出电压低于某个阈值后输出阻抗会急剧崩塌更不知道这个阈值应该怎么算。本文适合三类读者正在学模拟 IC 设计、对电流镜和 Cascode 结构感觉“会算但不懂”的学生做运放、基准源、ADC 电流舵的工程师遇到过输出阻抗与理论不符的问题想回头把小信号分析和电路工作条件重新理一遍的电子工程师。读完之后你应该能自己推导输出阻抗能算出保持高输出阻抗所需的最小输出电压也能在仿真里验证这些结论。2. 共射共基电流源的基础概念与适用场景要理解 Cascode 电流源先理解为什么需要它。2.1 基本电流镜的输出阻抗最基本的 MOS 电流镜如下M1 二极管连接M2 复制电流 (I_{OUT} I_{REF})。如果考虑沟道长度调制效应M2 的漏极电流不只是由栅压决定还会受漏源电压影响[ I_D \approx \frac{1}{2} \mu_n C_{ox} \frac{W}{L} (V_{GS}-V_{TH})^2 (1 \lambda V_{DS}) ]把输出端看进去小信号输出阻抗就是 M2 的沟道长度调制电阻[ r_{out} r_{o2} \frac{1}{\lambda I_D} ]在 0.18 μm 工艺下一个 L 取最小值的管子输出阻抗可能只有几十千欧到几百千欧。这个值对高增益运放来说远远不够。2.2 什么是共射共基CascodeCascode 这个词来自“Cascaded Triode”级联三极管。在 BJT 中它是“共射极 共基极”级联所以中文叫“共射共基”在 MOS 中它是“共源极 共栅极”级联所以也叫“共源共栅”。结构上很简单底部管 M1 提供电流相当于一个受偏置控制的电流源顶部管 M2 的栅极接固定偏置电压源极接 M1 漏端漏极作为输出端。M2 在这里起什么作用它的本质是把 M1 漏极的电压变化“屏蔽”掉一部分。M1 漏极电压变化一点点输出端电压可以变化很大于是从输出端看进去电流变化被 M2 的跨导放大效应抑制了等效输出阻抗因此被抬高了大约 (g_m r_o) 倍。2.3 适用场景与不适用场景Cascode 电流源最常见的应用有三类高增益运放的有源负载比如折叠 Cascode 运放、套筒式 Cascode 运放差分对的尾电流源用于提高共模抑制比电流舵 DAC 的电流源阵列需要极高的输出阻抗来保证电流精度。它的代价也很明确输出电压摆幅变小。因为要保持所有管子饱和输出端必须留出足够的电压余量。对于低压、低功耗设计这个代价可能无法接受这时就需要考虑折叠 Cascode、低压 Cascode 甚至调节型 CascodeRegulated CascodeRGC结构。3. 输出阻抗推导前的关键前提正式推导之前先明确小信号模型和工作条件。这一步很多人跳过了后面才会踩坑。3.1 小信号等效模型MOS 管在饱和区的小信号模型包括三个关键参数跨导 (g_m)栅源电压变化引起的漏极电流变化体跨导 (g_{mb})源体电压变化引起的漏极电流变化也叫衬底偏置效应输出电阻 (r_o)漏源电压变化引起的漏极电流变化来自沟道长度调制。它们的典型关系是[ r_o \frac{1}{\lambda I_D} \approx \frac{V_A}{I_D} ]其中 (V_A) 是厄利电压(V_A 1/\lambda)。沟道长度越长(\lambda) 越小(r_o) 越大。这就是为什么高输出阻抗电流源通常用长沟道器件。BJT 的小信号模型类似但通常不单独列 (g_{mb})而是用 (r_\pi) 和 (g_m)并考虑基极电流的影响。这一点在第五节会详细对比。3.2 体效应要不要考虑在 MOS Cascode 中顶部管 M2 的源极电压不是固定值而它的衬底通常接固定电位PMOS 接电源NMOS 接地所以 (V_{SB}) 在变化体效应不能忽略。如果忽略体效应推导出来的公式偏乐观。实际计算时应该把 (g_m) 替换为 (g_m g_{mb})。只有当 M2 的源极和衬底短接比如深 N 阱工艺中的 NMOS或者专门做源体短接的结构才能放心去掉 (g_{mb})。3.3 工作条件是推导成立的前提输出阻抗公式 (g_m r_o^2) 是在以下前提下得到的M1 和 M2 都工作在饱和区偏置电压在交流分析时视为交流地忽略高频寄生电容只做低频小信号分析。如果 M1 或 M2 进入线性区小信号模型中的 (r_o) 不再成立输出阻抗公式自然失效。很多人在仿真里发现输出阻抗上不去第一反应是怀疑模型参数其实先应该检查工作条件。4. 共源共栅MOS Cascode输出阻抗完整推导现在开始正式推导。以 NMOS Cascode 为例电路连接如下M1底部电流源管栅极接偏置 (V_{B1})源极接地漏极接节点 XM2顶部共栅管栅极接偏置 (V_{B2})源极接节点 X漏极接输出端 OUT输出端 OUT 加测试小信号电压 (v_x)流入输出端的电流记为 (i_x)。节点 X 的小信号电压记为 (v_s)。推导方法采用“测试电压法”在输出端加一个测试电压 (v_x)求出对应的输入电流 (i_x)则输出阻抗为[ r_{out} \frac{v_x}{i_x} ]4.1 节点 X 的电流方程先看 M1。M1 的栅极接固定偏置交流电位为 0源极接地所以[ i_{d1} \frac{v_s}{r_{o1}} ]也就是说从节点 X 向下流入 M1 的电流只由 M1 的沟道长度调制决定。因为 (V_{GS1}) 没有变化没有跨导项。再看 M2。M2 的漏极电流有三个贡献跨导项(v_{gs2} 0 - v_s -v_s)所以跨导电流为 (-g_{m2} v_s)体效应项(v_{bs2} 0 - v_s -v_s)所以体效应电流为 (-g_{mb2} v_s)沟道长度调制项漏源电压差为 (v_x - v_s)电流为 ((v_x - v_s)/r_{o2})。因此流入节点 X 的电流可以写成[ i_x \frac{v_x - v_s}{r_{o2}} - (g_{m2} g_{mb2}) v_s ]同时从节点 X 流入 M1 的电流必须等于 (i_x)[ i_x \frac{v_s}{r_{o1}} ]4.2 联立求解输出阻抗由第二个方程得到[ v_s i_x r_{o1} ]代入第一个方程[ i_x \frac{v_x - i_x r_{o1}}{r_{o2}} - (g_{m2} g_{mb2}) i_x r_{o1} ]整理[ i_x \frac{i_x r_{o1}}{r_{o2}} (g_{m2} g_{mb2}) i_x r_{o1} \frac{v_x}{r_{o2}} ]得到[ r_{out} \frac{v_x}{i_x} r_{o2} r_{o1} (g_{m2} g_{mb2}) r_{o1} r_{o2} ]这就是 MOS Cascode 电流源输出阻抗的完整表达式。在实际工艺中(g_m r_o) 通常在 20 到 100 之间所以括号里的第一项和第二项远小于第三项于是可以近似为[ r_{out} \approx (g_{m2} g_{mb2}) r_{o1} r_{o2} ]如果忽略体效应就是教材里最常见的[ r_{out} \approx g_{m2} r_{o1} r_{o2} ]这就是“输出阻抗提升到 (g_m r_o^2) 量级”这句话的来源。注意提升倍数是 M2 的 (g_m r_o)而底部管 M1 的 (g_m) 并不直接出现在主项里虽然 M1 的 (r_{o1}) 是基础。4.3 用 SymPy 验证推导手动推导容易在符号上出错可以用 SymPy 做一遍符号验证。这个脚本不仅适合本文的结构任何变体结构比如底部管源极串电阻、顶部管加源极负反馈都可以改参数验证。import sympy as sp # 定义符号 gm2, gmb2, ro1, ro2, vs, vx sp.symbols(gm2 gmb2 ro1 ro2 vs vx, positiveTrue) # 节点X电流方程 # 流入M1的电流 vs/ro1 # 等于从输出端流入的电流 (vx-vs)/ro2 - (gm2gmb2)*vs eq sp.Eq(vs / ro1, (vx - vs) / ro2 - (gm2 gmb2) * vs) # 解出 vs vs_sol sp.solve(eq, vs)[0] # i_x vs / ro1 ix vs_sol / ro1 # 输出阻抗 rout sp.simplify(vx / ix) print(rout)输出结果应为ro1 ro2 gm2*ro1*ro2 gmb2*ro1*ro2看到这个结果和手推一致就可以放心使用。4.4 推导给出了什么设计启示从这个表达式里可以读出几条工程结论输出阻抗与 (r_{o1})、(r_{o2}) 的乘积成正比所以增大管子沟道长度 L 是提高输出阻抗最直接的手段(g_{m2}) 出现在主项中所以 M2 的宽长比也不能太小体效应项 (g_{mb2}) 会额外贡献一部分输出阻抗但它不是设计目标只是附带结果如果 M2 的体端和源端短接输出阻抗会略降换来的好处是阈值电压更稳定、噪声更低。5. 共射共基BJT Cascode输出阻抗推导与差异标题写的是“共射共基”所以有必要把 BJT 版本也单独讲一下以及它和 MOS 版本的本质差异。5.1 BJT Cascode 的简化推导把 MOS 换成 BJTM1 变成共射极电流源管 Q1M2 变成共基极管 Q2。忽略基极电流的简化推导和 MOS 完全平行Q1 集电极节点 X 看进去的阻抗约为 (r_{o1})Q2 的发射极电流受基极-发射极电压控制跨导为 (g_{m2})Q2 的集电极-发射极电压变化引起的电流为 ((v_x - v_s)/r_{o2})。得到同样的形式[ r_{out} \approx r_{o1} r_{o2} g_{m2} r_{o1} r_{o2} \approx g_{m2} r_{o1} r_{o2} ]但是这个公式在 BJT 中比在 MOS 中更容易失真原因在下一节。5.2 基极电流带来的实际差异MOS 管的栅极在低频下不取电流所以 M2 的栅极接固定偏置不会对节点 X 造成额外负载。BJT 不一样Q2 的基极始终有基极电流而这个基极电流是从节点 X“借用”的。Q2 的基极偏置网络在小信号下存在一个等效电阻记为 (R_B)从基极节点看出去的等效电阻理想情况下偏置是交流地但实际总有有限阻抗。这个电阻折算到发射极要除以 ((1 \beta_2))[ r_{in, emitter} \approx \frac{r_{\pi2} R_B}{1 \beta_2} ]这个发射极输入电阻会和 (r_{o1}) 并联导致节点 X 的等效电阻从 (r_{o1}) 变为[ r_{X} r_{o1} \parallel \frac{r_{\pi2} R_B}{1 \beta_2} ]如果这个并联值远小于 (r_{o1})那么输出阻抗会受到严重限制。这就是为什么在实际 BJT 电流源中Q2 的基极偏置不能随便用一个高阻网络了事。必须保证[ \frac{r_{\pi2} R_B}{1 \beta_2} \gg r_{o1} ]否则输出阻抗远达不到 (g_m r_o^2) 的理论值。相比之下MOS 管栅极不取直流电流偏置网络对输出阻抗的直流影响可以忽略这是 MOS Cascode 在实际设计中更常用的原因之一。5.3 MOS 与 BJT Cascode 对比对比项MOS CascodeBJT Cascode输出阻抗表达式((g_m g_{mb}) r_{o1} r_{o2})(g_m r_{o1} r_{o2})栅/基极是否取电流栅极不取直流电流基极有直流电流偏置网络对输出阻抗影响很小可能显著摆幅限制(V_{OV}) 相关(V_{CEsat}) 相关温度敏感性阈值电压 (V_{TH}) 影响(V_{BE}) 影响更明显BJT 的优势是跨导大、(g_m r_o) 乘积通常较高MOS 的优势是偏置简单、输入阻抗高。实际项目里电流源和运放设计基本以 MOS 为主BJT 往往只出现在需要低噪声或特定带隙基准的场景。6. 工作条件推导什么时候输出阻抗才是 (g_m r_o^2)前面强调过输出阻抗公式成立的前提是 M1 和 M2 都工作在饱和区。这一节把工作条件的电压不等式推导清楚。这可能是整篇文章最容易被忽略但实际工程中最关键的部分。6.1 MOS Cascode 的饱和条件对 NMOS CascodeM1 饱和(V_{DS1} V_X \ge V_{OV1})M2 饱和(V_{DS2} V_{OUT} - V_X \ge V_{OV2})。其中[ V_{OV} V_{GS} - V_{TH} ]所以要保持高输出阻抗输出电压必须满足[ V_{OUT} \ge V_X V_{OV2} ]而 (V_X) 的最小值是 (V_{OV1})因此理论上最小输出电压为[ V_{OUT, min} V_{OV1} V_{OV2} ]这就是教科书里的结论Cascode 电流源至少消耗两个过驱动电压的余量。6.2 实际电路里的“隐藏电压损失”教科书的下限是 (V_{OV1} V_{OV2