4. 差分放大器:基本差分对结构,共模与差模响应,共模抑制比(CMRR)的优化,失调电压

差分放大器,说白了就是模拟IC设计的“心脏”。你去看任何一款高性能运放、比较器、ADC的输入级,十有八九都是差分对。为什么大家都爱用它?因为它天生就能抑制共模噪声,只放大我们想要的差模信号。这一章咱们就把差分对的底裤扒干净,看看它到底怎么工作,以及怎么把它做好。

4.1 基本差分对结构

最基本的差分对,就是两个完全对称的MOS管(M1和M2),源极连在一起,下面接一个尾电流源Iss。左右两边的负载也要对称——可以是电阻,也可以是电流镜。我习惯用电流镜做负载,因为面积小,还能把双端输出转成单端。

核心要点:差分对能工作的前提是“对称”。器件尺寸、版图布局、走线寄生,任何不对称都会把共模信号转成差模输出,直接拉低CMRR。

咱们先看直流传输特性。假设M1和M2都工作在饱和区,忽略沟道调制效应:

I_D1 = (1/2) * μn * Cox * (W/L) * (V_GS1 - V_TH)^2
I_D2 = (1/2) * μn * Cox * (W/L) * (V_GS2 - V_TH)^2
Iss = I_D1 + I_D2

当输入差模电压V_id = V_in1 - V_in2 = 0时,两管电流相等,各分一半Iss。随着V_id增大,M1电流增加,M2电流减小。直到某个极限,其中一个管子完全关断,另一个吃掉全部Iss。这个极限值就是差分对的“线性输入范围”。

参数 表达式 典型值(0.18μm工艺)
线性输入范围 ±√2 * (V_GS - V_TH) 约±200~400mV
跨导Gm gm1 = gm2 = √(μn*Cox*(W/L)*Iss) 几mS到几十mS
输出阻抗Rout ro1 || ro2(负载为电阻时) 几十kΩ到几百kΩ

我的经验:设计差分对时,我一般先定尾电流Iss,再根据需要的Gm反推(W/L)。Iss越大,Gm越大,但功耗和输入范围也会受影响。这是个三角权衡,没有免费的午餐。

4.2 共模响应与差模响应

差分放大器最妙的地方,就是它对共模信号和差模信号的反应完全不同。咱们分开看。

差模响应:输入信号一正一负,M1栅压上升,M2栅压下降。源节点(公共源端)的电压基本不变——因为一个管子电流增加,另一个减少,总和还是Iss。所以从差模角度看,源节点是“虚地”。差模增益就是:

A_dm = -gm * Rout

嗯,跟共源放大器差不多,但这里用了两个管子,增益翻倍?不对,仔细算一下:单边输出时,增益就是-gm*Rout;双端输出时,增益是-gm*Rout(对差模输入而言)。

共模响应:两个栅压同时升高,两管电流都想增加,但尾电流源Iss限制了总电流不能变。结果就是源节点电压跟着抬升,迫使V_GS基本不变。共模增益很小,主要取决于尾电流源的输出阻抗:

A_cm ≈ - (Rout) / (2 * R_ss)

这里R_ss是尾电流源的输出阻抗。R_ss越大,共模增益越小,CMRR越高。

注意:共模输入范围是有上限的。当输入共模电压太高,M1/M2会进入线性区;太低,尾电流源会压降不足而退出饱和。我曾经在一个项目中忽略了这一点,结果输入共模稍微偏高,整个放大器的增益直接掉了一半。查了两天才找到原因。

4.3 共模抑制比(CMRR)的优化

CMRR = |A_dm / A_cm|,单位dB。它衡量的是放大器“只放大差模、抑制共模”的能力。理想差分对的CMRR是无穷大,但现实中受限于两个因素:

  1. 尾电流源的输出阻抗不够高——这是最主要的限制
  2. 器件失配——M1/M2的阈值电压、尺寸、迁移率不完全相等

