☰
电流源进化:从单管到共源共栅低压电流镜的设计解析
2026/9/29 22:02:48 网站建设 项目流程

模拟电路设计里有一个很常见的现象:明明运放的主放大管选得没问题,拓扑也照着教科书搭了,可仿真出来的增益就是差一个数量级;或者电流镜的镜像电流在输出电压变化时“飘”得厉害,共模抑制比、电源抑制比统统不达标。排查到最后,问题通常不在主路径,而在那个被你当成“理想电流源”来用的偏置电路上。

这篇文章想聊的,就是电流源的进化路线:从最简单的单管电流源,到共源共栅(cascode)电流源,再到低压共源共栅电流镜。核心判断很直接:cascode 不是简单地“堆一只管子”,而是用一只管子换一个数量级的输出阻抗,再用一点电压余量换一整套更精细的偏置设计。把这条线看透,很多运放、比较器、带隙基准里的设计细节都能串起来。

文章会先讲清楚电流源为什么需要高输出阻抗,再说明单管电流源为什么不够用,接着拆解共源共栅为什么能提高输出阻抗、它付出了什么代价,然后介绍低压共源共栅电流镜如何解决电压裕度问题,最后给出仿真验证方法和工程建议。

1. 这篇文章真正要解决的问题

电流源在模拟集成电路里几乎无处不在:差分对的尾电流源、运放的有源负载、带隙基准里的 PTAT 电流、LDO 误差放大器的工作点偏置,背后都离不开电流源。只要电路里需要“给一个稳定的电流”,就会用到电流源或电流镜。

但真实 MOS 管做出来的电流源,和教科书里的理想电流源差距很大。理想电流源的特点是:无论负载电压怎么变,输出电流都恒定不变。实际电流源做不到这一点,差别大小就体现在一个关键指标上——输出阻抗。输出阻抗越高,电流随输出电压的变化越小,电流源就越“接近理想”。

这个指标会直接影响三类电路性能:

  • 电流镜的镜像精度。电流镜本质上是“复制”参考电流,如果输出阻抗不够,输出端的电压波动会让复制出来的电流偏离设计值。
  • 放大器的电压增益。有源负载的本质是用电流源的高阻抗替代电阻负载,负载阻抗越高,增益越大。
  • 共模抑制比和电源抑制比。差分对的尾电流源如果不够理想,共模电压变化会转化为差分输出误差,CMRR 就被限制住了。

很多初学者只把电流源当成一个“提供电流的模块”,忽略输出阻抗,结果主放大级明明设计得很认真,整体指标却始终上不去。这篇文章要解决的问题,就是帮助你建立一条从单管电流源到共源共栅电流镜的完整技术脉络,知道什么场景需要升级电路结构,升级后又会踩哪些坑。

2. 电流源的基础概念:理想与现实

先复习一个最基本的概念。理想电流源的伏安特性是一条水平线:无论端电压是多少,电流始终等于设定的 Iref。水平线意味着它的动态电阻无穷大,也就是输出阻抗无穷大。

实际 MOS 电流源做不到这一点。MOS 管工作在饱和区时,漏电流并不完全恒定,它会随漏源电压 Vds 的增大而略微增大。这个现象叫沟道长度调制效应,用参数 λ 描述。在小信号模型里,它的等效输出电阻为:

ro = 1 / (λ * ID)

这里的 ID 是静态工作点电流,λ 与工艺和沟道长度有关。举一个典型估算:如果 λ = 0.03 V⁻¹,ID = 50 µA,那么 ro ≈ 666 kΩ。这个阻抗对偏置电路来说不算太低,但如果你把它当成运放的有源负载,想让增益达到几千倍,它就不够看了。

把实际电流源和理想电流源放在一起对比,差异就非常清晰:

对比维度理想电流源实际 MOS 电流源
伏安特性完全水平随 Vds 有轻微上翘
输出阻抗无穷大有限,约等于 ro
电流精度不受负载影响随输出电压变化
电路实现不可直接实现一只或几只 MOS 管

这里要区分两个容易混淆的概念:电流源和电流镜。电流镜是一种用参考电流生成复制电流的电路,它的输出支路在某种意义上就是一个电流源。所以讨论“电流源的进化”,本质上也是在讨论电流镜输出阻抗的进化。

3. 简单电流源的局限:单管电流镜的真实表现

