news 2026/10/4 4:43:06

自偏置电流镜设计:从原理到版图匹配的完整实战指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
自偏置电流镜设计:从原理到版图匹配的完整实战指南

去年评审一个学生团队的流片项目,看到他们给数据转换器做的电流源阵列,偏置电压还是从主基准那边一路长线拉到各个模块,中间又串了两级buffer。我当时就建议他们换个思路:这个位置其实用自偏置电流镜就够了,既能把偏置网络省掉一大半,对电源波动的抑制反而更好。今天就把这个结构的一个完整设计过程整理出来,从电流镜工作原理讲到参数计算、仿真验证,再到layout版图电流镜匹配的实操细节。

这篇博文以0.18µm CMOS工艺、1.8V电源为例,目标是实现一个20µA的自偏置电流镜,并复制出多个偏置支路。内容不挑工具,Cadence Virtuoso、Hspice或者国产EDA都可以照着跑一遍。适合正在做模拟IC课设和项目的学生、刚入行做模拟版图的工程师,以及所有被“电流镜竟然还要启动电路”这个问题卡过的朋友。

1. 电流镜工作原理:从一个电压复制出多个电流的底层逻辑

1.1 基本电流镜是怎么把电流复制出去的

电流镜的核心思想特别直白:一个MOS管的栅源电压决定它的漏电流,那如果让另一个MOS管跟它共享同一个栅源电压,理论上它的漏电流也应该一样。最简单的电流镜就两个NMOS,M1接成二极管形式,漏极和栅极短接,输入电流注入进去;M2的栅极跟M1栅极并在一起,源极都接地,M2的漏极就是输出端。

因为两个管子栅源电压完全一样,如果它们的宽长比一样,在理想情况下输出电流就等于输入电流。想要放大或者缩小倍数也很方便,直接把宽长比按比例做就行:

Iout / Iin = (W/L)_2 / (W/L)_1

这句话翻译成人话就是:电流镜本质上是一个“电压-电流转换器”,它把输入电流转成一个栅极电压,再用这个电压去驱动输出管,生成一个成比例的电流。

不过上面这个公式能成立,有一个前提,就是两个管子的漏源电压必须相等。现实里这个条件经常不满足,比如输出端接的负载把漏极电压顶得很高,M2的漏源电压跟M1有明显差距,沟道长度调制效应就开始捣乱。考虑沟长调制之后,镜像公式要加上修正项:

Iout / Iin = ((W/L)_2 / (W/L)_1) × (1 + λ·VDS2) / (1 + λ·VDS1)

λ就是沟长调制系数,在0.18µm工艺里大约在0.02~0.05之间。别小看这个修正项,如果两个管子漏源电压差了0.2V,复制误差轻轻松松超过1%。对于普通偏置电路1%也许能忍,但在高位数转换器里,这个误差会直接变成性能瓶颈。

1.2 传统电流镜的三大痛点

第一个痛点就是上面说的VDS不匹配。解决思路也成熟,用共源共栅结构把输出阻抗顶上去,代价是输出电压摆幅变小,本来VDD就低,叠两层管子之后留给负载的摆幅更紧张。

第二个痛点是偏置电压从哪来。工程里最常见的是用一个带隙基准产生一个主偏置电流,然后通过一长串电流镜逐级复制到各个模块。偏置链路一旦拉长,中间任何一级失配都会被放大,而且每级都要加滤波电容,芯片面积蹭蹭往上涨。

第三个痛点是电源抑制能力。普通电流镜直接挂在电源和地之间,电源电压一抖,VDS跟着抖,输出电流自然不稳。对于模拟模块来说,电源上的噪声和纹波最终会通过偏置电流串到信号通路里,非常头疼。

所以“自偏置”这个词在工程里才这么有价值。它要解决的核心问题就是:尽量少依赖外部基准和外部偏置网络,让电路自己把自己的工作点稳住。

1.3 自偏置的两种常见形态

自偏置电流镜在文献和工程里通常指两种结构。