怎么优化?我总结了几个实战中有效的方法:

  • 用 cascode 尾电流源:把简单的单管电流源换成共源共栅结构,输出阻抗可以提升几十倍。CMRR轻松提高20dB以上。
  • 加大过驱动电压:尾电流管的V_DSAT大一些,输出阻抗也会更高。但代价是共模输入范围会缩小。
  • 版图匹配:M1和M2用共质心布局,周围加dummy管。阈值电压失配可以从5mV降到1mV以下。
  • 使用负反馈:在源节点加一个共模反馈环路,主动稳定共模电平。这在全差分运放里很常见。

避坑指南:我曾经设计过一个高速比较器,仿真时CMRR有90dB,流片回来实测只有60dB。后来发现是尾电流源的偏置电压走线太长,引入了IR drop,导致实际偏置点偏移。从那以后,我所有关键偏置都走星形连接,确保电流镜栅压一致。

下面这张图展示了差分对的核心结构以及共模/差模信号的路径:

基本差分对结构及信号路径 基本差分对结构及共模/差模路径 VDD R1 R2 M1 (W/L)₁ M2 (W/L)₂ S(虚地) Iss GND V_in1 (差模+) V_in2 (差模-) V_out1 V_out2 共模路径:V_in1=V_in2 → 源节点S上抬 差模信号:M1↑ M2↓,源节点S电压不变(虚地) 共模信号:M1↑ M2↑,源节点S电压上升,抑制电流变化

4.4 失调电压

理想差分对,输入为零时输出也为零。但现实中没有完美的对称。M1和M2的阈值电压V_TH、尺寸W/L、甚至迁移率μn都会有微小差异。这些差异会表现为一个“输入参考失调电压”——也就是说,你需要在输入端加一个小电压,才能让输出回到零。

失调电压的来源主要有两个:

  • 随机失调:由工艺波动引起,服从正态分布。典型值在1~10mV之间,取决于器件面积。面积越大,失配越小。
  • 系统失调:由设计不对称引起,比如负载电阻不匹配、电流镜复制比例不准。这个可以通过设计来消除。

输入参考失调电压的表达式:

V_OS ≈ ΔV_TH + (V_GS - V_TH) * (Δ(W/L) / (W/L))

你看,第一项是阈值电压失配,第二项是尺寸失配乘以过驱动电压。所以过驱动电压越小,尺寸失配的影响就越小。但过驱动电压太小,管子又容易进入亚阈值区,Gm会下降。

我的做法:在低失调设计中,我倾向于让差分对工作在弱反型区(亚阈值区)。虽然Gm/W效率高,但匹配性其实更好——因为亚阈值区的电流与V_GS呈指数关系,对V_TH失配更敏感?嗯,这听起来矛盾。实际上,弱反型区的Gm更大,同样的V_TH失配会产生更大的失调电流。所以低失调设计通常还是让管子工作在强反型区,用大尺寸来摊平随机波动。

失调电压的典型值可以参考下表:

工艺节点 差分对面积 典型V_OS (1σ) 适用场景
0.18μm 10μm² 5~8 mV 通用运放
0.18μm 100μm² 1.5~3 mV 精密运放
0.18μm 1000μm² 0.5~1 mV 高精度仪表放大器

注意:失调电压会随温度变化。ΔV_TH的温度系数大约在-1~-2 mV/°C。如果你设计的是车规级芯片(-40°C~150°C),光温度漂移就能吃掉好几个mV的裕量。我做过一个项目,常温下失调只有2mV,到125°C时变成了8mV,直接导致输出精度不达标。后来加了斩波稳零(chopper stabilization)才搞定。

总结一下这一章的核心:差分对靠对称性工作,CMRR取决于尾电流源阻抗和器件匹配,失调电压是面积和工艺的博弈。设计时别光盯着增益,CMRR和失调往往才是系统性能的瓶颈。