电流镜这个电路,只要学过模拟集成电路,就不可能绕开。它做的事听起来很简单:把一个参考支路的电流复制到另一个支路去。但你一旦真的上手设计,就会发现“复制”这两个字背后全是细节——复制得不准、随输出电压漂移、随温度漂移、版图稍微画歪一点误差就失控。这篇文章把电流镜从原理到仿真再到版图实践完整拆一遍,重点放在复制精度、输出阻抗、最小输出电压这几个核心指标上,最后给一套可执行的 SPICE 验证流程和排查清单。
全文不涉及任何需要特定版本软件才能看懂的内容,只讲电路本身。适合三类人:刚接触模拟 IC 设计的在校学生、需要在放大器或基准源里搭偏置电路的工程师,以及准备面试但想把电流镜讲透彻的硬件开发者。
1. 电流镜核心能力速览
| 项目 | 说明 |
|---|---|
| 电路类型 | 模拟 IC 基本单元,本质是电流源/电流拷贝器 |
| 核心用途 | 复制参考电流、提供偏置电流、作为有源负载、参与电流比较 |
| 基本结构 | 两颗同类型 MOS 管,源极相连,栅极相连 |
| 可复制比例 | 通过 W/L 比例或 BJT 发射极面积比例设定 |
| 关键性能指标 | 镜像误差、输出阻抗、最小输出电压、温度稳定性 |
| 常用变体 | Basic 电流镜、Cascode 电流镜、Wilson 电流镜、Widlar 电流镜 |
| 验证手段 | DC 扫描、负载扫描、蒙特卡洛仿真、工艺角仿真 |
| 版图关键点 | 单位晶体管、指状化、共质心、虚拟器件 |
| 适用场景 | 运算放大器、带隙基准、ADC/DAC、电荷泵、LDO、锁相环 |
| 硬件要求 | 任意支持 SPICE 仿真的工具均可,CPU 即可完成教学验证 |
这张表里最值得记住的是最后两行:电流镜本身不挑设备,不需要 GPU、不需要特殊板卡,一个仿真器加一个 CMOS 工艺模型就能把全部行为看清楚。这一点对初学者尤其友好,建议直接在实验室的环境里先把 Basic 电流镜跑通,再往复杂结构走。
2. 电流镜在模拟电路设计中的定位
为什么放大器的差分对需要尾电流源?为什么基准源内部必须有稳定的偏置?为什么 ADC 的电流舵 DAC 需要精确的比例电流?答案里大概率都站着电流镜。
模拟电路设计的基本矛盾是:电压容易受工艺波动影响,但电流一旦被一个已知的参考源固定住,后续所有分支只要“复制”这份电流,就能获得一致的工作点。电流镜就是承担这个复制工作的电路。它把一个高精度参考电流,比如通过带隙基准或外部电阻产生的电流,复制到多个负载支路上,使各支路的工作状态不随电源电压和温度剧烈变化。
理解电流镜可以从三个维度切入:
- 复制功能:给定参考电流,输出支路产生相同或成比例的电流。
- 输出特性:输出电流对输出节点电压的敏感程度,由输出阻抗决定。
- 最小工作条件:保持输出管处于饱和区需要的最低输出电压。
一个优秀的电流镜不是“电路能工作”就行,而是要在目标电压范围内保持输出电流基本恒定,在目标温度范围内误差可控,在工艺波动下失配可接受。后面所有变体结构,本质上都是为了改善这三个维度中的某一个。
3. 基本 MOS 电流镜的工作原理
3.1 电路结构
最常见的 NMOS 电流镜只需要两颗管子。
M1: 二极管连接形式,栅漏短接 参考支路:VDD -> Iref -> M1 -> VSS M2: 输出管 输出支路:VDD -> Rload -> M2 -> VSS 栅极与 M1 栅极直接相连M1 的栅漏短接,使它工作在三极管和饱和区交界处的特殊状态。只要外部电流源不断向该支路注入电流,M1 就会自动调整 VGS,让漏极电流等于参考电流。因为 M2 与 M1 的栅极电压完全相同,所以两者在相同过驱动电压下导通,输出电流就和参考电流形成固定比例关系。
3.2 电流复制公式
忽略沟道长度调制效应时,饱和区漏极电流为:
I_D = (1/2) × μn × Cox × (W/L) × (VGS - VTH)^2
对于 M1 和 M2,VGS 相同,VTH 相同,因此:
I_OUT = I_REF × (W2/L2) / (W1/L1)
如果两颗管子尺寸完全一致,那么输出电流就等于参考电流,实现 1:1 复制。如果需要 1:2 或 1:4 的放大复制,通常做法不是把单颗管的 W 拉大,而是用“单位管并联”。比如 1:2 就是把两个和 M1 完全相同的单位管并联作为 M2,这样版图匹配性更好,复制精度也更高。
3.3 输出特性与最小输出电压
基本电流镜最容易被忽视的问题在输出端。M2 必须处于饱和区,输出电流才近似恒定。饱和条件为:
VDS2 ≥ VGS - VTH = VOV
也就是说,输出节点的最低电压应不低于过驱动电压。如果负载上有大压降,或者输出节点电压被拉到接近 VSS,M2 会进入线性区,输出电流急剧下降,复制关系瞬间失效。这一点在做电流镜的 DC 扫描时体现得最明显:I_OUT随V_OUT的变化曲线分为三段,线性区、饱和区和击穿区。
其中饱和区的平坦程度取决于沟道长度调制效应。更小的 L 会导致输出阻抗更低,曲线倾斜更明显。实际设计时,不应该为了省面积一味缩短输出管沟道长度。
4. 经典电流镜变体:Cascode、Wilson 与 Widlar
4.1 Cascode 电流镜
基本电流镜在短沟道工艺下,沟道长度调制效应会让输出电流随输出电压明显变化。解决思路之一就是增加输出阻抗,常见做法是共源共栅结构。
Cascode 电流镜在 M1、M2 之上再叠加 M3、M4。以 NMOS 为例:
- 参考支路:Iref -> M3 -> M1 -> VSS
- 输出支路:Vout -> M4 -> M2 -> VSS
- M1 是二极管连接的参考管,M2 是镜像管
- M3、M4 的栅极接到同一个偏置电压
M4 的存在使输出节点的电压变化被 M4 自身承担,M2 的 VDS 变化幅度大大减小,输出阻抗从大约r_o提升到约g_m × r_o × r_o量级。付出代价是输出电压摆幅变小,至少需要2 × VOV的裕量才能保证所有管子饱和。
Cascode 电流镜适合需要高精度偏置、输出电压不要求太低的应用场景。常见于运算放大器第二级的有源负载、高精度 DAC 的电流源阵列。
4.2 Wilson 电流镜
Wilson 电流镜用负反馈替代笨重的共源共栅堆叠。结构是:
- M1 二极管连接,M2 是镜像管
- M3 放置在参考支路,其栅极与输出节点相连
- 输出支路本身又反馈到参考支路
当输出电流因沟道长度调制而增大时,反馈作用会调整 M3 的漏极电压,从而修正 M1、M2 的栅源电压,把输出电流拉回稳定值。Wilson 电流镜的输出阻抗低于 Cascode,但所需电压裕量也小于 Cascode,且对参考电流的“偷取”更少。它常用于偏置精度要求中等、电压裕量有限的场合。
4.3 Widlar 电流镜
Widlar 电流镜的典型特征是输出支路多了一个发射极/源极退化电阻:
参考支路:Iref -> M1 二极管连接 -> VSS 输出支路:VDD -> R_load -> M2 -> R_source -> VSSR_source 上的压降减小了 M2 的有效栅源电压,因此输出电流可以远小于参考电流。这个结构非常适合产生微安级小电流,但不需要把电阻做大到难以集成的程度。Widlar 电流镜在早期双极性工艺中特别流行,在现在的 CMOS 设计中仍然用于低功耗偏置。
从工程角度看,不必把每种变体都背下来,关键是明白“输出阻抗不够就加 Cascade/反馈,输出电流太小就用消除退化电阻”这条设计逻辑。
5. 用 SPICE 验证电流镜复制能力
5.1 测试环境
电流镜验证用任何 SPICE 类仿真器都可以完成。这里给出一份可参考的 HSPICE 网表模板,工艺库需按实际环境替换。建议使用 0.18μm 或 0.13μm 标准 CMOS 模型,电源电压设为 1.8V。
5.2 基本电流镜 DC 扫描网表
以下网表搭建了一个基本 NMOS 电流镜,并对输出节点电压做 DC 扫描,观察输出电流随输出电压的变化:
* Basic NMOS Current Mirror DC Sweep .option post=2 M1 n1 n1 vss vss NCH W=2u L=0.18u M2 n2 n1 vss vss NCH W=2u L=0.18u Iref vdd n1 DC 50u Vdd vdd 0 1.8 Vd n2 0 0 .dc Vd 0 1.8 0.01 .probe dc i(vd) v(n1) .end说明:
M1为二极管连接参考管,M2为输出管Iref提供 50μA 参考电流Vd从 0 扫描到 1.8V,步长 0.01V- 重点观察波形
i(vd):在低电压段,电流几乎为 0;超过 M2 饱和电压后,电流接近 50μA,并随着 Vd 升高出现轻微上翘
如果i(vd)在饱和区出现明显斜率,说明输出阻抗不足。可以把沟道长度调大,比如把两管的 L 都改成 1u,再跑一次,对比曲线倾斜程度。
5.3 观察复制误差
判断复制是否正确的标准非常简单:在 Vd 处于饱和区中间值时,读取i(vd)与Iref的偏差。偏差来源主要有:
- 沟道长度调制效应:M2 的 VDS 不等于 M1 的 VDS,导致两个漏电流不相等。
- 阈值电压失配:制造工艺中 VTH 存在随机波动。
- 版图寄生电阻不对称:源极或漏极金属走线电阻不同。
- 温度梯度:芯片上温度不均匀会导致载流子迁移率不一致。
仿真阶段能直接量化前两项。准备一套小实验:将 L 分别设为 0.18u、0.5u、1u,对比输出电流斜率;再将输出管并联单位管数量从 1 改成 4,观察版图意义上的“复制比例”是否线性。这个过程很快,却能把电流镜的误差机制理解得很透。
5.4 Cascode 电流镜验证网表
* NMOS Cascode Current Mirror DC Sweep .option post=2 M1 n1 n1 vss vss NCH W=2u L=0.18u M2 n2 n1 vss vss NCH W=2u L=0.18u M3 n1 n2 n1 vss NCH W=2u L=0.18u M4 n3 n2 n2 vss NCH W=2u L=0.18u Iref vdd n1 DC 50u Vdd vdd 0 1.8 Vd n3 0 0 Vbias n2 0 1.2 .dc Vd 0 1.8 0.01 .probe dc i(vd) .end这里把 M2 的栅极电压由 Vbias 提供,M3、M4 作为共源共栅管堆叠在下方,输出阻抗明显提高。扫描 Vd 后可以看到,饱和区中i(vd)曲线非常平坦。代价是最小输出电压抬高了约一个过驱动电压。实际使用时,需要权衡复制精度和电压裕量。
6. 电流镜的“批量任务”能力:单参考多输出设计
模拟电路里经常出现“一个参考电流,同时给几十个支路供电流”的需求,这可以看作电流镜的批量复制能力。一个输入参考电流不只能复制成一路,而是可以复制成多路任意比例电流。
典型结构是在一颗单位参考管旁边并联多组输出管:
M_ref : W/L M_out1: 1 x W/L -> Iout1 = Iref M_out2: 2 x W/L -> Iout2 = 2 × Iref M_out3: 0.5 x W/L -> Iout3 = 0.5 × Iref设计要点有四个:
- 所有管子共用同一组栅压,版图上尽量保持相同的电势分布。
- 大比例输出管用单位管并联实现,避免开一整条超宽沟道。
- 输出管之间保持对称布局,匹配性优先。
- 各输出支路的负载电压范围要分别检查,不能让某一支路的输出管进入线性区。
如果多个输出支路需要不同的电压摆幅,可以分组使用不同的共源共栅偏置,但会增加版图面积和电流消耗。批量复制带来的优势是偏置点天然一致,后续不用逐个调;风险是参考电流一旦波动,所有支路一起波动。
7. 性能观察:精度、余量与工艺漂移
电流镜设计最需要盯的四项性能指标:
| 指标 | 含义 | 受什么影响 | 怎么改善 |
|---|---|---|---|
| 复制误差 | 输出电流与参考电流的偏差 | 沟道长度调制、VTH 失配、寄生电阻 | 增大 L、Cascode、改善版图匹配 |
| 输出阻抗 | Iout 随 Vout 的变化程度 | 沟道长度、共源共栅结构 | 增大 L、采用共源共栅 |
| 最小输出电压 | 输出管饱和所需电压 | 过驱动电压 | 减小 VOV 或采用低压结构 |
| 温度系数 | 电流随温度变化的程度 | 迁移率、VTH、外部电阻 | 合理选择温度补偿方式 |
仿真时可以分三组测试:
- Vout 扫描:观察输出电流平坦度,判断输出阻抗。
- 温度扫描:从 -40℃ 到 125℃ 扫描,观察输出电流变化量。
- 工艺角仿真:跑 TT、SS、FF 三个角,观察复制比例是否仍在设计容差内。
更进一步的蒙特卡洛仿真需要工艺库支持,可以反映随机失配的影响。如果蒙特卡洛结果显示复制误差分布中心偏移,大概率是系统失配;如果分布很宽,则要考虑管面积是否偏小、VOV 是否偏低。
有经验的工程师还会做一个简单检查:把参考电流的绝对值改大或改小 20%,看复制比例是否能保持。这能暴露电流镜工作在弱反型还是强反型区,两种区域下的失配行为差别很大。弱反型区电流小、功耗低,但对 VTH 失配极其敏感;强反型区电流大、匹配性更好,但需要更高的电压裕量。
8. 常见问题与排查方法
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| 输出电流明显小于参考电流 | M2 进入线性区,VDS 不足 | 扫描 Vout 观察拐点电压 | 降低负载压降或减小 VOV |
| 饱和区输出电流斜率大 | 沟道长度调制效应明显 | 对比不同 L 的仿真曲线 | 增大 L 或改成 Cascode |
| 复制比例不准确 | 版图两侧存在不对称 | 检查源漏寄生电阻、走线 | 对称走线、单位管并联 |
| 小电流下误差大 | VTH 失配占主导 | 蒙特卡洛仿真 | 增大管面积、提高 VOV |
| 大电流下误差大 | β 失配或接触孔电阻 | 检查版图接触孔数量 | 多打过孔、增大接触面积 |
| 输出支路电压裕量不足 | Cascode 管压降过大 | 检查各节点 DC 工作点 | 换 Wilson 或减小 VOV |
| 温度变化后电流漂移 | 迁移率和 VTH 温漂 | 温度扫描 | 增加温度补偿或外部电阻 |
| SPICE 仿真不收敛 | 电路缺少直流路径 | 检查节点连接 | 加初始条件或并联大电阻 |
| 版图匹配性差 | 热梯度或应力梯度 | 跑蒙特卡洛 + 版图审查 | 共质心布局、虚拟器件 |
排查时最忌讳直接改结构。先做 DC 工作点检查,确认每颗管子都在正确区域,再逐步做扫描定位问题。电流镜的问题一般都能在“工作点错误、输出阻抗不足、失配过大、裕量不够”这四类里找到归属。
9. 最佳实践与设计建议
从实际项目经验整理几条电流镜设计建议:
先定过驱动电压,再定 W/L。常见做法是让 VOV 落在 0.15V 到 0.25V 之间。VOV 太小,VTH 失配影响大;VOV 太大,最小输出电压变大。选定 VOV 后,用电流公式反推 W/L。
不要迷信最小 L。短沟道器件的沟道长度调制效应非常明显,复制精度很难保证。高精度电流镜建议 L 不小于工艺最小值的 3 到 5 倍,或者直接用共源共栅结构补偿。
用单位管并联做比例复制。需要 1:4 就放 4 个单位管,需要 1:6 就放 6 个。单位管的 W/L 保持一致,版图匹配性会好很多。
输出电压裕量要提前算。如果是 Cascode 结构,最低输出电压至少是两个 VOV 之和。接到负载前,先检查负载上的压降,否则输出管会在线性区工作,复制关系彻底失效。
把参考电流源做好,比调电流镜更有效。电流镜只能保证比例关系,绝对值由参考电流决定。参考电流不稳定,后面所有复制电流都不可能稳定。
版图上做共质心和虚拟器件。多输出电流镜在版图排列时,让输出管围绕参考管形成对称结构,并在边缘加虚拟器件,可以有效减少蚀刻偏差和应力梯度带来的失配。
接口集成时要考虑输出负载。如果电流镜的输出接的是后级 MOS 栅极,几乎没有电流负载,问题不大;如果输出接到电阻或开关,就要重新评估最小输出电压和输出阻抗。
10. 总结与下一步
电流镜的价值不在于结构复杂,而在于把“复制”从概念变成可量化的电路行为。掌控了复制精度、输出阻抗和最小输出电压这三个变量,基本就算掌控了电流镜。
读完这篇文章后,建议按这个顺序做一轮实操:先跑 Basic 电流镜的 DC 扫描,确认沟道长度调制效应带来的曲线斜率;再改成 Cascode 结构对比输出阻抗变化;最后做一次温度扫描和工艺角仿真,把误差来源写清楚。跑完这三个实验,电流镜的“复制艺术”基本就掌握了。
下一步可以继续研究带隙基准与电流镜的组合、电流舵 DAC 中的电流比例阵列,以及如何在低电压工艺中用翻转电压跟随器设计低压电流镜。
建议先把这份 SPICE 网表保存下来,在本地仿真环境里跑通一遍,再逐步调整参数。熟悉的电路越简单,越能看清问题的本质。