最简单的电流镜由两只 NMOS 管构成。输入支路的 M1 接成二极管形式,漏极和栅极短接,参考电流 Iref 从外部流入;输出支路的 M2 栅极与 M1 栅极相连,源极也接地。结构可以这样理解:

输入参考支路:VDD -> Iref -> D(M1, 二极管连接) -> S(M1) -> GND 输出支路: VDD -> 负载 -> D(M2) -> S(M2) -> GND 栅极连接: M1 栅极 = M1 漏极 = M2 栅极

如果忽略沟道长度调制,输出电流满足:

Iout = Iref * (W/L)2 / (W/L)1

这是一个非常简洁的比例关系,只取决于两管的宽长比。但在真实工艺里,M1 和 M2 的 Vds 通常不一样。M1 的 Vds 被二极管连接固定为 Vgs,而 M2 的 Vds 取决于输出端电压。由于沟道长度调制,实际输出电流会变成:

Iout = Iref * (W/L)2 / (W/L)1 * (1 + λ * Vds2) / (1 + λ * Vds1)

这意味着输出电压一变,电流就跟着变。从输出端看进去,这个电流镜的小信号输出阻抗就是 M2 的 ro:

Rout = ro2 = 1 / (λ * ID2)

它的问题就在这里。若用这个电流镜做运放的有源负载,负载阻抗只有 ro 量级,增益做不高;若做差分对尾电流源,共模电压变化会直接扰动尾电流,导致 CMRR 受限。

有人会说,那就把 L 加大,λ 就会变小,ro 自然变大。这对单管来说确实有效,但代价是管子面积大、速度变慢,而且提升有限。更根本的出路是改变电路结构,让输出阻抗从“单管的 ro”提升到“多个管子共同作用形成的等效阻抗”。这就是 cascode 的用武之地。

4. 共源共栅(Cascode)的核心思想

共源共栅,英文叫 Cascode,是控制极-阴极类真空管与栅极-屏极类真空管串接结构的历史音译。在 MOS 工艺里,它通常指一只共源管和一只共栅管垂直串接的组合。很多人第一次看到 cascode 电路,会觉得它只是“两只管子叠起来”,但它的设计哲学不是简单的串联,而是让上面的共栅管“保护”下面的共源管。

用一个小类比来帮助理解:假设你是一家公司的前台,负责处理日常事务。普通电流源相当于没有秘书,所有电话都直接打进来,任何人进来都能干扰你的工作节奏,于是你的状态很容易被外部电压波动带偏。cascode 相当于给你配了一位秘书,外面的事先由秘书挡一道,你感受到的外部扰动被大幅压制,你的工作状态就更稳定。在电路里,上面的管子就是这位“秘书”,它把输出电压的变化大部分承担下来,让下面管子的 Vds 几乎保持不变。

小信号分析更能说明问题。先看下面这只共源管 M1,它的漏极电压不是直接接外部输出,而是被上面的共栅管 M2“夹住”。当输出节点电压变化 ΔVout 时,由于 M2 的源极跟随作用,M1 的漏极电压只变化很小一点。于是 M1 产生的电流变化很小,整体表现为输出阻抗大幅提高。

如果忽略二阶效应,一个 NMOS cascode 对从漏端看进去的输出阻抗可以写成:

Rout = ro2 + (1 + gm2 * ro2) * ro1 ≈ gm2 * ro2 * ro1

这里的关键是:输出阻抗从单管的 ro 量级,提升到了 gmro 倍的 ro,也就是 gmro² 量级。如果一只管子的 gm*ro 大约是 50,那么两管级联后输出阻抗理论上可以提高约 50 倍。在典型工艺参数下,输出阻抗可以从几百 kΩ 提升到几十 MΩ。

但天下没有免费的午餐。cascode 结构要求两只管子都工作在饱和区。设 M1 需要的过驱动电压为 Vov1,M2 需要的过驱动电压为 Vov2,则输出端最低电压大约是:

Vout_min ≈ Vov1 + Vov2

也就是说,为了获得高输出阻抗,你至少要让输出电压留出两个过驱动电压的余量。在电源电压充足的时代,这个代价可以接受;但在低电压设计中,这个代价有时非常昂贵。这也是后面“低压共源共栅电流镜”要专门解决的问题。

5. 共源共栅电流镜:结构、原理与代价

