物理层基础:差分信号架构、时钟与数据恢复、通道拓扑
各位同学好,这一节我们聊聊UCIe物理层最核心的三块东西:差分信号怎么传、时钟怎么从数据里抠出来、以及通道到底长什么样。这三件事搞不清楚,后面的均衡参数调整全是瞎调。
2.1 差分信号架构——UCIe为什么非要用差分
你可能想过:为什么UCIe不用单端信号?省pin多好。我刚开始做芯片互连时也这么想,后来踩了坑才发现——差分信号在高速场景下几乎是唯一选择。
差分信号说白了就是一对线,一根传正相(P),一根传反相(N),接收端看的是两者差值。这样做有两个巨大好处:
- 共模抑制:外部噪声同时耦合到两根线上,差值一减就没了。我遇到过一块板子上电源纹波很大,单端信号眼图全闭,换成差分立马睁开。
- 摆幅小、速率高:差分只需要几百mV的摆幅,就能保证信号完整性。UCIe的TX差分摆幅典型值只有200~400 mVppd,比传统LVDS还低。
关键指标:UCIe差分阻抗要求85 Ω ± 5%(差分对之间),不是常见的100 Ω。设计PCB或封装时千万别搞错,我曾经吃过这个亏,板子做回来跑不到目标频率。
UCIe的物理层用差分NRZ(不归零)调制,每个UI(单位间隔)传1 bit。速率从8 GT/s起步,最高能到32 GT/s。你想想看,在32 GHz这么高的频率下,单端信号的回流路径、串扰问题会让你崩溃,差分就从容得多。
2.2 时钟与数据恢复——CDR是怎么工作的
UCIe没有独立的时钟线,时钟信息是嵌在数据流里的。接收端必须靠CDR(时钟数据恢复)把时钟从过零沿里“挖”出来。
我习惯用一句话概括CDR:边沿检测 + 相位插值。具体流程是这样的:
- 数据进来先过均衡器(CTLE/DFE),把高频损耗补一补。
- 然后送进鉴相器(PD),比较数据边沿和本地时钟的相位差。
- 鉴相器输出误差信息给环路滤波器(LF),滤掉高频抖动。
- 环路滤波器控制相位插值器(PI),微调采样时钟相位。
- 锁相环(PLL)提供参考频率,PI在固定频率上做精细相移。
这里有个容易出问题的地方——CDR环路带宽怎么设。我记得有个项目,把带宽设得太宽,结果跟踪了数据里的高频抖动,眼图反而更差;设太窄又跟不上频率漂移(比如20 ppm的频偏)。经验法则是:环路带宽取数据速率的1/1000 ~ 1/500,比如16 GT/s时,带宽大约16~32 MHz。
| 数据速率 (GT/s) | 推荐环路带宽 (MHz) | 典型频偏容限 (ppm) |
|---|---|---|
| 8 | 8~16 | ±200 |
| 16 | 16~32 | ±100 |
| 24 | 24~48 | ±50 |
| 32 | 32~64 | ±25 |
小技巧:如果链路误码率高,可以先检查CDR是否锁定。UCIe有专门的锁定检测状态机,输出Lock信号。我曾经遇到一个case,CDR一直在“假锁”——看起来锁定了,实际相位差很大,导致采样不稳。后来加了相位裕度检查才解决。
2.3 通道拓扑——从die到封装再到PCB
UCIe的物理层定义了两类拓扑:标准封装(Standard Package)和高级封装(Advanced Package)。我主要讲最常见的标准封装点对点拓扑,因为大多数chiplet设计会用到它。
一条UCIe链路包含:
- TX die:输出差分信号,通常有可编程摆幅和预加重
- TX封装走线:从die bump到封装球,长度一般几mm,损耗不大
- PCB走线:从封装球到连接器或另一端封装,典型长度20~50 mm(标准封装限制)
- RX封装走线:与TX类似
- RX die:接收端,包含均衡和CDR
通道损耗预算是调均衡参数的依据。UCIe 1.0标准给出一个参考通道:在16 GHz(32 GT/s奈奎斯特频率)下,总插入损耗要≤ 20 dB。这里面PCB走线贡献最大,大约0.5~1 dB/cm(取决于材料和线宽)。
注意:通道的回波损耗(S11/S22)也很重要。如果阻抗不连续,反射会叠加到信号上,形成码间干扰。我见过一个设计,封装基板阻抗控制不好,回波损耗只有-8 dB,结果眼图高度被砍掉一半。务必让封装厂控制阻抗精度在±10%以内。
下面这个SVG图汇总了本节三个知识点的关系和核心要素:
实际项目中,我常常需要在这三块之间来回迭代。比如:通道损耗测出来比仿真大2 dB,那就要调整均衡器参数;均衡器调完后CDR锁相环可能失锁,又得重新调PI的步长。所以你现在看到的这三个知识点,其实是一个闭环。
一句话总结:差分是基础,CDR是心脏,通道是赛道。做UCIe物理层设计,这三条腿都要硬。