3. 链路调试环境搭建

Agilex 高速串行链路的调试,成败往往在“上电之前”就已经决定了一半。链路调试环境并不是把开发板插上 USB 线、打开 Quartus 就能开始,它涉及硬件形态选择、供电与参考时钟质量、JTAG 链路可达性,以及上位机侧 System Console 与 Transceiver Toolkit 的软件环境。本节按“硬件准备 → 物理连接 → 电源与时钟 → 软件环境”的顺序展开,重点说明每一步中真正影响后续误码率测试与眼图扫描的关键点。

一、开发板与自定义板卡的准备

调试载体通常有两种:Altera 官方 Agilex 开发套件(如 Agilex 7 F-Series Transceiver-SoC Development Kit),以及自研板卡。官方板卡的优势是参考时钟、电源、收发器参考设计已经过验证,适合先建立“已知良好”的基线;自研板卡则必须自行确认收发器 bank 的供电、参考时钟来源和通道映射。

无论哪种载体,准备阶段要确认三件事。第一,收发器通道与 bank 的对应关系:Agilex 的收发器按 tile 组织,每个 tile 内含多个 channel,需从引脚规划文件(Pin Planner 或 .qsf)中确认目标通道的 TX/RX 差分对、参考时钟输入引脚编号。第二,参考时钟来源:是板上晶振、Si5332 类时钟芯片,还是从 SMA 外部输入;若使用可编程时钟芯片,需确认其默认上电频率与链路目标线速率匹配。第三,回环方式:调试初期建议使用近端 PCS/PMA 回环或板上 TX→RX 的 SMA 电缆回环,避免一开始就引入远端链路的不确定性。

对于自研板卡,建议在调试前填写一份通道核对表,把“逻辑通道号—tile/channel—TX 引脚—RX 引脚—参考时钟引脚—供电轨”逐项对齐,避免后续在 Transceiver Toolkit 中选错通道导致长时间无数据。

二、JTAG 连接与链路可达性

Agilex 器件通过 JTAG 完成配置与调试访问。板上通常使用 10-pin 或 20-pin JTAG 排针,配合 USB-Blaster II 或 Ethernet Blaster。连接时注意三点:一是 JTAG 链上若串接多个器件,需在 Quartus Programmer 中正确设置链序与器件 ID;二是 TCK 频率不宜过高,长排线或噪声环境下可先降到 6 MHz 甚至 1 MHz 建立连接,稳定后再提高;三是若使用 Ethernet Blaster,需确认主机与 Blaster 的 IP 在同一网段。

验证 JTAG 是否可用的最直接方式是在 Quartus Programmer 中执行 Auto-Detect,能正确识别 Agilex 器件 ID 即说明 TAP 控制器可达。若识别失败,优先检查 nCONFIG、nSTATUS、CONF_DONE 是否被外部电路拉死,以及 JTAG 排针的 VCC 参考电平是否与 Blaster 匹配。

三、电源与时钟配置

收发器对电源噪声极为敏感。Agilex 收发器 bank 通常需要 0.9 V(VCCERX/VCCETX 核心)与 1.2 V/1.8 V 等辅助轨,具体以器件手册为准。上电顺序应遵循数据手册要求,一般核心先于 I/O。调试阶段可用示波器在收发器供电引脚附近测量纹波,若峰峰值超过数十毫伏,眼图扫描结果会明显恶化,此时应先改善去耦与 LDO/DC-DC 布局,而不是反复调整均衡参数。

参考时钟方面,Agilex 收发器支持专用参考时钟输入与从相邻 channel 恢复的时钟。调试时建议使用专用差分参考时钟,并在 Toolkit 中确认其频率与链路线速率满足收发器 PLL 的分频要求。例如目标线速率 25.78125 Gbps(100G 以太网单 lane 速率)时,参考时钟常取 161.1328125 MHz 或 322.265625 MHz,需保证 PLL 能整数/半整数分频到目标速率。若参考时钟频偏过大,链路会出现规律性误码甚至无法锁定 CDR。

调试初期建议先关闭自适应均衡,使用固定 EQ 设置观察基线误码;确认物理层基本可用后,再开启 CTLE/DFE 自适应,便于区分“链路本身问题”与“均衡收敛问题”。

四、System Console 与 Transceiver Toolkit 环境建立

System Console 是 Quartus 提供的 Tcl 脚本调试控制台,Transceiver Toolkit 则构建在其之上,用于收发器通道的误码率测试、眼图扫描与参数调整。环境建立流程如下:

  1. 在 Quartus 中打开工程,确保已生成包含收发器调试逻辑的 SOF,并已通过 JTAG 下载到器件。
  2. 启动 System Console(Tools → System Debugging Tools → System Console),在 Tcl 控制台执行 get_service_paths master,确认能看到 JTAG master 服务路径。
  3. 打开 Transceiver Toolkit(Tools → Transceiver Toolkit),在 Connection 中选择对应的 JTAG master,Toolkit 会自动扫描器件中的收发器 tile 与 channel。
  4. 在 Channel 列表中选中目标通道,设置 PRBS 模式(如 PRBS31)、测试数据速率与参考时钟频率,点击 Start 开始误码统计。

若 Toolkit 扫描不到通道,常见原因是 SOF 中未例化收发器调试接口,或 JTAG 链上存在多个器件导致 master 选择错误。此时可在 System Console 中用 get_service_paths master 逐一确认,再回到 Toolkit 重新连接。

# System Console 中确认 JTAG master 与收发器服务
get_service_paths master
# 典型返回:
# /devices/AGFxxx@1/(link)/JTAG/(link)/altera_jtag_master
# 打开 Toolkit 后可在 Channel 视图中看到 tile/channel 树

下面这张图把本节四个环节串成一条“从硬件到软件”的调试环境建立链路,并标出每个环节的关键检查点与失败时的排查方向,便于在实际搭建时对照执行。

Agilex 链路调试环境建立链路 硬件准备 → JTAG 可达 → 电源/时钟 → System Console / Transceiver Toolkit ① 板卡准备 官方套件 / 自研板卡 通道 ↔ tile/channel 映射 TX/RX 差分对与参考时钟引脚 回环方式:PCS/PMA 或 SMA 检查:.qsf 引脚规划一致 ② JTAG 连接 USB-Blaster II / Ethernet 10-pin / 20-pin 排针 多器件链序与 ID 设置 TCK 先降频建立连接 检查:Auto-Detect 识别器件 ③ 电源与时钟 VCCERX/VCCETX 供电轨 上电顺序与纹波测量 专用差分参考时钟 PLL 分频到目标线速率 检查:频偏与纹波达标 ④ 软件环境 System Console Transceiver Toolkit JTAG master 选择 PRBS31 / 眼图扫描 检查:通道可扫描到 常见失败点与排查方向 • JTAG 识别不到:查 nCONFIG/nSTATUS、VCC 参考电平、链序 • Toolkit 无通道:SOF 未含调试接口 / master 选错 • 误码率高:先查参考时钟频偏与供电纹波 • 眼图差:区分链路损耗与均衡收敛问题 调试顺序建议 先建立 JTAG 可达 → 再确认电源/时钟 → 最后用 Toolkit 做 PRBS 与眼图 每一步都保留“已知良好”基线,便于定位问题引入点

完成上述四步后,链路调试环境即具备基本可用性。此时建议先跑一次短时间 PRBS 测试(例如 10 秒),记录误码计数与眼图轮廓,作为后续调整均衡、改变线速率或更换板卡时的对比基线。只有在环境稳定、基线可复现的前提下,后续的均衡优化与协议层调试才有意义。