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

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。






















