1. Aurora IP核用法
Aurora 8B/10B IP core具备很多优点,当一条通道联通的时候,它会自动初始化这条通路,并且以帧或者数据流的方式,发送一些测试数据。而且在正常通信的过程中,可以发送任意大小的帧,以及数据可以再任何时候中断。传输过程中有效数据字节之间的间隙会自动填充空闲,以保持锁定并防止过多的电磁干扰。流量控制可用于降低传入数据的速率或通过通道发送简短的高优先级消。Stream流传输是单一的,无限的帧。 在没有数据的情下,传送空闲以保持链接活着。 Aurora 8B/10B内核使用8B/10B编码规则检测单位和大多数多位错误。 过多的位错误,断开连接或设备故障导致内核复位并尝试重新初始化新通道。
2. Aurora IP核实现框图
主要功能模块有四种:
1)Lane Logic(通道逻辑):
每个GTP,GTX或GTH收发器(以下称为收发器)由通道逻辑模块的实例驱动,其初始化每个单独的收发器并处理控制字符的编码和解码以及错误检测。
2)Global Logic(全局逻辑):
全局逻辑模块执行通道初始化的绑定和验证阶段。 在运行期间,模块会生成Aurora协议所需的随机空闲字符,并监视所有通道逻辑模块的错误。
3)RX User Interface(RX接收端口):
AXI4-Stream RX接收端口将数据从通道移动到应用程序,并执行流量控制功能。
4)TX User Interface(TX发送端口):
AXI4-Stream TX发送端口将数据从应用程序移动到通道,并执行流量控制TX功能。 标准时钟补偿模块嵌入在内核中。 该模块控制时钟补偿(CC)字符的周期性传输。
3. 端口描述
3.1 USER_DATA_S_AXI_TX
从应用层发数据
3.2 USER_DATA_M_AXI_RX
接收数据到应用层
3.3 状态和控制接口
3.4 传输接口
GT_SERIAL_RX\GT_SERIAL_TX
GT硬件相关接口,大部分用不到,只用上面GT相关即可。
3.5 时钟接口
4. 官方example中端口的应用
端口上只要提供GT相关RX/TX,复位RESET\GT_RESET_IN\,GT时钟GTXXQ_P,以及一些相关的状态指示信号。
1)stream接口形式
数据传输符合axi4-stream协议,用户逻辑通过控s_axi_tx_tvalid、m_axi_rx_tvalid信号来实现数据的有效接收。在接收端可以通过使用axi-stream-fifo来缓存数据,在发送端收到数据即可发送。
典型发送时序
典型接收时序
接收端tready一直有效,通过控tvalid来实现数据接收。
2)freaming接口形式
符合AXI4-FULL协议,暂时不做详细分析。
5. IP核用户接口使用要点
参考aurora_8b10b_0_ex例程。例程中用户使用的接口如下:
5.1 复位信号reset
高电平有效,保持至少6个user_clk时钟周期,需要与user_clk同步。例程中:
assign reset_i = RESET | sysreset_i;
外部输入,RESET信号与user_clk做同步。
5.2 复位信号gt_reset
需要与init_clk同步,高电平有效。需要保持至少6个时钟周期。外部输入信号。
5.3 时钟信号init_clk_in
外部输入,IP中可配置频率及使用差分还是单端形式。
例程中配置为单端,由外部差分时钟转为单端提供。
5.4 时钟信号gt_refclk1
GT的参考时钟,频率IP核可配置(如上图),取决于硬件时钟频率。例程中处理方式:
5.5 时钟信号drp_clk_in
从信号说明上来看,是FPGA逻辑读或者写配置信息到 GT transceiver的。例程中单端信号输入,通过BUFG给到IP核。
5.6 GT信号
数据的物理连接接口。
5.7 状态指示信号
用于状态指示,为输出信号。
综上,驱动Aurora IP核只需提供以上1)-6)几个信号,同时通过用户接口USER_DATA_S_AXI_TX、USER_DATA_S_AXI_RX来完成发数据的收发即可。