3. 高速串行链路基础与协议栈

在 Kria 这类 SoC/FPGA 平台上调试高速串行链路,第一步不是急着抓眼图,而是把“数据从并行字节变成差分串行比特、再在接收端恢复出字节”的整条协议栈看清楚。本节围绕 SerDes 基本原理、8b/10b 与 64b/66b 编码、CDR、均衡、链路训练与对齐机制展开,目标是让你在遇到链路不 up、误码率高或对齐失败时,能定位到具体是哪一层出了问题。

一、SerDes 基本原理:从并行到串行

SerDes 即串行器/解串器。发送侧把 FPGA 内部较宽、速率较低的并行数据(例如 32 位 @ 156.25 MHz)通过串行器转换成高速串行比特流,经驱动器输出差分信号;接收侧用 CDR 从数据流中恢复时钟,再采样、解串为并行数据。以 10.3125 Gbps 的线速率为例,若内部并行位宽为 32 位,则并行时钟约为 322.27 MHz,串行化倍率为 32。Kria 的 GTH/GTY 收发器正是按这种“PMA + PCS”结构组织:PMA 负责串行化、驱动、接收均衡与 CDR,PCS 负责编码、对齐、通道绑定等数字逻辑。

差分信号用一对互补线传输,接收端取两者之差,共模噪声被抑制。链路质量最终体现在接收端“眼图”张开程度上:眼高、眼宽、抖动越小,采样越可靠。调试时常用误码率(BER)衡量,典型目标为 1E-12 或更优。

二、8b/10b 与 64b/66b 编码

为什么需要编码?因为长连 0 或长连 1 会让 CDR 失去跳变参考,直流不平衡也会造成基线漂移。8b/10b 把每 8 位数据映射为 10 位码字,保证足够的跳变密度和运行不一致性(running disparity)平衡,开销 25%。它还能提供 K 码(如 K28.5 逗号码),用于字节对齐和链路控制。8b/10b 常见于 PCIe Gen1/2、SATA、SGMII 等较低线速率场景。

当线速率升到 10G 以上,25% 开销变得昂贵,64b/66b 成为主流:每 64 位数据加 2 位同步头,开销仅约 3.125%。同步头为 01 表示纯数据,10 表示控制/混合,接收端靠同步头锁定块边界。64b/66b 本身不保证跳变密度,因此依赖加扰(scrambler)打散长连 0/1,并配合块同步(block lock)完成对齐。Kria 上 10G/25G 以太网、Aurora 64b/66b、JESD204B/C 等常用此编码。

高速串行链路协议栈与信号处理链 发送侧 TX 并行数据 32bit @322MHz 编码 8b/10b 或 64b/66b 加扰 / 通道绑定 串行化 32:1 驱动器 → 差分输出 信道 Channel PCB 走线 / 连接器 / 背板 插入损耗、回波、串扰 码间干扰 ISI、抖动 眼图闭合 → 误码 接收侧 RX 接收均衡 CTLE/DFE CDR 恢复时钟采样 解串 1:32 块同步 / 字节对齐 解码 → 并行数据 链路训练与对齐贯穿 PCS:极性反转、通道绑定、块锁定共同决定链路能否 up

三、CDR:从数据里“抠”出时钟

接收端没有独立时钟线,必须靠 CDR(Clock Data Recovery)从数据跳变中恢复采样时钟。CDR 的核心是相位检测器比较数据边沿与本地时钟相位,通过电荷泵/环路滤波器调整 VCO 频率和相位,使采样点落在眼图中央。环路带宽是折中:带宽高,跟踪抖动快但易受高频噪声影响;带宽低,抗噪好但跟踪慢。调试时若 CDR 失锁,常见原因是参考时钟频偏过大、数据跳变太少(编码/加扰配置错误)或均衡不足导致眼图太差。

四、均衡:补偿信道损耗

高频信号在 PCB 上衰减更严重,导致眼图闭合。发送侧用预加重/去加重(pre-emphasis/de-emphasis)提升高频分量;接收侧用 CTLE(连续时间线性均衡)做模拟高频补偿,再用 DFE(判决反馈均衡)消除后游标 ISI。Kria 的 GTH/GTY 支持自适应均衡,接收机会根据误码情况自动调整 CTLE 增益和 DFE 抽头。实操中可通过 IBERT 扫描眼图,观察均衡前后眼高变化,判断是否需要手动调整 TX 差分摆幅或预加重。

五、链路训练与对齐机制

链路训练是收发双方“握手”的过程,典型步骤包括:检测接收信号、锁定 CDR、完成块/字节对齐、交换训练序列、协商速率与均衡参数、进入正常工作态。对齐机制分几个层次:位对齐由 CDR 完成;字节/块对齐靠逗号码(8b/10b)或同步头(64b/66b)找到边界;通道绑定(lane bonding)把多 lane 的 skew 对齐,保证多通道数据重组正确。若对齐失败,链路会停在 training 状态,表现为 link down 或高误码。

调试建议:先用 IBERT 确认物理层眼图与 BER,再检查编码/加扰配置是否与对端一致,最后核对对齐与通道绑定参数。三层依次排查,能快速缩小问题范围。

六、教学示例:10G 链路参数核对

假设一条 Kria 到对端的 10.3125 Gbps 链路,采用 64b/66b 编码、32 位内部位宽。可按下表核对关键参数(示例值,非实测):

参数示例值说明
线速率10.3125 Gbps含 64b/66b 开销
有效数据率约 10.0 Gbps64/66 折算
内部并行时钟322.27 MHz10.3125G / 32
参考时钟156.25 MHz需与对端同源或频偏在容限内
TX 预加重3.5 dB按信道损耗初设
RX CTLE 增益自适应由均衡算法调整
目标 BER≤1E-12链路验收指标

核对时重点看三处:参考时钟频偏是否在收发器容限内(通常 ±100 ppm 到 ±300 ppm,视协议而定);编码与加扰配置是否两端一致;通道绑定 lane 数与顺序是否匹配。任何一处不一致,都可能导致 CDR 锁定但数据错位,表现为“链路 up 但误码高”。

七、常见故障与判断依据

  • CDR 失锁:检查参考时钟、数据跳变密度、均衡是否使能。
  • 块同步失败:64b/66b 同步头找不到,多为加扰配置或极性反转问题。
  • 通道绑定失败:多 lane skew 超限,检查走线等长与绑定参数。
  • 误码率高但链路 up:眼图裕量不足,需优化均衡或降低速率验证。

掌握这条从并行数据到差分信号、再回到并行数据的完整链路,以及编码、CDR、均衡、对齐各自的作用位置,是后续使用 IBERT、眼图扫描和协议分析仪进行 Kria 高速链路调试的基础。