第二章:链路基础——高速链路性能指标与协议标准对比

各位工程师朋友,大家好。今天我们来聊聊高速链路的基础。说实话,很多刚入行的朋友一上来就盯着眼图、抖动这些指标看,但往往忽略了它们背后的物理意义。我个人习惯是,先搞清楚这些指标到底在说什么,再去动手调试。这样遇到问题才不会慌。

2.1 高速链路性能指标

高速链路的性能,说白了就是看信号能不能在噪声和失真中“活下来”。我把它拆成几个核心指标来讲。

2.1.1 误码率(BER)

误码率是最直接的指标。它告诉你每传输多少比特会错一个。比如 PCIe Gen3 要求 BER 低于 1e-12,也就是一万亿个比特里最多错一个。

嗯,这里要注意:BER 不是测一次就能确定的。你想想看,如果只测 1 秒,可能一个错都没有,但跑上一天就出问题了。所以 BER 测试需要足够长的样本。我在项目中遇到过,某次链路在实验室测了 10 分钟 BER 全过,结果上机架跑了两小时就报错。后来发现是电源纹波在温度升高后变大了。

核心公式: BER = 错误比特数 / 总传输比特数

实际工程中,我们通常用“浴盆曲线”来评估 BER 的长期稳定性。

2.1.2 抖动(Jitter)

抖动是高速信号的“天敌”。它指的是信号边沿偏离理想位置的时间偏差。我习惯把抖动分成两类:

  • 随机抖动(RJ): 由热噪声、散粒噪声等引起,服从高斯分布。没法完全消除,只能控制。
  • 确定性抖动(DJ): 由串扰、反射、电源噪声等引起,有规律可循。这部分是可以优化的。

为什么要把抖动分开看?因为它们的处理方式完全不同。随机抖动靠增加链路裕量来应对,确定性抖动则需要从 PCB 布局、电源完整性入手。我曾经调试过一个 12.5Gbps 的链路,眼图总是闭合。折腾了两天,最后发现是相邻走线的串扰导致确定性抖动过大。把走线间距从 3W 拉到 5W,问题就解决了。

个人经验: 抖动分离是高速调试的基本功。用示波器的“抖动分析”功能,先看总抖动(TJ),再分解出 RJ 和 DJ。如果 DJ 占比超过 60%,优先查 PCB 和电源。

2.1.3 眼高与眼宽

眼图是高速信号的“心电图”。眼高和眼宽直接决定了接收端能否正确采样。

  • 眼高: 信号在垂直方向上的开度。说白了就是“1”和“0”之间的电压差。眼高太小,噪声稍微大一点就误判。
  • 眼宽: 信号在水平方向上的开度。它反映了抖动的累积效果。眼宽越窄,采样时钟的裕量越小。

我一般会看眼图的“眼睛”是否清晰。如果眼图中间有“雾状”区域,说明抖动或噪声偏大。记得有一次,一个 SATA 3.0 的链路眼高只有 200mV,规范要求是 300mV 以上。查了半天,发现是驱动器的摆幅设置不对。调整寄存器后,眼高直接到了 400mV。

2.1.4 信噪比(SNR)

信噪比衡量的是信号功率与噪声功率的比值。在高速链路中,我们更常用的是“信噪比裕量”。

为什么?因为接收端内部有均衡器,可以补偿一部分信道损耗。但均衡器也有极限。如果 SNR 太低,均衡器也救不回来。我建议在链路调试时,先测一下 SNR。如果 SNR 低于 15dB,基本可以判定链路设计有问题。

注意: SNR 和 BER 是强相关的。SNR 每降低 1dB,BER 可能恶化一个数量级。不要只看眼图漂亮就以为万事大吉。

2.2 常见协议标准对比

做高速设计,免不了跟各种协议打交道。PCIe、SATA、Xilinx GTH/GTY 是我最常用的几个。下面我做个对比。

协议/标准 单通道速率 编码方式 典型应用 我的评价
PCIe Gen3 8 GT/s 128b/130b CPU与GPU、SSD互联 生态最成熟,调试工具多
PCIe Gen4 16 GT/s 128b/130b 高性能计算、数据中心 对PCB损耗要求极高
SATA 3.0 6 Gb/s 8b/10b 硬盘、光驱 速率低,但兼容性要求高
Xilinx GTH 最高 13.1 Gb/s 可配置 FPGA间互联、光模块 灵活,但需要手动调参数
Xilinx GTY 最高 32.75 Gb/s 可配置 400G以太网、PCIe Gen4 性能强,但设计难度大

从这张表能看出什么?速率越高,编码效率也越高。PCIe Gen3 用 128b/130b,有效带宽利用率高达 98.5%。而 SATA 的 8b/10b 只有 80%。但高编码效率也意味着对信号质量更敏感。

我个人觉得,如果你是新手,先从 GTH 入手比较合适。它的速率适中,文档齐全,调试起来相对友好。GTY 虽然性能强,但 25Gbps 以上的链路,稍微一点阻抗不连续就会出问题。我曾经在一个 GTY 项目上,因为连接器选型不当,导致眼图完全闭合。换了低损耗连接器后,问题才解决。

2.3 知识体系总览

下面这张图是我自己整理的,把本章的核心知识点串了起来。你可以把它当作调试时的“地图”。

高速链路性能指标与协议标准知识体系 高速链路基础 性能指标 误码率(BER) 抖动(Jitter) 眼高/眼宽 信噪比(SNR) 协议标准 PCIe Gen3/4 SATA 3.0 Xilinx GTH Xilinx GTY 调试核心:先看BER,再拆抖动,最后调眼图

这张图把性能指标和协议标准分成了两大块。左边是“测什么”,右边是“用什么”。调试时,先确定协议标准,再针对性地测量指标。比如 PCIe Gen3 链路,重点看抖动和眼宽;SATA 链路,重点看眼高和 SNR。

避坑指南: 我曾经在调试一个 GTH 链路时,发现 BER 总是不过。测了抖动、眼图、SNR,都没问题。最后发现是参考时钟的相位噪声太大。所以,别忘了检查时钟源。时钟是链路的“心脏”,心脏不好,其他指标再漂亮也没用。

好了,这一章的内容就到这里。记住,高速链路调试没有捷径,但掌握了这些基础指标,你就有了“武器”。下一章我们会深入讲抖动分解的具体方法,到时候再聊。


专注资料整理