刘辉 罗刚 王乾刚
(长园深瑞继保自动化有限公司,广东 深圳,518057)
摘 要:现场可编程门阵列FPGA是一种拥有高速率、可并行性处理数据的逻辑芯片,经常用于一些需要数据传输或高运算处理的板件中。FPGA解析协议栈等交互性能较弱,编写控制逻辑代码复杂,但是可以实现底层传输自定义数据包的过程。为实现FPGA之间的数据传输,设计其通讯协议和编解码方式,以达到芯片或板件之间数据交互的目的。
关键词:FPGA;片间通讯;数据恢复;
0 引言
当前医疗、交通等各个领域的自动化控制硬件设计中,单板之间或者芯片与芯片之间都需要进行大量的数据交换[1]。基本的数据传输方式包含并行和串行两种传输方式,在设计开发过程需要选择对应匹配的数据传输方式。
1 数据传输方式比较
1.1 并行传输方式
并行传输方式的传输原理比较简单,单时钟周期可传输多bit的数据,且位宽一般为8的整数倍,如16bit、32bit等,这使得其传输带宽较高。常见的并行传输协议,如片内的AXI,片外的GMII协议,RMII协议等。但是并行传输在有着比较简单的传输原理的同时其还有很明显的缺点,主要为:
1)由于一次要传输多bit的数据,所以在传输过程中需要较多的传输媒介。对于类似于FPGA这样的器件也就意味着需要占用更多的IO资源。
2)由于并行传输,且随着传输速率的不断提升,并行信号之间很容易产生较大的串扰。对于数字电路而言,串扰会使得电路中的建立保持时间难以得到满足,从而影响数
据传输的误码率。
1.2 串行传输方式
串行传输时数据被一位一位地进行传输。一般而言,串行发送端会有编码器和并串转换器;而接收端有CDR(时钟数据恢复)电路,串并转换器和解码器。串行传输和并行传输相比,主要的优点为:
1)异步串行传输方式最少只需要一对传输线,与并行传输方式相比极大的降低了板级布线的复杂程度。
2)由于传输的媒介减少,并行传输中的信号串扰问题将得到改善,从而可以提升整体的传输速率。
串行传输时为了减少信号线的数量,一般只发送数据信号,在这种情况下数据的接收端就需要正确的恢复出发送端的数据与时钟,这个工作就需要CDR(时钟数据恢复)来完成。
2 CDR的总体设计
设计总体框图如图1所示。整个流程由数据延迟和边沿提取模块、最优选择判决模块、时钟数据恢复模块组成。
2.1 数据延迟和边沿提取
数据拼接模块先将两个数据中指定的bit进行拼接得到新的数据[2],然后对数据进行延时处理,用于提取过采样数据的边沿信息,计算出模块中每次过采样值的边沿数。

图1 整体原理框图
2.2 最优选择判决
根据不同边沿来进行最佳采样判决,分别对0个边沿、1个边沿和2个边沿在当前采样值的情况下选取最佳采样数据选择,输出最佳采样数据有效标志以及最佳采样位置锁存[3]。
2.3 时钟数据恢复
根据这种CDR方法恢复数据,分别按照0、1、2个边沿输出最优选择方案,选择一路输出作为整个CDR电路恢复的时钟和数据。遗留边沿使能判断模块用于计算当前采样周期中是否还有未被恢复并且需要在下一采样周期恢复的数据。(当遗留边沿使能拉高时表明当前周期还有存在未被恢复的数据,需要在下一采样周期进行恢复)。
3 CDR实现的逻辑设计
假设在100Mbps的传输实例中发送端发出的数据与发送时钟的关系如图2中clk和pi_data所示,由于是异步传输并且还伴随着数据发送过程中的时钟抖动(clockjitter),在接收端接收时收到的数据会存在相移以及码元宽度变长或是变短的现象。基于图中pi_data,使用x8采样率的过采样按照上述方法对实际的时钟数据恢复流程进行分析,可以得到数据延迟(filter_data_temp)和边沿信息(edge_info),最优判决的参考依据边沿数(edge_num),以及最终恢复出来的数据(dout)和有效信号(dout_valid)。

图2 流水工作示意图
4 结束语
根据上述介绍的CDR算法,能够实现FPGA片间稳定、可靠的串行数据通讯,并且能够提高传输效率,使用与传输速率相同的时钟恢复出对应的数据,可以用于没有serdes等第三方ip的FPGA器件。
参考文献:
[l] 陈志逸,赵敏,孟遨,基于并行控制的FPGA多串口拓展实现[J].机械制造与自动化,2014,43(01):124-127.
[2] 陈晨,李志来,徐伟,金光. 基于FPGA的高速同步HDLC通信控制器设计[J]. 电子设计工程,2010.18(8):175-178.
[3] 孙航. Xilinx可编程逻辑器件应用与系统设计[M].北京:电子工业出版社,2008.
作者简介:刘 辉(1985-),男,硕士,中级工程师,研究方向:嵌入式FPGA底层驱动。