APP下载

基于Aurora的高速数据传输研究

2019-11-10王彦朋王新刚王晓君

科技风 2019年30期

王彦朋 王新刚 王晓君

摘 要:采用 Xilinx 7系列 低 功 耗FPGA芯片,提出一种基于Aurora协议的高速数据传输方法,使用VHDL语言进行编程设计,调用Aurora IP核,完成模块设计和功能仿真验证,为高速数据的稳定有效传输提供了参考,具有一定的工程意义。

关键词:FPGA;高速数据传输;Aurora

随着现代通信技术的日新月异,以往的通信速率已经不能满足人们需求,更高速度的通信不断彰显出来,数据交换和传输量的处理复杂程度也不断提高,这就必须要保证数据的实时性和准确性。[1]在FPGA开发环境中,利用赛灵思公司的高速串行通信数据传输协议,来实现数据的高数传输;对Aurora核进行深入的分析,完成适合的接口设计,使数据传输速率可达Gbps级。

1 Aurora 功能描述及接口设计

Aurora协议是一种可扩展的链路层协议,能完成点到点的串行数据传输,Aurora 核是 赛灵思公司推出的基于该协议和多吉比特收发器的高速串行设计方案。该核内部实现了Aurora 协议,能为用户提供灵活实用的接口。利用该核进行数据传输,可以省去控制复杂高速I/O接口的麻烦,通过吉比特收发器收发数据,不用再考虑高速串行接口设计相关的编解码、数据传输同步等问题。

Aurora有多个版本,根据编码方式的差异,普及最广的为8B10B和64B66B两种模式,[2]设计采用8B10B模式为设计主版。该核主要功能模块有:①通道逻辑:负责初始化、驱动GTX或GTH收发器并处理控制字符的编解码以及错误检测;②全局逻辑:执行通道初始化的绑定和验证,检测通道逻辑模块产生的错误;③用户接收接口:从通道中接收数据并送到用户程序,执行控制功能。④用户发送接口:将用户程序的数据送给通道,执行发送功能。[3]

Aurora接口部分采用流模式接口来设计。流模式接口包括:参考时钟、复位、接收数据使能信号、接收数据信号、发送数据有效信号、发送数据信号、数据准备信号。处理接口时需注意,数据发送有效信号(s_axi_tx_tvalid)和数据准备信号(s_axi_tx_tready)同时作用时,数据才能正确传输。[4]

2 总体方案设计

总体传输包括三个大部分,整体发送模块、Aurora模块以及整体接收模块;整体发送模块包括:转换模块、拼接模块和发送模块,转换模块用来转换数据位宽和缓存数据,将内部逻辑模块来的64位数据转换为16位,拆包模块负责将收到的数据进行拆包,发送模块将数据发给Aurora模块。

整体接收模块包括:缓存模块,拼帧模块和接收模块;缓存模块主要用于将从Aurora模块接收的数据按顺序导入,拼帧模块负责从缓存模块读取数据并添加帧头,接收模块负责将添加好帧头的数据转换成合适的数据位宽并发回内部逻辑进行下一步处理。

3 仿真结果和分析

图2为发送模块仿真图,负责向Aurora模块发送数据;Rst是系统复位信号,Aurora_clk为时钟信号,Data_en是数据输入使能信号,I_data是数据输入信号,Send_valid是数据输出使能信号,O_data是数据输出信号,Ready是Aurora内部的准备信号,并非一直有效,要根据其规律进行处理,才能使数据正确发送。

图3为接收模块仿真图,负责从Aurora模块接收数据;Rst是系统复位信号,Aurora_clk为时钟信号,Rcv_valid为输入有效信号,Rcv_data是数据输入信号,由图可以看出接收模块的时序完全正确,输出的数据和发送模块输入的数据完全相同,验证系统数据传输的正确性。

4 结语

设计在基于FPGA环境下,采用VHDL硬件描述语言进行编程设计,对Aurora 8B10B IP核的结构和接口进行深入分析,给出详细的接口设计方案,并进行了仿真验证,实现了数据的高速传输,具有很实用的工程价值。

参考文献:

[1]金冶纯.基于FPGA的万兆网通信协议轉换器设计[D].河北大学,2016.

[2]刘毅夫.万兆协议转换系统关键技术研究[D].河北科技大学,2019.

[3]任强,姚远程,秦明伟.片间高速图像传输系统的设计与实现[J].自动化仪表,2018,39(09):34-39.

[4]Aurora 64b/66b Protocol Specification Sp011(v1.2)October 1,2014.