做高速数字芯片设计,避不开差分信号接口。LVPECL 和 CML 就是两个老熟人。我最早接触它们是在一个 10G SerDes 项目中,当时被共模电压搞得焦头烂额——LVPECL 的直流电平比 CML 高了将近 0.6V,直接连上去信号眼图都睁不开。

今天咱们就好好聊聊这两个接口:它们是什么、怎么区分、时序约束要注意什么。

1. LVPECL 与 CML 概述

1.1 从高速接口说起

差分信号是高速传输的老祖宗。两根线互为反相,抗共模噪声、电磁辐射小,还能兼容很低的电压摆幅。在 1 Gbps 以上的数据链路里,差分接口几乎是唯一选择。

LVPECL(Low-Voltage Positive Emitter-Coupled Logic)和 CML(Current-Mode Logic)就是差分家族里最常见的两种。它们都诞生于上世纪 90 年代,但到今天还在大量使用——从 FPGA 的参考时钟输入,到 SerDes 的高速数据线,你总能看到它们的身影。

1.2 LVPECL——低压正发射极耦合逻辑

说白了,LVPECL 是经典 ECL 的低电压版本。它靠三极管差分对里的电流切换来产生输出。

  • 输出摆幅:典型值 700 mV(峰-峰差分),比 CML 大一倍。
  • 共模电压:约 VCC − 1.3 V。假设 VCC = 3.3 V,共模点大约 2.0 V。
  • 功耗:偏高。因为发射极电阻始终有电流,而且摆幅大,驱动级功耗大。
  • 输出结构:内部是射极跟随器,无需外接上拉电阻,但通常要求 50 Ω 到 VCC − 2 V 的端接。
  • 典型应用:时钟分配、背板信号、高速 ADC/DAC 数据接口。

我记得有个项目,客户要求用 LVPECL 时钟驱动 CML 的 SerDes。我没做电平转换就直接连了,结果接收端一直报失锁。后来量共模点,差了 0.6 V……

注意: LVPECL 的共模电压较高,如果直接驱动 50 Ω 到地(CML 的典型端接),输出会进入饱和区,信号失真严重。

1.3 CML——电流模式逻辑

CML 也是差分对结构,但它的输出摆幅小得多,功耗也更低。现在 25 Gbps 以上的 SerDes 几乎都用 CML。

  • 输出摆幅:典型值 400 mV(差分),部分低功耗设计可以做到 200 mV。
  • 共模电压:约 VCC − 0.2 V。比如 VCC = 1.2 V,共模大约 1.0 V。这个点和 LVPECL 差很大。
  • 功耗:比 LVPECL 低 30%~50%。因为摆幅小,且电流只在切换时变化。
  • 输出结构:集电极开路(或漏极开路),必须外接上拉电阻到 VCC。
  • 典型应用:光纤通信(SFP+/QSFP)、芯片间超短距离互连(die-to-die)。

CML 有个坑——很多人以为它内部已经带端接了,其实没有。输出端必须加上拉电阻到 VCC,否则根本没有电流路径。我曾经在仿真里漏了这个上拉,结果看波形一片混乱。

1.4 两者对比

下面这个表格总结了核心差异,做时序约束前最好背下来。

参数 LVPECL CML
输出摆幅(差分) 700 mV 典型 400 mV 典型
共模电压 VCC − 1.3 V VCC − 0.2 V
功耗 较高 较低
最大速率 ~15 Gbps > 25 Gbps
输出结构 射极跟随器 集电极开路
典型端接 50 Ω 到 VCC−2 V 50 Ω 到 VCC
常用电源 3.3 V / 2.5 V 1.2 V / 1.8 V

你想想看,如果让 LVPECL 驱动 CML 的输入端,共模点不匹配,摆幅也不对。轻则时序余量变小,重则直接无法工作。

1.5 时序约束中的关键点

做静态时序分析(STA)时,这两种接口带来的问题往往不是门延迟,而是信号完整性。

  • 差分对内 skew:两根线如果不等长,skew 会直接吃掉 setup/hold 余量。我一般要求线长差不超过 10 mil。
  • 共模稳定性:LVPECL 的共模点随工艺和温度变化,会影响过零点位置。时序模型里要留够裕量。
  • 端接反射:CML 的端接如果没做在芯片近端,反射会造成眼图闭合。这种情况下时序约束里的 jitter 值要放大。
  • 交叉点位置:某些接收器要求差分信号的交叉点在共模电平附近。如果共模偏了,占空比会失真。

我个人习惯在约束脚本里明确写出差分对逻辑关系:set_pin_relationship -diff_clock_pair,这样工具不会把两根单端线当作独立信号去分析。

避坑指南: 我曾经遇到过 LVPECL 输出直接连 CML 输入,结果共模电压差了 0.5 V,接收端直流耦合完全失效。解决方案很简单——加一组 AC 耦合电容(几百 pF 到 nF 量级),再在接收端重新偏置。但时序约束里的 min/max delay 要重新指定,因为电容会引入额外的 R-C 延时。

下图把 LVPECL 和 CML 的核心要素整理在一起,方便你对照着理解。

高速差分信号接口:LVPECL vs CML LVPECL 输出摆幅:700 mV 共模:VCC − 1.3 V 输出结构:射极跟随 端接:50 Ω → VCC−2V 功耗:较高 典型速率:~15 Gbps CML 输出摆幅:400 mV 共模:VCC − 0.2 V 输出结构:集电极开路 端接:50 Ω → VCC 功耗:较低 典型速率:>25 Gbps 共模差 1.1V 时序约束要点 skew / 共模 / 端接 / AC耦合 两者不能直接直流互连,需电平转换或 AC 耦合;时序建模时需考虑共模差异。

理解 LVPECL 和 CML 的电气特性,是后续做时序约束的基础。下一章我们会深入分析它们的输出/输入模型到底长什么样,以及如何在 STA 工具里准确描述这些模型。

记住三个数字:

  • LVPECL 共模 ≈ VCC − 1.3 V
  • CML 共模 ≈ VCC − 0.2 V
  • 摆幅差约 300 mV

这组数字能帮你在一秒钟内判断两种接口能否直连。