用晶体管的三种方式
一只 MOSFET 有三个你要关心的端子:栅极、漏极和源极。放大信号,就是从某个端子把信号送进去、再从另一个端子读出结果——而那个被你接到固定电压的*第三个*端子,决定了这种接法叫什么名字。把源极接地,就得到 common-source 放大器。把漏极接住(接到电源),就得到 common-drain,更常被叫作源极跟随器。把栅极接住,就得到 common-gate。同一只器件,三种活儿。
在它们能放大之前,晶体管必须先导通、并且工作在正确的区域。模拟电路活在饱和区(有源区),在这里漏电流几乎不随漏极电压变化,却对栅极反应强烈——正是这份灵敏给了你增益。把器件送进这个区域所需的那些稳定直流电流和电压,就是 工作点;下面每一个增益数字,都是用 小信号模型在这个点*附近*量出来的:把晶体管换成它那些微小的线性替身,再问:输入端抖一下,输出端会跟着抖多少。
* Bias a MOSFET and read its small-signal parameters M1 d g 0 0 nch W=10u L=0.5u Vgs g 0 0.8 Vds d 0 1.0 .op * solve the DC operating (bias) point .print gm gds * gm = transconductance, ro = 1/gds
共源:增益级
当你想要电压增益时,共源级就是你顺手抓来的主力。信号进栅极;源极坐在一个固定电压上(常常是地)。栅极抖动 +ΔV,会把漏电流抬高 gm·ΔV,而这股多出来的电流流过负载电阻,会把漏极电压往*下*拉。于是输入小升、输出大降——这一级既放大、又反相。
能放大多少?如果负载就是晶体管自己的输出电阻 ro(这是单只器件靠自身所能做到的极限),那么增益就是你那两个抓手的乘积:
Av (common-source) = -gm * ro * gm depends on how hard you bias it: gm = 2*Id / Vov ( Vov = Vgs - Vth, the overdrive ) * gm * ro is the device's 'intrinsic gain' — the ceiling * for one transistor, often ~20-40 dB in a modern process
源极跟随器:一个缓冲器
把同一只晶体管反过来接——信号进栅极,输出从源极取,漏极接电源——它就不再放大电压了。源极忠实地*跟随*栅极,稳稳地待在比栅极低一个大致恒定的 Vgs 的位置上。这就是 common-drain 级,几乎总是被叫作 源极跟随器。它的电压增益略小于 1。
它既然不放大,为什么还要做它?因为它是个缓冲器。想象一个大力士转述一句耳语:内容一字不改,但现在这句话足以推开一扇沉重的大门。源极跟随器对喂它信号的那一级只呈现很轻的负载(输入电阻高,栅极几乎不取电流),却给出大约 1/gm 的低输出电阻,因此能驱动那些会把 共源级压垮的沉重容性或低阻负载。你把它停放在某个高增益级之后,好让你接上下一模块时增益不会塌掉。
Av (source follower) = (gm*ro) / (1 + gm*ro) ~ 1 (a hair under unity) Rout (source follower) ~ 1 / gm (nice and low)
共栅
第三种接法把栅极钉死,把信号送进源极,再从漏极读输出。共栅级是这三个里的异类:它的输入电阻低(约 1/gm),而且不反相。往它的源极灌进电流,同样的电流就从漏极冒出来——它是个电流缓冲器,正是源极跟随器那个电压缓冲器的镜像。
单独使用共栅级并不常见,但它的行为是下一个想法的钥匙。它最突出的性质,是从漏极往*上*看时它所做的事:它让那里的电流变得格外不愿随电压改变。记住这一点——这正是 cascode 要扳动的那根杠杆。
Cascode:要增益,不要代价
难处在这里。单个共源级的增益上限就是 gm·ro。最直白的解法——往上再叠*第二*个放大级——确实管用,但每多一个增益级,就多带来它自己的噪声、多烧一份功耗,还多添一个极点,往后威胁稳定性。你想要的是更多增益,可不是多养一张嘴。
cascode 是个优雅的脱身之计。在你的共源管上面叠一只 common-gate 管。下面那只器件仍然干放大的活——仍然由它定 gm。但上面那只共栅器件充当一面盾牌:它把下管的漏极电压按得几乎纹丝不动,于是下管的 ro 不再把增益漏掉。实际效果是,cascode 把输出电阻大约乘上顶管自己的 gm·ro,而增益也跟着水涨船高。
single common-source: Av ~ gm1 * ro1
cascode (CG stacked on CS):
Rout ~ (gm2 * ro2) * ro1 ( boosted by ~gm2*ro2 )
Av ~ gm1 * (gm2 * ro2 * ro1)
~ (gm*ro)^2 ( roughly the square! )增益—带宽—摆幅的取舍
上面的每一个选择,都会同时拉扯三样东西:增益、带宽和输出摆幅。你几乎永远没法把三者一起做到最大——把一个推上去,另一个就垮下来。一个老练的模拟设计师,说穿了就是对该花哪一个有好直觉的人。
增益对带宽,是其中最有名的一对。对于一个驱动负载电容的级,低频增益和 −3 dB 带宽的乘积大致保持不变:这就是 增益带宽积。把增益猛拉上去,带宽就缩下来补偿;把带宽展宽,增益就跌下去。你是在一根定长的绳子上滑动一颗珠子,而不是把绳子拉长。
GBW ~ gm / (2*pi*CL) ( set mostly by gm and the load cap ) * trade along a near-constant GBW: * A0 = 100, BW = 1 MHz -> GBW = 100 MHz * A0 = 10, BW = 10 MHz -> GBW = 100 MHz (same string) .ac dec 100 1 1G * sweep frequency to see gain roll off
输出摆幅是第三个角,也正是 cascode 的账单到期的地方。你每叠一只晶体管,它都需要分走一段电压压在自己身上,才能留在饱和区,所以一个让你增益翻倍的 cascode,也同时削掉了输出在某只器件跌出它的舒适区之前所能摆动的幅度。在低电源电压下这很伤——这正是现代设计师要把 cascode 带来的增益和它耗掉的摆幅放在一起掂量、有时改用更聪明的技巧的原因。这件事没有放之四海皆准的正确答案;只有*针对你那份指标*的正确答案。