4. 收发器PHY配置与重配置

在 Agilex 的收发器链路中,PHY 层是连接 FPGA 内部并行数据与外部高速串行信号的关键桥梁。链路能否稳定工作,往往不取决于逻辑设计有多复杂,而取决于 PHY 参数是否与通道特性、协议要求和 PCB 走线匹配。本节围绕 Transceiver PHY IP 的配置与重配置展开,重点讲清 Native PHY 的配置入口、数据速率与编码方式的确定方法、均衡器与驱动强度的调节逻辑,以及运行中重配置的触发与验证方式。

一、Native PHY IP 的配置入口与结构

Agilex 收发器通过 Quartus 中的 Transceiver PHY IP 进行配置,最常用的是 Native PHY IP。它不像协议专用 IP 那样把大量参数封装隐藏,而是把 PMA 与 PCS 的关键参数直接暴露给设计者,因此更适合调试阶段逐项定位问题。Native PHY 的配置界面大致分为三层:PMA 层负责串行侧的物理特性,包括数据速率、参考时钟、均衡器、驱动强度;PCS 层负责并行侧的编码、位宽、通道绑定;接口层则决定与 FPGA 逻辑之间的数据通路形式,例如是否使用 TX/RX FIFO、是否启用 Avalon 接口。

配置时首先要确定的是参考时钟与数据速率的关系。Agilex 收发器的 PMA 通常采用分数分频结构,数据速率由参考时钟频率、PLL 倍频比和串化因子共同决定。例如目标线速率 25.78125 Gbps、参考时钟 156.25 MHz 时,需要选择能整除出该速率的 PLL 配置;若参考时钟改为 161.1328125 MHz,则 PLL 参数必须同步调整,否则会出现速率偏差导致误码。配置界面中应优先锁定参考时钟频率,再让工具计算可用的数据速率组合,而不是先填速率再反推时钟。

二、数据速率、编码方式与位宽匹配

数据速率确定后,编码方式直接影响有效带宽和 PCS 结构。常见选择包括 64b/66b、64b/67b、8b/10b 以及无编码的原始模式。64b/66b 开销低,适合以太网、Interlaken 等高速协议;8b/10b 直流平衡好、控制字符丰富,适合 PCIe 早期版本、SATA 等;64b/67b 则在保持低开销的同时提供更强的控制能力。编码方式一旦选定,PCS 的并行位宽也随之确定:以 64b/66b 为例,若 PMA 串化因子为 64,则 PCS 侧通常呈现 64 位或 66 位数据通路,TX/RX FIFO 的位宽必须与之对齐,否则会出现位宽不匹配的编译错误或数据错位。

下面这张图展示了 Native PHY 从参考时钟到串行输出的关键配置链路,以及各参数之间的依赖关系,便于在配置时快速定位“改一个参数要连带改哪些项”。

Native PHY 配置链路与参数依赖 参考时钟 156.25 MHz / 161.13 MHz PLL 倍频/分频 M / N / 串化因子 数据速率 25.78125 Gbps(示例) 编码方式 64b/66b · 8b/10b · 64b/67b PCS 并行位宽 64 / 66 / 67 bit TX/RX FIFO 位宽对齐 · 时钟域 TX 驱动强度 VOD · 预加重 RX 均衡器 CTLE · DFE · VGA 眼图/误码观测 Eye Monitor · PRBS 重配置回路 时钟/速率 编码 位宽 模拟前端 重配置路径

三、均衡器与驱动强度的调节

当速率超过 10 Gbps 后,通道损耗成为主要限制因素。TX 侧通过驱动强度(VOD)和预加重/去加重补偿高频衰减,RX 侧则依靠 CTLE、VGA 和 DFE 逐级恢复信号。调节顺序建议从 TX 开始:先设置一个中等驱动强度,观察对端接收眼图;若眼高不足,逐步提高 VOD 或增加预加重;若眼宽不足、抖动偏大,则减少预加重,避免过补偿引入噪声。RX 侧先启用 CTLE 的自动适配模式,让工具根据通道损耗选择合适的高频增益档位,再视情况开启 DFE 处理残余码间干扰。

需要强调的是,均衡参数不是越大越好。过强的预加重会抬高信号边沿、增加 EMI 和功耗,也可能让对端接收器过载;DFE 抽头过多则会在低损耗通道上引入不必要的噪声放大。实际调试中应结合 Eye Monitor 或误码率测试,以“眼图张开度最大、误码率最低”为判据,而不是单纯追求参数数值。

四、重配置的触发与验证

Agilex 支持通过 Avalon-MM 或配置寄存器对收发器进行动态重配置,典型场景包括:链路训练阶段切换预加重档位、协议切换时改变数据速率、故障恢复时重新校准 CDR。重配置的基本流程是:先确认当前通道处于空闲或可控状态,再写入目标参数,然后触发内部校准,最后读取状态寄存器确认校准完成。若在数据流持续期间重配置,必须确保上层协议允许短暂中断,否则会出现不可恢复的误码。

验证重配置是否生效,不能只看寄存器写回值。推荐做法是:重配置前后分别采集一段 PRBS 误码统计,对比误码率是否改善;同时用 Eye Monitor 观察眼图是否按预期变化。若写入后误码率反而恶化,应检查是否遗漏了校准触发步骤,或参数超出了当前参考时钟允许的范围。下面给出一个重配置参数检查表的示例,便于在调试时逐项核对。

检查项 示例值 判断依据
参考时钟频率 156.25 MHz 与板级晶振一致,误差在 ppm 级
目标数据速率 25.78125 Gbps PLL 可整除,无速率偏差
编码方式 64b/66b 与协议层一致,PCS 位宽匹配
TX VOD 中等档位起步 对端眼高足够且不过载
RX CTLE 自动适配 眼图张开度改善
重配置后校准 已触发并完成 状态寄存器返回校准完成
误码率对比 重配置后 ≤ 重配置前 PRBS 统计无恶化
重配置时建议保留一份“配置前参数快照”,包括 PLL 分频比、VOD 档位、CTLE 档位和 DFE 抽头数。一旦新参数导致链路异常,可以快速回退到已知可用状态,避免在多个参数之间反复试错。

总体来看,Native PHY 的配置与重配置是一个“参数联动、观测驱动”的过程。数据速率、编码方式、位宽、均衡和驱动强度之间存在明确的依赖链,任何一项改动都可能影响其他项。调试时应先锁定时钟与速率,再确定编码与位宽,最后在模拟前端上做精细调节,并用误码率和眼图作为最终判据。只有把配置、观测和回退机制串成闭环,才能在 Agilex 高速链路上获得稳定可靠的收发性能。