前面说的共源共栅拓扑,放到电流镜里就是共源共栅电流镜。它把简单电流镜的输出管 M2 改成“下管 M2 + 上管 M4”的串接结构,同时把输入支路也升级为类似结构,让栅极偏置的生成保持一致。

一个典型的 NMOS cascode 电流镜结构如下:

输入参考支路:VDD -> Iref -> D(M3, 二极管连接) -> S(M3) -> D(M1, 二极管连接) -> S(M1) -> GND 输出支路: VDD -> 负载 -> D(M4) -> S(M4) -> D(M2) -> S(M2) -> GND 栅极连接: - M1 栅极 = M1 漏极 = M2 栅极 - M3 栅极 = M3 漏极 = M4 栅极

这种接法里,M1 和 M2 构成传统的电流镜,M3 和 M4 负责提供更高的输出阻抗。从输出端看进去,输出阻抗近似为:

Rout ≈ gm4 * ro4 * ro2

对比简单电流镜的 Rout ≈ ro2,这个提升是巨大的。以一个典型估算为例,如果单管 ro = 666 kΩ,gm = 141 µS,那么 cascode 后的输出阻抗可以超过 60 MΩ。用这样的电流源做有源负载,一级放大器的增益能做到 1000 倍以上。

不过,直接堆叠两个二极管连接管产生的偏置有一个隐患。设所有管子的阈值电压相同,记为 Vth,过驱动电压相同,记为 Vov。输入支路中间节点电压约为:

Vg4 = Vgs3 + Vgs1 = (Vth + Vov) + (Vth + Vov) = 2Vth + 2Vov

于是输出支路中间节点电压为:

Vx = Vg4 - Vgs4 = (2Vth + 2Vov) - (Vth + Vov) = Vth + Vov

这意味着下管 M2 的 Vds 被抬到了 Vth + Vov,而它只需要 Vov 就能饱和。这个被浪费的电压就是阈值电压 Vth。在 0.18 µm 工艺里,Vth 可能接近 0.5 V,而 Vov 只要 0.2 V 左右,相当于白白多花了一个阈值电压的电压余量。对 1.8 V 甚至 1.2 V 的低压系统来说,这种浪费非常不可接受。

因此,共源共栅电流镜的设计,并不只是把管子叠起来那么简单。真正需要解决的问题是:如何在不浪费阈值电压的前提下,保证上下两只管子都恰好处于饱和区边缘。

6. 低压共源共栅电流镜:电压预算不够时的解决方案

低压共源共栅电流镜,也叫宽摆幅 cascode 电流镜。它的目标很简单:在保持 cascode 高输出阻抗的前提下,把输出支路需要的最低电压从“Vth + 2Vov”压低到“2Vov”,省掉那个阈值电压的开销。

前面提到,问题出在偏置电压 Vg4 太高。如果能把 M4 的栅极偏置修成:

Vb = Vth + 2Vov

那么输出支路中间节点电压就变为:

Vx = Vb - Vgs4 = (Vth + 2Vov) - (Vth + Vov) = Vov

这样 M2 的 Vds 恰好等于 Vov,刚好饱和;M4 的漏极只需要再留一个 Vov 就能饱和。整个输出支路的最低电压就从 Vth + 2Vov 降到了 2Vov。由于 Vth 往往比 Vov 大不少,这个改进对低压设计意义重大。

关键难点在于如何产生 Vb = Vth + 2Vov 这个精确电压。一种常见的方法是用一个复制参考支路,让其中一个二极管连接管的 Vgs 与输出支路的上管匹配,再在它的源极串入一个工作在饱和区的管子,用电平移位的方式把偏置抬高到目标值。由于参考支路和主支路使用同样的工艺、同样的器件类型,偏置电压会跟随工艺和温度变化,保持“Vth + 2Vov”的跟踪关系。

偏置产生电路的一个示意思路如下:

参考产生支路: VDD -> Iref2 -> D(M5, 二极管连接) -> S(M5) -> D(M6, 二极管连接) -> S(M6) -> GND 取偏置:Vb 从 M6 的源极附近,或者用额外的电平移位管/电阻调整到目标值

这里要特别提醒:不要把产生 Vb 的参考支路和主电流镜共用一个电流源就直接完事。参考支路电流和主支路电流的比例、管子的宽长比选择、温度特性匹配,都会影响 Vb 的精度。如果 Vb 偏大,下管 Vds 被抬高,摆幅依旧浪费;如果 Vb 偏小,下管可能进入线性区,输出阻抗和镜像精度反而变差。

