基于FPGA的串行64B/66B编解码IP核设计与研究

2018-05-14 13:45庞志锋刘毅夫安国臣王晓君
科技风 2018年25期
关键词:高电平解码编码

庞志锋 刘毅夫 安国臣 王晓君

摘要:串行传输技术具有速度快,成本低的特点,被广泛应用于高速通信领域。在高速串行系统中,FPGA器件结合了可编程性和高速I /O的优点,实现了高速,稳定的数字通信。本文基于FPGA开发环境,在vivado开发平台上使用VHDL语言编程设计了64B/66B编解码的IP核,完成了关键模块的功能仿真验证,為高速串行传输系统提供了一种有效的设计方法,具有一定工程意义。

关键词:高速串行传输;VHDL;64B/66B编解码;IP核

随着对电子系统吞吐量要求的日益提高,并行数据传输模式已不能满足高带宽应用的传输需求。高速串行传输技术[1]具有带宽高,延时低,信号完整性好,可扩展性强等优点,已成为数据传输的主流技术,广泛应用于通信网络、数据存储、个人计算机、服务器和嵌入式控制等诸多领域。广泛应用于通信网络、数据存储、个人计算机、服务器和嵌入式控制等诸多领域。现场可编程门阵列(Field Programmable Gate Array,FPGA)比数字信号处理器处理速度快,FPGA能够处理复杂的高速逻辑,与专用芯片相比,开发周期更短,灵活性更高。基于FPGA的系统设计验证具有稳定性高、成本低、处理速度快等优点,FPGA器件已经成为实现串行接口应用[2]的理想连接平台。IP核(Intellectual property core),就是知识产权核,是一段可以实现特定电路功能的可重用模块,设计人员能够调用IP核来进行现场可编程逻辑门阵列的逻辑设计,能够减少开发周期。

本文主要是基于FPGA的开发环境中使用VHDL语言来设计实现64B/66B编解码[3]功能的IP核,通过加扰、解扰模块以及并串/串并转换[4]模块来设计高速串行传输系统。

1 64B/66B编解码

64 B/66B编码是一种高性能的串行数据编码标准,它并不是真正的编码,而是一种基于扰码机制的编解码方式,是 IEEE推荐的10G通信标准编码方式。[5]相比较于8B/10B编码,[6]64B/66B编码使编码开销更低,适应更复杂的硬件,支持最新的数据和程序。当前,64B/66B编码主要应用于 Fiber Channel10GFC和16 GFC、10G以太网、 100G以太网、10 G EPON、InfiniBand、Thunderbolt和 Xilinx的Aurora协议。

64B / 66B编码的基本思想是将64位数据或控制信息编码为66位块传输。主要是为了接收器的数据对齐和接收到的数据比特流的同步。“10”和“01”表示两种同步头,“10”表示数据是由控制信息和数据混合而成,其中紧邻同步头的8位数据为类型域,剩下的56位则是控制信息或者数据或者两者的混合。如图1所示,其中D表示64B/66B的数据编码,每个数据码为8位;Z表示控制码,每个控制码为7位;S表示包的开始,T表示包的结束。T能够在任何字节中存在,但是S只能在8个字节中的第0和4个字节中出现。出了同步码之外,64位数据在传输之前必须先进行加扰。用于64B/66B编码的扰码器的特征多项式为X58+X39+1。

为了提高高速数据传输的稳定性以及增加传输效率,高速串行数据传输系统从刚开始求稳采用的 8 B/10 B到现如今已经广泛采用64B/66B编码。64B/66B编码中的扰码技术将数据重新排列或者进行编码以使其最优化的方法,使数据 bit的“0”和“1”最大程度的达到随机分布,进一步减轻了抖动的码间串扰,[7]提高了数据传输的可靠性。64B/66B编码最大的好处是效率比较高,传输冗余的 bit只有2位,编码的开销约为3%,运用64B/66B编码的数据传输的效率得到保证,在更高速的传输环境下更具有优势。

2 系统模块设计

基于FPGA的高速串行传输系统主要分为两部分:数据发送处理和数据接收处理。数据发送处理流程主要是:并行数据输入,经过64B/66B编码模块转换,再经过加扰模块对数据进行加扰,然后经过并/串转换将数据发送出去。测试系统将串行发送与接收端做自环处理。数据接收处理流程为:自环数据经过串/并转换将数据送至解扰模块解扰,解扰后的数据再经过64 B/66 B解码模块解码,这样既保证了数据的稳定传输,又能够确保数据的传输效率。整体系统原理图如图2所示。

