Vivado Aurora 8B/10B IP 核配置指南
Aurora 8B/10B 是 Xilinx 开发的一种轻量级、链路层的高速串行通信协议。它比单纯的 GT(Transceiver)收发器更高级,因为它处理了对齐、绑定和流控,但比以太网或 PCIe 更简单且延迟更低。
1. Physical Layer (物理层设置)
这一部分直接决定了底层的硬件连接和电气特性,必须严格按照板卡设计和对端设备来配置。
Lane Width (Bytes) [通道宽度]:2 或 4。决定了用户逻辑接口(AXI-Stream)的数据位宽,也直接影响 user_clk 的频率。
- 2 Bytes:AXI 接口位宽为 16-bit。
user_clk = 线速率 / 20。 - 4 Bytes:AXI 接口位宽为 32-bit。
user_clk = 线速率 / 40。
如果线速率很高(比如 > 5Gbps),建议选 4 字节,这样可以让 FPGA 内部逻辑时钟(user_clk)跑慢一点,更容易满足时序。如果是 3.125G 这种中低速,选 2 字节即可。
Line Rate (Gbps) [线速率]:光纤或铜线上实际跑的比特率。
取决于 SFP 模块能力、PCB 走线质量以及对端设备的速度。3.125 Gbps 是 Aurora 的一个经典速率(也是 XAUI 的标准速率)。
GT Refclk (MHz) [GT 参考时钟]:FPGA 外部输入的差分参考时钟频率。
必须与你 PCB 板子上连接到 FPGA GT Bank 的那个晶振频率完全一致。如果填错了,PLL 锁不住,整个核都起不来。
INIT clk (MHz) [初始化时钟]:用于驱动复位逻辑和初始化状态机的辅助时钟。在上电初始化阶段,可以使用该时钟来驱动一些逻辑。默认值:50Mhz。
通常给 50MHz 到 100MHz 之间的稳定时钟即可。这个时钟对抖动要求不高,可以用普通的逻辑时钟。
DRP Clk (in MHz) [动态重配置时钟]:用于驱动 DRP(Dynamic Reconfiguration Port)接口的时钟,允许你在运行时修改 GT 的参数。通常和 INIT clk 共用一个时钟源。
动态重配置一般不用,默认值:50Mhz。常见应用包括利用 DRP 端口调整部分参数的值(如线速率切换),然后复位 GTX,使 GTX 工作在不同的线速率下。
时钟说明
上面这三个时钟(GT Refclk, INIT clk, DRP Clk)是 IP 核工作所需要的时钟,也是我们需要提供给 IP 核的。此外,还有一个时钟是 IP 核提供给我们的:user_clk。这个时钟是 IP 核根据设置的线速率及 Lane 的位宽计算出来的用户时钟,用户需要传输的数据必须是该时钟域下的数据,否则会存在亚稳态风险。
2. Link Layer (链路层设置)
这一部分决定了数据如何打包、如何握手。通信双方(TX 和 RX)的配置必须完全一致。
Dataflow Mode [数据流模式]:
- Duplex (双工):最常用,同时收发。
- TX-only / RX-only (单工):只发或只收。
- Simplex (单工):类似单工,但有特殊的边带信号处理。
Interface [用户接口类型] —— ⭐️ 非常重要
Framing (帧模式):
- 有'包'的概念。AXI 接口上有
tlast信号,用来指示一个数据包的结束。 - 发送类似以太网包、命令包等非连续、有边界的数据。Aurora 会自动处理两帧之间的空闲填充。
Streaming (流模式):
- 特点:像一根水管,没有'包'的概念,也没有
tlast信号。数据源源不断。