三种电流源结构的对比可以看得更清楚:

结构输出阻抗输出最小电压偏置复杂度
单管电流镜roVov低
基本 cascode 电流镜gm*ro² 量级Vth + 2Vov 或更高中
低压/宽摆幅 cascode 电流镜gm*ro² 量级2Vov高

从表格可以看出,低压版本并不是提高输出阻抗,而是修复基本 cascode 在电压预算上的浪费。如果你做的是 5V 或 3.3V 模拟系统,Vth + 2Vov 的代价也许还能接受;但如果做 1.8V 以下的低功耗设计,低压 cascode 就是更合理的选择。

7. 以电流源为负载的放大器增益:cascode 的价值体现

为什么工程师愿意花这么多精力设计一个高输出阻抗的电流源?因为它直接决定了放大器的电压增益。用一个具体场景来说明。

考虑一个共栅极放大器,输入信号加在 NMOS 的源极,输出从漏极取出,漏极负载是一个电流源。它的电压增益近似为:

Av ≈ gm * (RCS || ro_MN)

这里 RCS 是电流源负载的输出阻抗,ro_MN 是放大管自身的输出阻抗。如果电流源只是单管实现,RCS 和 ro_MN 差不多都是 ro 量级,两者并联后大致是 ro/2,增益也就被限制在 gm*ro/2 的数量级。

如果把电流源负载升级为 cascode 电流源,RCS 大幅提升,但要注意:当 RCS 远大于 ro_MN 时,并联结果仍然由 ro_MN 决定,增益不会继续线性增长。这说明了两个问题:

  • 电流源负载的阻抗必须和放大管输出阻抗同数量级甚至更高,cascode 的提升才真正有意义。
  • 如果放大管本身很弱,单纯提高负载阻抗,对增益的帮助有限。这也是为什么高性能运放里,往往放大管和电流源负载都采用 cascode 结构。

再看共源共栅放大器。输入管 M1 采用共源接法,上管 M2 作为共栅接法,外部负载如果是理想电流源,增益可以写成:

Av ≈ -gm1 * (gm2 * ro2 * ro1)

这就是 cascode 放大器的经典结论。它的跨导仍然由输入管 M1 决定,但输出阻抗被 M2 提高了约 gm2*ro2 倍,因此增益显著提升。这个场景里,电流源负载自身如果也换成 cascode,输出端就是“双高阻并联”,增益可以达到非常高的水平。

所以,共源共栅在电流源里的价值,最终会体现为放大器增益的提升。理解这条链路,对分析两级运放、折叠共源共栅运放、全差分放大器都很有帮助。

8. 一次完整的仿真验证思路

理论推导再多,也不如自己跑一次仿真。下面用一个最小示例来验证 cascode 电流镜的输出阻抗提升效果。这里不绑定特定工具,以通用 SPICE 语法编写网表,逻辑同样适用于 Cadence、HSPICE 或 ngspice。

* 基本 cascode 电流镜:M1/M2 为下管镜像,M3 作为二极管连接偏置,M4 使用理想偏置 VB VDD VDD 0 DC 1.8 IREF ID VDD DC 50u M3 ID ID VG 0 NMOS W=2u L=2u M1 VG VG 0 0 NMOS W=2u L=2u M4 VOUT VB VX 0 NMOS W=2u L=2u M2 VX VG 0 0 NMOS W=2u L=2u VB VB 0 DC 0.9 VOUT VOUT 0 DC 1.0 .op .model NMOS NMOS (VTO=0.5 KP=200u LAMBDA=0.03)

在开始分析之前,先确认几个设定:M3 和 M1 都接成二极管形式,M3 用来提供 M4 的偏置参考,M1 用来提供 M2 的镜像栅压;M4 的栅极接理想电压源 VB,用于演示“当偏置合适时”cascode 的性能。实际设计时,这个 VB 不能直接用理想源,而需要用参考支路生成。

你也可以用 Python 做一个简单的数量级估算,帮助自己判断仿真结果是否合理:

# 估算单管电流源与 cascode 电流源的输出阻抗 lam = 0.03 # 沟道长度调制系数,1/V ID = 50e-6 # 支路电流,A gm = 141e-6 # 估算跨导,A/V ro = 1 / (lam * ID) rout_simple = ro rout_cascode = gm * ro * ro print(f"单管电流源输出阻抗: {rout_simple / 1e6:.2f} MΩ") print(f"cascode 电流源输出阻抗: {rout_cascode / 1e6:.1f} MΩ")

