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。
四、System Console 与 Transceiver Toolkit 环境建立
System Console 是 Quartus 提供的 Tcl 脚本调试控制台,Transceiver Toolkit 则构建在其之上,用于收发器通道的误码率测试、眼图扫描与参数调整。环境建立流程如下:
- 在 Quartus 中打开工程,确保已生成包含收发器调试逻辑的 SOF,并已通过 JTAG 下载到器件。
- 启动 System Console(Tools → System Debugging Tools → System Console),在 Tcl 控制台执行
get_service_paths master,确认能看到 JTAG master 服务路径。 - 打开 Transceiver Toolkit(Tools → Transceiver Toolkit),在 Connection 中选择对应的 JTAG master,Toolkit 会自动扫描器件中的收发器 tile 与 channel。
- 在 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 树
下面这张图把本节四个环节串成一条“从硬件到软件”的调试环境建立链路,并标出每个环节的关键检查点与失败时的排查方向,便于在实际搭建时对照执行。
完成上述四步后,链路调试环境即具备基本可用性。此时建议先跑一次短时间 PRBS 测试(例如 10 秒),记录误码计数与眼图轮廓,作为后续调整均衡、改变线速率或更换板卡时的对比基线。只有在环境稳定、基线可复现的前提下,后续的均衡优化与协议层调试才有意义。