最近接了个40nm工艺的低功耗模拟前端项目,一个共源共栅运放卡了快两周。按教科书上的平方律公式手算宽长比,放进Spectre里一仿,增益和带宽全不在设计点上——短沟道效应把传统手算的底裤都掀了。后来换了思路,用gm/ID这套设计方法重新走了一遍:先从工艺模型里提出特征曲线,再拿曲线族反推每个管子的工作区和尺寸,前仿基本一次收敛,后仿也没出大的幺蛾子。这篇文章就是把这段从"理论曲线到电路优化"的完整过程整理出来,重点讲清楚几个关键步骤怎么落地、曲线怎么读、尺寸怎么查、验证怎么闭环,适合正在用模拟IC设计但被先进工艺节点折磨的工程师,也适合刚入行想建立一套系统设计方法的学生。
1. 为什么短沟道工艺让传统手算越来越靠不住
1.1 平方律模型的美好时代已经过去了
长沟道工艺下,MOS管的I-V特性可以用平方律公式描述得八九不离十:
ID = (1/2)·μnCox·(W/L)·(VGS - Vth)²
跨导gm直接对Vov求导得到gm = μnCox·(W/L)·Vov,再代入电流,得出gm/ID = 2/Vov。这套东西在工艺线宽大于0.35μm的时候非常好使,手算结果和仿真误差一般能控制在10%以内。
但到了90nm以下,问题全来了。速度饱和、沟道长度调制、DIBL、衬底电流效应、量子效应这些东西叠加在一起,平方律公式的自由度完全不够用。同一颗管子在窄沟道和宽沟道下的阈值电压都不一样,Vth随VDS漂移的幅度能达到几十毫伏。这时候你再用平方律手算,算出来的gm和实际仿真值差个30%到50%都很常见。更麻烦的是,手算逻辑会让设计师产生一种"参数可预测"的错觉,结果一上仿真就发现全要推翻重来。
1.2 gm/ID方法在解决什么问题
gm/ID方法的基本思想很朴素:不要再从模型公式出发去"推导"器件的电学特性,而是直接从仿真器给出的真实器件特性出发,把跨导效率(gm/ID)作为核心坐标,去组织整个设计空间。
跨导效率这个参数有明确的物理意义:它表示单位漏电流能换取多少跨导。因为gm是模拟电路里最"值钱"的量——它决定带宽、决定增益、决定噪声性能,而功耗又恰恰是现代设计的硬约束。所以gm/ID本质上回答了一个工程问题:给定电流预算,我能从这个尺寸的管子里榨出多少性能?
配合电流密度ID/W、特征频率fT、本征增益gm·ro这三个量,gm/ID把器件的工作区、速度、增益、面积四件事全部串到了一张图上,这就是"理论曲线"的由来。
1.3 方法落地前必须认识的四个设计参数
真正用gm/ID方法时,我建议先把下面这张表刻在脑子里。四个参数缺一个都不完整。
| 参数 | 定义 | 物理含义 | 在设计中管什么 |
|---|---|---|---|
| gm/ID | 跨导除以漏电流 | 把电流转化为跨导的效率 | 决定偏置点和电流利用率 |
| ID/W | 电流密度 | 单位栅宽下流过的电流 | 决定所需栅宽W和面积 |
| fT | 特征频率 | 电流增益下降为1的频率 | 决定该尺寸能达到的速度上限 |
| gm·ro | 本征增益 | 跨导乘以输出电阻 | 决定单管能实现的最高增益 |
这里有个很容易忽略的细节:gm/ID和ID/W并不是独立的两个变量,对同一个L值来说,它们是一根曲线上的两个坐标——一个管子的工作点一旦确定,这两个值就被绑定在一起了。后面查表计算的时候,你经常会为"到底选更小电流密度还是更大跨导效率"纠结,其实纠结的对象就是同一条曲线上不同点的取舍。
2. gm/ID曲线的物理含义与使用边界
2.1 两个极限:弱反型天花板和强反型的2/Vov近似
理解gm/ID曲线,先看两个极限点就好办。
在弱反型区(VGS远小于Vth),器件行为类似双极型晶体管,ID随VGS指数上升,跨导效率趋近一个由亚阈值斜率决定的天花板:
(gm/ID)max ≈ 1/(n·kT/q)
室温下kT/q约等于26mV,n是亚阈值斜率因子,一般在1.3到1.7之间,所以这个天花板通常在20~30 V⁻¹这个区间。这是物理极限,不管你换什么尺寸都超不过去。
在强反型区(Vov较大),长沟道近似下gm/ID≈2/Vov,Vov=100mV时对应20 V⁻¹,Vov=200mV时对应10 V⁻¹。沟道长度越短,因为速度饱和等因素,实际曲线的斜率会比2/Vov更平缓一些,但趋势是一致的。
明白了这两个极限,再去看曲线就不会觉得玄乎:gm/ID值越大,说明管子的工作点越靠近弱反型区;gm/ID值越小,越往深强反型区走。绝大多数实用工作点落在5到25 V⁻¹这个区间,对应从弱反型到中等强反型的一段连续光谱。
2.2 一条曲线没有用,曲线族才是查表工具
很多人第一次接触gm/ID方法时会问:不就一张gm/ID对ID/W的曲线吗?拿它怎么设计?
问题恰恰就出在这个"一张曲线"上。单独一条曲线是在某个固定沟长L下画出来的,它只描述了那个特定L下的器件行为。而模拟电路设计里,L本身就是一个需要工程师主动决策的自由变量——长沟道提供高增益和高匹配,短沟道提供高速度和低面积。
所以真正有价值的,是以L为参数的一族曲线。你在同一张图上画L=0.13μm、0.18μm、0.35μm、0.5μm、1μm、2μm对应的gm/ID-ID/W曲线,每条曲线形状不同。画出来之后你会发现几条规律:
- 相同gm/ID值下,L越短,ID/W越大,意味着用更小的面积就能灌入同样的电流;
- 相同gm/ID值下,L越短,fT越高,速度越快;
- 相同gm/ID值下,L越短,本征增益gm·ro越小,因为短沟道ro掉得厉害。
这就是"曲线族"这个说法的完整含义。设计时你不是拿一个固定点查表,而是在多个L候选之间做权衡。
2.3 Vov与反型系数:到底是表亲还是干扰项
很多教材喜欢用Vov = VGS - Vth来划分工作区,然后又有人引入反型系数IC来统一描述。这些概念本身没有问题,但在gm/ID设计方法里,它们顶多算表亲关系,不建议作为主坐标来用。
原因很直接:Vov和IC都是基于模型公式做出来的"解释性指标",而gm/ID是直接从仿真器里量出来的"实测性指标"。先进工艺下Vth本身就难以精确定义,提取方式不同,Vov能差出几十毫伏,而gm/ID曲线只要仿真设置正确,出来的结果就是确定的。
所以我的建议是:工作区划分直接用gm/ID的数值区间就好。弱反型大致对应gm/ID>20,中等反型对应10~20,强反型对应<10。如果你需要和文献中的反型系数IC对应,再去做换算,不要反过来让IC成为设计主变量。
2.4 跨导效率并非越高越好:设计空间是三维的
gm/ID值越大,看似越"划算"——同样的电流,单位跨导更高。但别忽略另外两个维度:ID/W和fT。
如果你想在弱反型拿到gm/ID=25,那代价是电流密度ID/W可能只有0.1~0.5 μA/μm,要流过100μA就得画200~1000μm的栅宽,面积大不说,栅电容Cgg也大,fT直接被拖到几百MHz,带宽要求稍高一点就满足不了。
所以gm/ID方法的设计空间从来不是一维的"越大越好",而是一个三维权衡:跨导效率决定电流利用率,电流密度决定面积,特征频率决定速度上限。具体怎么权衡,就看你的spec逼迫你在哪个维度上让步。
3. 搭建自己的gm/ID特征提取环境:仿真设置与脚本
3.1 测试bench的结构选择与仿真参数设置
提取gm/ID特征曲线的测试电路非常常规:一个NMOS管,栅极接电压源VGS,漏极接电压源VDS,源极和衬底接地。目的只有一个——让管子工作在你关心的偏置状态下,然后扫描VGS获取完整的I-V数据。
关键设置在于三点。
第一,VDS必须固定在一个贴近实际使用的值。如果产品工作电压是1.2V,而你手头的运放里管子典型VDS在0.6V附近,那提取曲线时VDS就设0.6V,不要图省事设一个统一的VDD。VDS对短沟道器件的阈值和输出电阻影响很大,VDS设错了,查表结果全盘出错。
第二,VGS扫描范围要覆盖从亚阈区到强反型的完整区间,一般从0扫到VDD。步长选择5~10mV即可,太粗会让后面的ID/W曲线出现折角,太细浪费仿真时间。
第三,W的取值建议固定在一个单位宽度,比如10μm。不要用最终设计可能用到的实际大宽度去提取,因为大宽度管子本身的版图寄生会让曲线带上"伪特征",干扰你对本征特性的判断。
3.2 用Ocean脚本批量提取CSV的操作流程
Cadence环境下,我用的是Ocean脚本批量仿真加导出。下面这个脚本的思路是:参数化扫描L,对每个L跑一次DC扫描,然后把gm/ID、ID/W、fT、gm·ro四条曲线一次性打出来。把L作为变量时,我会把W固定为单位宽度10μm,然后分别扫L=0.13u、0.18u、0.35u、0.5u、1u、2u。
simulator( 'spectre ) design( "/home/user/gmid_char_lib/gmid_char_schematic" ) modelFile( '("/foundry/models/xxx.scs" "tt") ) analysis( 'dc ?param "vgs" ?start "0" ?stop "1.2" ?step "0.005" ) desVar( "lvds" 0.6 ) desVar( "lw" 10u ) desVar( "ll" 0.18u ) paramAnalysis( "ll" ?values '(0.13u 0.18u 0.35u 0.5u 1u 2u) ) paramRun() let( ( out gmid idw fT gdsgain) out = outfile( "gmid_char_nmos.csv" "w" ) fprintf( out "l, vgs, gmid, idw, ft, gmro\n" ) ; 遍历每个L值,提取DC工作点数据 foreach( lVal '(0.13u 0.18u 0.35u 0.5u 1u 2u) ; 重新加载对应L的结果 ... ) close( out ) )实际工程中很多人不用手写这个循环,直接在ADE XL里把gm/ID、id/w、ft、gm·ro设成output表达式,勾选L作为sweep变量,跑完再Export成CSV。这种方式更直观,适合不习惯写Skill脚本的同事。脚本方式的好处是可重复、可入库,下次换工艺角/换温度,一条命令全部重新生成。
3.3 提取曲线时最容易踩的三个坑
第一个坑:衬底接错了。因为gm/ID曲线对衬底偏置非常敏感,衬底和源极的接法必须和最终使用时保持一致。NMOS的源和衬底有没有接在一起,直接决定了体效应在曲线里的表现。我见过有人在提取曲线时把衬底接地,而实际电路里源极电位不为0,结果查表算出来的gm明显偏大,设计出来管子尺寸全偏。
第二个坑:只提取典型工艺角。gm/ID曲线在tt corner下提取完就不管了,等到签核才发现ss corner下电流掉了30%。正确的做法是至少把tt、ss、ff三个角的曲线都提出来,设计关键路径时用ss角查速度,用ff角查功耗和稳定性。
第三个坑:忽略了温度。模拟前端芯片一般要覆盖-40到125摄氏度的工业级温度范围。阈值电压随温度漂移,亚阈值斜率也随温度变化,所以gm/ID曲线在高温和低温下的差异非常明显。温度相关的曲线建议至少提取-40、27、125三个点,并且在整个设计过程中保持"设计温度"和"验收温度"的一致性。
4. 从spec到W/L:一整套查表计算流程
4.1 先把性能指标翻译成gm和电流预算
拿到一组电路指标,第一件事不是打开曲线图查W,而是把spec里面的GBW、SR、噪声这些性能参数翻译成晶体管层面必须达成的gm和电流。
以最简单的一个单极点运放为例,主极点由输出端电容CL和输出跨导gm决定:
GBW = gm / (2π·CL)
所以给定GBW和CL,gm就立刻确定了。这里的gm是运放输入对管的等效跨导,对于差分输入对,有效gm就等于单边输入管的gm(两端输入时增益翻倍但GBW公式里的gm仍按单管算,这里不再展开,反正先锁定gm的量级)。
再看压摆率SR,它对应的是尾电流源能提供的最大充放电电流:
SR = I_tail / CL
把GBW和SR两个式子联立起来,立刻得到一个非常有用的不等式:
gm/I_tail = 2π·GBW / SR
这个式子的左端,就是你的尾电流从总电流里分出来以后,输入管实际需要达到的跨导效率下限。它不直接等于gm/ID,但给了你一个非常硬性的约束:如果GBW=300MHz、SR=200V/μs,那么gm/I_tail的下限大约是9.4 V⁻¹。再根据输入对管每个管子分到的电流占比,就能换算出单管gm/(ID/2)的目标范围。
4.2 查表定尺寸的完整算例(带数字)
拿一个具体例子走一遍完整流程。假设有一个NMOS输入的两级运放,设计指标如下:
- 负载电容CL = 2pF
- 单位增益带宽GBW = 200MHz
- 压摆率SR = 150V/μs
- 总电流预算I_total = 300μA
- 输出级电流I_output = 150μA,输入级尾电流I_tail = 100μA
- 工艺为0.18μm CMOS,工作电压1.8V,VDS设置为0.6V
第一步,由GBW算出需要的gm:
gm = 2π·GBW·CL = 2π×200MHz×2pF ≈ 2.51mS
第二步,算输入管需要的gm/ID。输入差分对的两个管子各分到尾电流I_tail的一半,即每管50μA:
gm/ID = 2.51mS / 50μA ≈ 50 V⁻¹
50 V⁻¹这个值已经超出了弱反型物理极限,说明这个spec在当前的电流预算下无法满足。要么增加尾电流,要么降低GBW,要么改变电路拓扑。假设我们把输入级尾电流提高到250μA,总电流预算也放宽到450μA,重新算:
gm/ID = 2.51mS / 125μA ≈ 20 V⁻¹
落在弱反型和中等反型的交界处,物理上可实现。
第三步,打开提取好的gm/ID曲线族(VDS=0.6V,tt corner),找L=0.35μm的曲线,在gm/ID=20的点上读出:
- ID/W = 1.8 μA/μm
- fT = 1.2 GHz
- gm·ro = 40
第四步,反推W:
W = I_D / (ID/W) = 125μA / 1.8μA/μm ≈ 69.4μm
这个宽度对输入对来说偏大,但还在可接受范围。如果不满意,可以回头选L=0.18μm的曲线,在同gm/ID=20处,ID/W可能到5μA/μm,fT更高,W只需要25μm,但gm·ro会掉到15左右。
4.3 为什么同一张曲线能同时解决面积与速度的权衡
上面这个例子里有一个值得注意的地方:L的选择为什么会同时影响W、fT和gm·ro?因为gm/ID-曲线族天然把短沟道效应的后果压缩进了每一根曲线的形态差异里。
沟道缩短,阈值电压降低,DIBL效应增强,同样VGS下电流密度更大,所以ID/W上移;沟道缩短,载流子渡越时间缩短,本征速度提升,所以fT上移;沟道缩短,输出电阻rds下降,所以gm·ro下滑。这三组变化方向是一致的,但你需要判断哪一个约束在当前的spec里更致命。
我的习惯是画一个"要害矩阵":如果面积是最大约束(比如pad-limited的IO电路),优先选短沟道;如果增益是最大约束(比如高精度放大器第一级),优先选长沟道。fT和gm·ro具体选在哪里,通过曲线上的交叉点来决定。
4.4 验证环节:ft、Cgs、增益裕度和匹配的复核
尺寸算完不等于设计结束。查表查出来的W/L只是一个初始工作点,一定要回到电路里去验证四件事:
第一,fT是否高于实际工作带宽足够多。经验上fT至少要大于GBW的5倍,否则输入管的栅电容Cgs会吃掉反馈网络的相位裕度。0.18μm工艺下,如果你的GBW做到200MHz,输入管fT最好在1GHz以上,前面例子里L=0.35μm的1.2GHz刚好压线。
第二,Cgs对极点位置的影响。W越大Cgs越大,它会和信号源内阻或前级输出电阻形成次极点。验证的方法是看闭环AC仿真的相位裕度,不够就回头缩小W或改用Cascode结构。
第三,输入管的匹配性。差分对的失配主要来自Vth失配和β失配,在小Vov下这两项都会被放大。所以输入对一般不会选择特别深的弱反型。用前面那个例子,gm/ID=20对应的Vov大约在60~80mV,匹配尚可;如果被迫选到25以上,就要考虑加大面积来做匹配补偿。
第四,全工艺角和温度下的验证。tt corner查表定的尺寸,要回到ss和ff corner下重新跑关键指标,确认GBW和SR没有大幅滑出spec。这一步不能省,因为曲线族属于典型值,最终的电路必须能在所有corner下工作。
5. 电路级优化的关键决策点
5.1 反型区的选择:功耗、速度、噪声、失配的三角关系
gm/ID方法落到实际电路以后,最关键的决策其实就是给每个管子选一个工作区。我用下面这张表来帮助决策:
| 工作区 | gm/ID典型范围 | 优点 | 代价 | 典型用途 |
|---|---|---|---|---|
| 深弱反型 | >25 | 相同电流下gm最大,功耗最低 | ID/W小导致面积大、fT低,失配差 | 超低功耗偏置管、极低带宽前端 |
| 中等反型 | 10~20 | 功耗、速度、匹配取得较好折中 | 各项性能都不是最优 | 绝大多数运放输入对、负载管 |
| 强反型 | 5~10 | 面积小、fT高、失配好 | 相同电流下gm低,需要更大电流 | 高速比较器输入级、射频驱动级 |
这个表本质上反映了模拟设计里永恒的三角:功耗、速度、精度。你把电流卡死,速度就上不去;你把面积卡死,匹配就变差。gm/ID曲线让人能在一个定量框架下讨论这些权衡,而不是纯靠经验拍脑袋。
5.2 输入管与负载管的差异化设计
全电路用一个gm/ID值是个新手常见错误。实际上,运放里输入管和负载管的角色完全不同,设计目标甚至是对立的。
输入管的核心任务是提供高跨导,好把输入电压信号高效地变成电流信号,因此gm/ID希望取大,让管子工作在偏弱反型的一端。负载管的核心任务一是提供高阻抗(如果做高增益),二是保证输出摆幅,所以负载管的gm/ID反而希望适中,太弱的反型会让它的输出电阻降低,太强的反型又会吃掉电压裕度。
在一个简单的五管OTA里,我通常的做法是:输入管gm/ID取15~18,负载管gm/ID取8~12,尾电流源gm/ID取6~8(它需要稳定的电流源特性,不希望Vov太小)。三个管子在一条电流链上工作,但各自处在曲线上的不同位置,这才能让整个电路的性能落在一个较优的组合上。
5.3 尾电流源和偏置电路的gm/ID定位
尾电流源是整个电路里"最不需要性能"的管子,它的唯一任务是稳住电流。所以对它的第一要求不是gm大,而是输出电阻高——电流源的抖动越小越好。
因此尾电流源和偏置管通常选择较长的沟道长度,比如L=1μm以上,工作点放在强反型区或中等偏强区,gm/ID取6~10。这样做的好处是两个:一是长沟道让沟长调制效应变弱,输出电阻上去了;二是Vov足够大,使得工艺偏差和温度漂移对电流的扰动相对变小。
偏置电流镜里还会有一个容易被忽略的点:镜像管的VDS不一致会导致镜像误差,因为在短沟道下λ效应太明显了。所以偏置管的L不能太短,同时要把它们的VDS设计得尽量接近目标支路的VDS。用gm/ID曲线选偏置管尺寸时,我一般会额外留出VDS裕量,宁可Vov大一点,也不要让管子进入三极管区。
5.4 Cascode结构下的偏置点设定
刚才这些决策方法叠加到Cascode结构上,会多一层约束:上下两个管子必须共同分配VDS电压。
经典的Cascode结构里,共源管(放大管)承担信号的放大,希望gm/ID偏大以提供高跨导;共栅管(Cascode管)提供输出阻抗抬升,更关心它自己的工作点是否稳定,不要求太大gm/ID。用gm/ID曲线定位时,这两个管子通常落在不同的曲线上。
具体做法是:先根据输出摆幅确定两个管的VDS分配,比如电源1.8V,输出共模1.0V附近,那么共源管VDS设0.4V,共栅管VDS设0.6V,各自用对应的VDS提曲线。这正好呼应了第3节里说的:曲线提取时的VDS必须和实际电路一致。如果你用同一个VDS曲线去查两个VDS不同的管子,结果肯定会偏差。
这种"上管看输出电阻、下管看跨导效率"的分工,其实在瓦尔斯曼/共源共栅功率放大级里也完全适用——大信号摆动下的管子不能进去三极管区,所以偏置时都要留足VDS裕量,再配合gm/ID曲线去选尺寸。
6. 工程化落地:错误案例与检查清单
6.1 三个典型翻车现场
先讲我第一次用gm/ID方法时的翻车案例。当时做一个高速比较器输入对,查曲线选了L=0.13μm、gm/ID=22的工作点,自认为弱反型高跨导效率很理想。结果后仿速度完全不够,一查原因:L=0.13μm在弱反型区的ID/W太低,为了承载设计电流W画到了80μm,Cgs巨大,把前级的驱动能力直接拖垮了。这个教训让我记到现在:曲线族里看到fT这一项时必须同时看ID/W,两者对W的约束方向相反。
第二个案例是同事画的一个电流镜。他直接从典型曲线选了L=0.35μm的管子,结果ss corner下电流比设计值低了25%。后来用ss角的曲线重新算了一遍,发现弱反型区电流对阈值电压漂移极度敏感,必须把镜像管的Vov设计到150mV以上才能把corner漂移控制在可接受范围。
第三个案例和版图有关。我在原理图里定了W=40μm的管子,没注意M数怎么拆,版图工程师把它画成4根10μm的finger,结果Dummy不全导致匹配比预期差很多。这件事以后,我在设计文档里一定会把"M数、Finger数、Dummy要求"三件事写清楚,因为gm/ID查表给出的是总W,落到版图上还需要拆成多个并联子单元。
6.2 Corner与温度敏感性在哪个工作区最明显
用gm/ID方法久了你会发现一个规律:弱反型区对工艺角和温度最敏感。原因是弱反型区的电流和Vth呈指数关系,Vth只要漂移30mV,电流就可能变化20%以上。强反型区电流和Vov呈平方关系,Vov本身又受Vth漂移影响,但敏感度比指数关系低一个量级。
所以对于必须穿越多个corner的电路,我的建议是:主信号通路的管子尽量避开深弱反型区,gm/ID不要超过20;只有在那些电流精度要求不高的分支上,才允许为了省功耗把工作点压到更弱的反型区。
温度的影响不完全和corner一致。对称性较好的差分结构,温度漂移会在共模上抵消掉一大部分,但电流源的绝对电流仍然会随温度明显变化。极端温度下建议回看一次ss和ff组合的曲线,而不是只在tt上做设计。
6.3 从曲线到版图的连接:W拆分、M数、匹配结构
查表计算出来的W是总栅宽,到了版图阶段要拆分成实际的可布图形。拆分的核心原则是:
- 一个finger的宽度不要超过5~10μm,否则栅电阻会显著增加,高频性能变差;
- 需要匹配的管子,M数拆法必须一致,而且周围要加Dummy管,保持刻蚀环境一致;
- 大W管子的衬底接触要均匀分布,避免衬底电阻导致局部阈值电压不一致。
举个例子,前面算出来的输入对W=69.4μm,可以拆成8根finger,每根8.7μm的酒桶状结构,匹配时再给每边各加一个Dummy finger。Dummy管的栅和源漏接法也有讲究,一般接到固定电位,保证它不影响主信号路径。
6.4 我留在设计文档里的四行检查清单
最后分享一个我现在每个项目都会留在设计文档里的检查清单,全部是踩坑踩出来的经验:
- 每个管子的gm/ID目标值、L、W是否已标注在原理图注释里,且与查表曲线对应;
- 曲线提取时的VDS、corner、温度是否与电路实际工作条件一致;
- 输入对和电流镜的M数拆分、Dummy策略是否已写清楚并同步给版图;
- 是否至少用了tt-27C、ss-125C、ff--40C三组条件做过关键指标复核。
每次流片回来的测试数据和这套检查清单对照,都能快速定位问题设计环节。gm/ID方法不是万能的,但它把"器件特性——尺寸选择——性能验证"这条链路变成了可审计、可复用的流程。综合多年经验和多次流片测试结果,这套方法在短沟道工艺下的稳定性和可移植性都远超传统手算,值得花时间真正建立起来。