Vivado Aurora 8B/10B IP 核配置详解
Aurora 8B/10B 是 Xilinx 开发的一种轻量级、链路层的高速串行通信协议。它比单纯的 GT(Transceiver)收发器更高级(因为它帮你处理了对齐、绑定、甚至流控),但比以太网或 PCIe 更简单、延迟更低。
介绍 Xilinx Vivado 中 Aurora 8B/10B IP 核的配置方法。涵盖物理层(通道宽度、线速率、参考时钟)、链路层(数据流模式、接口类型、流控)、错误检测及调试控制。重点讲解了 Shared Logic 共享逻辑的设置场景,包括单核独立运行与多核复用 PLL 的情况。提供了时钟计算、两端一致性检查及复位顺序等避坑指南,帮助开发者快速完成高速串行通信配置。

Aurora 8B/10B 是 Xilinx 开发的一种轻量级、链路层的高速串行通信协议。它比单纯的 GT(Transceiver)收发器更高级(因为它帮你处理了对齐、绑定、甚至流控),但比以太网或 PCIe 更简单、延迟更低。

这一部分直接决定了底层的硬件连接和电气特性,必须严格按照板卡设计和对端设备来配置。
Lane Width (Bytes) [通道宽度]:2 或 4。决定了用户逻辑接口(AXI-Stream)的数据位宽,也直接影响 user_clk 的频率。
user_clk = 线速率 / 20。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。
Tip:关于时钟
上面这三个时钟,是 IP 核工作所需要的时钟,也是我们需要提供给 IP 核的。此外,还有一个时钟是 IP 核提供给我们的:user_clk。这个时钟,是 IP 核根据设置的线速率及 Lane 的位宽计算出来的用户时钟,用户需要传输的数据必须是该时钟域下的数据,否则会存在亚稳态风险。
这一部分决定了数据如何打包、如何握手。通信双方(TX 和 RX)的配置必须完全一致。
Dataflow Mode [数据流模式]:
Interface [用户接口类型] —— ⭐️ 非常重要
Framing (帧模式):
tlast 信号,用来指示一个数据包的结束。Streaming (流模式):
tlast 信号。数据源源不断。Flow Control [流控]
初学者建议选 None。如果你需要防止接收端 FIFO 溢出,可以选 NFC。
Back Channel [回传通道]
CRC [循环冗余校验]:在每一帧数据后面自动加一个校验码。
如果选了 Framing 模式,建议勾选。这样接收端收到数据时,如果发现 CRC 不对,会报错,保证数据完整性。如果是 Streaming 模式,通常不加 CRC。
Vivado Lab Tools
在 IP 核里自动插入 ILA(逻辑分析仪)。
调试阶段建议勾选。它会把 Aurora 的状态机、lane_up、channel_up 等关键信号抓出来,如果不通,你能看到卡在哪一步。量产时关掉以节省资源。
user_clk 是 156.25 MHz。所有 AXI 接口逻辑(读写 FIFO、状态机)都必须在这个时钟频率下工作。channel_up 永远起不来。reset_pb 信号或者按照官方 Example Design 的复位序列来操作。上电后,先 gt_reset,再 reset。如果说上一页 'Core Options' 决定了'我们要传多快、传什么格式',那么这一页则是决定'这套协议要在 FPGA 的哪几根物理引脚上跑'。这是一个纯物理层的配置界面,必须结合 PCB 原理图和 FPGA 芯片手册来设置。
Aurora 链路包含几条物理通道。
如果需要更高的带宽,可以将多条 Lane 绑定在一起(Bonding)。例如选 4,那么带宽就是单条 Lane 的 4 倍,且 Aurora 会自动处理通道间的对齐。
必须与原理图一致:如果你板子上只画了 1 对线连到光模块,这里就只能选 1。
这是最容易晕的地方。这个表格代表了 FPGA 内部 GT (Gigabit Transceiver) 资源的物理位置分布。
结构解析:
GTXQ1 通常指物理位置最靠下的那个 Quad(或者编号最小的)。如何设置(关键步骤):
MGTHTXP_115)。注意:这里的图形化界面只是一个生成网表的向导。最稳妥的做法是这里大概选对 Quad,然后在 XDC 约束文件中通过 set_property LOC GTXE2_CHANNEL_X0Y0 [get_cells ...] 来进行精确的物理约束。
GT 收发器需要一个非常高质量的差分参考时钟(MGTREFCLK)才能工作。决定 Aurora 核使用板子上的哪一个差分晶振输入作为参考时钟。
如何设置:
MGTREFCLK0P_115 / MGTREFCLK0N_115)。重要规则(时钟路由):通常建议参考时钟和你的数据通道在同一个 Quad,或者在相邻的 Quad(North/South)。如果距离太远,时钟抖动会变大,Vivado 可能会报错。
避坑提示:
如果你实在搞不清具体的物理坐标(X0Y?, X0Y?),可以在这里先随便选一个(比如都选在 Q1),生成 IP。但是在写 .xdc 约束文件时,必须严格加上 package_pin 约束和 LOC 约束,Vivado 会以 XDC 文件为准,强行把逻辑'拽'到正确的物理引脚上。如果这里选的和 XDC 冲突太大(比如跨了太多 Bank 导致时钟够不着),Implementation 阶段会报错。
简单来说,这一页是在问:'在这个 IP 核内部,我要不要自带时钟发生器(PLL)和差分时钟缓冲器(IBUFDS)?'
在 Xilinx FPGA 的高速收发器(GT)架构中,4 个通道(Channel)组成一个 Quad。这 4 个通道共享一些公共资源,最主要的就是 PLL(锁相环)和参考时钟输入缓冲(Diff Refclk Buffer)。
这个 IP 核会把 PLL、参考时钟缓冲、复位逻辑全部包含在自己肚子里。它是全功能、自给自足的。生成的 IP 核对外接口比较简单,直接接板级引脚(refclk)即可。
什么时候选:
这个 IP 核内部不包含 PLL 和时钟缓冲。它是一个'空壳'或'从核'。它必须依赖外部送进来的 PLL 时钟信号才能工作。生成的 IP 核会多出一堆输入端口(如 gt_pll_clk、gt_refclk_out 等),你需要把别的核产生的时钟连进去。
为什么叫'在示例工程中': 如果你生成了 Example Design,Vivado 会把那些公共逻辑(PLL 等)放在 IP 核外面的顶层文件中。这样方便你修改或者将其去驱动其他的 IP 核。
什么时候选:
Core with Shared Logic:
虚线框是 IP 核的边界。可以看到 Shared Logic(PLL 等)是在虚线框里面的。独立,但也独占资源。
Example Design:
虚线框是 IP 核的边界。可以看到 Core without Shared Logic 在里面,而 Shared Logic 被挪到了外面(Example Design 层级)。
特点:
Core without Shared Logic(也就是当前这个 IP),同时还可以引出箭头去驱动其他的 IP 核。Include Shared Logic in core。Include Shared Logic in core。(它是 Master,负责开启 PLL)。Include Shared Logic in example design。(它们是 Slave)。gt_pll_out 等时钟信号,连到后面 3 个核的对应输入端口上。IBUFDS_GTE 和 GT_COMMON 原语。Include Shared Logic in example design。这样 IP 核就是纯净的数据通路,时钟全靠你喂。
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML 转 Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online