Aurora 64B/66B IP 核配置及使用详解
Aurora 64B/66B 是 Xilinx(现 AMD)提供的一种高速串行通信协议 IP 核,专为 FPGA 设计,支持点对点数据传输,常用于数据中心和高性能计算场景。对于刚接触高速接口的开发者,直接调用官方 IP 核配合 Example Design 是最稳妥的上手方式。下面结合 Vivado 工具,聊聊如何配置、例化关键模块以及实现传输回环测试。
1. IP 核简介与核心参数
Aurora 采用轻量级的 64B/66B 编码方案,在 FPGA 内部处理物理层和数据链路层功能,如数据编解码、错误检测和流控。配置时主要关注几个硬性指标:
- 数据宽度:通常选 32 位或 64 位,默认 64 位能更好匹配协议带宽。
- 参考时钟:频率需与实际板卡一致,比如 156.25 MHz,这直接影响收发速率。
- 通道数:单通道足够验证逻辑,多通道则涉及更复杂的映射。
- 回环模式:开发阶段建议开启 Near-end PMA loopback,方便在不连线的情况下自测。
- 其他选项:CRC 校验和流控制建议保持默认启用,确保链路健壮性。
生成 IP 后,你会得到实例化模块、XDC 约束文件以及 Example Design 目录。
2. 端口连接与接口说明
IP 核的端口主要分为用户接口、GT 接口和状态控制三类,连接时别搞混了方向。
用户接口(AXI Stream) 这是 FPGA 逻辑与 IP 交互的地方:
s_axi_tx_tdata/m_axi_rx_tdata:发送和接收的数据总线。s_axi_tx_tvalid/m_axi_rx_tvalid:有效信号,握手用。s_axi_tx_tready/m_axi_rx_tlast:流控和帧结束标志。
GT 接口(Gigabit Transceiver) 连接物理收发器:
gt_refclk:参考时钟输入。gt_txdata/gt_rxdata:差分数据对。gt_txreset/gt_rxreset:收发器复位。
状态与控制
channel_up:链路建立成功标志,高电平表示 OK。loopback:控制回环模式,例如3'b001设为近端回环。hard_err/soft_err:错误指示,调试时重点关注。
3. 利用 Example Design 快速验证
Vivado 生成的 Example Design 其实就是一个现成的测试平台,包含发送、接收和验证逻辑,省去了自己写 Testbench 的时间。
生成时记得勾选 "Generate Example Design"。工程里会有顶层文件(如 aurora_64b66b_exdes.v),里面已经集成了 framegen 和 framecheck 模块。
- framegen:负责产生测试数据帧,模拟用户发送行为,可以设置伪随机或固定模式。
- framecheck:负责检查接收到的数据,对比期望值并统计 CRC 错误。
这两个模块是验证链路好坏的核心。如果回环测试中 err_count 不为 0,大概率是时序或对齐出了问题。

