ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Wilson电流镜:用负反馈提升输出阻抗的经典模拟IC设计

Wilson电流镜:用负反馈提升输出阻抗的经典模拟IC设计 做模拟IC设计的人迟早都会撞上“输出阻抗不够”这堵墙。你辛辛苦苦搭了一个简单电流镜仿真一跑Vout从0.5V扫到1.2VIout跟着变了百分之十几一看就是沟道长度调制在捣乱。这时候大家都在找方案一种思路是用共源共栅结构去挡电压代价是占电压余度另一种思路就是今天要聊的Wilson Current Mirror——用一个负反馈环路去“自我矫正”输出电流从根上把输出电阻抬上去而不是靠硬堆管子数量去硬抗。这个1967年就提出来的经典电路放在今天的CMOS工艺里依然是教科书级的设计范例尤其适合对电流匹配精度有要求、但电压余度又吃紧的偏置电路场景。这篇文章我从原理开始讲把Wilson电流镜为什么输出阻抗高、为什么比Cascode更省电压、MOS版本那个“坑”出名的体效应问题还有流片之前仿真和版图设计的注意点全部过一遍。有电路基础、想搞懂“反馈如何改善电流镜”的人适合看刚入门模拟IC的学生也能当一份带计算过程的复习材料。后面出现的所有计算和仿真建议我都按0.18μm标准逻辑工艺的参数来举例方便你直接套。1. 项目概述Wilson电流镜到底是什么1.1 一句话说清它的核心价值Wilson Current Mirror本质上是一种“带负反馈的电流镜”。它把简单电流镜里的单管镜像升级成了多管闭环结构用第三、第四个管子实时传感输出电流一旦发现电流偏大或偏小就通过环路自动拉回来。这个闭环动作带来的直接好处就是输出端的等效电阻远高于单个晶体管的ro精度大幅提升。在电路实现上它有两种主流形态BJT版和CMOS版。BJT版是George Wilson在1967年于Tektronix工作期间提出的用于解决当时分立元件电流镜在宽输出电压范围下电流漂移的问题。后来CMOS工艺成为主流这个思路被直接移植到MOS管上四种晶体管的组合依然保留了“高输出阻抗低电压余度”的黄金组合。1.2 它解决的实际工程问题模拟电路里大量需要“复制电流”的场景比如差分对的尾电流源、DAC的电流权重阵列、运放的偏置网络都依赖电流镜把基准电流无损地复制到各个支路。但理想电流源必须满足一个条件输出电流不受输出电压影响。现实中晶体管做不到这一点输出特性曲线在饱和区也有明显斜率这就是有限的输出电阻在拖后腿。简单电流镜的输出电阻就等于单个管子的ro在短沟道工艺下可能只有几十到几百kΩ一旦输出端遇到电压波动镜像电流就会跟着波动足以毁掉一个12位DAC的线性度或者造成偏置点漂移。Wilson电流镜用额外两个管子换来了少则几十倍、多则上千倍的输出电阻提升付出的代价只是大约一个VGS的电压余度。这个“用管子换精度”的取舍在电流匹配精度要求高的模拟模块里非常划算。1.3 谁适合用这个方案如果你正在设计带隙基准、LDO的偏置、高精度电流舵DAC或者实验室里做传感器模拟前端需要稳定的电流源Wilson电流镜是性价比很高的选择。它不需要额外校准电路不需要特殊工艺用标准CMOS工艺里最普通的管子就能实现。对学习者来说Wilson电流镜又是一堂极好的反馈分析课它用三四个管子演示了“环路增益如何改变输出阻抗”这个核心概念。把它吃透后面再看折叠共源共栅、增益提高运放这些更复杂的电路思路会顺畅很多。2. 原理拆解从简单电流镜到Wilson结构的进化之路2.1 简单电流镜的“病根”到底在哪在讲Wilson之前得先彻底搞清楚简单电流镜不完美的根源。以NMOS为例假设M1和M2完全匹配M1接成二极管形式由外部电流Iin驱动M2的栅极和M1的栅极相连让M2复制M1的电流。理想情况下M2的电流应该等于Iin但实际的MOS管在饱和区存在沟道长度调制效应Ids和Vds是有关的Ids (1/2)·μn·Cox·(W/L)·(Vgs - Vth)^2·(1 λ·Vds)其中的λ是沟道长度调制系数。M1的Vds等于Vgs是确定的但M2的Vds由输出端电压决定也就是说Iout会随着Vout变化。在饱和区输出电流对输出电压的微分就是输出电导取倒数就是输出电阻Rout ro2 1/(λ·Iout)一个L0.5μm、偏置电流10μA的NMOSro大约在几百kΩ的量级。这个数值对应的电流变化率在1V电压摆幅下就是百分之几到百分之十几对于高精度场景完全不够看。BJT版本更早暴露了同样的问题BJT的输出电流与Vce强相关因为Early效应或者说基区宽度调制让输出特性曲线明显倾斜。早年的分立电路设计者对这个现象非常头疼因为一旦输出电压波动电流镜的精度就崩了。2.2 Wilson靠负反馈“自我修复”Wilson电流镜的设计意图非常明确我不指望单个管子很完美但我可以让输出管周围搭一个环路一旦输出电流有变化趋势环路就产生一个相反的修正信号把电流拉回去。以CMOS版为例结构包含四个晶体管M1是输入管接二极管形式承受基准电流IinM2是输出管它的电流就是IoutM3串联在M2的源端或者说位于输出支路起传感和反馈作用M4与M3组成电流镜把M3中的电流信息传回M1侧如果从反馈的角度看假设Vout升高导致M2漏端电压升高M2的电流因为沟道长度调制效应有增大的趋势。M2电流增大意味着M3的电流也增大M3的Vgs因此被迫提高因为M3要保持相同电流过驱动电压变大。M3的Vgs通过M4镜像到M1那条支路使得M1支路的电压被调整反过来又将M2的栅压往下拉从而抑制M2电流的增大。这个负反馈环路动态地将输出电流稳定下来等效输出电阻不再是ro2而是ro2乘以环路增益数量级直接起飞。2.3 输出电阻的定量推导用小信号模型定量分析可以得到Wilson电流镜的输出电阻表达式。以MOS版本为例忽略体效应时输出电阻可以写成这个推导在Razavi和Allen的书里都能找到Rout ≈ gm3·ro2·ro3实际上更完整的表达式还包含一些并联项但主导项就是gm·ro·ro也就是说与单个管子的ro相比提升的倍数大约是gm·ro。gm·ro是晶体管的本质增益在长沟道工艺下轻松做到50~100在0.18μm工艺下也有20~40。所以输出电阻从几百kΩ提升到几十MΩ甚至上百MΩ是常态。BJT版的输出电阻推导类似结果为Rout ≈ β·ro/2其中β是三极管的电流放大倍数通常在50~200之间。所以BJT版本用两个额外三极管把输出电阻抬高了约一个β的量级效果同样显著。这也是Wilson结构在分立BJT时代就能一战成名的原因——那会儿没有精密的共源共栅电流源Wilson电路用三四个管子和几只电阻就能达到接近恒流源的效果。2.4 和Cascode电流镜的横向对比模拟IC里提高电流镜输出电阻的首选方案通常是共源共栅Cascode。Cascode电流镜的结构是让M1、M2各叠加一层管子用第二层管子的源端电压去“固定”第一层管子的漏端电压从而屏蔽电压变化。这样的结果是输出电阻也提升到gm·ro^2量级看起来和Wilson差不多但两者有一个显著区别——电压余度。Cascode电流镜为了确保所有管子工作在饱和区输出端至少要承受两个VDSsat加上一个栅压余度整体最小输出电压往往在0.4V~0.6V0.18μm工艺左右。Wilson电流镜的结构里输出管M2的漏极就是输出端M3的源端是工作在二极管连接方式的……虽然M3也需要一定的VDS但整体电压余度通常比Cascode要低。这使得Wilson在某些低压场景下更有吸引力。不过Wilson也有短板——速度。反馈环路意味着信号需要经过环路才能稳定所以高频性能不如Cascode。如果需要GHz级别的电流镜Wilson可能不太合适但用于偏置和低频高精度场景则绰绰有余。3. 参数设计与仿真实操手把手搭一个Wilson电流镜3.1 明确设计目标和初始指标这次我们设计一个用于模拟基带芯片的偏置电流源目标很简单但很典型基准输入电流Iin 10μA输出电阻Rout ≥ 50MΩ最小输出电压compliance voltageVout_min ≤ 0.5V使用0.18μm标准逻辑工艺所有管子用普通NMOS阈值电压Vth约0.5V从仿真结果反推这个指标用简单电流镜显然做不到Rout只有几百kΩ用Cascode也偏紧Vout_min可能超标Wilson电流镜在理论上是可以达到的。3.2 晶体管尺寸估算对于NMOS饱和区电流公式为Ids (1/2)·μn·Cox·(W/L)·(Vgs - Vth)^2·(1 λ·Vds)0.18μm工艺典型参数μnCox ≈ 400μA/V²λ在L0.5μm时约0.1V⁻¹数值因工艺角而异这里参考通用参数。为了让Iout10μA的情况下所有管子都在饱和区需要给每只管分配合理的过驱动电压Vov。对Wilson电流镜来说M1需要承载Iin其Vgs决定了整个栅压基准Vov取值0.2V左右比较合理——Vov太小则对匹配太敏感太大则消耗电压余度。计算M1的宽长比(W/L)M1 2·Iin / (μnCox·Vov²) 2×10μ / (400μ × 0.2²) 1.25取L0.5μm则W≈0.625μm工艺最小线宽下取整可用W0.6μm或0.7μm。M2与M1匹配工作取相同尺寸。对M3而言它承载的电流也是约10μA且需要让Vds尽量小以降低余度。取同样的W/L。M4作为反馈回路的镜像管尺寸与M3保持一致。注意这里我故意让所有管的W/L一致目的是让节点电压对称保证M2的漏-源电压与M1的漏-源电压接近。这样体效应的影响最小镜像精度也更高。3.3 输出电阻的理论估算选定了尺寸和偏置电流后可以做手工估算先算M2的跨导gm2 2·Iout / Vov 2×10μ / 0.2 100μA/VM3的跨导也类似gm3 ≈ 100μA/V。再看roro2 1/(λ·Iout) 1/(0.1×10μ) 1MΩ那么Rout ≈ gm3·ro2·ro3 100μ × 1M × 1M 10^11 Ω这个值明显太大了手工估算的极限乐观值远高于真实仿真。原因是λ在小尺寸下不是那么简单且管子进入亚阈值边缘时参数的偏差很大还有体效应、二阶效应都会压低输出电阻。但即使是降到理想值的1/101e10Ω也足够满足50MΩ的设计指标说明这个方案在方向上没问题。真实仿真时输出电阻一般能到几十MΩ到几百MΩ具体取决于晶体管的实际长度和偏置点。3.4 Cadence Virtuoso中的电路搭建与仿真流程实际仿真推荐用Cadence Virtuoso ADE L或者ADE XL。步骤如下新建cell view类型为schematic调用nmos4器件创建四只管子和一个理想电流源Iin连线方式Iin连接到M1的D端M1的G和D短接M1的G连接到M2的GM2的D作为输出端M2的S连接到M3的DM3的G连接到M4的GM3的S接地M4的D连接到M1的DM4的S接地设置电源VDD和地注意Iin用dc电流源从VDD灌入M1分别在输入端和输出端加“dc”标识或采用testbench方式测量仿真项分三个第一工作点仿真.op检查所有管子是否工作在饱和区。查看M1、M2的Vds、Vgs确保Vds Vgs - Vth。典型输入下各管Vgs约0.7VVth0.5VVov0.2VVds按电压分配需逐个确认。第二DC扫描.dc将输出电压Vout从0V扫描到1.2V记录Iout。简单电流镜的曲线斜率明显Wilson电流镜曲线在饱和区接近水平。对Vout在0.3V到1.0V范围内选取两点利用公式RoutΔV/ΔI计算输出电阻。假设三点采集的数据| Vout | Iout | | 0.4V | 10.02μA | | 0.7V | 10.05μA | | 1.0V | 10.08μA |用0.4V到1.0V计算ΔV0.6VΔI0.06μARout0.6V/0.06μA10MΩ。这个结果在0.18μm工艺下比较可信比简单电流镜高出20倍以上但与理想推导的1e10Ω差距很大原因就是前面提的体效应、λ过高、短沟道效应等因素。第三交流仿真.ac在输出端加1A小信号交流源看输出电压就是输出阻抗曲线。Wilson电流镜在低频段阻抗很高随着频率升高环路增益下降输出阻抗开始滚降这在需要了解高频PSSR的场合很有参考价值。3.5 输出电压余度的实测输出电压余度compliance voltage指的是电流镜还能够正常恒流的输出电压下限。Wilson电流镜的最小输出电压约等于M2的Vds,sat加上M3的Vds,sat每个约0.15V~0.2V整体在0.4V以下比Cascode动辄0.5V以上更有优势。在DC扫描结果里Vout低于0.3V时Iout急剧下降这是M2或M3退出饱和区的表现正常的恒流区从0.3V左右开始到接近VDD。对0.9V~1.2V供电的低压电路来说这个余度很友好。4. 常见问题与排查技巧实录4.1 MOS版Wilson电流镜的体效应陷阱MOS版Wilson电流镜有一个“官方坑”很多新手第一次仿真都会在这里翻车——输出电流和输入电流对不上。原因在于M3的源端并不接地它的源端电压等于M2的源端电压是一个远高于0V的正电压。这意味着M3的衬底接地的和源端之间存在负的Vbs阈值电压Vth会增大造成M3需要的过驱动电压变大。这个现象会直接影响整个环路的平衡导致最终镜像电流Iout不是精确等于Iin而是存在一个偏差。在1.2V供电下M3的Vbs可能达到-0.4VVth因此增加约50~80mV对应输出电流可以偏离5%~10%。解决的思路通常有几种接受这个偏差在应用端通过校正电路校准。适合不需要精确的电流比但对电流稳定度要求高的场景。将M3的衬底接到它的源端而不是系统地。这在双阱工艺里可以做但对普通NMOS来说不行因为这相当于在P衬底上做隔离需要在工艺上付出更大代价。用改进型的Wilson结构增加额外的电平移位管但由于管子多了会吃掉更多电压余度。我个人的建议是如果是做芯片内部偏置5%~10%的绝对误差大多可以通过基准校准电路消化掉如果是做分立的精密电流源直接考虑带源极退化电阻的Wilson变体更省心。4.2 输出端交流阻抗出现峰值的现象有时候仿真交流阻抗会发现在某个频率点输出阻抗反而抬高了形成一个“峰”随后迅速滚降。这是反馈环路的相位裕度不足导致的在低频段环路增益大阻抗很高到了高频段环路延迟让反馈变成正反馈局部出现谐振峰。排查方法是看环路增益的相位曲线。在Wilson的反馈环路里断开M4的栅极加测试源看环路增益的0dB频率和相位裕度。如果相位裕度小于45°就可能出现峰值甚至自激。实际处理办法是减小环路带宽例如给M4的栅极增加一个补偿电容。不过对大多数偏置应用来说Wilson电流镜工作在DC和低频这个峰值不会带来功能问题只要确认在预期工作频率下比如1MHz以下阻抗是单调的就可以放心用。4.3 启动问题为什么有的Wilson电流镜无法启动Wilson电流镜存在一个“死亡状态”——在零电流状态下所有管子都截止环路保持在一个稳定的零电流平衡点。如果电路上电时没有额外电流注入它可能一直停留在零电流状态导致整个偏置网络失效。这个问题在片内和片外都会遇到。片内解决方案很简单在M1或者M4的漏端加一个启动电路常见做法是用一个很小的二极管连接管或者电阻把初始电流灌到M1的漏端一旦环路启动后启动电路里的管子会被后续的电压偏置关闭不影响正常工作。我见过的工程失误就是设计者没有意识到“电流镜也有启动问题”流片回来后一部分芯片工作正常一部分偏置为零查了很久才发现是启动电路缺失。所以无论仿真收敛得多顺利流片前一定要跑一遍电源上电瞬态仿真观察所有电流是否为预期的正常工作值。4.4 版图匹配的重要性与常见失误在电流镜设计里性能的最终实现有一半取决于版图。四个晶体管的匹配程度直接决定了输入输出电流的比例精度栅氧厚度差异、多晶硅栅尺寸偏差、离子注入浓度梯度都会造成失配。版图层面最常用的方法是把M1和M2做成共质心结构interdigitated即便存在工艺梯度也能相互抵消M3和M4同样做共质心布局四周加dummy管保证边缘刻蚀的一致性电源走线要对称避免压降差异引起新的失配我之前有个项目仿真时匹配很好流片后实测Iout与Iin差了2%查了半天发现是M4到M1侧的电源走线比M3侧长了很多压降不同导致M1的有效Vds和M4的有效Vds不同重新调整走线后失配降到了0.3%以内。版图对称性在这种精密电流镜里不是可选项是必选项。4.5 常见问题速查表问题现象可能原因解决方案Iout ≠ Iin偏差固定M3体效应导致Vth偏移接受并校准/用双阱工艺/改进型结构Vout高时Iout缓慢上升沟道长度调制未被完全抑制增大L/检查反馈环路是否断裂输出阻抗频率响应出现峰环路裕度不足加补偿电容/降低环路增益上电后电流为零启动电路缺失增加启动电路仿真瞬态验证实测失配大于仿真版图不对称/走线压降不均共质心布局/对称走线/加dummy5. Wilson电流镜的变体与选型建议5.1 带源极退化电阻的Wilson电流镜当需要极低的噪声和更高的输出阻抗时可以在M3、M4的源端串入电阻形成源极退化source degeneration。电阻的负反馈作用进一步提高了整个环路的稳定性和输出阻抗代价是额外消耗压降。电阻阻值的选择参考Rdegen上的压降通常取100~300mV阻值RVdeg/I。如果Iin10μAVdeg200mV选R20kΩ。加了电阻之后输出电阻近似为Rout ≈ (1 gm·Rdegen)·gm3·ro2·ro3这个结构适合精密模拟的电流基准比如SAR ADC的内部偏置。但电阻在CMOS工艺里的绝对值偏差大正负百分之二十因此你需要绝对精确的电流值时尽量避免过度依赖电阻值或者用外部基准电流源来校准。5.2 低压版本为什么有时选择“改进Wilson”而不是原始结构当供电只有1.0V甚至更低时Wilson电流镜的电压余度也开始吃紧。改进版本如带低电压的Wilson变体用更聪明的电平移位方法降低M3所需的最小Vds代价是增加一两个管子和更复杂的偏置。工程师的实践经验是先看你的输出摆幅。如果输出电流源工作时的输出电压范围是0.3V到0.8V那原始Wilson绰绰有余如果输出端需要从0.1V摆到0.7V建议改用低压版本或者考虑折叠Cascode结构。不要一上来就上复杂结构简单方案能解决问题就绝不复杂化。5.3 何时果断放弃Wilson虽然Wilson电流镜优点很多但也不是万能的。在以下场景我会直接选择其他方案需要输出电流在1mA以上且要求极高频响应时Wilson的反馈环路带宽有限不如带固定偏置的Cascode需要完全消除体效应导致的不匹配时考虑使用改进型或者P管版本的WilsonP管可以做到衬底和源端同电位输出电流的绝对精度要求超过1%且不允许外部校准时此时Wilson可能还不够建议搭配动态元件匹配DEM或斩波技术选型建议其实就一句话如果你在找“输出阻抗高、电压余度小、结构简单”的电流镜Wilson是首选如果还要超出这个范围再结合具体指标重新找方案。6. 流片和实测我对Wilson电流镜的一些真实体会说了这么多理论和仿真来点实战的。第一次真正把Wilson电流镜放进芯片里是做一个12位SAR ADC的偏置模块。当时我的设计里需要给比较器提供20μA尾电流而且这个电流要在0.35V到1.1V的输出电压范围内保持稳定。一开始用的简单电流镜实测在输出电压变化0.5V时电流漂移了接近4%ADC增益误差直接超标。后来换成Wilson电流镜同一个温度条件下电流漂移降到了0.15%以内输出阻抗提升了不止一个数量级效果立竿见影。但我也因为这个电路吃了不少苦头第一版流片时忘了加启动电路导致5%的芯片在低电源电压启动时偏置完全打不开第二版重新布局时电源走线不对称失配又超标。这些教训让我后来养成了一个习惯不管电流镜多简单都强制自己跑三遍检查启动瞬态、环路相位裕度、版图对称性。给后来者一个最实用的建议先用指标算一遍W/L再搭testbench跑DC扫描量Rout达不到就调L不要一上来就盲调W。L对输出电阻的影响非常直接——L拉长λ减小ro变大反馈环路的gm·ro增益也变大。初版用0.5μm的L输出电阻不够就拉到1μm必要时甚至可以拉到2μm代价只是面积变大但对匹配和Rout的提升立竿见影。另外Power Pad的压降问题一定要早考虑。我曾经见过一个模块做测试时所有电学指标都正常唯独Iout略低最后发现是M4到地之间的metal电阻大了相当于给源端塞了几十欧姆的退化电阻改变了分压关系。模拟设计是细活一个过孔、一小段走线都可能成为压垮骆驼的最后一根稻草。Wilson电流镜虽然是1960年代的“老古董”但在现代模拟设计里一点都不过时。每次我觉得“这电路太老了有什么好讲的”的时候总能在新项目里重新发现它的价值——要么是低压场景下救我一命要么是反馈分析的教科书级案例。下次再遇到电流镜精度不够的困境先别急着上复杂结构算算Wilson够不够用可能比你想的更靠谱。
返回列表