运行后可以得到一个明显的数量级差距。如果你的仿真结果和数量级估算相差很多,优先检查两件事:第一,所有管子是否真的工作在饱和区;第二,偏置电压 VB 是否合适。只要有一个管子进入线性区,输出阻抗就会急剧下降。

对输出阻抗的准确测量,更推荐的方式是做 AC 小信号仿真:在输出节点加一个 1A 的交流电流源,看该节点的交流电压。交流电压的数值就等于节点阻抗。如果在某些输出电压范围里阻抗突然掉下来,那通常说明有管子离开了饱和区。

9. 常见问题与排查思路

问题现象可能原因排查方式解决方案
cascode 后输出阻抗没有明显提升某只管子进入线性区查看每只管子的 Vds 和 Vov重新调整偏置 VB 和输出直流点
镜像电流比例不对下管 Vds 不一致,沟道长度调制影响大查看 M1/M2 的工作点增大 L,使用 cascode 或低压 cascode
输出电压摆幅变小偏置电压 VB 设置偏高检查 Vx 节点电压使用低压/宽摆幅偏置电路
低压 cascode 偏置温度漂移严重偏置参考支路和主支路匹配不好做温度扫描仿真采用同类型管和相同电流密度设计
高阻节点引起稳定性问题输出阻抗过高,寄生电容形成非主极点查看环路增益和相位裕度在输出节点加补偿电容或调整 GBW
版图不匹配导致镜像误差阈值电压和电流密度失配做 Monte Carlo 仿真采用共质心版图和 dummy 管

最容易踩的坑是“以为叠了管子就万事大吉”。cascode 的效果依赖偏置、尺寸、工作点三个条件同时满足。有一次我帮人排查一个放大器增益偏低的问题,查了很久发现是 cascode 管栅极偏置由电阻分压产生,电阻受温度影响漂移,导致某一角落上管进入线性区,输出阻抗掉了一个数量级。这种问题在仿真里做工艺角扫描和温度扫描时很容易暴露出来。

10. 最佳实践与工程建议

在实际项目中,选择哪种电流源结构,不能只看“输出阻抗越高越好”,还要看电压预算、功耗、面积和设计复杂度。

如果系统电源电压充足,例如 3.3V 或 5V,基本 cascode 电流镜的电压浪费可以接受,偏置电路简单,是很好的选择。但如果电源电压在 1.8V 以下,建议直接上低压/宽摆幅 cascode 电流镜,否则主放大级的摆幅会被压缩得非常厉害。

偏置设计是这一整套方案的核心。一个实用的设计流程是:

  1. 先确定支路电流,根据功耗预算定下每个分支的电流。
  2. 再确定过驱动电压 Vov。Vov 太小,gm 变小、匹配变差;Vov 太大,电压余量不够。一般取 0.15V 到 0.3V 之间比较常见。
  3. 根据 ID 和 Vov 计算宽长比,然后进一步综合匹配需求选择 L。
  4. 检查每只管子的 Vds,确保所有管子在工艺角和温度范围内都处于饱和区。
  5. 做 AC 仿真测量输出阻抗,确认数量级符合预期。

有一个经常被忽略的细节:电流镜的匹配不仅取决于结构,还取决于版图。即使电路设计完全正确,版图上如果不做共质心匹配、不添加 dummy 管,阈值电压失配和梯度效应会直接破坏电流比例。这个误差无法靠 cascode 结构本身消除。

在工艺角仿真时,不要只盯着 DC 工作点。重点看一下不同 corner 下的输出阻抗曲线,以及偏置电压是否跟随 Vth 和 Vov 变化。如果偏置采用自偏置/参考支路方式,要确认它在 fast 和 slow 角落下都能维持应有的摆幅。

11. 总结与后续学习方向

梳理一下整条技术脉络:单管电流源的输出阻抗只有 ro,受沟道长度调制影响明显;cascode 结构通过“共源管 + 共栅管”的串接,把输出阻抗提升到 gm*ro² 量级,代价是输出电压余量增加;低压/宽摆幅 cascode 电流镜进一步优化偏置,把不必要的阈值电压损耗省掉

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询