做模拟电路这些年,有一个体会特别深:很多人学MOS管,开关电路、驱动电路、电平转换这些都能弄明白,一到偏置电路就卡住了。倒不是公式多难,而是偏置电路里最重要的那个结构——电流镜,很多人是从“背电路”开始的,背了几种接法,画得出原理图,但一问“为什么这么接”“宽长比怎么定”“版图怎么摆”就懵了。
这篇内容我结合自己实际做过的小项目,以及吴金老师课程里反复强调的“从物理本质理解器件”的思路,把电流镜从原理到版图匹配完整拆一遍。适合三类人看:一是刚接触模拟IC设计的在校学生,二是从数字IC转模拟的工程师,三是做分立器件电路想补基础的朋友。看完你至少能自己设计一个简单的MOS管偏置网络,知道每个管子在电路里到底在干什么。
1. 电流镜为什么是偏置电路的基石
1.1 偏置电路到底在解决什么问题
先想一个最基本的场景:一个共源放大器,输入信号要放大,MOS管必须先工作在饱和区。饱和区意味着栅源电压要超过阈值电压,漏源电压也要留出足够余度。但这个“工作点”不是芯片上电自己就有的,你得主动给它创造条件——给它一个合适的栅压,或者给它一个合适的电流。这就是偏置电路的任务。
问题是,这个条件不能随便给。温度变了、电源电压变了、工艺角变了,管子的阈值电压会漂,迁移率会漂,工作点也会跟着漂。如果偏置电路对温度敏感,放大器增益就可能从40dB掉到30dB,输出共模电平也会偏。所以偏置电路的核心指标不是“能不能工作”,而是“能不能在各种条件下稳定工作”。
电流镜之所以是偏置网络的基石,就是因为它能把“电流”这个物理量精确复制和缩放。你只需要一个高精度的参考电流,电流镜就能把它复制到电路的其他任何地方,让每一级放大电路都有自己独立的、可设计的偏置电流。
1.2 电阻偏置的局限在哪里
有人会问,为什么不用电阻分压直接给MOS管栅极电压?简单直接,元件还少。这就要说到MOS管本身的工艺特性了。
MOS管在饱和区的电流公式,最简形式是:
ID = (1/2) * μn * Cox * (W/L) * (VGS - VTH)^2
注意这一项:(VGS - VTH)^2。VTH在不同工艺角下可能变化±50mV甚至更多,温度变化也会让它漂移。假如你设定VGS是1V,VTH在某个温度下从0.5V漂到0.55V,过驱动电压就从0.5V变成0.45V,平方之后电流直接掉了19%。这还只是VTH的影响,μn随温度的变化又会往反方向拉一把。算到最后你会发现,电阻分压偏置的电流在温度范围内能变化40%以上,这对很多精密模拟电路来说是不可接受的。
电流镜的思路完全不同:它不依赖某个绝对电压,而是复制电流。只要两个匹配的MOS管放在同一颗芯片上、离得够近,它们的工艺参数就高度一致,温度也基本一致,那么同样的栅源电压就能产生同样的电流。这种“共模抵消”的思想,是所有模拟电路设计的根基。
1.3 电流镜的本质:把电流当“印刷品”复制
用一个生活化的类比:电流镜就像一台复印机。你给它一张原稿(参考电流),它能印出一堆副本(镜像电流)。原稿是黑白的,副本也是黑白的;原稿字大,副本字也大;你想放大或缩小,调一下缩放比例(宽长比)就行。唯一的前提是——原稿必须放在玻璃板上,位置和压力要一致,否则复印件就糊了。
对应到电路里,“原稿放在玻璃板上”就是那两个MOS管的工艺参数必须匹配,“缩放比例”就是W/L的比值,“位置和压力一致”就是版图上要做好匹配设计。
这里还要特别强调一个初学者最容易犯的认知错误:电流镜复制的不是电压,是电流。虽然两个管子的VGS是相等的,但设计目标是让它们的漏电流成比例。为什么一定要用电流作为传递信号?因为电流是“全局量”,不会因为连线不同而改变,而电压是“局域量”,会受到金属线压降、衬底噪声、地弹等因素影响。在纳米级工艺里,一根长金属线上的压降可能就是几十毫伏,对电压域信号来说已经不小了,但对电流域信号来说,只要不改变拓扑,电流仍然是那个电流。
2. 从零推导MOS管电流镜
2.1 饱和区是前提,其他免谈
电流镜能正常工作,前提是两个管子都饱和。怎么判断饱和?对增强型NMOS,有两个条件必须同时满足:
VGS > VTH,且 VDS ≥ VGS - VTH
第一个条件保证管子“导通”,第二个条件保证沟道没有被夹断过度。注意,这里说的是“≥”而不是“>”,因为在临界饱和点,管子已经能复制电流了,只是输出阻抗会比较低。
实际工程里我会留至少50mV到100mV的余量,也就是让VDS比过驱动电压高一些。为什么?因为VDS太靠近临界点,沟道长度调制效应会很剧烈,电流镜的复制精度会明显下降。你画版图配了半天,结果工作点压得太死,镜像比例还是偏,这种坑我踩过。
2.2 基本电流镜推导:两管一连接
最基本的NMOS电流镜只需要两个管子:左管M1接成二极管形式(栅极和漏极短接),右管M2的栅极和M1的栅极连在一起,两个管子的源极都接地。
M1的栅漏短接,保证它一定工作在饱和区(因为VDS = VGS > VGS - VTH)。流过M1的电流IREF从外部注入,这个电流在M1上产生一个VGS。因为M1和M2的栅极连着,M2的VGS就等于M1的VGS。如果两个管子的参数完全一致,那么:
ID2 = (1/2) * μn * Cox * (W2/L2) * (VGS - VTH)^2 ID1 = (1/2) * μn * Cox * (W1/L1) * (VGS - VTH)^2
两个式子一比,得到:
ID2 / IREF = (W2/L2) / (W1/L1)
也就是说,镜像电流和参考电流的比例完全由两管的宽长比决定。这就是电流镜最核心的公式。实际项目里,我会把M1做成“单位管”,比如W/L = 2μm/1μm,然后用M2 = N个同样的单位管并联,这样比例就是1:N。
2.3 比例电流镜怎么设计宽长比
假设我现在需要给一个差分放大器提供10μA的尾电流,而手上有一个精确的5μA参考电流源,那就需要做一个1:2的电流镜。
我先把单位管定下来,比如W/L = 5μm/2μm,这个尺寸在0.18μm工艺下工作电流大约2.5μA,那么:
- M1(参考管):用2个单位管并联,得到5μA
- M2(镜像管):用4个单位管并联,得到10μA
注意,这时候不能用L = 4μm的单管去替代4个单位管的并联。为什么?因为版图上单位管的匹配性最好,而且并联管子的总周长效应(栅极边缘的漏电流、边缘氧化层厚度差异)可以互相抵消,单个大管子则没有这个优势。
2.4 沟道长度调制效应:电流镜精度的“头号杀手”
前面推导用到的饱和区电流公式忽略了一项重要的二阶效应:沟道长度调制。实际晶体管的电流公式应该写成:
ID = (1/2) * μn * Cox * (W/L) * (VGS - VTH)^2 * (1 + λ * VDS)
这里的λ是沟道长度调制系数,VDS越大,电流越大。对电流镜来说,M1的VDS被钳在VGS附近(因为栅漏短接),但M2的VDS取决于它所接的那个电路的输出共模点。如果输出共模点在2V,而参考管的VDS只有0.5V,那M2的电流就会比理论值偏大,比例就乱了。
怎么减小这个误差?最直接的办法是用长沟道器件:L取大一些,λ就会变小。经验上,L从最小工艺尺寸往上提3到5倍,λ能改善一个数量级。这就是为什么电流镜里的管子通常都不是最小栅长,哪怕是为了速度,也要在电流精度和速度之间取一个平衡点。我自己的设计习惯是:在电流镜里用至少两倍最小栅长的L,除非面积实在紧。
3. 偏置电路的整体设计流程
3.1 先定指标,再定结构
很多人画电路是从结构开始的——先画个差分对,再画个电流镜,最后发现工作点不对,来回折腾。我建议反过来,先想清楚三个问题:
第一,系统需要哪几个偏置电流?比如主放大级需要2mA,输入级需要100μA,基准模块需要10μA。每个电流的精度要求是多少?如果是运放的尾电流,10%的误差通常可以接受;但如果是ADC里的电流舵DAC,误差要求可能到0.1%级别。
第二,电源电压是多少,留多少余度?低压差场景(比如电源1.2V)和常规场景(比如3.3V)对电流镜结构的选择影响很大。电源低于1V时,普通cascode电流镜就可能因为余度不足而失效,得换用低压cascode结构。
第三,温度和工艺角范围是什么?工业级-40℃到125℃是最常见的要求,这范围内的电流飘移要心里有数。
这些指标定了,再去选结构、算尺寸,效率高得多。
3.2 参考电流源怎么产生:自偏置结构
电流镜需要“原稿”——精确的参考电流IREF。这个IREF怎么来?最简单的是片外电阻加电源电压,IREF = (VDD - VGS) / REXT,但这个方法受电源波动影响。好一点的做法是带隙基准输出一个稳定的电压,再用一个片内电阻转成电流,但带隙基准本身也是一个不小的模块。
还有一个常用的思路:自偏置电流源。它利用一个NMOS和PMOS构成的环路来“自己决定”电流,输出电流主要由一个片内电阻决定。它的启动问题比较棘手,可能陷入零电流的锁定状态,所以必须加启动电路。启动电路的基本思想是:上电瞬间,如果环路没有电流,就强制向某个节点注入电流,让环路进入正常状态;一旦正常工作,启动电路自动断开。
我见过不少新手设计的自偏置源,仿真时一切正常,上电后输出电流为零。原因就是启动电路没加,或者加了但没能可靠脱离。启动电路自己也有电流消耗,设计时要确保“正常状态”下启动电路的漏电不会严重影响主环路。
3.3 电流镜网络的分支布局:一棵树的故事
实际芯片里,很少只有一个电流镜,而是一棵树:一条根电流(参考电流),分成多个分支,每个分支通过不同比例的PMOS或NMOS电流镜来获得不同大小的电流。设计这棵树的时候,我会特别注意两个问题。
一是分支之间的耦合。如果你用一个PMOS电流镜的栅节点去同时给多个支路提供栅压,那么任何一个支路的电压波动都可能通过栅极的寄生电容串扰到其他支路。高速开关电路切换时,这个串扰可能让模拟偏置电压瞬间抖动。解决办法是给每个关键支路的栅节点加去耦电容,或者在布局上让敏感支路的镜像管靠近参考管。
二是镜像管的沟道长度选择。数字电路的开关管用最小L没关系,但偏置电路里的管子,我会尽量统一用同一个L。这样好处是:版图上匹配更容易设计,工艺角变化时各支路比例也更稳定,而且跨支路的λ失配能更好控制。
3.4 典型应用:差分放大器里的电流镜
用一个实际例子说明:我要设计一个单级差分放大器,尾电流100μA,有源负载用PMOS电流镜。电路结构是:底部NMOS尾电流管提供100μA,两个输入的NMOS管分别流过相同的电流,顶部的PMOS电流镜把两个支路的电流拉平。
设计步骤是这样的: 第一,确定尾电流管尺寸。假设过驱动电压定为200mV,电流100μA,那么(W/L) = 2ID / (μnCoxVov^2) ≈ 2100μA / (200μA/V^2 * 0.04V^2) ≈ 25。为工艺角留余量,我会取W/L = 30。 第二,输入NMOS管。每个管子电流50μA,过驱动电压250mV,取W/L ≈ 16。 第三,PMOS有源负载。和输入管电流相同50μA,PMOS的μp大约是μn的三分之一,所以同样过驱动电压下需要三倍宽度,W/L ≈ 48。
看到没有?整个设计链条都是围绕电流镜的比例来展开的。每一个管子的尺寸都不是随便定的,而是从电流指标倒推出来的。这就是偏置电路设计的核心工作。
4. cascode电流镜与版图匹配:从电路到layout
4.1 为什么需要cascode电流镜:输出阻抗是灵魂
前面说沟道长度调制效应会让镜像比例不准。cascode电流镜就是为了解决这个问题而生的。它通过加一个共栅管来“锁住”镜像管的漏极电压,让VDS的变化对电流的影响大幅减弱。直观理解:共栅管把镜像管和输出节点隔开了,输出节点电压波动主要落在共栅管上,镜像管的VDS就稳定了。
cascode结构有两种常见形式:标准cascode和低压cascode(也有叫高摆幅cascode的)。
- 标准cascode:两管都用VGS偏置,不需要额外偏置电路,但需要的电压余度大,常规电源下不够用。
- 低压cascode:给共栅管单独做一个偏置电压(VBN或VBP),让输出摆幅最大化,特别适合低压应用。
低压cascode的偏置怎么产生?最经典的方法是加一个“偏置复制cascode”支路,我用一句话描述:用一个同样的cascode管复制一条参考电流,然后把这个cascode管的栅压直接送给实际使用的那路cascode。这样就保证了共栅管的栅压恰好等于它正常工作所需的电压,不多也不少。
4.2 高摆幅cascode偏置设计详解
更细一点,高摆幅cascode电流镜的输出电压最小是多少?答案:两个过驱动电压的和,即Vov1 + Vov2。相比标准cascode(需要VTH + 2Vov)低了一个阈值电压,这在一堆低电压应用里非常关键。
我设计过一个1.8V供电的电流镜,输出要接一个开关电容负载,输出共模点只有1V。如果用标准cascode,NMOS电流镜至少要1V左右才能撑住,驱动电容负载很勉强;换成高摆幅cascode,输出只需要0.6V,就有400mV的摆幅裕量,开关电容充放电才够快。
实现细节上,高摆幅cascode的共栅管栅压通常由“复制的二极管理管”提供。具体做法:取一个NMOS管M_C,把它的栅极和漏极短接,流过同样的电流,那么它的VGS就是偏置电压。用这个电压去偏置实际电路里的共栅管,就能保证实际共栅管的过驱动电压和M_C基本一致。关键在于:偏置复制管的电流必须和实际支路电流匹配,否则偏置点就会偏掉。所以设计时,复制支路的电流源也要用同一个参考电流源来产生。
4.3 layout版图匹配实操:共质心、虚拟管、dummy
电流镜原理图再漂亮,版图画不好也是白搭。版图匹配的核心思路是让两个需要匹配的管子所处环境尽可能一致,包括温度、应力、氧化层厚度、光刻散射等。
最重要的匹配技巧有两个: 一是共质心布局。把需要匹配的管子拆成多个单位单元,按对称的方式排列,使得它们的几何中心重合。常见的排列方式是AABB交叉组合,或者四方交叉。共质心的好处是,工艺中的线性梯度(比如掺杂浓度沿晶圆方向渐变)在两个管子上被平均掉,匹配精度大幅提升。
二是加dummy管。在阵列的两端和四周放一些不参与工作的虚拟管,它们的作用是让真实管子的边缘环境一致。因为光刻和刻蚀过程中,边缘区域和中间区域的图形尺寸会有偏差,dummy管能吸收这种偏差。dummy管必须正确连接:一般栅极接地(对NMOS)或接电源(对PMOS),源漏短接,确保它不会有电流流过。
还有一个容易被忽略的点:金属连线的走线方向。电流镜管子的源极和漏极金属连线,不应横跨另一个要匹配的管子,因为金属层应力会影响晶体管的迁移率。实在要跨,也要保证两个匹配管承受的应力一致。
4.4 匹配性退化因素:STI应力和梯度效应
版图匹配不是玄学,它的问题都是物理问题。浅槽隔离(STI)会在器件边缘产生应力,这种应力会改变硅的能带结构,进而影响迁移率和阈值电压。如果两个匹配管的STI环境不一致(比如一个紧挨着隔离区,另一个离得远),实测电流比例就会偏。
我的习惯是:所有需要匹配的管子,周围留出相同宽度的“保护区”,里面只放dummy,不放其他信号线。这个保护区宽度一般取3到5个dummy的间距,大概几微米。别舍不得这点面积,电路指标能不能达标,常常就差这么一点“保护”。
温度梯度也是隐藏的杀手。功耗大的管子(比如输出级)散发的热量会沿衬底传导,如果电流镜刚好在这个热源旁边,两个管子的温度就不一致。温度差5℃,对匹配精度的影响可能就是0.5%到1%,而这在精密电路里已经算很大的误差了。解决办法是:把热源尽可能远离敏感电流镜,或者让电流镜绕着热源对称分布,让温度抬升尽量均匀地作用在两个管子上。
5. 常见问题与排查技巧实录
5.1 电流镜不工作,先查这五个地方
电流镜不工作,最常见的原因就五个,按出现频率排序:
第一,管子掉出了饱和区。很多人先用“电阻分压给栅压”的方式去试一个电流镜,结果输出管VDS不够大,管子进入线性区,电流自然上不去。记住:必须给输出管留足VDS余度。 第二,参考电流方向反了。PMOS电流镜和NMOS电流镜的参考电流方向不同,把参考电流从漏极抽走而不是注入,电路根本起不来。 第三,管子阈值电压异常。栅压设得太低,连VTH都没到,器件是关断的。 第四,自偏置电流源没启动,上电后锁定在零电流状态。 第五,版图连线错误。这个压根不是设计问题,但我在测试时见过太多次,两个管子的栅极看着连上了,实际底层金属被切断了。
排查时,用示波器或仿真器先看作为二极管连法的那个管子的栅极电压,它是整个偏置网络的“温度计”。如果这个电压稳稳的、没有振荡,说明参考支路建立了;如果电压在跳,说明环路在振荡,得查相位裕度。
5.2 镜像比例不准,审查五个维度
如果电路能工作,但镜像电流和理论值差得远,审视这五个维度: 一是宽长比算错了没?查一下有效宽度,有没有因为版图画法导致有效沟道宽度和设计值不一致。 二是沟道长度调制。如果输出管和参考管的VDS差很多,电流差就会大。 三是温度差异。两个管子有没有被热源不对称加热? 四是失配问题。版图上匹配做没做?单位管是不是够大?(小尺寸管子的失配更大,这是工艺决定的。) 五是外围漏电。有没有ESD保护结构、寄生二极管或其他支路在偷偷抽电流?
我一般建议先在仿真层面上做一个简单的蒙特卡洛跑一遍,看看失配预算是否够用。如果跑出来3σ误差5%,而系统指标要求2%,那单纯改版图匹配已经不够了,得在拓扑上想办法(比如增大过驱动电压或增大面积)。
5.3 温度、电源变化时的漂移怎么控制
一个设计良好的电流镜,温度变化时电流应该怎么变?这要分清两种情况:如果参考电流本身是稳定的(比如带隙基准提供),那么镜像电流会随着迁移率下降而减小,因为同样VGS下,温度高了μ变小,电流就小。如果参考电流是通过电阻生成的(比如VREF/R),那么电阻的温度系数也会混进来。
控制漂移的常用技巧是让“参考电流产生回路”和“镜像电流消耗回路”使用相同类型的电阻,让温度系数相互抵消;或者在电流镜上做“零温漂”设计,利用正温度系数器件和负温度系数的迁移率补偿。这些方法都需要对具体的工艺库参数有把握,不能照搬别人的方案。
电源变化的影响主要靠“电源抑制比”来衡量。普通电流镜的参考电流如果直接取自电源电压,电源抖一下,电流也会抖。做成自偏置结构,或者用cascode把电源波动隔离掉,PSRR能提升不少。
5.4 吴金课程补充:物理直觉比公式更重要
最后回应一下标题里提到的吴金老师课程。吴老师反复强调的一句话给我印象很深:设计模拟电路,要先看懂器件,再谈电路。具体到电流镜,什么叫看懂器件?
比如你知道MOS管有源区长度随漏源电压变化而变化,这就是沟道长度调制。你看到这个效应,不是去死记λ公式,而是能想起来:“哦,那我把L做长一点,这个效应不就弱了?”再比如你知道阈值电压在短沟道器件里会随L的减小而降低(即DIBL效应),你就会明白为什么电流镜不能全用最小栅长。
这种物理直觉的培养,最好的方式是拿一两个典型结构,在Spectre里做跑偏扫描。我会故意把输出管的VDS调到临界点附近,看电流扣了多少;再把它调到三倍余度,看电流又恢复到多少。跑两次,你就对“cascode为什么能稳定电流”有了实在的体感,而不是只停留在公式层。
偏置电路设计是个“慢功夫”,但它撑起了整个模拟Chip的天花板。电流镜作为最基础的偏置结构,值得花一个完整的下午,从公式、到仿真、到版图,完整地走通一遍。走过一遍之后,你再看运放、比较器、LDO内部的偏置网络,都会觉得通透很多。