首先,输入信号经过接收模块缓存到fifo中,在64B/66B编码模块中根据不同的64b码格式,如果8字节组是数据字符,就加上“01”标识;如果有一个或多个字节是控制字符,就加上“10”标识。将64位信号添加同步头转换为66b信号,接着在加扰模块中仅对64b数据进行加扰,加扰后再并串转换模块中将66b转换为一位串行信号输出。数据接收处理相对于数据发送则是一个完整的逆过程,信号经过串并转换,先将数据进行解扰,再根据66b码的同步头判断数据类型,如果是数据块则直接输出;如果是控制块,则需要对照查找表对数据进行解码后输出。系统内部结构图如图3所示。

3 仿真结果和分析

I_clk为系统时钟信号(频率为160MHz),I_rst为复位信号(高电平有效,有效时系统复位),TX_PE_DATA[63:0]为源数据输入信号,TX_PE_DATA_V为数据使能信号(高电平有效),TX_DATA为编码后数据输出信号,TX_HEADER_1和TX_HEADER_0为两位同步头信号。系统复位后,64bit数据发送到编码模块中,经过编码后输出64bit数据以及2bit同步头,如图4所示。

I_clk是系统时钟信号,I_rst是复位信号(高电平有效),DATA_VALID_IN是加扰数据有效信号,UNSCRAMBLED_DATA_IN是编码后数据输入信号,经过加扰模块对数据进行加扰,SCRAMBLED_DATA_OUT为加扰数据输出信号,如图5所示。

数据经过加扰后经过串并转换模块转换为1位串行数据,经过系统自环,再经过逆过程并串转换转换为并行数据进行处理。

I_clk为系统时钟信号,I_rst为复位信号(高电平有效),SCRAMBLED_DATA_IN为加扰数据输入信号,DATA_VALID_ IN为解扰数据有效信号,UNSCRAMBLED_DATA_OUT是解扰数据输出信号。解扰是加扰的逆过程,数据经过解扰模块后输出64bit解扰数据,如图6所示。

I_clk是系统时钟信号,I_rst是复位信号(高电平有效),RX_HEADER_1和 RX_HEADER_0是两个同步头信号,RX_DATA是解扰数据输入信号,RX_PE_DATA是解码数据输出信号,RX_PE_DATA_V是解码数据有效信号。解码模块输出数据如图7所示,经过试验仿真验证,编码结果和编解码真值表一致。整个高速通信系统运行完毕。

4 结语

本文主要使用 VHDL硬件描述语言在基于 FPGA的环境下编写了64 B/66 B编解码模块,经过加扰和解扰模块,以及利用并串/串并转换模块来实现整个高速通信系统,在整个系统设计中,各模块能够完成独立的功能实现,64 B/66 B编码使数据 bit的“0”和“1”的个数得到了最大化的平衡,以及极高的传输效率,非常适合超高速的信息传输,同步时钟能够确保发送和接收之间的同步,同时还能为解码模块提供可靠的时钟参考。该设计具有很实用的工程价值。

参考文献:

[1]尚自乾.基于FPGA的高速串行传输技术研究[D].陕西师范大学,2017.

[2]李大鹏,陈长胜,王世奎,李雯.基于FPGA的高速串行传输接口研究与实现[J].航空计算技术,2008(02):100103.

[3]Aurora_64B/66B_protocol_spec_sp002.SP011( v11.2).USA,Xilinx Corp,April 4,2018.

[4]王向阳.基于FPGA的64B/66B编解码设计与实现[J].电子技术与软件工程,2016(23):129131.

[5]IEEE Std 802.3ae2002[S/OL].New Jersey:IEEE,2002[2002830].http://standards.ieee.org.

[6]舒志兴,黄鲁,杜学亮.一种新的8B/10B编码器设计[J].微电子学与计算机,2015,32(09):181184.

[7]高曉宇,杨龙剑.高速串行通道的信号完整性问题分析[J].通信技术,2013,46(06):4447.

作者简介:刘毅夫(1993),男,汉族,河北廊坊人,硕士,FPGA。

*通讯作者:庞志锋。

猜你喜欢
高电平解码编码
住院病案首页ICD编码质量在DRG付费中的应用
解码 四十五度仰望天空
文化解码
文化 解码
文明 解码
高电平MMC子模块电容电压控制策略研究
数字电子技术的应用
高效视频编码帧内快速深度决策算法
浅谈物理电路与数字电路
关于Multisim10.0的高电平调幅电路仿真研究