设定工作点
在数字世界里,晶体管是一个开关——要么全开要么全关,非0即1,你绝不会在中间逗留。模拟恰恰相反。在这里你故意把每个MOSFET停在*中间*,停在它特性曲线最陡峭的那段中段,并用稳定的直流电压和电流把它锁在那里。这个静止状态——信号尚未到来时流动着的那份安静电流、各个端子上坐着的那些安静电压——就是[[bias-point|工作点]],也叫Q点(Q代表quiescent,意思是*静止*)。
把它想象成在孩子们跳上去之前先把跷跷板调平。你先让木板保持水平、稳住;*然后*在一端轻轻一压,另一端就会产生干净、成比例的响应。如果木板一开始就已经狠狠砸到地上,那怎么压都没用。晶体管也一样:你把它偏置进它那段响应灵敏的饱和区(栅极高于阈值,漏极电压高到足以让它待在那里),只有这样,骑在那份直流之上的微小信号才能产生干净、放大后的输出。偏置就是那块调平的木板,信号就是那轻轻的一压。
具体来说,工作点不过是每个器件的几个直流数字:漏极电流I_D、栅源电压V_GS,以及过驱动电压V_ov = V_GS − V_th(你把栅极推过开启阈值多远)。你可以用器件方程手算出它们,但实际工作中你会让仿真器跑一个.op——也就是工作点求解——它会报告静止状态下每个节点的电压和每条支路的电流。那份打印输出就是其余一切赖以建立的基础。
* DC operating point: solve all node voltages & branch currents at rest .op * (simulator prints, e.g.) * M1: Id = 50uA Vgs = 0.65V Vth = 0.45V Vov = 0.20V * M1: region = saturation
为什么偏置很重要
这里有一点新手会低估:工作点不只是*把电路打开*——它还在暗中决定这个电路有多好。它所控制的最重要的一个量就是[[transconductance|跨导]],记作gm:栅极电压的一个小抖动有多强地转化成漏极电流的抖动。gm越大意味着增益越大。而gm几乎完全由你所选的偏置电流决定。
先说大白话版本:推更多的静态电流穿过一个晶体管,它就变得更灵敏——同样一下电压的轻推能搬动更多电流,所以它放大得更猛。现在说数字。对于工作在饱和区的MOSFET,有一个简洁而著名的关系式:
gm = 2 * Id / Vov ; transconductance from bias * Intrinsic gain of one transistor = gm * ro * where ro is the device's output resistance (how flat its * current-source behavior is). For a common-source stage: Av = -gm * ro ; small-signal voltage gain (sign = inverting)
所以这条因果链是直截了当的:偏置电流 → gm → 增益。电流选得太小,gm就垮掉,这一级几乎放不动,整个电路迟钝又嘈杂。但你也不能把电流一味往天上拉,这就引出了偏置控制的第二样东西:裕度(headroom)。每个晶体管都需要一个最小的漏源电压才能留在饱和区;堆叠的器件叠太多,或者输出摆幅摆得太远,其中某一个就会掉出饱和区。这时信号就会削顶(clip)——在电源轨处被压平,就像一个歌手嘶吼到超出自己音域。换句话说,偏置错了会以两种相反的方式失败:太小让你没有增益,太大(或分配得不好)让你没有裕度、导致削顶。
电流镜
你现在知道整个电路都系于让干净、定义明确的电流流进每个晶体管。可是,当电源电压在漂移、温度在摆动时,你要如何把一个精确的电流——比如恰好50 µA——*送到*散布在芯片各处的十几个地方?办法是:认真做出一份好电流,做一次,然后把它复制到处都是。干这件复制活儿的主力就是[[current-mirror|电流镜]],毫不夸张地说,它是整个模拟IC设计中用得最多的基本构件。
这个把戏靠的是关于匹配晶体管的一个事实:如果两个完全相同的MOSFET共享同一个V_GS,它们就流过相同的漏极电流。于是你取一个参考电流I_REF,把它强行灌过一个接成*二极管接法*的晶体管(M1)——栅极和漏极短接。那个晶体管会自动建立起恰好吞下I_REF所需要的那个V_GS。现在你只要把同一个V_GS交给第二个完全相同的晶体管(M2)。M2别无选择:同样的V_GS、同样的器件,于是它导通同样的电流。M1*读取*电流并设定电压;M2则从那个电压*重新造出*电流。参考电流是音叉,镜像输出则以同样的音高鸣响。
* Simple NMOS current mirror * M1 diode-connected (gate=drain) is the 'reference' side * M2 shares the same Vgs and 'mirrors' the current IREF vdd n_gate 50u ; the reference current we want to copy M1 n_gate n_gate 0 0 nch W=2u L=0.2u ; diode-connected: G=D M2 out n_gate 0 0 nch W=2u L=0.2u ; same Vgs -> same Id ~ 50uA .op
把电流复制到各处
一旦你能复制电流,两个超能力就随之而来。第一:缩放。因为漏极电流随晶体管的宽长比(W/L)缩放,你不必非得1:1复制。把输出晶体管做成两倍宽,它就镜像出*两倍*的电流;做成一半宽,就镜像出一半。仅靠调整镜像各支路的尺寸,单单一个参考就能扇出一整族电流——1×、2×、½×——就像一个主时钟可以驱动许多不同大小的齿轮。
* Ratioed mirror: scale the copy by the W/L ratio * I_out / I_ref = (W/L)_out / (W/L)_ref M1 ref ref 0 0 nch W=2u L=0.2u ; reference leg (1x) M2 o2 ref 0 0 nch W=4u L=0.2u ; copies 2 x I_ref M3 o3 ref 0 0 nch W=1u L=0.2u ; copies 0.5 x I_ref
第二:有源负载。电流镜的输出晶体管表现得像一个电流源,而电流源具有非常高的输出电阻(ro)。回想一下,一级的增益是gm·ro——所以如果你把一个普通的电阻负载换成一个充当负载的*镜像*,你就在极小的面积里得到了一个巨大的等效ro,增益随之飙升。这就是为什么你会看到几乎每一个差分对和增益级的顶部都坐着一个电流镜:它身兼两职,既给这一级提供偏置,又充当一个高阻抗的有源负载——这种阻抗是一个无源电阻在不吃掉整块芯片的前提下永远做不到的。
基准与带隙
电流镜忠实地复制一个电流——可复制的是*什么*?每个镜像都需要一个原本:一个真正稳定的参考电流或电压。而深层的难题就在这里。那些显而易见的造基准方法全都会漂移。用一个电阻把电流系到电源上,电池一塌它就跟着动。依赖一个晶体管的阈值或一个电阻的阻值,这两者又都随温度游移。你需要一个几乎不在乎电源电压或温度的*真理*之源——一颗用来导航的不动之星。
那个著名的解法就是[[bandgap-reference|带隙基准]],它的思路很漂亮:用一种温度漂移去抵消另一种相反的温度漂移。任何硅芯片内部都有两个天然电压随温度朝相反方向移动。一个二极管(或晶体管)的基极-发射极电压会随发热而下降——把它叫做CTAT,即*与绝对温度互补*(Complementary To Absolute Temperature),大约以每°C下滑−2 mV。与此同时,两个跑在不同电流密度下的这类结之间的*差值*却随温度*上升*——把它叫做PTAT,即*与绝对温度成正比*(Proportional To Absolute Temperature)。单拿任何一个当基准都没用,因为各自都在漂。但若按恰到好处的比例把一个下降的电压加到一个上升的电压上,斜率就会互相抵消,留下一个几乎平坦的和。
* Bandgap: sum a falling (CTAT) and a rising (PTAT) term V_BG = V_BE + K * V_T * V_BE : base-emitter voltage, CTAT (~ -2 mV/degC) * V_T : thermal voltage kT/q, PTAT (~ +0.087 mV/degC) * K : scaling chosen so the two slopes cancel * Result: V_BG ~ 1.2 V, nearly flat over temperature
从那一个稳定的~1.2 V出发,其余的便水到渠成:把它压降在一个受控良好的电阻上,造出一个稳定的参考*电流*,然后让你的电流镜把那个电流复制、缩放到芯片上的每一个模块。带隙是那颗不动之星;电流镜则是把它的方位带到各处的舰队。
在PVT上的漂移
没有哪个基准是完美的,也没有哪个偏置能纹丝不动——因为硅本身就是一个移动的靶子。那三样跟你作对的东西打着同一面旗号:PVT——工艺(Process)、电压(Voltage)、温度(Temperature)。每一个模拟电路都必须能持续工作,不是在某个整齐的标称条件下,而是要在这三者全部、同时构成的整个包络范围内,持续工作好几年。
- 工艺(P):没有两片晶圆是完全相同的。阈值电压、电阻阻值、晶体管的强弱在不同批次之间、甚至在同一颗芯片内部都会漂移。晶圆厂会交给你一套角点模型(慢/典型/快,slow/typical/fast),而你必须验证你的偏置在它们全部之下都能存活——这正是为什么电流镜复制的是匹配器件之间的*比值*而非绝对值的最深层原因,因为比值能抵消掉大部分工艺离散。
- 电压(V):电源从来都不是恰好的标称值。电池会塌陷,稳压器会有纹波,相邻的电路还会把电源轨往上往下猛拽。一个好的基准和一个设计良好的电流镜必须即便在电源移动时也把它们的电流稳住——这被量化为电源抑制比(supply rejection)。
- 温度(T):一颗芯片可能要从冰冷的−40 °C一路工作到灼热的+125 °C。迁移率、阈值、结电压全都随热而滑移——这正是带隙存在的全部理由,也是为什么你要在整个温度范围内、而不只是在室温下,对每一个偏置做一遍合理性检查。
你真正抓住漂移的办法,是在仿真里把它扫一遍。你不会只在标称点跑一次.op——你会让工作点随温度(或电源)在其范围内一步步推进时被反复重解,并盯着你的参考电流和gm是否守得住。一条平直的线意味着偏置稳健;一条下垂或上扬的线则警告你,这电路到了现场某处就会乱来。
* Sweep the bias across temperature and watch the reference current .dc temp -40 125 5 ; step temperature, -40 to +125 C .print dc i(vmeas) ; reference/bias current vs. temperature * A good bandgap-derived bias stays nearly flat across this sweep