一种基于aurora改进链路协议的axi stream协议高速并串转换系统
技术领域
1.本发明涉及数据传输技术领域,尤其是涉及一种基于aurora改进链路协议的axi stream协议高速并串转换系统。
背景技术:2.从20世纪50年代开始,集成电路规模依据摩尔定律稳步提升,半导体行业的飞速发展让片上系统功能越发强大的同时也使得soc的设计规模越发庞大。原型验证也因为设计规模的增加需要跨越多块fpga实现系统互联,这也产生了amba总线协议的信号数目和单片fpga有限的端口数目之间的冲突。
3.例如文献1“一款多核处理器fpga验证平台的设计与实现”(朱英,陈诚,许晓红,李彦哲.,计算机研究与发展,2014,51(06):1295
‑
1303.)中将复杂的多核处理器设计分块到多个fpga平台。文献中采用基于lvds源同步传输方式的时分复用传输实现来解决fpga之间的通信问题。这种方式能很好地解决因跨fpga通信导致的端口数目紧张问题,而数据的传输带宽也因采用lvds方式,通过时钟和数据一起发送提高了传输速度,但时分复用方式也会导致通信速度的降低。
4.相比之下,文献2“a flexible fpga
‑
to
‑
fpgacommunication system”(a.wu,x.jin,x.du and s.guo,2017 19th international conference on advanced communication technology(icact),bongpyeong,2017,pp.836
‑
843.)中提出采用pcie和ethernet的混合设计方式,实现片内总线的高速串行传输系统模块化。而pcie和ethernet是当前应用较为广泛的高速串行协议,通过这种方式提升了系统兼容性。但这类复杂的高速串行协议也增加了系统的实现开销。
技术实现要素:5.本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于aurora改进链路协议的axi stream协议高速并串转换系统。
6.本发明的目的可以通过以下技术方案来实现:
7.一种基于aurora改进链路协议的axi stream协议高速并串转换系统,该系统包括:
8.协议层:经axi stream接口实现和axi stream总线通信;
9.链路层:数据发送、数据接收以及链路状态的控制;
10.物理层:完成对数据的串行传输编解码和数据的串化/解串。
11.优选地,所述的协议层包括axi stream主接口、axi stream从接口。
12.优选地,所述的链路层包括:
13.链路层数据发送模块:链路层在接收到协议层数据后完成对数据的打包并根据当前采用的校验方式加装校验码后传输至物理层;
14.链路层数据接收模块:链路层在接收到物理层的数据后,完成对数据的解析和验证并剥离起始帧、结束帧和检验数据部分;
15.链路层控制模块:根据链路工作状态之间的转换关系实现链路状态的控制,同时通过滑动窗口方式检测固定时间内接收到的错误数据包个数,选择采用的传输纠错方案。
16.优选地,所述的链路层数据发送模块包括:
17.发送数据预处理单元:接收协议层数据,对数据进行起始帧和结束帧的添加并根据当前的校验方式添加校验数据;
18.发送缓冲单元:接收并暂存发送数据预处理单元预处理后的数据,并向发送仲裁单元提出数据发送请求;
19.链路控制字生成单元:接收到链路控制命令后,添加crc5校验码以及起始帧和结束帧,并向发送仲裁单元提出链路控制字发送请求;
20.发送仲裁单元:根据数据发送请求和链路控制字发送请求的优先级选择将数据或链路控制字传输至物理层。
21.优选地,所述的链路层数据接收模块包括:
22.接收数据预处理单元:接收物理层的数据,根据接收数据的帧头类型,判别接收到的为链路控制字或通信数据;
23.链路控制字校验单元:对链路控制字进行校验,并将数据剥离起始帧和结束帧后发送至链路层控制模块进行解析;
24.接收数据校验单元:对通信数据进行校验,并将数据发送至协议层。
25.优选地,所述的链路层控制模块根据信噪比选择传输纠错方案,具体地:低信噪比条件下采用前向纠错rs编码方式传输纠错,高信噪比条件下采用gbn自动重传方式传输纠错。
26.优选地,所述的物理层包括:
27.8b/10b编解码单元:对接收的链路层数据进行传输编码,或对接收到的串行数据进行传输码解码;
28.串化/解串单元:对传输编码数据在信号线上进行串行传输,或对接收到的串行数据进行解串形成并行数据。
29.优选地,该系统还包括低功耗管理单元,所述的低功耗管理单元根据不同工作状态需要将系统的工作时钟划分为不同时钟域,在系统不同工作状态下通过门控时钟技术实现对不同时钟域的控制。
30.优选地,系统的工作时钟划分为三个时钟域,包括发送时钟域、接收时钟域和全局时钟域。
31.优选地,系统不同工作状态下对时钟域的控制包括:在系统全双工工作状态下,三个时钟域全部开启;在仅发送状态下,开启全局时钟域和发送时钟域;在仅接收状态下,系统仅开启全局时钟域和接收时钟域;在休眠状态下,系统关闭所有时钟域;其他状态下,仅开启全局时钟域。
32.与现有技术相比,本发明具有如下优点:
33.1、本发明采用基于aurora改进链路协议的设计方案降低了系统的实现开销,并增加gbn
‑
rs传输纠错方案改善系统的数据通信可靠性。
34.2、本发明通过滑动窗口对固定周期内接收到的错误数据包个数进行检测,把握当前系统的通信状况并自主选择采用传输纠错方案,增强系统在通信状况差的情况下的数据传输效率。
35.3、本发明采用动态功耗管理方式,根据系统工作状态的变化对不同时钟域进行管理,从而降低系统功耗。
附图说明
36.图1为本发明一种基于aurora改进链路协议的axi stream协议高速并串转换系统的结构框图;
37.图2本发明一种基于aurora改进链路协议的axi stream协议高速并串转换系统的工作流程框图;
38.图3为本发明中链路状态转移图;
39.图4为实施例纯gbn方式和gbn
‑
rs方式下数据传输效率比较;
40.图5为实施例具备动态管理和不具备动态管理时不同工作时钟频率下的功耗比较。
具体实施方式
41.下面结合附图和具体实施例对本发明进行详细说明。注意,以下的实施方式的说明只是实质上的例示,本发明并不意在对其适用物或其用途进行限定,且本发明并不限定于以下的实施方式。
42.实施例
43.本发明考虑到系统的实现开销,兼容性和可靠性等综合因素,本发明采用轻量级的aurora协议为基础,并提出gbn
‑
rs传输纠错方案对aurora协议进行改进,增强传输可靠性同时保留系统实现开销低的特点。同时,为满足一般便携式设备对低功耗的需求,本发明增加动态功耗管理部分,根据系统实际需要控制时钟域的开启或关闭,在满足系统工作所需的前提下,能尽可能的降低系统功耗。
44.结合图1和图2,本实施例提供一种基于aurora改进链路协议的axi stream协议高速并串转换系统,该系统包括:
45.协议层:经axi stream接口实现和axi stream总线通信;
46.链路层:数据发送、数据接收以及链路状态的控制;
47.物理层:完成对数据的串行传输编解码和数据的串化/解串。
48.以下对协议层、链路层和物理层进行具体说明。
49.一、协议层
50.协议层包括axi stream主接口、axi stream从接口,协议层部分具备axi stream主从双接口实现系统和axi stream总线的数据交互,该部分可兼容多种axi stream传输数据宽度。再通过异步fifo保证异时钟域信号的同步并实现和链路层数据通信。
51.二、链路层
52.链路层包括:
53.链路层数据发送模块:链路层在接收到协议层数据后完成对数据的打包并根据当
前采用的校验方式加装校验码后传输至物理层;
54.链路层数据接收模块:链路层在接收到物理层的数据后,完成对数据的解析和验证并剥离起始帧、结束帧和检验数据部分;
55.链路层控制模块:根据链路工作状态之间的转换关系实现链路状态的控制,同时通过滑动窗口方式检测固定时间内接收到的错误数据包个数,选择采用的传输纠错方案。
56.链路层数据发送模块包括:
57.发送数据预处理单元:接收协议层数据,对数据进行起始帧和结束帧的添加并根据当前的校验方式添加校验数据;
58.发送缓冲单元:接收并暂存发送数据预处理单元预处理后的数据,并向发送仲裁单元提出数据发送请求;
59.链路控制字生成单元:接收到链路控制命令后,添加crc5校验码以及起始帧和结束帧,并向发送仲裁单元提出链路控制字发送请求;
60.发送仲裁单元:根据数据发送请求和链路控制字发送请求的优先级选择将数据或链路控制字传输至物理层。
61.链路层数据接收模块包括:
62.接收数据预处理单元:接收物理层的数据,根据接收数据的帧头类型,判别接收到的为链路控制字或通信数据;
63.链路控制字校验单元:对链路控制字进行校验,并将数据剥离起始帧和结束帧后发送至链路层控制模块进行解析;
64.接收数据校验单元:对通信数据进行校验,并将数据发送至协议层。
65.链路层从功能模块上分为发送、接收和控制三个部分。在发送部分中,包括实现发送数据的打包并发送和链路控制字的生成并发送两个功能。发送数据在发送数据预处理单元中完成对发送数据起始帧和结束帧的添加并根据当前的校验方式添加校验数据,后将发送数据传输至发送缓冲单元,实现对发送数据的暂存,发送缓冲单元在存在需发送数据时,向发送仲裁单元提出数据发送申请。链路控制字生成单元在接收到链路控制命令后,添加crc5校验码和起始帧,结束帧,并向发送仲裁单元提出链路控制字发送请求。发送仲裁单元根据两个发送请求的优先级来选择将数据或链路控制字传输至物理层。接收部分中,包括数据接收处理和链路控制字接收处理两个功能。物理层数据先由接收数据预处理单元根据接收数据的帧头类型,判别接收到的为链路控制字或一般通信数据。如果为链路控制字,则经链路控制字校验单元完成链路控制字的校验并将正确数据剥离起始帧和结束帧后发送至链路控制单元进行解析。一般通信数据则经由接收数据校验单元根据当前校验方式完成对数据的校验,并将正确接收数据发送至协议层。校验结果则发送至链路控制单元。
66.链路层控制模块根据信噪比选择传输纠错方案,具体地:低信噪比条件下采用前向纠错rs编码方式传输纠错,高信噪比条件下采用gbn自动重传方式传输纠错。链路层控制模块根据图3所示的状态转移图实现链路各状态之间的转移。并完成校验方式的选择及链路控制命令的生成和解析。
67.三、物理层
68.物理层包括:
69.8b/10b编解码单元:对接收的链路层数据进行传输编码,或对接收到的串行数据
进行传输码解码;
70.串化/解串单元:对传输编码数据在信号线上进行串行传输,或对接收到的串行数据进行解串形成并行数据。
71.物理层在发送数据时,将接收到的链路层数据在进行8b/10b编码后串化传输。接收数据则解串再进行8b/10b解码后传输至链路层。
72.此外,为了降低系统功耗,系统采用动态功耗管理方式,根据系统工作状态的变化对不同时钟域进行管理。具体地,系统设置低功耗管理单元,低功耗管理单元根据不同工作状态需要将系统的工作时钟划分为不同时钟域,在系统不同工作状态下通过门控时钟技术实现对不同时钟域的控制。系统的工作时钟划分为三个时钟域,包括发送时钟域、接收时钟域和全局时钟域。系统不同工作状态下对时钟域的控制包括:在系统全双工工作状态下,三个时钟域全部开启;在仅发送状态下,开启全局时钟域和发送时钟域;在仅接收状态下,系统仅开启全局时钟域和接收时钟域;在休眠状态下,系统关闭所有时钟域;其他状态下,仅开启全局时钟域。
73.本实施例中,采用滑动窗口方式对最新接收到的256个数据包进行检测,当接收到的错误数据包个数小于或等于17个时,采用crc32作为数据校验码,否则采用rs码方式进行数据传输。
74.本实施例中,分别做了两次比较,第一次为传输数据包长度为256字节时,采用纯gbn传输方式和gbn
‑
rs传输方式时,系统数据传输效率的对比;第二次为系统有动态功耗管理单元和没有动态功耗管理单元情况下,系统的功耗性能比较。仿真结果如图4和图5所示。
75.图4比较了传输数据包长度为256字节时,不同传输方式对系统传输效率的影响。从图4中可以看出,采用gbn
‑
rs方式,能有效改善在低信噪比情况下的数据传输效率。数据传输效率的上升点远大于纯gbn方式,且数据传输效率上升趋势曲线也略优于纯gbn方式。图5给出了系统在有无动态功耗管理的条件下功耗的仿真对比结果。从图5中可以看出,动态功耗管理能有效降低系统的功耗情况。
76.axi stream总线作为一种适合于大吞吐量数据传输的片内总线协议,被广泛应用于多种集成电路的设计当中。本发明基于aurora链路协议设计实现axi stream协议的高速串行传输方案。通过对传输纠错技术的研究,提出gbn
‑
rs传输纠错方案,结合aurora链路协议,旨在提升链路协议的传输可靠性和低信噪比条件下的数据传输效率。同时,分析系统在通信过程中各部分所需要承担的功能和需要的条件,划分不同的时钟域,利用门控时钟技术完成动态功耗管理的设计。仿真结果表明,本发明在实现axi stream高速串行传输的技术上,保障了系统数据传输的可靠性,并在更大范围的信噪比条件中拥有良好的数据传输效率,同时具备低功耗功能。
77.上述实施方式仅为例举,不表示对本发明范围的限定。这些实施方式还能以其它各种方式来实施,且能在不脱离本发明技术思想的范围内作各种省略、置换、变更。