AURORA
Aurora 协议是Xilinx公司针对高速传输开发的一种可裁剪的轻量级链路层协议,通过一条或多条串行链路实现两设备间的数据传输。Aurora协议可以支持流和帧两种数据传输模式,以及全双工、单工等数据通信方式,赛灵思提供8B/10B和64B/66B两种编码方式的IP CORE,其主要区别就是编码效率。
下面主要介绍64B/66B AURORA。
64B/66B AURORA如图所示,其是一种轻量级串行通信协议,用于设备间通过GTH/GTX/GTY收发器进行通信的串行协议,收发两端通过GTH/X/Y lane收发数据,支持双工数据通信。
对于收发端的64B/66B core来说,其内部包含以下部分:
1️⃣lane logic:控制GT 收发器各个lane初始化,处理编解码字符和错误检测。
2️⃣global logic:全局逻辑监控各个logic lane防止错误。
3️⃣rx user interface:用户接受数据接口。
4️⃣tx user interface:用户发送数据接口。
端口描述
aurora提供两种工作模式,其中FRAME模式可以传输任意大小的数据,允许被高优先级中断,可选节流控制可以用来节流链路。
1️⃣ FRAME用户接口定义如下:
FRAME模式提供的端口如下所示:
FRAME mode example:
发送数据:
接收数据:
2️⃣ STREAM用户接口定义如下:
stream模式提供接口如下:
STREAM mode example:
发送数据:
接收数据:
IP CORE调用(streaming模式)
调用example design
aurora_64b66b_0_support
u_aurora_64b66b_0_support
(
// TX AXI4-S Interface
.s_axi_tx_tdata(tx_tdata_i),
.s_axi_tx_tvalid(tx_tvalid_i),
.s_axi_tx_tready(tx_tready_i),
// RX AXI4-S Interface
.m_axi_rx_tdata(rx_tdata_i),
.m_axi_rx_tvalid(rx_tvalid_i),
// GT Serial I/O
.rxp(RXP),
.rxn(RXN),
.txp(TXP),
.txn(TXN),
//GT Reference Clock Interface
.gt_refclk1_p (GTHQ0_P),
.gt_refclk1_n (GTHQ0_N),
//inti clk
.INIT_CLK_i (INIT_CLK_i),