FPGA 光通信的开发过程中,最简便的方式为 Aurora 64B/66B,开发人员无需关注 2bit 同步头、加解扰等过程,开放给开发人员的主要是 AXI-Stream 用户数据接口。
Aurora 是一款可扩展的轻量级、高数据速率链路层高速串行通信协议,支持全双工或单工,支持 64B/66B、8B/10B 编码。
一、Aurora 64B/66B 使用介绍
该核的使用架构主要如下:借助 Xilinx 核,开发人员可根据用户接口实现多通道间的光通信。最大支持 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:复位信号,后文介绍。
时钟关系如下:























