基于fpga和dsp的数据传输系统的制作方法

文档序号:6628120阅读:228来源:国知局
基于fpga和dsp的数据传输系统的制作方法
【专利摘要】本发明公开了一种基于FPGA和DSP的数据传输系统。其包括FPGA模块、DSP模块和外部存储器,FPGA模块包括存储器读写控制单元、数据处理单元、异步FIFO单元、同步FIFO单元和数据读写检测单元。存储器读写控制单元从外部存储器读取预定单位的数据;数据处理单元对每单位的数据进行处理;异步FIFO单元对预定单位的数据进行时钟域转换;同步FIFO单元缓存预定单位的数据,在数据达到预定单位时向DSP模块发中断信号;DSP模块根据中断信号从同步FIFO单元读取数据;数据读写检测单元在检测到DSP模块每读取完一个单位的数据时,向存储器读写控制单元发出反馈信号,以使存储器读写控制单元从外部存储器读取下一单位的数据。本发明能保证在EMIF传输方式下,FPGA与DSP之间的数据传输连续性。
【专利说明】基于FPGA和DSP的数据传输系统

【技术领域】
[0001]本发明涉及数据处理【技术领域】,尤其是一种基于FPGA和DSP的数据传输系统。

【背景技术】
[0002]FPGA(Field Programmable Gate Array,现场可编程门阵列)+DSP(digitalsignal processing,数字信号处理)的架构是最常用的数字信号处理解决方案。FPGA用于完成大数据高速处理,DSP用于完成后期复杂处理。在大多数应用中,FPGA用于实现对大量数据的高速实时处理,然而FPGA内部存储空间比较小,所以一般采用外部存储器来存储数据,FPGA从外部存储器读取数据经过处理后向DSP发中断信号,DSP在收到中断信号后主动从FPGA读取数据进行下一步处理。
[0003]然而,在面对大数据传输时,由于FPGA内可设置的缓冲区是很小的。因此,目前采取的方式是仅仅将FPGA作为布线通道,由DSP主动访问FPGA连接的外部存储器。但是,如果仅仅将FPGA作为布线通道,则一些应用中的运算(例如雷达信号处理中的求模运算)只能在DSP里面进行,从而会压缩DSP的处理时间,增加DSP的实时性设计难度,因而难以保证FPGA和DSP之间的数据传输连续性。


【发明内容】

[0004]本发明所要解决的技术问题是:提供一种基于FPGA和DSP的数据传输系统,能够保证在EMIF(External Memory Interface,外部存储器接口 )传输方式下,FPGA与DSP之间的数据传输连续性。
[0005]本发明采用的技术方案是:提供一种基于FPGA和DSP的数据传输系统。所述数据传输系统包括FPGA模块、DSP模块和外部存储器,所述FPGA模块包括存储器读写控制单元、数据处理单元、异步FIFO单元、同步FIFO单元和数据读写检测单元,所述存储器读写控制单元用于从所述外部存储器读取预定单位的数据,并将每单位的数据依次送入所述数据处理单元;所述数据处理单元用于对每单位的数据进行处理后送入所述异步FIFO单元;所述异步FIFO单元用于对所述预定单位的数据进行时钟域转换后送入所述同步FIFO单元;所述同步FIFO单元用于缓存所述异步FIFO单元送入的数据,并在所缓存的数据达到所述预定单位时,向所述DSP模块发出中断信号;所述DSP模块用于根据所述中断信号从所述同步FIFO单元读取数据;所述数据读写检测单元用于在检测到所述DSP模块每读取完一个单位的数据时,向所述存储器读写控制单元发出反馈信号,以使得所述存储器读写控制单元根据所述反馈信号从所述外部存储器读取下一单位的数据。
[0006]优选地,所述DSP模块从所述同步FIFO单元读取所述预定单位的数据的时间大于所述存储器读写控制单元与所述同步FIFO单元之间的群延时,以保证所述同步FIFO单元不会被读空。
[0007]优选地,所述存储器读写控制单元读取一个单位的数据的时间小于所述DSP模块读取一个单位的数据的时间。
[0008]优选地,所述存储器读写控制单元在读取完一个单位的数据的时间后处于空闲状态,直至接收到所述反馈信号。
[0009]优选地,所述DSP模块具体用于根据所述中断信号向所述同步FIFO单元发送读取控制信号;所述同步FIFO单元用于根据所述读取控制信号输出数据至所述DSP模块。
[0010]优选地,所述DSP模块用于将所述读取控制信号的脉冲宽度设置为两个时钟周期;所述同步FIFO单元用于在检测到读取控制信号的第一个时钟周期时输出数据至所述DSP模块,在检测到读取控制信号的第二个时钟周期时不作处理。
[0011]综上所述,由于采用了上述技术方案,本发明的有益效果是:通过FPGA预先缓存预定单位的数据,并监测FPGA和DSP之间的交互,在DSP从FPGA读取完数据之前FPGA提前从外部存储器读取数据并进行处理和缓存,从而能够保证在EMIF传输方式下,FPGA与DSP之间的数据传输连续性,即使在DSP发送的读取控制信号不连续,且不连续的间断点随机出现时,FPGA也能够提前准备数据,保证FPGA到DSP的数据的正确、可靠传输,并且FPGA不再简单作为布线通道,可以将部分在DSP内进行的运算移植到FPGA中,为DSP预留更多的处理时间,以降低DSP的实时性设计难度。