第一种是自偏置共源共栅电流镜,它解决的是“共源共栅管需要额外偏置电压”的问题。传统做法要单独生成一个偏置电压给共源共栅管,自偏置结构则通过电阻或者二极管连接管,从主电流支路内部“自举”出一个合适的偏置电压,让共源共栅管始终工作在饱和区边缘,又不额外增加偏置网络。

第二种就是β-multiplier结构,也叫Beta倍乘电流源。它不依赖外部参考电流源,纯粹靠自身环路建立电流,然后通过电流镜复制出去。这种才是真正意义上“自给自足”的电流镜。

这次设计实例我选择β-multiplier作为主线,因为它在工程里最常被称为“自偏置电流镜”,而且它同时包含上PMOS电流镜和下NMOS电流镜两组匹配管,版图上能聊的东西也多,非常适合拆开讲透。

2. 自偏置电流镜怎么设计:核心拓扑与参数计算实例

2.1 β-multiplier电流镜的电路结构与建立过程

β-multiplier的工作方式用一个环路就能说清楚。

下半部分有两个NMOS,N1接成二极管形式,宽长比记作(W/L);N2的宽长比是它的K倍,也就是K(W/L),而且N2的源极串了一个电阻R到地。上半部分是两个PMOS,P1和P2构成一个1:1电流镜,把两支路的电流强制拉成相等。

假设输入支路电流和输出支路电流都为I。因为N1宽长比小,它的过驱动电压VOV1就大;N2宽长比大,它的过驱动电压VOV2就小。两个管子栅极接在一起,源极电位却不一样,N2源极比地高了I·R,所以自然有:

VGS1 = VGS2 + I·R

把过驱动电压展开,I·R刚好等于两个过驱动电压的差。利用平方律模型一推,可以得到一个非常重要的表达式:

I = 2 / (μnCox·(W/L)_1·R²) × (1 - 1/√K)²

这个公式每个参数都很关键。μnCox是工艺常数,K是N2与N1的宽长比倍数,R是源极电阻,(W/L)_1是N1管宽长比。一旦工艺和这几个几何参数定住,电流I就定住了,跟VDD没有直接关系,这正是“自偏置”的底气来源。

电路建立过程可以这么理解:假设某瞬间P1支路电流比P2支路稍微大一点,N1的栅极电压会被拉得更高,这个电压同时通过N2管和R产生电流,负反馈会把这个偏差收回来。环路反复调节,最后稳定在公式对应的电流点上。

2.2 20µA设计指标下的参数计算实例

现在开始算真实参数。设定工艺是0.18µm CMOS,VDD=1.8V,设计目标I=20µA。工艺参数按典型值取,μnCox大约180µA/V²,NMOS阈值电压VTH大约0.5V。

第一步,选K值。K太小意味着N1和N2的面积差异不明显,电阻上的压差小,对失配更敏感;K太大又会浪费面积,而且VGS差也不会显著增大。工程上K=4是一个常用折中值。

第二步,确定N1的宽长比。我希望N1的过驱动电压不要太低,否则容易进亚阈值区;又不要太高,否则VDD降下来时管子容易脱离饱和。选(W/L)_1=8,具体尺寸为4µm/0.5µm。0.5µm的沟道长度比工艺最小长度大不少,主要是为了匹配和抑制沟长调制。

把K=4、μnCox=180µA/V²、(W/L)_1=8、I=20µA代进公式:

20e-6 = 2 / (180e-6 × 8 × R²) × (1 - 1/√4)²

计算过程约掉单位后,1-1/√4=0.5,平方为0.25,分子2×0.25=0.5,分母180e-6×8=1.44e-3,于是:

20e-6 = 0.5 / (1.44e-3 × R²)

R² = 0.5 / (1.44e-3 × 20e-6) ≈ 1.736e7

R ≈ 4167Ω

实际设计取R=4.2kΩ,用多晶硅电阻实现。顺便算一下几个关键工作点电压:

