新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 基于FPGA的高速串行传输系统的设计与实现

基于FPGA的高速串行传输系统的设计与实现

作者:时间:2011-08-24来源:网络收藏

由于AURORA光纤通信的输出时钟频率设定的是125 MHz,结合硬件电路的设计,硬件晶振的频率为20 MHz,因此选择M值为000011001(25),N的值为10(4),故时钟芯片的时钟输出频率为:
i.jpg
时钟控制模块的实测时钟信号如图5所示。

本文引用地址:http://www.eepw.com.cn/article/191038.htm

a.JPG


图5是用Chipscope在线逻辑分析仪得到的波形,由于Chipscope在线逻辑分析仪的触发时钟是100 MHz,因此在抓取125 MHz的时钟信号时,在图上显示的时钟信号占空比不定,若将时钟芯片产生的时钟频率降低,则此现象消失。
2.2 AURORA发送模块
在生成AURORA IP CORE时,同时生成了一个基于AURORA协议的例示程序。因此,要实现基于AURORA协议的光纤通信,在发送端只需要在frame_gen_i模块将要发送的数据打包,然后通过AURORA模块发送出去。因此该模块着重介绍如何将上一级传送过来的数据进行打包压缩,形成适合AURORA协议的数据帧,通过AURORA协议发送到接收端。图6为frame_gen_i模块的RTL级模型图。

j.jpg


考虑到上一级传输数据速率可能会与AURORA传输的时钟频率不同,因此在发送端建立一个FIFO来做缓冲器。并且AURORA协议的发送时序图如图7所示。可以看出,TX_SOF_N为数据包帧的开始标志,TX_EOF_N为数据包帧的结束.标志,TX_REM[0:r(n)]记录最后的传输数据的线程,TX_SRC_RDY_N为低代表数据有效,TX_DST_RDY_N为低代表准备好接受数据,TX_D[0:(8n-1)]是此模块的输出数据。以上信息是AURORA协议的发送时序,在使用FIFO做缓冲时也应该遵循这样的协议。

b.JPG


发送端的FIFO模块分别包括FIFO的复位信号、FIFO空、FIFO满、以及读/写时钟、使能和数据信号线。因此应该根据FIFO的标志位empty和full来产生AURORA的发送时序,参考模型如图8所示:当RESET信号到来之时,首先将S0置为高电平,将S1置为低电平,同时根据FULL和EM-PTY的状态确定接下来的S0和S1的状态,进而根据以上逻辑关系得到TX_SOF_N,TX_EOF_N,TX_SRC_RDY_N等逻辑信号,并且根据数据X_DST_ RDY_N和TX_SRC_RDY_N生成FIFO的读使能。由以上逻辑可以看出,只有在FULL为1,EMPTY为0时,FIFO的读使能才能被打开。TX_SOF_N为数据包的帧头标志,TX_EOF_N为数据包的帧尾标志,TX_STC_RDY_N为低时代表数据有效,TX_DST_RDY_N为输入信号,根据此输入信号确定FIFO的读写时序。



评论


相关推荐

技术专区

关闭