跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言算法

FPGA Aurora 64B/66B 协议开发与配置实战

Aurora 64B/66B 是 FPGA 光通信常用协议,支持全双工及多通道。 IP 核架构、接口定义、复位时序及初始化流程。重点阐述 AXI-Stream 数据交互机制与回环测试方法,涵盖仿真与上板验证步骤,帮助开发者快速搭建高速串行链路。

奶糖兔发布于 2026/3/22更新于 2026/10/1891 浏览
FPGA Aurora 64B/66B 协议开发与配置实战

FPGA 光通信开发中,Aurora 64B/66B 是最简便的链路层方案。开发人员无需关注 2bit 同步头、加解扰等底层细节,主要对接 AXI-Stream 用户数据接口即可。

Aurora 是一款可扩展的轻量级高速串行通信协议,支持全双工或单工模式,采用 64B/66B 或 8B/10B 编码。

一、Aurora 64B/66B 架构与接口

借助 Xilinx IP 核,可实现多通道间的光通信,最大支持 16 Lane。

文章配图

1.1 IP 核内部结构

参考 PG074 文档,IP 核主要由以下模块组成:

文章配图

  • Lane Logic:每个 GT 收发器由一个 Lane 逻辑驱动,负责初始化收发器、处理控制字符编解码及错误检测。
  • Global Logic:执行通道绑定与初始化,监控 Not Ready 空闲字符及所有通道逻辑的错误状态。
  • RX User Interface:AXI4-Stream 接收接口,将数据从通道传输至应用程序并执行流控。
  • TX User Interface:AXI4-Stream 发送接口,将数据从应用程序传输至通道并执行流量控制。
1.1.1 主要接口

不同版本界面略有差异,但核心含义一致:

文章配图

  • 用户数据接口:USER_DATA_S_AXIS_TX(发送)、USER_DATA_M_AXIS_RX(接收)。
  • GT BANK 管脚:GT_SERIAL_RX、GT_SERIAL_TX、REFCLK。
  • 控制接口:CORE_CONTROL(回环模式等)、CORE_STATUS。
  • 重配置端口:GT_DRP(用于动态切换线速率)。
  • 时钟与复位:
    • INIT_CLK:初始化时钟,来源独立于 GT BANK。
    • USER_CLK/SYNC_CLK:用户时钟,频率为 LineRate × LaneNum × (64/66)/LaneWide,其中 USER_CLK 为收发数据时钟。
    • pma_init 和 reset_pb:复位信号。

时钟关系如下:

文章配图

1.1.2 复位时序

复位涉及 pma_init 和 reset_pb 两个信号。释放前需确保 INIT_CLK 和 REFCLK 稳定。顺序上先释放 pma_init(对应 gt_reset),后释放 reset_pb(对应 reset)。reset_pb 的释放需同步于 USER_CLK,而 pma_init 同步于 INIT_CLK。

  • pma_init:重置物理编码子层 (PCS) 和物理介质附件 (PMA),即先复位高速收发器,再复位内核逻辑。
  • reset_pb:仅复位内核逻辑,不触发底层高速收发器复位。

双工模式下正常复位时序建议:先将 reset_pb 拉高至少 128 个时钟周期,随后拉高 pma_init 一段时间。释放时先拉低 pma_init,最后拉低 reset_pb。

文章配图 文章配图

注意:reset_pb 拉高的最短时间需满足 128 个 user_clk 周期。若通道建立失效,channel_up 会被拉低。

文章配图

pma_init 复位至少需保持 128 个 init_clk 周期。由于 user_clk 来源于 GT 收发器 txoutclk,底层复位会导致 user_clk 暂停,随后 channel_up 拉低表示通道失效。

文章配图

1.1.3 初始化流程

初始化完成后,lane_up 指示各通道是否完成初始化。只有当所有通道和内部逻辑均完成初始化,channel_up 才会拉高。

提示:Aurora 内核在 channel_up 拉高前可接收数据,但不能发送。可将 channel_up 取反作为发送端的复位信号。

文章配图

1.1.4 控制及状态接口
  • loopback:回环模式,默认接 0。可选值包括 normal、Near-end PCS/PMA Loopback、Far-end PCS/PMA Loopback。
  • power down:高电平有效,GT 进入低功耗模式,使用时通常拉低。
  • pll_not_locked:连接 ~pll_locked。

文章配图

  • lane_up:"1" 表示各通道初始化成功,每位代表一个通道。
  • channel_up:"1" 表示通道初始化完成,准备好传输数据。
  • hard_err / soft_err:分别指示硬件类与软件类错误。
  • frame_err:当前通道帧协议错误。
1.1.5 数据接口

IP 核支持两类数据接口:

  1. Framing 接口:基于 AXI4-Stream,IP 核自动添加帧头尾并补偿时钟,传输效率略低但资源占用较多。
  2. Streaming 接口:简化版 AXI4-Stream,仅包含数据有效、握手和数据信号,效率高但无法保证传输准确性。

