基于burst和流水线的cpu和fpga接口方法

文档序号:6435711阅读:290来源:国知局
专利名称:基于burst和流水线的cpu和fpga接口方法
技术领域
本发明涉及一种基于BURST和流水线的CPU和FPGA接口方法,能够用于CPU和 FPGA需要有大量数据进行交互的各种场合。
背景技术
随着FPGA(Field Programmable Gate Array)的应用日渐广泛,很多系统采用了 CPU+FPGA的构架方式。CPU和FPGA之间有大量的数据需要进行交互,如何提高CPU读写 FPGA的效率已经成为很多应用中的一个瓶颈问题。目前,FPGA —般通过双口 RAM和CPU进行交互,通过双口 RAM的缓冲以解决FPGA 和CPU的速度和并行性等问题。双口 RAM可以采用专用的双口 RAM芯片或者利用FPGA的逻辑模拟出来的双口 RAM,前者由于成本高,容量小,所以一般更多的是采用后者的方式。为了便于说明,在下面的时序讨论以某MPC8247应用系统为例,CPU的读写频率 100MHz,但是具体的原理可以适用于其他各种频率的CPU。根据FPGA的编译信息可以知道, FPGA的逻辑资源模拟出来双口 RAM的输出延时一般在12ns到17ns之间。考虑到地址的建立时间、数据的保持时间等因素,CPU每次读取FPGA双口 RAM应该需要至少4个时钟周期, 也就是40ns,才能够对FPGA的双口 RAM进行正常读写。图1是用传统方式CPU对FPGA进行读写的示意图,CPU的每次读写都需要等待大约40ns的时间。整个FPGA的输出过程没有重叠,连续读取8次所需要的时间至少为320ns。即使CPU读取FPGA数据采用了 DMA方式,由于CPU对FPGA进行读写的时候,地址数据总线已经被DMA占用,CPU无法对SDRAM和FLASH等外设进行操作,所以此时CPU已经相当于处于等待状态,所以此时CPU的效率仍然比较低。

发明内容
为了解决现有技术中CPU和FPGA之间有大量的数据需要进行交互,但是两者之间的交换效率较低,不能满足实际使用需要的问题。本发明提出了一种CPU采用BURST方式结合流水线技术对FPGA进行读写的方法,在CPU和FPGA有大量数据进行交互的场合,采用这种方式能够大大的降低了 CPU读写FPGA所需要的时间,提高CPU读写FPGA的效率。为了解决上述问题,本发明所采取的技术方案是
一种基于BURST和流水线的CPU和FPGA接口方法,其特征在于包括以下步骤 (1 )、CPU对FPGA采用BURST的方式进行读写,采用这种方式后,CPU能够对FPGA进行连续多次读写;
(2)、在FPGA内部采用了内部地址寄存器的方式,在CPU开始读写的时候,FPGA把当前的读写地址锁存到FPGA内部的地址寄存器中;
(3)、对于读操作,FPGA在当前读周期完成之前,自动把地址寄存器的值加1,输出下一个数据;对于写操作,则在当前写周期完成后,把地址寄存器的值加1 ;
(4)、在后面的过程中,每个时钟周期,FPGA都把地址寄存器自动加1。
前述的一种基于BURST和流水线的CPU和FPGA接口方法,其特征在于对于读操作,CPU采用了 BURST方式能够连续对FPGA进行多次读操作,CPU第一次读数据的时候,整个周期需要40ns,FPGA在20ns的时候开始输出数据,由于FPGA的数据输出延时为20ns,所以40ns的时候,CPU可以读到第一个数据;在FPGA的内部,在30ns的时候设计逻辑自动把当前地址加1,开始输出下一个地址的内容,由于FPGA的数据输出延时为20ns,在50ns的时候,CPU能够读到第二个数据,在以后的时间内,依此类推,FPGA可以在每个时钟周期内输出一个数据。前述的一种基于BURST和流水线的CPU和FPGA接口方法,其特征在于对于写操作不需要考虑FPGA的数据输出延时时间,FPGA内部的地址寄存器的值只需要在本次写周期完成后再加1。前述的一种基于BURST和流水线的CPU和FPGA接口方法,其特征在于对于连续 8次读操作,CPU读取FPGA数据所需要的时间为1 IOns。本发明的有益效果是BURST方式是CPU为了提高读写效率而采用的一种连续读写方式,一般根据CPU的不同,BURST的长度可以配置为4个或者8个。目前这种技术一般仅应用于CPU和SDRAM的之间的读写,CPU采用BURST方式能够对SDRAM的多个地址进行读写,提高了 CPU对SDRAM的读写效率。本发明把BURST方式引入到了 CPU对FPGA的读写过程,在FPGA中采用了流水线技术,大大提高了 CPU读写FPGA的速度。