VOV1 = √(2I / (μnCox·(W/L)_1)) = √(40e-6 / (180e-6×8)) ≈ 0.167V

VOV2 = VOV1 / √K = 0.083V

VGS1 = VTH + VOV1 = 0.667V

VGS2 = VTH + VOV2 = 0.583V

I·R = 20µA × 4.2kΩ = 0.084V

完美对上“VGS1 = VGS2 + I·R”的自洽条件。这说明设计的尺寸和电阻值在实际工作点上是成立的。

上半部分PMOS电流镜的尺寸,我选P1和P2都是W/L=10µm/1µm。沟道长度取1µm而不是0.5µm,是为了增大PMOS的输出电阻,减小两支路VDS差异带来的复制误差。PMOS的VTHP约-0.5V,取过驱动0.15V,则VSG约0.65V,P管栅极电压约1.15V,还有足够裕量让N管工作在饱和区。

至此,核心设计参数可以整理成一张表:

器件尺寸作用
N14µm/0.5µm,W/L=8二极管连接,决定VGS1
N232µm/0.5µm,W/L=32宽长比为N1的4倍,源极串R
R4.2kΩ多晶电阻把N1/N2过驱动电压差转成电流
P1/P210µm/1µm上电流镜,强制两支路电流相等
输出管与P2同尺寸或倍数复制参考电流给后续模块

2.3 启动电路:为什么没有它电路会卡在零工作点

β-multiplier有一个绕不开的坑:它存在两个稳定工作点,一个是目标电流点,另一个是零电流点。

零电流点怎么来的?如果所有管子都处于截止状态,栅极电压为0,没有电流流过R,整个环路没有任何趋势改变这个状态。所有管子截止本身就是一个自洽解,电路会安心地躺在那里“装死”。

所以启动电路的意义就是打破这个零电流简并点,给环路一个初始扰动,让电流建立起来,建立完以后再功成身退,不影响正常工作。

实用做法是在N1的栅极VG处接一个小启动通路。初上电时VG=0,启动电路给VG注入电流,把N1栅极电压拉高,N1开始导通,P1支路有电流,P2镜像电流又反过来给N2栅极供电,环路从零态被“踢”出来。等电流稳定后,启动通路的压差变小,自身关断或者只剩极小的漏电流。

我在这个设计里用的启动方式是:一个长沟道PMOS串一个大电阻,从VDD接到VG。上电瞬间PMOS导通给VG充电,电路起振后PMOS栅源压差缩小接近阈值,支路电流压到1µA以下,对主环路的20µA影响可忽略。

注意:启动电路是这类自偏置结构能否正常工作的关键,仿真时必须把电源上电过程做成实际斜坡而非瞬跳,否则可能误以为电路能正常启动。

3. 仿真验证与结果解读:用数据说话

3.1 电源电压扫描:自偏置到底压不压得住电源波动

用Cadence ADE L做DC扫描,把VDD从1.6V扫到2.0V,观察参考电流Iout的变化。典型结果大概是这样的:VDD在1.62V到1.98V之间变化时,Iout大约从19.2µA变到20.5µA,折算下来约±3%。

这个结果比普通电流镜好很多,原因是电流公式里没有VDD项,一阶上不受电源影响。残余的漂移主要来自PMOS上电流镜的沟道长度调制效应:P1和P2的VDS并不完全相等,VDD变高时这个差距会被放大。

如果设计要求VDD变化时电流偏差控制在±1%以内,有两个方向可以改进。第一个方向是把P1/P2的L加长,比如从1µm加到2µm,输出电阻变大,沟长调制影响变小。第二个方向是把上电流镜也升级成共源共栅结构,代价是输出电压摆幅变小。普通偏置用加大L就够,高精度场景才需要上cascode。

3.2 输出电阻与复制精度:Monte Carlo失配仿真