本文以 Framing 类型(AXIS 模式)为例。由于 64B/66B 编码特性,发送端需要 ready 信号握手。通信双方通过握手信号进行反压,接收端仅在 valid 有效时读取总线数据。

发送端:当 s_axi_tx_tready 反压与 s_axi_tx_tvalid 握手成功后发送数据。使用 s_axi_tx_tlast 标识最后一个数据,s_axi_tx_tkeep 标识有效字节。

文章配图

接收端:当 m_axi_rx_tvalid 为高时,数据有效。m_axi_rx_tkeep 与 m_axi_rx_tlast 用法与发送端对应信号一致。

文章配图

二、IP 核配置与工程实践

2.1 参数配置

根据实际开发板原理图配置如下:

文章配图

  • GT Refclk:参考时钟,本例为 156.25MHz。
  • Lane Rate:测试速率为 10.3125Gbps。
  • INIT clk:初始化时钟,依工程自行设计。
  • GT 位置及 Lane 数目:依据原理图确定。
  • Dataflow Mode:选择全双工。
  • Interface:Framing 类型。
  • 流控:不使用。

文章配图

  • Little Endian Support:小端数据支持([15:0] 为大端,[0:15] 为小端)。
  • Dynamic Reconfiguration:动态重配置接口。
  • Debug Signals:调试信号。
  • CRC Function:CRC 校验功能。

文章配图

  • Shared Logic:逻辑放置位置。若 GT REFCLK 未被其他 SerDes 占用,两种模式均可;否则建议选 In example design 模式。
    • In core:支持、复位、时钟等逻辑包含在 IP 核内。
    • In example design:上述逻辑均在 IP 核外。
2.2 参考示例

重点参考 support、复位及时钟的使用。

文章配图

  • Support 模块:封装了时钟、复位、IP 例化等操作,应用中通常无需修改。
  • Frame Gen:数据生成模块,采用 LFSR 生成伪随机序列,实际工程中替换为自定义数据源。
  • Frame Check:数据检验模块,验证接收数据的正确性,同样可替换为自定义逻辑。

三、工程设计、仿真与测试

3.1 工程设计

按上述配置搭建工程。当 Channel_up 拉高后,可通过 VIO 使能 data_test_module 产生测试数据。

data_test_module 逻辑:当 FIFO 非空时写入递增数据,根据 AXIS 接口的 ready 反压信号将数据读入 Aurora IP 核。

文章配图

3.2 仿真测试

进行自回环收发仿真验证:

文章配图

重点关注初始化及收发过程:

文章配图

复位关系与状态信号:

文章配图

发送阶段关注 ready 和 valid 信号:

文章配图

接收数据主要检查 data、valid、last、keep 等信号:

文章配图

3.3 上板测试

通过 VIO 控制 data_test_module 产生测试数据。

文章配图

实测结果显示,接收到的数据与发送数据一一对应。

文章配图

四、总结

Aurora 64B/66B 是 FPGA 实现高速光通信的高效方案。掌握其复位时序、接口握手及配置要点,能有效降低开发难度。实际项目中,建议结合具体板卡时钟规划与 IP 核参数灵活调整。

目录

  1. 一、Aurora 64B/66B 架构与接口
  2. 1.1 IP 核内部结构
  3. 1.1.1 主要接口
  4. 1.1.2 复位时序
  5. 1.1.3 初始化流程
  6. 1.1.4 控制及状态接口
  7. 1.1.5 数据接口
  8. 二、IP 核配置与工程实践
  9. 2.1 参数配置
  10. 2.2 参考示例
  11. 三、工程设计、仿真与测试
  12. 3.1 工程设计
  13. 3.2 仿真测试
  14. 3.3 上板测试
  15. 四、总结

更多推荐文章

查看全部
  • 飞算 JavaAI:从需求到源码的一小时实战指南
  • 无人机目标检测数据集介绍及 YOLOv8 训练实战
  • AI 辅助生成视频脚本草案的实战方案
  • RTX 50 系显卡与 CUDA、PyTorch 及 Python 版本对应关系
  • GitHub 汉化插件:界面中文化方案与部署指南
  • 使用 MCP-Server 插件将 Dify 工作流发布为第三方服务
  • iostat 查看 Linux 硬盘 IO 性能
  • NVIDIA Jetson 上基于 HuggingFace LeRobot 的端到端机器人学习实践
  • Copilot 的agent、ask、edit、plan模式有什么区别
  • Qwen3.5-27B 处理中英文混排 PPT 截图:精准提取标题与数据结论
  • 命令行大模型交互工具 MCPHost 实践
  • PostgreSQL 动态分区裁剪技术:查询性能优化实战
  • CentOS 系统定时执行 Python 邮件发送的五种方案
  • 渗透测试具体详细检测方法
  • MoltBot 接入钉钉 Stream 流式模式配置指南
  • 基于 AI 辅助编程的在线图书借阅平台设计与实现
  • 律师如何利用大语言模型辅助法律工作
  • 测试标题
  • Python 环境变量配置指南
  • 基于腾讯云 CVM 部署 Clawdbot 并对接 Telegram 机器人

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online