从gm/Id设计方法学看亚阈值区MOS管的低功耗优化 1. 亚阈值区MOS管的特殊魅力第一次接触亚阈值区设计时我盯着仿真曲线看了整整三天。那是在做一个可穿戴设备的超低功耗放大器传统设计方法怎么都达不到功耗指标。直到导师指着仿真器里那条不起眼的曲线说试试让MOS管工作在关断边缘。亚阈值区Sub-threshold region指的是MOS管栅极电压低于阈值电压Vth时的特殊工作状态。这时候沟道还没完全形成但已经有微弱的电流流过。就像水龙头没完全拧开时依然会有水滴渗出。这个区域的特性非常有趣电流指数级变化漏极电流Id与栅源电压Vgs呈指数关系类似双极型晶体管超高跨导效率gm/Id值可以达到20-30V⁻¹是饱和区的5倍以上超低工作电压Vgs可以低至200-300mV大幅降低功耗但硬币的另一面是速度受限由于电流小充放电速度慢工艺敏感阈值电压波动会显著影响电路性能面积代价需要更大的W/L比来获得足够驱动能力2. gm/Id设计方法学入门2.1 为什么选择gm/Id五年前我第一次看到gm/Id方法时觉得这不过是学术界的又一种理论游戏。直到亲手用它设计出一个功耗只有传统方法1/10的振荡器才真正体会到这种方法的威力。gm/Id跨导与电流的比值本质上衡量的是MOS管电流转换成放大能力的效率。就像汽车的每升油能跑多少公里这个值越高说明晶体管的能量利用效率越好。在亚阈值区这个值能达到惊人的高度。具体操作时我们会先仿真生成一组gm/Id曲线族# 示例生成NMOS的gm/Id曲线 import numpy as np import matplotlib.pyplot as plt Vgs np.linspace(0.2, 0.6, 100) # 亚阈值区典型电压范围 Id 1e-9 * np.exp((Vgs-0.4)/0.026) # 简化模型 gm Id / 0.026 # 亚阈值区跨导 gm_over_Id gm / Id plt.plot(Vgs, gm_over_Id) plt.xlabel(Vgs (V)) plt.ylabel(gm/Id (V^-1)) plt.title(亚阈值区gm/Id特性) plt.show()2.2 曲线族的实际应用拿到曲线族后设计流程就变得非常直观确定目标gm/Id值根据噪声、增益等需求选择合适的工作点查找对应Vgs从曲线找到实现该gm/Id所需的栅极电压计算W/L尺寸根据目标电流Id和工艺参数反推器件尺寸比如需要设计一个输入噪声1μV的放大器先确定需要gm/Id25V⁻¹查曲线得Vgs≈0.35V根据Id100nA要求计算得W/L≈50/0.183. 低功耗设计实战技巧3.1 偏置点的艺术去年设计生物传感器前端时我花了两个月调试偏置点。最终发现Vgs0.42V时系统在功耗和噪声间达到了完美平衡。这个经验让我深刻理解到黄金电压区间0.3-0.5V通常是亚阈值区的最佳工作窗口温度补偿必做阈值电压每摄氏度变化约1mV必须考虑工艺角分析FF/SS/TT都要仿真特别是对低电压电路一个实用的偏置电路设计// 亚阈值基准电流源 module subth_ref ( output ref_current ); parameter W10u, L0.18u; wire n1, n2; // 自偏置结构 nmos #(W,L) M1(n1, n1, 0); nmos #(W,L) M2(n2, n1, 0); pmos #(W,L) M3(n1, n1, vdd); pmos #(W,L) M4(ref_current, n2, vdd); endmodule3.2 尺寸优化的陷阱曾经有个项目因为盲目追求大W/L比导致芯片面积超标。后来发现可以通过级联技术用多级小尺寸器件替代单级大尺寸动态偏置工作时才开启大电流通路衬底偏置调节VSB来优化性能关键尺寸计算公式 [ W/L \frac{2I_D}{\mu_nC_{ox}(nV_T)^2}e^{(V_{GS}-V_{th})/nV_T} ] 其中n≈1.5是亚阈值斜率因子VT≈26mV是热电压。4. 性能折衷的智慧4.1 噪声与功耗的舞蹈在设计心电图检测前端时我制作了这张对比表指标传统饱和区亚阈值区优化功耗500μW50μW输入噪声2μV/√Hz1.5μV/√Hz增益带宽积100MHz10MHz面积1X1.8X可以看到亚阈值区在噪声和功耗上有明显优势但牺牲了速度和面积。实际设计中需要分模块处理对噪声敏感模块用亚阈值区高速通路用饱和区动态调节根据工作模式切换偏置点工艺协同与代工厂沟通优化器件模型4.2 仿真验证要点每次tapeout前我都会做这组必查仿真DC扫描确认工作点在亚阈值区蒙特卡洛检查工艺波动影响温度扫描-40℃到125℃全范围验证噪声分析特别注意1/f噪声特性一个完整的仿真脚本示例# Cadence Spectre仿真设置 simulator( spectre ) design( amplifier ) modelFile( (/path/to/pdk/models.scs) ) # 关键参数扫描 desVar( VGS 0.4 ) desVar( L 0.18u ) paramAnalysis( VGS ?start 0.3 ?stop 0.5 ?step 0.01 L ?values [0.18u 0.22u 0.28u] ) # 性能指标提取 save M0:all print gm gm(M0) Id id(M0) gm/Id gm(M0)/id(M0)5. 进阶设计思路5.1 新型亚阈值结构最近尝试的几种有趣拓扑衬底驱动放大器利用衬底作为输入端浮栅结构实现超低电压存储负反馈偏置自动补偿工艺波动5.2 混合信号设计在ADC前端设计中我这样组合使用采样保持用亚阈值区降低开关功耗比较器用饱和区保证速度基准源用亚阈值实现低温漂一个实测数据12位SAR ADC采样率100kS/s总功耗8μW传统设计约80μWENOB保持11.5位6. 设计检查清单每次完成设计后我都会核对这份清单[ ] gm/Id值是否在目标范围内通常20-30[ ] 所有工艺角下Vgs是否仍在亚阈值区[ ] 1/f噪声是否满足要求[ ] 电源电压波动±10%时能否正常工作[ ] 温度系数是否可控[ ] 启动电路能否可靠建立工作点7. 常见坑点实录仿真器设置有些仿真器默认会忽略亚阈值区需要打开详细模型版图匹配亚阈值电路对器件匹配要求极高测试难题微电流测量需要屏蔽好环境干扰ESD保护传统IO电路可能使亚阈值器件失效记得第一次流片回来测试时发现电流比仿真大了10倍。排查三天才发现是测试板的接地不良导致。现在我的工作台上永远备着低噪声电源法拉第笼皮安级电流探头温度可控测试座