FPGA 光通信的开发过程中,最简便的方式为 Aurora 64B/66B,开发人员无需关注 2bit 同步头、加解扰等过程,开放给开发人员的主要是 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。
不同模式下,复位时序不一样,本文只介绍双工模式的复位时序:上电阶段复位、其他复位。






















