跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
搜索
|注册
博客列表

目录

  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. 1.2 IP 核配置
  9. 1.3 参考例子
  10. 二、工程设计、测试
  11. 2.1 工程设计
  12. 2.2 仿真测试
  13. 2.3 上板测试
  14. 三、总结
  • 💰 8折买阿里云服务器限时8折了解详情
编程语言算法

FPGA 光通信开发:Aurora 64B/66B 协议使用指南

FPGA 光通信开发中 Aurora 64B/66B 协议是常用方案。文章介绍 IP 核架构、接口定义、复位时序及初始化流程。涵盖 Framing 与 Streaming 数据接口区别,提供配置参数示例及仿真上板测试步骤。重点说明通道建立状态信号与 AXI-Stream 握手机制,适用于高速串行通信设计参考。

不知所云发布于 2026/4/80 浏览
FPGA 光通信开发:Aurora 64B/66B 协议使用指南

FPGA 光通信的开发过程中,最简便的方式为 Aurora 64B/66B,开发人员无需关注 2-bit 同步头、加扰和解扰等过程,开放给开发人员的主要是 AXI-Stream 用户数据接口。

Aurora 是一款可扩展的轻量级、高数据速率链路层高速串行通信协议,支持全双工或单工,支持 64B/66B、8B/10B 编码。

一、Aurora 64B/66B 使用介绍

该核的使用架构主要如下:借助 Xilinx IP 核,开发人员可根据用户接口实现多通道间的光通信。最大支持 16 lane。

文章配图

1.1 IP 核的介绍

参考 PG074,该核的内部结构如下:

文章配图

其中,Lane logic:每个 GT 收发器由一个 lane 逻辑模块实例驱动,初始化每个收发器,处理控制字符的编解码,并执行错误检测。

Global logic:全局逻辑模块执行通道绑定以进行通道初始化。在运行过程中,该通道跟踪 Aurora 64B/66B 协议定义的 Not Ready 空闲字符,并监控所有通道逻辑模块的错误。

RX user interface:AXI4-Stream 接收用户数据从通道移动到应用程序,并执行流控制功能。

TX user interface:AXI4-Stream 发送用户数据从应用程序移动到通道,并执行 TX 的流量控制功能。

1.1.1 接口

IP 核如下(不同版本界面有差异,但含义相同):

文章配图

主要的接口信息如下,具体含义可查看 PG074。

用户数据接口: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 x (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 只会复位内核逻辑,不会复位底层的高速收发器。先释放 pma_init,后释放 reset_pb。

不同模式下,复位时序不一样,本文只介绍双工模式的复位时序:上电阶段复位、其他复位。

文章配图

文章配图

双工模式下的正常复位时序如上图所示,先把 reset_pb 拉高 128 个时钟周期,然后再拉高 pma_init 一段时间。之后先拉低 pma_init,最后拉低 Reset_pb 信号。

如下图所示:双工模式下 reset_pb 拉高的最短时间为 128 个 user_clk 周期。经过一段时间后,channel_up 被拉低,表示传输通道建立失效。

文章配图

如下图所示:双工模式下的 pma_init(gt_reset)复位时序,pma_init 至少拉高 128 个 init_clk 周期。经过一些时钟周期后,user_clk 会暂停产生时钟(因为 user_clk 的时钟来源是 GT 收发器 txoutclk,pma_init 复位从底层的物理层复位)。随后拉低 channel_up 信号,表示传输通道建立失效。

文章配图

1.1.3 初始化

初始化过程如下:

文章配图

Lane up 表示通道中的哪些通道已完成通道初始化。仅当所有通道和内部逻辑完成整个初始化过程后,channel_up 才会被拉高。Aurora 64B/66B 内核可以在 Channel_up 拉高之前接收数据,但 Channel_up 拉高之前不能发送数据,可把 Channel_up 取反用作全双工模式下发送端的复位信号。

1.1.4 控制及状态接口

loopback:回环模式,实际使用一般接到 0;

000:normal;001: Near-end PCS Loopback;010: Near-end PMA Loopback;100: Far-end PMA Loopback;110: Far-end PCS Loopback

power down:高电平有效。当其为高时,GT 会进入非工作、低功耗的模式。使用的时一般直接拉低。

pll_not_locked 接 ~pll_locked ;

文章配图

lane_up:"1"状态指示各通道初始化成功,每位代表一个通道

channel_up:"1"状态指示通道初始化完成,通道已准备好进行数据传输

hard_err:主要是硬件类错误

soft_err:主要是软件类错误

frame_err:当前通道帧协议错误

1.1.5 数据接口

该核支持两类数据接口:

Framing 接口:在 AXI4-Stream 的基础上 IP 核自动加入帧头、帧尾,并在固定时间内完成时钟补偿,但是会降低传输效率和使用较多资源。

Streaming 接口:简化的 AXI4-Stream 接口,只有数据有效、握手和数据信号,此种方式传输效率高,但无法保证传输的准确性。

本文只介绍 Frame 类型接口,即用户接口类型为 AXIS 模式。由于 64B/66 编码,aurora 的设计上在发送端需要 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 的用法与发送端对应的信号一致。

文章配图

1.2 IP 核配置

根据本人开发板原理图配置如下:

文章配图

GT Refclk:GT 参考时钟,板子时钟为 156.25Mhz

Lane Rate:以 10.3125Gbps 作为测试

INIT clk:初始化时钟,根据工程自行选择设计

GT 位置及 lane 数目:根据板子原理图设计

Dataflow Mode:选择全双工

Interface:Framing 类型

流控:不使用

文章配图

Little Endian support:小端数据(小端:[15:0] 大端:[0:15])

动态重配置接口类型

Debug 信号

CRC 功能

文章配图

Shared Logic:设置 IP 的逻辑放置的位置,如果 GT REFCLK 没被别的 serdes 使用,两种模式都行,否则建议 In example design 模式。

In core:在 IP 核内:support、复位、时钟等逻辑包含在 ip 内

In example design:在例子中,support、复位、时钟等逻辑都在 ip 外

1.3 参考例子

主要参考 support、复位、时钟的使用。

文章配图

support 模块:包含了对时钟、复位、IP 等的例化处理等一系列操作;在应用中此部分可不需要修改。

frame_gen 数据生成模块,采用 LFSR 的方式生成伪随机序列;在实际工程中替换为自己的数据模块即可。

frame_check 数据检验模块,对接收的数据进行检验以验证传输的正确性;在实际工程中替换为自己的数据模块即可。

二、工程设计、测试

2.1 工程设计

按照上述配置的上进行设计,收发数据流程为,当 Channel_up 拉高后,可通过 VIO 使能控制 data_test_module 测试数据模块产生测试数据。

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

文章配图

2.2 仿真测试

对上述工程进行自回环收发仿真测试:

文章配图

初始化及收发过程:

文章配图

复位关系、状态信号:

文章配图

发数据:ready 和 valid

文章配图

收数据主要关注 data、valid、last、keep 等信号。

文章配图

2.3 上板测试

通过 VIO 使能控制 data_test_module 测试数据模块产生测试数据。

文章配图

接收到的数据:与发送数据一一对应。

文章配图

三、总结

  • 💰 8折买阿里云服务器限时8折购买
  • 🦞 5分钟部署阿里云小龙虾了解详情
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog

更多推荐文章

查看全部
  • 埃斯顿机器人仿真与编程基础
  • 知网 AIGC 检测不通过:降低 AI 率的三步方法
  • Llama 3.1 模型部署实践与体验
  • AI 在前后端开发中的差异化落地指南:DAU 规模分层策略
  • 基于 Neo4j 与 py2neo 的知识图谱搭建实战
  • Google AI Studio 使用指南及 Cherry Studio MCP 实战教程
  • AI Agent 入门:解析执行式智能体核心概念与实现
  • FPGA 基础教程:使用 Verilog 实现 2 选 1 数据选择器
  • 基于 OpenAgents 构建多智能体旅游助手
  • 前端反爬分析:基于环境日志补全 Window 对象缺失属性
  • ROS2 无人机自主智能技术解析与落地指南
  • LLaMaFactory 基于魔搭社区免费 GPU 微调大模型教程
  • Flutter wallet_connect 鸿蒙适配:Web3 钱包与 DApp 授权
  • 华为 HCIP-AI Solution Architect H13-323 认证试题解析与知识点总结
  • 2026 年 AI 大模型行业格局:闭源与开源竞争及中国厂商策略
  • Vue3 常用面试题总结与代码解析
  • PicDoc AI 文生图表工具使用教程与 Napkin 对比
  • Python 爬虫解析 Web of Science 文献数据并导出 CSV
  • 清华 SuperTac 仿生多模态触觉传感器,实现类人级感知精度
  • VLA 模型真实世界分布式在线后训练系统 SOP 解析

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,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

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online