【专利附图】

【附图说明】
[0012]本发明将通过例子并参照附图的方式说明,其中:
[0013]图1是本发明实施例的基于FPGA和DSP的数据传输系统的原理框图。

【具体实施方式】
[0014]本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
[0015]本说明书中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
[0016]如图1所示,是本发明实施例的基于FPGA和DSP的数据传输系统的原理框图。本实施例的数据传输系统包括FPGA模块、DSP模块和外部存储器,FPGA模块包括存储器读写控制单元、数据处理单元、异步FIFO单元、同步FIFO单元和数据读写检测单元。
[0017]存储器读写控制单元用于从外部存储器读取预定单位的数据,并将每单位的数据依次送入数据处理单元。其中,外部存储器作为大容量存储器,能够将FPGA模块需要的数据重新存储并进行排列。
[0018]数据处理单元用于对每单位的数据进行处理后送入异步FIFO单元。其中,数据处理单元主要用于执行部分需要在DSP模块中进行的运算,即将DSP中的运算移植到FPGA模块中。
[0019]异步FIFO单元用于对预定单位的数据进行时钟域转换后送入同步FIFO单元。其中,异步FIFO单元可以对数据进行时钟域的转换,以及数据格式、数据连续性的转换。
[0020]同步FIFO单元用于缓存异步FIFO单元送入的数据,并在所缓存的数据达到预定单位时,向DSP模块发出中断信号。其中,同步FIFO单元作为和DSP模块的交互逻辑,可以使FPGA和DSP的交互逻辑的设计更加简单、方便和可靠。同步FIFO单元和异步FIFO单元都是基于FIFO (First Input First Output,先入先出队列)存储器。同步FIFO单元的读取和写入都在同一时钟完成,而异步FIFO单元的读取和写入在不同时钟完成。
[0021 ] DSP模块用于根据中断信号从同步FIFO单元读取数据。其中,同步FIFO单元缓存预定单位的数据后才向DSP模块发送中断信号,可以保证DSP读取过程中同步FIFO单元始终不会被读空。
[0022]数据读写检测单元用于在检测到DSP模块每读取完一个单位的数据时,向存储器读写控制单元发出反馈信号,以使得存储器读写控制单元根据反馈信号从外部存储器读取下一单位的数据。其中,DSP模块每读取一个单位的数据后,存储器读写控制单元就读取下一单位的数据,可以保证数据的连续性传输。
[0023]在本实施例中,DSP模块从同步FIFO单元读取预定单位的数据的时间大于存储器读写控制单元与同步FIFO单元之间的群延时。进一步地,存储器读写控制单元读取一个单位的数据的时间小于DSP模块读取一个单位的数据的时间,并且存储器读写控制单元在读取完一个单位的数据的时间后处于空闲状态,直至接收到反馈信号。由于FPGA内部存在异步逻辑,产生反馈信号的数据读写检测单元的运行时钟和存储器读写控制单元的运行时钟不同,为保证数据传输稳定可靠进行,所以在时钟规划上应保证存储器读写控制单元读取一个单位的数据的时间小于DSP模块读取一个单位的数据的时间。
[0024]DSP模块具体用于根据中断信号向同步FIFO单元发送读取控制信号。同步FIFO单元用于根据读取控制信号输出数据至DSP模块。具体地,DSP模块向同步FIFO单元发送读取控制信号后,同步FIFO单元将数据发送到与DSP模块之间的总线上,DSP模块从总线上读取该数据。应当注意,本实施例中提及的一个单位的数据包括至少两个数据。
[0025]进一步,可选地,DSP模块用于将读取控制信号的脉冲宽度设置为两个时钟周期;同步FIFO单元用于在检测到读取控制信号的第一个时钟周期时输出数据至DSP模块,在检测到读取控制信号的第二个时钟周期时不作处理。其中,本申请的发明人通过大量的实验验证,当DSP模块向FPGA模块发送读取控制信号时会同步反馈一个时钟,该时钟达到较高的速度后该时钟本身的驱动能力减弱,往往不能稳定驱动FPGA内部的接口逻辑,而将读取控制信号的脉冲宽度设置为两个时钟周期,通过监测DSP模块发送的读取控制信号的电平变化,从而在FPGA模块内部产生一个读同步FIFO单元的使能信号,以此解决FPGA模块内部时钟与DSP模块所发送读取控制信号相位不同步的问题以及因DSP模块反馈的时钟的驱动能力减弱的问题。
[0026]本发明实施例的基于FPGA和DSP的数据传输系统通过FPGA预先缓存预定单位的数据,并监测FPGA和DSP之间的交互,在DSP从FPGA读取完数据之前FPGA提前从外部存储器读取数据并进行处理和缓存,从而在EMIF传输方式下,FPGA与DSP之间的数据传输连续性,并且数据传输的可靠性也较高,即使在DSP发送的读取控制信号不连续,且不连续的间断点随机出现时,FPGA也能够提前准备数据,保证FPGA到DSP的数据的正确、可靠传输。进一步地,由于FPGA不再简单作为布线通道,可以将部分在DSP内进行的运算移植到FPGA中,为DSP预留更多的处理时间,以降低DSP的实时性设计难度,使整个信号处理系统实时性的设计难度大大降低。例如在雷达信号处理的应用中,能够将CFAR(ConstantFalse-Alarm Rate,恒虚警率)的求平方根的运算移植到FPGA模块中,从而在DSP模块内实现CFAR处理时可以将现行的计算均方根的算法改为最贴近理论的计算平方根的平均值,提闻目标检测性能。
[0027]本发明并不局限于前述的【具体实施方式】。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
【权利要求】
1.一种基于FPGA和DSP的数据传输系统,其特征在于,所述数据传输系统包括FPGA模块、DSP模块和外部存储器,所述FPGA模块包括存储器读写控制单元、数据处理单元、异步FIFO单元、同步FIFO单元和数据读写检测单元, 所述存储器读写控制单元用于从所述外部存储器读取预定单位的数据,并将每单位的数据依次送入所述数据处理单元; 所述数据处理单元用于对每单位的数据进行处理后送入所述异步FIFO单元; 所述异步FIFO单元用于对所述预定单位的数据进行时钟域转换后送入所述同步FIFO单元; 所述同步FIFO单元用于缓存所述异步FIFO单元送入的数据,并在所缓存的数据达到所述预定单位时,向所述DSP模块发出中断信号; 所述DSP模块用于根据所述中断信号从所述同步FIFO单元读取数据; 所述数据读写检测单元用于在检测到所述DSP模块每读取完一个单位的数据时,向所述存储器读写控制单元发出反馈信号,以使得所述存储器读写控制单元根据所述反馈信号从所述外部存储器读取下一单位的数据。
2.根据权利要求1所述的数据传输系统,其特征在于,所述DSP模块从所述同步FIFO单元读取所述预定单位的数据的时间大于所述存储器读写控制单元与所述同步FIFO单元之间的群延时,以保证所述同步FIFO单元不会被读空。
3.根据权利要求1或2所述的数据传输系统,其特征在于,所述存储器读写控制单元读取一个单位的数据的时间小于所述DSP模块读取一个单位的数据的时间。
4.根据权利要求3所述的数据传输系统,其特征在于,所述存储器读写控制单元在读取完一个单位的数据的时间后处于空闲状态,直至接收到所述反馈信号。
5.根据权利要求1所述的数据传输系统,其特征在于,所述DSP模块具体用于根据所述中断信号向所述同步FIFO单元发送读取控制信号; 所述同步FIFO单元用于根据所述读取控制信号输出数据至所述DSP模块。
6.根据权利要求5所述的数据传输系统,其特征在于,所述DSP模块用于将所述读取控制信号的脉冲宽度设置为两个时钟周期; 所述同步FIFO单元用于在检测到读取控制信号的第一个时钟周期时输出数据至所述DSP模块,在检测到读取控制信号的第二个时钟周期时不作处理。
【文档编号】G06F13/38GK104298634SQ201410494048
【公开日】2015年1月21日 申请日期:2014年9月24日 优先权日:2014年9月24日
【发明者】罗大鑫, 许刚 申请人:四川九洲电器集团有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1