电流镜最终要给人用,复制精度非常重要。对当前普通PMOS电流镜结构,输出电阻约等于PMOS管的ro,就是1/(λp·I)。0.18µm工艺下PMOS的λ大约0.02/V,20µA时ro大约2.5MΩ。如果给运放当尾电流源,这个数值够用;如果给高分辨率DAC的电流源阵列用,还是得做cascode,把输出阻抗顶到几十MΩ甚至上百MΩ。

复制精度方面,跑一次200点的Monte Carlo失配仿真。典型结果里,Iout均值为19.8µA,标准差约为0.6µA,折合相对标准差约3%,峰峰范围大概在±6%。看到这个数字不要慌,这个结构本身已经比基本电流镜好不少,因为N2做成4个unit并联之后,等效面积更大,阈值失配被平均掉了一部分。

用Pelgrom定律可以提前估算失配量级:σ(ΔVTH) = Avt / √(WL)。0.18µm工艺的Avt大约10mV·µm,N1单位管面积4µm×0.5µm=2µm²,两个单位管之间阈值失配σ约7mV。这个量级的失配映射到电流上,正好和Monte Carlo结果对上。

3.3 环路稳定性检查:别忘了STB分析

β-multiplier是一个负反馈环路,但它也有正反馈路径。整体性能取决于负反馈比正反馈强多少,所以环路稳定性必须验证。很多第一次做这个电路的人只跑DC扫描,发现电流正常就万事大吉,结果瞬态仿真时电流来回振荡,就是因为没看环路裕度。

用STB分析,在环路任意一点插入iprobe,跑AC仿真,看环路增益的幅频和相频曲线。典型结果不补偿时相位裕度可能只有50°出头,加一个1pF补偿电容挂到VG节点上,把主极点往低频推,相位裕度能提到70°左右。

补偿电容不是越大越好,太大启动时间变长,上电瞬间可能出现很长一段亚稳态,应用电路里还要权衡。我的原则是:相位裕度做到60°以上,启动时间控制在10µs以内,这两个指标同时满足就行。

3.4 温度特性:多晶硅电阻的双刃剑

温度扫描是模拟电路绕不开的一关。对β-multiplier来说,电流I和μn以及R²成反比。NMOS的迁移率μn随温度升高而下降,大约按T的-1.5次方变化;多晶硅电阻的电阻温度系数根据掺杂类型不同,可能是正也可能是负,绝对值通常在几百到一千ppm/℃。

如果电阻TCR为正,温度升高时μn下降同时R还变大,电流下降会非常明显。比如从常温到125℃,μn可能掉了40%,R又涨了10%,电流差不多跌掉一半。这个特性决定了β-multiplier只适合做中等精度偏置,不适合当精密电流基准。

如果应用场景要求低温漂,就得用正负温度系数的电阻做组合,或者直接用带隙基准电流源给这个电流镜供参考电流。很多时候我们其实不需要把β-multiplier当成基准用,它更合适的定位是“把已有参考电流干净地复制成多路”,自偏置解决的是对偏置电压链路的依赖。

4. Layout版图电流镜匹配实战:从失配模型到共质心布局

4.1 失配模型:为什么unit cell越小越容易翻车

版图阶段对电流镜的影响,很多时候比电路原理图设计还大。两个完全一样设计的管子在硅片上不可能做到完全一致,失配来源包括阈值电压波动、氧化层厚度波动、边缘刻蚀差异、阱浓度梯度、机械应力梯度等等。

工程上计算失配最常用的就是Pelgrom模型:

σ²(ΔVTH) = Avt² / (WL)

σ²(Δβ/β) = Aβ² / (WL)

Avt和Aβ是工艺提供的失配系数,WL是管子面积。公式说得很清楚:管子面积越大,失配标准差越小。所以做匹配管子的第一原则就是面积要够,第二原则是所有匹配管用完全相同的unit cell拼出来,而不是直接画一个大的。

回到这个设计,N2是N1的4倍宽长比。最错误的画法就是N1画一个4µm宽管子,N2画一个32µm宽管子,两个管子隔着十万八千里。正确的画法是定义N2=4个4µm/0.5µm的unit并联,这样N2的每个unit跟N1完全同尺寸、同方向、同环境,失配才能被平均掉。

