第3章 CML电平标准与电气特性

CML——电流模式逻辑,在高速接口里非常常见。我记得刚接触它时,总觉得这玩意儿跟LVPECL长得像,其实仔细看,完全是两码事。CML的核心思路就是:用固定的电流源,走差分对,靠流过电阻的压降来表示高低电平。说白了,它是个电流开关,不是电压开关。

3.1 CML的基本电平定义

先看最典型的共模电平和摆幅。标准CML的共模电压通常设定在VCC - 0.4V左右(前提是VCC=3.3V)。单端摆幅一般只有400 mV(峰-峰值);差分摆幅则是800 mV。为什么选这个值?

  • 摆幅小:开关速度更快,功耗也更低。
  • 共模固定:不需要像LVPECL那样抬到VCC-1.3V,对电源的依赖小一些。

我做过一个项目,板卡上同时跑了CML和LVPECL两个链路。当时没注意共模差得太多,结果直流耦合直接失效,信号眼图乱成一团。之后我才养成一个习惯:先确认双方共模是否匹配。

核心电参数(VCC=3.3V 典型):

  • 高电平(单端):约为 VCC – 0.2V
  • 低电平(单端):约为 VCC – 0.6V
  • 差分摆幅:800 mV
  • 共模电压:VCC – 0.4V(±0.1V)

3.2 输出结构与端接要求

CML输出级其实就是一个差分对加一个恒流源。电流源一般给16 mA,一路流过50 Ω电阻到地,就能产生400 mV的压降。你看下图就明白了:

CML 输出级 + 交流端接示意图 VCC R1=50Ω R2=50Ω Q1 Q2 16mA GND OUTP OUTN C 50Ω 到 GND 50 注意:交流耦合时接收端必须提供直流偏置,否则共模会塌掉

这个图里你能看到:Q1和Q2交替导通,电流要么走左边要么走右边。电流流过R1或R2就产生压降,输出电平就变了。

我个人习惯是把CML的输出端接直接做成片上50Ω到VCC,但有时候芯片没集成——那就必须板级并联50Ω到VCC。不然摆幅会变大,损伤接收器。

3.3 交流耦合 vs 直流耦合

CML对共模电压敏感。交流耦合很常见,因为CML输出共模(VCC-0.4V)和不少接收器输入共模不匹配(比如某些SERDES要求共模在0.8V)。加个电容隔掉直流,由接收端自己提供偏置。

耦合适用场景优点缺点
直流耦合电路简单,低频成分不丢失共模必须匹配,否则DC偏移烧收端
交流耦合共模容差大,可连接不同电平标准低频信息(如CDR的连续运行)可能丢失;电容占用面积

我在做一款25Gbps背板时,CML输出接了一个交流耦合电容,但接收端没有加偏置电阻,结果信号进接收器后共模掉到接近GND,眼图直接闭合。后来我补了上拉到0.8V的电阻,问题就解决了。

警告:交流耦合时,接收端必须提供直流偏置电阻(通常是上下拉形成分压)。如果收发两端都是CML,且共模相同,直流耦合其实更干净。

3.4 摆幅与功耗的权衡

CML的摆幅由电流源大小和负载电阻共同决定。标准16mA配50Ω得到400mV单端摆幅。如果想让摆幅更大,可以增大电流或增大电阻——但功耗也会跟着涨。

举个例子:

  • 16 mA × 50 Ω = 800 mV 差分 = 标准CML
  • 20 mA × 50 Ω = 1.0 V 差分 = 摆幅大但不标准,可能违反规格
  • 16 mA × 75 Ω = 1.2 V 差分 = 电阻太大,RC时间常数增加,速率受限

我有个教训:一次为了省电把电阻改成了40Ω,电流还是16mA——结果摆幅只有640mV差分,接收端灵敏度不够,链路误码率飙高。所以别随便调,先看规格书。

3.5 CML与LVPECL的关键差异

很多新手搞混这两种。我用一张表帮你理清:

特性CMLLVPECL
共模电压(VCC=3.3V)≈ 2.9 V≈ 2.0 V
差分摆幅800 mV800 mV ~ 1.1 V
输出结构电流源 + 上拉电阻射极跟随 + 偏置
端接方式50Ω到VCC(常用交流耦合)50Ω到VCC-2V(泰克网络)
功耗(每一个差分对)≈ 53 mW≈ 80 mW
典型速率3.125Gbps ~ 28Gbps+155Mbps ~ 10Gbps+

说白了,CML更快、更省电,但共模高;LVPECL历史悠久,兼容性好,但功耗更大。选哪个?看你走多高速、接收端是什么。

一句话总结:

CML是电流开关,LVPECL是电压开关。端接不对,信号就毁了。

3.6 仿真时需注意的电气参数

用仿真软件(比如ADS、HyperLynx)做CML链路时,这几个参数必须设对:

  • VCC:3.0V~3.6V,典型3.3V
  • 电流源模型:不要用理想电流源,用IBIS模型里的I/V曲线
  • 封装寄生:CML在GHz频段,封装L 0.5nH就影响阻抗
  • AC耦合电容:100nF~1μF即可,但ESR和ESL必须小

我曾经在一个仿真里偷懒,用了理想电流源,结果眼图张开1.2UI,实际上板后只有0.7UI。从此以后我只用IBIS模型,省事但准确。

仿真前先检查共模电压。如果CML输出是3.3V共模,接收端要求1.2V共模,那就必须交流耦合+偏置。否则仿真漂亮,实物翻车。