图1是采用传统方式CPU对FPGA进行读写的示意图。图2是FPGA采用流水线方式读过程的示意图。图3是FPGA采用流水线方式写过程的示意图。
具体实施例方式下面结合附图对本发明做进一步的描述。本发明的实施包括两个方面的设计,第一部分是CPU按照BUSRT方式对FPGA进行读写;第二部分是FPGA的采用流水线方式读、写操作的实现。CPU对FPGA按照类似BURST的方式进行读写。采用这种方式后,CPU能够对FPGA 进行连续多次读写。在FPGA内部采用了内部地址寄存器的方式,在CPU开始读写的时候,FPGA把当前的读写地址锁存到FPGA内部的地址寄存器中。对于读操作,FPGA在当前读周期完成之前,把地址寄存器的值加1,输出下一个数据;对于写操作,则在当前写周期完成后,把地址寄存器的值加1。在后面的过程中,每个时钟周期,FPGA都把地址寄存器自动加1。按照这样的过程,CPU读、写取第一个数据时需要经历较长的等待时间,但是在后面的过程中,CPU可以在每个时钟周期读、写一个数据,大大提高了效率。图2是采用BURST和流水线技术实现CPU对FPGA读时序。下面以FPGA的读过程为例,来说明FPGA的工作过程。由于CPU采用了 BURST方式,所以CPU能够连续对FPGA进行多次读操作。CPU第一次读数据的时候,整个周期大约需要40ns,FPGA大约在20ns左右的时候开始输出数据, 由于FPGA的数据输出延时一般在IOns和16ns之间,所以40ns的时候,CPU可以读到第一个数据。在FPGA的内部,在30ns的时候设计逻辑自动把当前地址加1,开始输出下一个地址的内容,由于FPGA的数据输出延时为20ns,这样在50ns的时候,CPU能够读到第二个数据,在以后的时间内,依此类推,FPGA可以在每个时钟周期内输出一个数据。在整个过程中,FPGA输出数据的延时相互重叠,类似流水线的方式进行连续数据输出,能够大大提高了 FPGA的读写效率。采用这种方式后,对于连续8次读操作,所需要的时间为IlOns左右。大大提高了 CPU读写的效率以及和FPGA间数据交互带宽。图3是采用BURST和流水线技术实现CPU对FPGA写时序。和读过程相比,主要的区别在于由于写入过程不需要考虑FPGA的数据输出延时,所以FPGA内部的地址只需要在本次读写完成后再加1。结合BURST方式,大大提高了数据的写入速度。以上显示和描述了本发明的基本原理、主要特征及优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界。
权利要求
1.一种基于BURST和流水线的CPU和FPGA接口方法,其特征在于包括以下步骤(1 )、CPU对FPGA采用BURST的方式进行读写,采用这种方式后,CPU能够对FPGA进行连续多次读写;(2)、在FPGA内部采用了内部地址寄存器的方式,在CPU开始读写的时候,FPGA把当前的读写地址锁存到FPGA内部的地址寄存器中;(3)、对于读操作,FPGA在当前读周期完成之前,自动把地址寄存器的值加1,输出下一个数据;对于写操作,则在当前写周期完成后,把地址寄存器的值加1 ;(4)、在后面的过程中,每个时钟周期,FPGA都把地址寄存器自动加1。
2.根据权利要求1所述的一种基于BURST和流水线的CPU和FPGA接口方法,其特征在于对于读操作,CPU采用了 BURST方式能够连续对FPGA进行多次读操作,CPU第一次读数据的时候,假设整个周期需要40ns,FPGA在20ns的时候开始输出数据,由于FPGA的数据输出延时为20ns,所以40ns的时候,CPU可以读到第一个数据;在FPGA的内部,在30ns的时候设计逻辑自动把当前地址加1,开始输出下一个地址的内容,由于FPGA的数据输出延时为20ns,在50ns的时候,CPU能够读到第二个数据,在以后的时间内,依此类推,FPGA可以在每个时钟周期内输出一个数据。
3.根据权利要求2所述的一种基于BURST和流水线的CPU和FPGA接口方法,其特征在于对于写操作不需要考虑FPGA的数据输出延时时间,FPGA内部的地址寄存器的值只需要在本次写周期完成后再加1。
4.根据权利要求2或3所述的一种基于BURST和流水线的CPU和FPGA接口方法,其特征在于对于连续8次读操作,CPU读取FPGA数据所需要的时间为110ns。
全文摘要
本发明公开了一种基于BURST和流水线的CPU和FPGA接口方法,适合用于CPU和FPGA需要有大量数据进行交互的各种场合。其特征在于主要是CPU采用了BUSRT方式对FPGA进行读写,在FPGA采用了内部地址寄存器的方式,实际的读写地址采用的是FPGA内部地址寄存器。本发明解决了现有技术中CPU和FPGA之间有大量的数据需要进行交互,但是两者之间的交换效率较低,不能满足实际使用需要的问题,提出了一种CPU采用BURST方式结合流水线技术对FPGA进行读写的方法,采用这种方式能够大大的降低了CPU读写FPGA所需要的时间,提高CPU读写FPGA的效率。
文档编号G06F13/20GK102508798SQ201110315468
公开日2012年6月20日 申请日期2011年10月18日 优先权日2011年10月18日
发明者余华武, 叶品勇, 陈庆旭, 魏建功 申请人:国电南京自动化股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1