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 等常用此编码。
三、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 或高误码。
六、教学示例:10G 链路参数核对
假设一条 Kria 到对端的 10.3125 Gbps 链路,采用 64b/66b 编码、32 位内部位宽。可按下表核对关键参数(示例值,非实测):
| 参数 | 示例值 | 说明 |
|---|---|---|
| 线速率 | 10.3125 Gbps | 含 64b/66b 开销 |
| 有效数据率 | 约 10.0 Gbps | 64/66 折算 |
| 内部并行时钟 | 322.27 MHz | 10.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 高速链路调试的基础。