2. 差分信号原理与共模电压

咱们做高速接口时序约束,绕不开差分信号。我见过不少新人一上来就盯着LVPECL、CML的电平标准看,结果时序仿真跑不通,最后发现根子出在共模电压没搞对。嗯,这章我们先打地基。

2.1 为什么需要差分信号?

单端信号在高频下有几个硬伤:对噪声敏感、参考地不确定、回流路径复杂。差分信号用一对线传输大小相等、极性相反的信号,接收端只关心两根线的差值。噪声在两条线上是共模的,一相减就没了——说白了就是“共模抑制”。

  • 噪声免疫力强:外界干扰在两根线上基本一致,差模信号不受影响
  • 电磁辐射小:两根线电流方向相反,磁场互相抵消
  • 摆幅小、速率高:LVPECL单端摆幅约800 mV,CML约400 mV,适合几Gbps以上
  • 参考电平稳定:不需要远端参考地,靠共模电压建立偏置

我曾经一个项目里,板上时钟走线长了,单端LVCMOS眼图惨不忍睹,换成差分后瞬间干净了。所以做高速设计,差分基本是标配。

2.2 差分信号的核心参数:差模电压与共模电压

先给个公式,马上就能理解:

V_diff = V_p - V_n     // 差模电压,接收端关心的
V_cm   = (V_p + V_n) / 2  // 共模电压,直流偏置电平

接收器比较V_diff,但它的输入级必须在特定的共模范围内才能正常工作。你想想看,如果共模电压跑偏了,接收管可能进入线性区甚至饱和区,时序就乱套了。

关键记忆点: 差模决定信号跳变幅度,共模决定直流工作点。时序约束里,共模范围直接影响接收器的建立/保持时间窗口。

2.3 LVPECL与CML的共模电压对比

这两种标准在共模电压上差异很大。我整理了一张对照表,你平时做约束时可以直接查。

参数 LVPECL CML
输出共模电压(典型) VCC - 1.3V (约1.8V@3.3V电源) VCC - 0.4V (约0.9V@1.2V电源)
输出摆幅(单端) 约800 mV 约400 mV
输入共模范围 VCC - 2.0V ~ VCC - 0.6V VCC - 0.7V ~ VCC - 0.1V
电源电压 通常3.3V或2.5V 通常1.2V或1.8V
负载端接 50Ω到VCC - 2V 50Ω到VCC

这里有个细节:LVPECL的共模电压离电源轨比较远,而CML的共模电压离VCC很近。我记得第一次用CML时,没注意A/C耦合,结果直流电平直接把接收器输入端推到饱和区,眼图闭了半个小时。后来用示波器一量,才知道共模偏置没做对。

注意: 跨电平标准连接时(如LVPECL驱动CML),必须用交流耦合再加直流偏置,否则共模不匹配会导致逻辑错误。我曾经有用过0.1μF电容+50Ω到1.2V的分压方案,效果不错。

2.4 共模电压对时序约束的影响

你可能觉得共模电压只影响直流,和时序有什么关系?其实关系很大。接收器的输入延迟(包括setup/hold)随共模电压变化。每个芯片的datasheet里一般会给出“Common-mode range vs. propagation delay”曲线。

  • 输入偏移变化:共模电压越高,输入级PMOS/NMOS的开关阈值可能漂移
  • 噪声余量缩小:共模波动会引起边沿抖动,影响Tj(总抖动)估算
  • 接收器饱和:共模超出范围,信号边沿变形,setup/hold严重恶化

做时序约束时,我建议你至少预留10%的共模余量。比如CML标称共模0.9V,实际设计时控制在0.85V~0.95V之间,别正好卡在边界上。

2.5 实际设计中的避坑指南

  1. 交流耦合后的共模恢复:用电阻分压到VREF时,注意电源纹波。我遇到过因为VREF不稳导致的时基误差。
  2. PCB走线等长差:差分对不等长会引入共模到差模的转换,等效为共模噪声叠加在差模信号上。
  3. 电源去耦:LVPECL的共模电压对电源噪声敏感,每对差分线附近最好放一个0.1μF电容。
  4. IO bank共模匹配:FPGA或SoC内部可能有多个差分对共享共模基准,务必查手册确认负载约束。

小技巧: 在时序仿真前,先用DC分析检查差分对两端的共模电压是否在芯片要求的范围内。这一步能省下你半天debug时间。

差分信号原理与共模电压关系图 差分信号对 差模电压 Vdiff 共模电压 Vcm LVPECL 共模~1.8V CML 共模~0.9V 时序约束影响 注意点:共模电压超出接收器范围 → 输入延迟变化 / 边沿抖动 → setup/hold失效 两种标准直流电平不同,跨电平连接必须做交流耦合和偏置恢复。

这张图把差分信号的核心节点串起来了。从差分对出发,分出差模和共模,再落实到两种标准的具体电压,最后指向时序约束。你可以把它贴在工位上,做约束时扫一眼。