第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的压降。你看下图就明白了:
这个图里你能看到: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的关键差异
很多新手搞混这两种。我用一张表帮你理清:
| 特性 | CML | LVPECL |
|---|---|---|
| 共模电压(VCC=3.3V) | ≈ 2.9 V | ≈ 2.0 V |
| 差分摆幅 | 800 mV | 800 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共模,那就必须交流耦合+偏置。否则仿真漂亮,实物翻车。