4.2 共质心与dummy管的摆法

版图上电流镜匹配的经典句式就八个字:同尺寸、共质心、加dummy、加保护环。

以N1和N2为例,N1是1个unit,N2是4个unit。可以把5个unit摆成一排,N1放在中间,4个N2 unit两两对称分布两侧,这样N1正好在所有unit的质心位置。如果面积允许,还可以把N1也拆成4个unit并排,跟N2的4个unit交叉排列,构成一维共质心结构。更讲究的做法是二维共质心,上下左右四个方向都对称,对工艺梯度免疫能力最强。

dummy管的作用很多人会忽略。版图刻蚀的时候,图形边缘的有源区刻蚀速率和中间不一样,边缘管子跟中间管子的实际尺寸会有细微差别。解决办法是在匹配阵列两侧各放一个不参与工作的dummy管,保证每一个有效unit两侧都有同样的“环境”。dummy管要跟有效unit保持同尺寸、同间距,栅极要么接地要么接电源,绝对不能悬空。

保护环的作用是隔离衬底噪声和闩锁风险。NMOS阵列外围要打p型保护环并接GND,PMOS阵列外围用n阱保护环接VDD。如果版图里同时有PMOS和NMOS,中间还要加足够宽的隔离间距。

4.3 电阻、金属走线与寄生控制

这个设计里R是决定电流绝对值的关键,它的匹配质量直接影响最终电流精度。多晶硅电阻要画在同一块区域,远离功率管和开关管,避免热梯度影响。电阻条的方向要一致,两侧加dummy电阻条。不要为了省面积把电阻折成蛇形太多,拐角处电流密度不均匀,匹配会变差。

还有一个经常踩的坑是N2源极的串联寄生电阻。从N2源极到R,再到GND这条路径上,任何金属走线电阻都会叠加进R里,直接改变电流。比如计划4.2kΩ,结果版图走线多了50Ω,虽然只占1.2%,但电流会偏百分之几。

所以N2源端到R之间的金属要用高层金属并联走线,尽量加宽,把走线电阻压到毫欧级别。R的两个端口最好做开尔文连接,就是感测线和电流流过的线分开,避免接触孔电阻的压降被算进基准电阻里。这个技巧在做高精度基准电流源时非常实用。

4.4 提取后仿真:版图质量照妖镜

版图画完必须做寄生提取和后仿真,这一步能照出所有走线寄生的问题。用Calibre PEX提取带寄生参数的网表,再跑一遍相同仿真,重点还是看Iout的值和稳定性。

我这次设计的典型后仿结果是:Iout从原理图的20.0µA掉到大约19.4µA,差了3%。主要原因就是N2源极到R之间的金属走线虽然已经尽量加宽,但还有大概十几毫欧级别的寄生,叠加进电阻R的压降变化里。这个偏差对偏置电路完全可接受,但如果做的是精密输出电流,就必须把这个寄生估算进前仿阶段。

版图阶段还要顺手检查电源线和地线的电流密度。20µA电流看着小,但如果有多个复制支路挂在一起,汇总起来就是几百微安,电源线太细会产生明显的IR drop,反过来影响PMOS电流镜两支路的VDS,恶化复制精度。

5. 常见问题与排查技巧实录:流片回来不工作的解决顺序

5.1 电流上不去:多半是启动问题

症状是电源上电后整个电路电流几乎为零,或者只有微安级别。仿真里把电源从0V斜坡上升到1.8V,如果输出还是0,十有八九是启动电路失效。

排查顺序:先看启动通路在零态是否真的能推VG一把。再检查启动管稳定后是否漏电太大,把电路工作点拉偏。最后确认没有把所有管子尺寸配错,比如N2的K倍数和R的实际阻值偏差过大,导致目标工作点的环路增益不足,启动电路拉了也白拉。

