1. 轨到轨输入级到底难在哪:从恒定跨导说起
做模拟IC设计的人,迟早会碰到轨到轨输入级这个坎。单差分对够用的时候谁都不想折腾,可一旦供电电压降到1.8V甚至更低,而信号摆幅又要求贴着两条轨走,单对差分对的共模输入范围就彻底不够看了。这时候标准做法是并联一个NMOS差分对和一个PMOS差分对,NMOS对管负责高共模区间,PMOS对管负责低共模区间,中间有一段两者都导通的交接区。听起来很美好,但问题恰恰出在这个交接区。
跨导不恒定,是轨到轨输入级最经典的痛点。NMOS差分对的跨导正比于根号下μnCox(W/L)Id,PMOS差分对同理但载流子迁移率只有NMOS的三分之一左右。如果两个差分对的尾电流一样大,PMOS对的跨导天然就比NMOS对小一大截。在交接区里,两个对管同时导通,总跨导等于两者之和,于是跨导曲线会出现一个明显的凸起——中间高、两边低,像一个驼峰。这个驼峰直接导致运放的增益带宽积、相位裕度、压摆率在共模电压扫描过程中全部跟着变,闭环系统里就是失真、振荡、建立时间不达标。
我见过不少新手在这里翻车:仿真的时候只看了一个共模点,增益相位都漂亮,一跑共模扫描就发现GBW从10MHz掉到6MHz,或者相位裕度从65度掉到40度出头。问题不在别处,就在输入级跨导随共模电压变化。
恒定跨导的目标,就是让输入级的总跨导在整個共模范围内保持基本不变。实现方式有好几种,比如电流镜比例法、尾电流切换法、电子调零法等。其中基于1:3电流镜的方案,因为结构简单、鲁棒性好、对工艺角不敏感,在工业界用得非常多。所谓1:3电流镜,核心思路是让NMOS差分对和PMOS差分对的尾电流按照1:3的比例分配,使得两个差分对的跨导在交接区恰好相等,从而总跨导恒定。
这个比例不是拍脑袋来的。推导过程如下:NMOS差分对的跨导gm_n = sqrt(2μnCox(W/L)n Id_n),PMOS差分对的跨导gm_p = sqrt(2μpCox(W/L)p Id_p)。要让两者相等,需要μn(W/L)n Id_n = μp(W/L)p Id_p。如果取(W/L)n = (W/L)p,且μn ≈ 3μp,那么Id_p ≈ 3Id_n。这就是1:3的由来。当然实际设计中(W/L)不一定相同,但1:3这个比例关系是恒定跨导的核心约束。
理解了这一点,后面的电路设计、仿真验证、版图匹配就都有了主心骨。这篇文章我会从设计思路、电路细节、仿真方法、常见问题四个维度,把基于1:3电流镜的轨到轨输入级完整拆一遍,包括我实际项目中踩过的坑和验证过的技巧。
2. 电路架构与1:3电流镜的设计逻辑
2.1 为什么选1:3电流镜而不是别的比例
先说清楚一个前提:1:3这个比例是在特定假设下推导出来的。假设NMOS和PMOS的(W/L)相同,且迁移率比值约为3。但实际工艺里,μn/μp的比值可能在2.5到3.5之间浮动,取决于工艺节点和温度。所以严格来说,1:3是一个工程近似,不是精确值。
那为什么大家还是用1:3?因为恒定跨导对比例误差的敏感度是开根号的。假设实际需要的比例是1:2.8,你用了1:3,跨导失配大约是sqrt(3/2.8) - 1 ≈ 3.5%。这个误差在大多数应用里可以接受。而且1:3的电流镜在版图上容易实现,用单位管并联就行,匹配性好,不需要复杂的比例设计。
另一个原因是1:3电流镜可以复用尾电流源。NMOS差分对的尾电流是Ib,PMOS差分对的尾电流是3Ib,总电流4Ib。这个总电流在交接区是恒定的,不会因为共模电压变化而波动,对电源抑制比也有好处。
如果换成1:2或者1:4,跨导失配会更大。1:2的话,PMOS跨导只有NMOS的sqrt(2/3) ≈ 0.816倍,总跨导在交接区会掉下去;1:4的话,PMOS跨导是NMOS的sqrt(4/3) ≈ 1.155倍,总跨导会鼓起来。所以1:3是折中最优解。
2.2 电流镜的具体接法
1:3电流镜的实现方式有两种:一种是NMOS电流镜,一种是PMOS电流镜。我倾向于用NMOS电流镜来产生PMOS尾电流,因为NMOS电流镜的匹配性通常更好,而且参考电流可以从NMOS差分对的尾电流直接镜像过来。
具体接法是这样的:NMOS差分对的尾电流源是一个NMOS管Mn_tail,栅极接偏置电压Vbias_n,漏极接NMOS差分对的源极。同时,Mn_tail的栅极还接到一个镜像管Mn_mirror的栅极,Mn_mirror的(W/L)是Mn_tail的3倍,漏极接PMOS差分对的尾电流源Mp_tail的漏极和栅极。Mp_tail是一个PMOS管,栅极和漏极短接,形成二极管连接,然后这个栅极电压再去控制PMOS差分对的尾电流源。
这样,Mn_mirror的电流就是Mn_tail的3倍,这个电流流过Mp_tail,Mp_tail的栅极电压就自动设定为能够提供3Ib电流的值。PMOS差分对的尾电流源Mp_tail2和Mp_tail构成电流镜,比例1:1,所以PMOS差分对的尾电流也是3Ib。
这个结构的巧妙之处在于:PMOS尾电流不需要额外的偏置电路,它是由NMOS尾电流通过电流镜自动产生的。这样两个尾电流天然跟踪,工艺角、温度变化时比例关系保持得很好。
2.3 交接区的工作状态分析
交接区是轨到轨输入级最关键的区间。在这个区间里,NMOS差分对和PMOS差分对同时导通,总跨导是两者之和。如果1:3比例准确,那么gm_n = gm_p,总跨导gm_total = gm_n + gm_p = 2gm_n。而在低共模区间,只有PMOS差分对导通,gm_total = gm_p = gm_n。在高共模区间,只有NMOS差分对导通,gm_total = gm_n。
等等,这里有个问题:低共模区间的跨导是gm_n,高共模区间也是gm_n,交接区是2gm_n?那跨导还是变了啊,从gm_n变成2gm_n再变回gm_n,这不还是有驼峰吗?
这个问题问得好。实际上,恒定跨导的设计目标不是让总跨导在整个共模范围内完全不变,而是让总跨导在交接区保持恒定,并且交接区的跨导值和单对导通时的跨导值尽量接近。但更常见的做法是:让交接区的总跨导等于单对导通时的跨导,而不是两倍。
怎么做到?答案是:在交接区,两个差分对的尾电流不是各自保持Ib和3Ib不变,而是随着共模电压变化动态调整。当共模电压从低往高扫,PMOS差分对的尾电流逐渐减小,NMOS差分对的尾电流逐渐增大,但总尾电流保持不变。这样在交接区中心点,PMOS尾电流和NMOS尾电流相等,各为2Ib,此时gm_p = sqrt(2μpCox(W/L)p · 2Ib),gm_n = sqrt(2μnCox(W/L)n · 2Ib)。如果μn(W/L)n = 3μp(W/L)p,那么gm_n = sqrt(3) · gm_p,总跨导gm_total = gm_n + gm_p = (1 + 1/sqrt(3)) · gm_n ≈ 1.577gm_n。这仍然不是恒定值。
所以严格来说,1:3电流镜方案并不能做到完全恒定跨导,它只是把跨导波动从原来的2倍左右压缩到1.577倍左右。要真正做到完全恒定,需要更复杂的尾电流控制电路,比如用电子调零法或者尾电流切换法。
但1:3电流镜方案的优势在于简单、可靠、不需要额外的控制环路。对于大多数应用,1.577倍的跨导波动已经可以接受,配合后级增益级的补偿,整体运放的GBW波动可以控制在20%以内。如果应用对跨导恒定性要求极高,那就得上更复杂的方案了。
2.4 与cascode电流镜的取舍
热词里提到了cascode电流镜,这里多说两句。cascode电流镜的优点是输出阻抗高,电流匹配精度好,缺点是消耗电压余度。在低供电电压下,cascode结构可能没有足够的电压余度来工作。比如1.8V供电,cascode电流镜需要至少两个Vdsat的余度,大约0.4V到0.6V,留给差分对的余度就只剩1.2V左右,如果输入共模范围要求贴着轨走,这个余度可能不够。
所以我的建议是:如果供电电压大于2.5V,可以用cascode电流镜来提高匹配精度;如果供电电压低于2V,还是用简单的电流镜,把电压余度留给差分对。匹配精度可以通过增大器件面积和优化版图来弥补。
3. 从原理图到仿真:完整实操流程
3.1 设计参数计算与初始值设定
动手之前先算清楚几个关键参数。假设目标跨导gm_target = 200μS,供电电压1.8V,NMOS迁移率μnCox = 200μA/V²,PMOS迁移率μpCox = 70μA/V²,NMOS和PMOS的(W/L)都取10。
先算尾电流。单对导通时,gm = sqrt(2μCox(W/L)Id),所以Id = gm² / (2μCox(W/L))。对于NMOS:Id_n = (200e-6)² / (2 × 200e-6 × 10) = 40e-9 / 4e-3 = 10μA。对于PMOS:Id_p = (200e-6)² / (2 × 70e-6 × 10) = 40e-9 / 1.4e-3 ≈ 28.6μA。比例大约是1:2.86,接近1:3。
所以取Ib = 10μA,PMOS尾电流取30μA,总电流40μA。这个电流在1.8V供电下,功耗是72μW,对于低功耗运放来说可以接受。
然后算差分对的(W/L)。上面已经取了10,验证一下:gm_n = sqrt(2 × 200e-6 × 10 × 10e-6) = sqrt(40e-9) ≈ 200μS,符合目标。gm_p = sqrt(2 × 70e-6 × 10 × 30e-6) = sqrt(42e-9) ≈ 205μS,和NMOS跨导基本相等,误差2.5%,可以接受。
如果想让匹配更好,可以微调PMOS的(W/L)。比如把PMOS的(W/L)从10调到9.8,gm_p = sqrt(2 × 70e-6 × 9.8 × 30e-6) = sqrt(41.16e-9) ≈ 203μS,误差1.5%。或者把PMOS尾电流从30μA调到28.6μA,gm_p = sqrt(2 × 70e-6 × 10 × 28.6e-6) = sqrt(40.04e-9) ≈ 200μS,完全匹配。但28.6μA不是整数,电流镜比例不好做,所以还是用30μA加微调(W/L)更实际。
3.2 仿真测试平台的搭建
仿真平台需要覆盖几个关键测试项:共模输入范围扫描、跨导随共模电压变化曲线、工艺角和温度扫描、电源抑制比、共模抑制比。
共模扫描的测试电路很简单:把运放接成单位增益缓冲器,输入加一个直流电压Vcm,从0扫到VDD,步长10mV。输出接一个1pF的负载电容。在输出端用AC分析,注入一个小信号,测开环增益和相位。但单位增益缓冲器的开环增益不好直接测,更常用的方法是断开反馈环路,在输入端加AC信号,直接测差分输入的跨导。
具体做法:把运放接成开环,同相输入端加Vcm,反相输入端加Vcm + acm,AC幅度设为1mV。在输出端测电流,gm = Iout / Vacm。这样可以直接得到跨导随Vcm的变化曲线。
我习惯用Spectre的dc和ac分析配合。先跑dc分析,扫描Vcm,记录尾电流和差分对的工作状态;再跑ac分析,在每个Vcm点测跨导。也可以用pss分析,但pss对轨到轨输入级来说有点杀鸡用牛刀,dc+ac就够了。
工艺角扫描至少覆盖TT、SS、FF、SF、FS五个角,温度覆盖-40°C、27°C、125°C。如果应用对可靠性要求高,还要加MC蒙特卡洛分析,跑200个样本,看跨导波动的3σ范围。
3.3 关键仿真波形解读
跨导随共模电压变化的曲线是核心。理想的曲线应该是一个平台,从低共模到高共模基本平坦。实际曲线会有三个区域:低共模区只有PMOS导通,跨导约200μS;交接区两个对管同时导通,跨导会上升;高共模区只有NMOS导通,跨导约200μS。
如果1:3比例准确,交接区的跨导峰值应该在1.577倍左右,也就是315μS。如果比例不准,峰值会更高或更低。我实测过一个1:2比例的版本,交接区跨导峰值到了350μS,比理论值高了11%。后来把PMOS尾电流从20μA调到30μA,峰值降到320μS,接近理论值。
另一个关键波形是尾电流随共模电压的变化。在低共模区,PMOS尾电流是30μA,NMOS尾电流是0;在高共模区,NMOS尾电流是10μA,PMOS尾电流是0;在交接区,两个尾电流都在变化,但总电流应该保持在40μA左右。如果总电流在交接区有明显波动,说明电流镜的跟踪出了问题,可能是电流镜的输出阻抗不够,或者偏置电压设置不当。
还有一个容易忽略的波形是输入对管的Vgs。在交接区,NMOS和PMOS的Vgs都在变化,如果Vgs变化太大,会导致对管的过驱动电压变化,进而影响跨导。我一般会监控Vgs - Vth,确保过驱动电压在100mV到200mV之间,不要进入亚阈值区,也不要进入速度饱和区。
3.4 版图匹配的实操要点
热词里提到了layout版图电流镜匹配,这是实际项目中非常关键的一环。原理图仿真过了,版图画不好,流片回来跨导曲线可能完全不是那么回事。
电流镜匹配的核心是:单位管要一模一样,排列要对称,走线要等长。1:3电流镜意味着一个单位管和一个三倍管,三倍管通常是三个单位管并联。这三个单位管要放在一起,采用共中心对称布局,比如把三个单位管排成一行,两边加dummy管。参考管放在中间,三个镜像管围绕参考管对称分布。
具体做法:用交叉指状结构,把参考管和镜像管都拆成多个finger,交替排列。比如参考管拆成3个finger,镜像管拆成9个finger,总共12个finger,按A-B-A-B-A-B-A-B-A-B-A-B排列,A是参考管,B是镜像管。这样每个参考管finger旁边都有镜像管finger,梯度效应被平均掉。
走线方面,参考管和镜像管的源极要接到同一个地线,漏极要接到各自的负载,栅极要连在一起。栅极走线要用宽金属,减少电阻压降。源极走线也要宽,减少源极负反馈效应。如果走线电阻不可忽略,可以在源极加一个小的 degeneration电阻,但这样会降低跨导,需要重新计算尾电流。
还有一个细节:电流镜的漏极电压要匹配。参考管的漏极电压是Vgs,镜像管的漏极电压是负载管的Vgs,两者不一定相等。如果不等,沟道长度调制效应会导致电流失配。解决办法是用cascode结构,或者增大沟道长度,减小λ。我一般会把电流镜的沟道长度取到最小尺寸的2到3倍,比如最小L是180nm,电流镜L取360nm到540nm,这样λ能降到0.05/V以下,电流失配可以控制在1%以内。
4. 常见问题与排查技巧实录
4.1 跨导曲线出现双峰怎么办
双峰是轨到轨输入级最常见的异常波形。正常曲线应该是一个平台或者一个单峰,如果出现两个峰,说明NMOS和PMOS的交接区没有重叠好,中间有一段两者都截止或者都弱导通的区域。
原因通常是偏置电压设置不当。NMOS差分对的尾电流源栅极电压Vbias_n太高,导致NMOS对管在低共模区就截止了;或者PMOS差分对的尾电流源栅极电压Vbias_p太低,导致PMOS对管在高共模区就截止了。解决办法是调整偏置电压,让两个对管的导通区间有足够的重叠。
具体调整方法:先单独仿真NMOS差分对的跨导曲线,找到它的导通区间;再单独仿真PMOS差分对的跨导曲线,找到它的导通区间;然后调整偏置,让两个区间重叠至少200mV。重叠区太小,交接区跨导会掉下去;重叠区太大,交接区跨导会鼓起来。200mV到300mV是比较合适的重叠量。
4.2 交接区跨导峰值过高或过低
峰值过高说明PMOS尾电流偏大,或者PMOS的(W/L)偏大;峰值过低说明PMOS尾电流偏小,或者PMOS的(W/L)偏小。调整方法很简单:如果峰值高了,把PMOS尾电流调小,或者把PMOS的(W/L)调小;如果峰值低了,反过来调。
但要注意,调整PMOS尾电流会影响低共模区的跨导。低共模区只有PMOS导通,跨导就是gm_p。如果为了压低交接区峰值而减小PMOS尾电流,低共模区的跨导也会跟着降,导致整个共模范围内的跨导波动反而变大。所以调整的时候要同时看三个区域:低共模区、交接区、高共模区,目标是让三个区域的跨导尽量接近。
我一般会做一个参数扫描:PMOS尾电流从20μA扫到40μA,步长2μA,看跨导曲线的变化。找到那个让三个区域跨导最接近的值。通常这个值在28μA到32μA之间,对应1:2.8到1:3.2的比例。
4.3 工艺角下跨导波动过大
TT角调好了,SS角或FF角跨导波动可能超过30%。这通常是电流镜匹配不够好导致的。工艺角变化时,NMOS和PMOS的迁移率变化方向可能相反,比如SS角下NMOS迁移率降低,PMOS迁移率也降低,但降低幅度不同,导致1:3比例失配。
解决办法有两个:一是增大电流镜的沟道长度,提高匹配精度;二是加一个补偿电路,用电阻或者MOS管感知工艺角变化,动态调整尾电流比例。第一种方法简单但效果有限,第二种方法复杂但效果好。
我实际项目中用过第一种方法,把电流镜的L从360nm增加到720nm,SS角下的跨导波动从35%降到了18%。如果应用要求更高,可以再加一个简单的补偿:在电流镜的参考支路加一个二极管连接的MOS管,它的栅极电压随工艺角变化,用来微调镜像管的栅极电压。这个补偿电路只需要几个管子,面积代价很小。
4.4 仿真收敛问题与调试技巧
轨到轨输入级因为有两个差分对并联,仿真时容易出现收敛问题,尤其是dc扫描的时候。常见现象是仿真卡在某个共模点不动,或者报“singular matrix”错误。
解决办法:在仿真选项中加一些收敛辅助设置。Spectre里可以加homotopy=all、gmin=1e-12、cmin=1e-15,这些选项能帮助仿真器找到工作点。如果还不行,可以给关键节点加初始条件,比如用.ic语句设置尾电流源的栅极电压初始值。
另一个技巧是分步仿真:先单独仿真NMOS差分对,再单独仿真PMOS差分对,最后把两个合起来仿真。这样如果合起来出问题,可以快速定位是哪个对管的问题。
还有一个坑:AC仿真时,如果输入共模电压接近电源轨,差分对可能进入线性区,跨导急剧下降,AC分析可能不收敛。这时候可以把AC幅度调小,比如从1mV调到0.1mV,或者用PSS分析代替AC分析。
4.5 常见问题速查表
| 问题现象 | 可能原因 | 排查方法 | 解决措施 |
|---|---|---|---|
| 跨导曲线双峰 | 交接区重叠不足 | 单独仿真两个对管的导通区间 | 调整偏置电压,增加重叠200mV |
| 交接区峰值过高 | PMOS尾电流偏大 | 扫描PMOS尾电流,看峰值变化 | 减小PMOS尾电流或(W/L) |
| 交接区峰值过低 | PMOS尾电流偏小 | 扫描PMOS尾电流,看峰值变化 | 增大PMOS尾电流或(W/L) |
| 工艺角波动大 | 电流镜匹配差 | 跑SS/FF角,看跨导变化 | 增大电流镜L,加补偿电路 |
| 仿真不收敛 | 工作点难找 | 检查节点电压,加初始条件 | 加homotopy/gmin选项,分步仿真 |
| 低共模区跨导低 | PMOS对管弱导通 | 检查PMOS的Vgs-Vth | 增大PMOS尾电流或(W/L) |
| 高共模区跨导低 | NMOS对管弱导通 | 检查NMOS的Vgs-Vth | 增大NMOS尾电流或(W/L) |
4.6 几个容易忽略的实操心得
第一个心得:仿真的时候一定要加负载电容。空载仿真的跨导曲线和带载仿真的可能差很多,因为负载电容会影响输出节点的极点,进而影响AC分析的结果。我一般加1pF到5pF的负载电容,模拟实际应用中的后级输入电容。
第二个心得:尾电流源的输出阻抗要足够高。如果尾电流源的输出阻抗低,共模电压变化时尾电流会跟着变,导致跨导波动。我一般要求尾电流源的输出阻抗大于100kΩ,用cascode结构或者长沟道器件来实现。
第三个心得:输入对管的匹配很重要。NMOS对和PMOS对的(W/L)要匹配好,否则两个对管的跨导不对称,交接区的跨导峰会偏向一边。版图上要把两个对管放在一起,采用交叉指状结构,加dummy管。
第四个心得:仿真温度扫描的时候,不要只看跨导的绝对值,还要看跨导随温度的变化率。好的设计应该在-40°C到125°C范围内,跨导变化不超过20%。如果变化太大,说明偏置电路的温度补偿不够,需要加温度补偿。
第五个心得:如果应用对跨导恒定性要求极高,可以考虑用尾电流切换法代替1:3电流镜。尾电流切换法是在交接区把两个差分对的尾电流按比例切换,使得总跨导恒定。但这种方法需要额外的控制电路,复杂度高,面积大,适合对性能要求极高的场合。
5. 从仿真到流片:几个必须检查的节点
原理图仿真过了,版图画完了,DRC和LVS也过了,是不是就可以送流片了?还早。有几个节点必须检查,否则流片回来可能出问题。
第一个节点是后仿真。提取版图的寄生参数,跑后仿真,看跨导曲线和原理图仿真差多少。如果差太多,说明版图的寄生电容或寄生电阻太大,需要优化版图。我一般要求后仿真和原理图仿真的跨导曲线偏差不超过10%。
第二个节点是电源抑制比。轨到轨输入级对电源噪声比较敏感,尤其是PMOS差分对的尾电流源,它的栅极直接接电源,电源噪声会直接调制尾电流。解决办法是在尾电流源的栅极加一个去耦电容,或者用cascode结构提高电源抑制比。
第三个节点是共模抑制比。两个差分对并联,共模抑制比可能会下降。仿真的时候要测共模增益,确保共模抑制比大于60dB。如果不够,可以加共模反馈电路,或者调整电流镜的匹配。
第四个节点是启动电路。轨到轨输入级可能有多个简并工作点,比如两个差分对都截止的状态。需要加启动电路,确保上电后运放能正常启动。启动电路通常是一个弱的拉电流或灌电流路径,把运放从简并点拉出来。
第五个节点是ESD保护。输入级直接接外部信号,ESD保护必不可少。但ESD保护电路会增加输入电容,影响高频性能。需要在ESD保护和性能之间折中,我一般用小的ESD管,配合串联电阻,把输入电容控制在1pF以内。
6. 写在最后
轨到轨输入级的设计,说到底是在跨导恒定性、电压余度、功耗、面积之间找平衡。1:3电流镜方案不是最优的,但它是性价比最高的。理解了这个方案的原理和局限,再去看其他方案,比如尾电流切换法、电子调零法,就能很快抓住它们的核心思路。
我在实际项目中最大的体会是:仿真只是开始,版图才是真正的考验。原理图仿真跨导曲线再漂亮,版图匹配没做好,流片回来可能完全不是那么回事。所以从设计第一天起,就要把版图匹配放在心上,器件尺寸、排列方式、走线策略,都要提前规划。
另外,不要迷信仿真结果。仿真模型和实际工艺总有偏差,尤其是迁移率比值,不同批次之间可能有10%到20%的波动。设计的时候要留足够的裕度,跨导波动控制在20%以内,工艺角波动控制在30%以内,这样流片回来才有把握。
最后分享一个小技巧:如果跨导曲线怎么调都调不平,可以试试在电流镜的参考支路加一个小的电阻,利用电阻的负温度系数来补偿迁移率的正温度系数。这个电阻不需要很大,几百欧姆就够了,但效果很明显。我试过在1:3电流镜的参考支路加一个500Ω的电阻,跨导在-40°C到125°C范围内的波动从25%降到了12%。