在芯片上遇到启动失败比仿真更隐蔽,因为芯片上所有电压都在同时爬升,启动电路可能被其他模块的状态干扰。我的习惯是在启动通路里加一个弱弱的“kick”电阻,宁可让稳定状态下它漏几百纳安,也要保证零态一定能被踢醒。

5.2 电流在抖:环路稳定性不足

症状是电流不是稳定直流,而是在某个值附近周期性摆动,或者噪声明显偏大。这种情况先做STB仿真,看相位裕度,如果小于45°,就对症处理。

提高相位裕度最直接的办法是在VG节点加补偿电容。加上电容之后瞬态启动时间会变长,需要确认没有应用场景在开机后立刻就要稳定偏置。另一个办法是降低环路增益,比如减小P1/P2的跨导或者调整K值,但增益降太多会影响电流源精度,需要折中。

5.3 复制不准:版图和VDS不匹配

症状是同一个参考电流复制出来的各路电流偏差超过设计预期,而且这种偏差在版图后仿才出现。先看原理图层面的VDS是否匹配,再查版图。

版图上的问题无非几类:匹配管没有做共质心、dummy缺失、保护环没打、N2的4个unit排列不对称、源极金属走线寄生不一致。这些问题的共通特征是“看起来都连上了,实际工作点都不一样”。

5.4 快查表与我的排查顺序

现象可能原因快速验证方法整改方向
电流为零启动电路失效、简并点仿真查看VG波形是否被拉起加强启动通路
电流周期振荡环路相位裕度不足STB分析看裕度加补偿电容
电流偏大/偏小R偏差、寄生叠加检查电阻工艺角和走线寄生调整R或加trim
电源变化影响大PMOS镜像VDS失配VDD扫描看曲线斜率加长PMOS L或上cascode
温度变化过大电阻TCR、迁移率漂移温度扫描看漂移幅度换电阻类型或用bandgap
复制电流不一致版图匹配不良输出端各支路单独仿真共质心重画

最后再分享一个我个人的排查习惯:拿到任何带偏置的电路,第一件事不是改W/L,而是先问一句“启动电路能不能在功耗允许范围内把简并点拉出来”。这句话帮我少走了很多弯路。自偏置电流镜看着简单,但把环路、启动、版图三件事都理顺,才算是真正把这个电路搞懂了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/4 4:41:16

K210+STM32+SD卡实现人脸识别门禁系统开发实战

K210开发板学习笔记写到第三篇,前两篇分别折腾了环境搭建和摄像头基础采集,这次直接上了一个相对完整的组合方案:STM32做逻辑主控,K210负责图像采集和人脸检测识别,SD卡用来存注册人脸照片和比对数据,三者通…

作者头像 李华
网站建设 2026/10/4 4:39:43

YOLO实时物体抓取检测ROS包实战:从环境搭建到TensorRT加速

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/4 4:37:54

MOS器件物理:模拟CMOS设计的地基与核心要点

MOS器件物理是模拟CMOS设计的“地基”。很多人刚开始学模拟IC时,总喜欢跳过器件物理直接上手画电路、调仿真,结果后面遇到偏置点不对、增益上不去、噪声超标的问题,翻回来查根因,发现全卡在对器件行为理解不透上。这一章如果吃透了…

作者头像 李华
网站建设 2026/10/4 4:33:30

VC++迷宫游戏:随机地图生成算法与Win32/GDI实战

简介:一份基于VC与MFC的迷宫小游戏完整工程,面向初学C或正在准备课程设计的开发者,解决如何随机生成迷宫地图、并通过键盘方向键控制红色方块从起点走到出口的问题。压缩包仅14KB,共11个文件,包含5个头文件、1个cpp主程…

作者头像 李华
网站建设 2026/10/4 4:30:44

嵌入式数据存储方案:PIC32+MR25H40CDF驱动与掉电保护实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/4 4:29:17

Android 13 FirstStageMain:可信启动执行体深度解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华