一种基于fpga的在线重配置系统及方法

文档序号:6523172阅读:118来源:国知局
一种基于fpga的在线重配置系统及方法
【专利摘要】本发明一种基于FPGA的在线重配置系统及方法,主要采用FPGA实现,在FPGA内部实现了标准通信接口模块、存储器控模块、高性能的嵌入式处理器核、重配置功能模块、重配置控制模块以及输出接口控制模块。FPGA内嵌的高性能处理器负责与上位机的通信以及对FPGA内部的重配置功能模块进行局部动态重配置,并且能够根据不同的硬件功能将相应的数据传输至重配置硬件功能模块,经过处理后的数据通过输出接口控制模块输出至外围接口单元。本发明能够实现多种具有不同功能的硬件功能模块的时分复用,提高了嵌入式处理系统内FPGA内部资源的使用率,能以较少的硬件资源实现较复杂的硬件功能电路。
【专利说明】—种基于FPGA的在线重配置系统及方法
【技术领域】
[0001]本发明属于嵌入式处理系统设计技术,特别是涉及到一种基于FPGA的在线重配置系统及方法。
【背景技术】
[0002]在嵌入式处理系统中,要求系统必须具有在预定的时间内处理大量数据的能力,以保证系统的实时性。同时,嵌入式处理技术对系统的体积、功耗、稳定性等也有较严格的要求。FPGA因其具有高集成度、高速和高可靠性的显著特点从而在嵌入式处理中得到了广泛的应用。
[0003]由于嵌入式处理系统的硬件功能模块在实现时有大量的数据需要系统对其进行处理,因此使用FPGA实现硬件功能模块时模块量一般都比较大。同时,在系统中不同的数据源所对应的硬件功能也不一样,在传统的嵌入式处理系统中往往会在一片FPGA内实现多个具有不同功能的硬件功能模块,而这些具有不同功能的硬件模块电路往往不会同时运行,这样FPGA模块电路的规模会随着系统复杂度的增加而增大,然而FPGA内部的资源利用率反而随着系统规模复杂度的增加而下降。

【发明内容】

[0004]本发明的目的是提供一种基于FPGA的在线重配置系统,利用FPGA重配置技术,实现多种具有不同功能的硬件功能模块的时分复用。
[0005]本发明的技术方案是:
[0006]一种基于FPGA的在线重配置系统,包括上位系统、FPGA芯片、处理器、接口单元、存储器、通信接口,其特殊之处在于:
[0007]所述FPGA芯片包括存储器控制模块、通信接口控制模块、重配置硬件功能模块、重配置控制模块、输出接口控制模块,
[0008]所述存储器控制模块、通信接口控制模块、重配置硬件功能模块、重配置控制模块分别与处理器连接,
[0009]所述输出接口控制模块的输入端与重配置硬件功能模块的输出端连接,所述输出接口控制模块的输出端与接口单元的输入端连接,
[0010]所述上位系统通过通信接口与通信接口控制模块连接,所述存储器与存储器控制模块连接。
[0011]上述重配置硬件功能模块通过总线传输接口与处理器总线连接,
[0012]所述总线传输接口包括处理器总线接口及重配置应用接口,
[0013]所述处理器总线接口用于将总线上的数据、地址及控制信息传输给重配置接口部分,
[0014]所述重配置接口部分包括状态控制器、状态寄存器、输入/输出FIFO及中断请求,
[0015]所述状态控制器与处理器总线接口连接,[0016]所述状态寄存器的输入端与状态控制器连接,用于存储状态控制器收集到的运行状态,所述状态寄存器的输出通过处理器总线接口与处理器连接,[0017]所述输入FIFO的输入端通过处理器总线接口与处理器连接,所述输入FIFO的输出与重配置硬件功能模块连接,
[0018]所述输出FIFO的输入端与重配置硬件功能模块连接,所述输出FIFO的输出端通过处理器总线接口与处理器连接,
[0019]所述中断请求的输入与状态控制器的输出连接,所述中断请求的输出通过处理器总线与处理器连接。
[0020]上述处理器为FPGA内嵌的处理器核,所述处理器核为处理器软核或处理器硬核中的一种。
[0021]上述处理器核与存储器控制模块、通信接口控制模块、重配置硬件功能模块、重配置控制通过片内总线连接。
[0022]上述片内总线为PLB总线或AXI总线中的一种。
[0023]一种基于FPGA的在线重配置方法,其特殊之处在于:包括以下步骤:
[0024]1】将FPGA内部区域划分为静态存储区及可重配置区域;
[0025]2】将FPGA重配置用到的局部位流文件进行存储,所述局部位流文件包括重配置过程中重配置功能模块所需的不同硬件配置信息;
[0026]3】从上位系统获取原始数据;
[0027]4】上位系统判断对原始数据处理所需要的硬件配置信息的类型;
[0028]5】上位系统检查FPGA当前硬件配置信息及运行状态的;如果当前的配置信息能够满足步骤3】中获取的原始数据的处理,则无需进行FPGA重配置,否则,向FPGA发送重配置命令并停止数据源的传输,进行步骤6】;
[0029]6】FPGA重配置;
[0030]处理器选取相应的硬件配置信息,并将硬件配置信息写入重配置控制模块中,利用重配置控制模块完成对重配置区域的局部动态重配置以满足原始数据的处理要求,
[0031]7】利用配置后的FPGA对原始数据进行处理。
[0032]本发明与现有技术相比,优点是:
[0033]1、本发明在FPGA内部划分了一个重配置区域,实现多种具有不同功能的硬件功能模块的时分复用,提高了嵌入式处理系统内FPGA内部资源的使用率,降低了系统开发成本,利用FPGA局部重配置技术,可以在系统的运行过程中完成对硬件功能的在线重配置,能以较少的硬件资源实现较复杂的硬件功能电路。
[0034]2、上位机与FPGA内嵌高性能处理器通过以太网进行通信,保证数据传输的实时性与高效性;
[0035]3、采用FPGA重配置技术,将多种不同的硬件功能实现在同一块物理区域内,提高FPGA资源利用率,提高系统的灵活性;
[0036]4、具有统一的总线传输接口,简化了重配置功能模块与片内总线之间的通信;
[0037]5、系统硬件实现简单、工作稳定可靠。
【专利附图】

【附图说明】[0038]图1为本发明的原理框图;
[0039]图2为本发明具体实施例中模块原理框图;
[0040]图3为本发明具体实施例中总线接口原理框图。
【具体实施方式】
[0041]基于FPGA的在线重配置技术,主要采用FPGA实现,在FPGA内部实现了标准通信接口模块、存储器控模块、高性能的嵌入式处理器核、重配置功能模块、重配置控制模块以及输出接口控制模块。上位机将数据源通过标准通信接口(例如:以太网、串口等)传输至FPGA,FPGA内嵌的高性能处理器负责与上位机的通信以及对FPGA内部的重配置功能模块进行局部动态重配置,并且能够根据不同的硬件功能将相应的数据传输至重配置硬件功能模块,经过处理后的数据通过输出接口控制模块输出至外围接口单元。
[0042]以下以一个具体的实施例对本发明作进一步说明:
[0043]1.系统结构
[0044]基于FPGA的在线重配置系统,包括上位系统、FPGA芯片、处理器、接口单元、存储器、通信接口,FPGA芯片包括存储器控制模块、通信接口模块、重配置硬件功能模块、重配置控制模块、输出接口控制模块,存储器控制模块、通信接口控制模块、重配置硬件功能模块、重配置控制模块分别与处理器连接,输出接口控制模块的输入端与重配置硬件功能模块的输出端连接,输出接口控制模块的输出端与接口单元的输入端连接,上位系统通过通信接口与通信接口控制模块连接,存储器与存储器控制模块连接。
[0045]处理器采用FPGA内嵌的高性能PowerPC处理器核,存储器选用的是Flash存储器,通信接口选用RS232和以太网,FPGA内部实现了 FLASH控制模块、URAT控制模块、以太网控制模块及ICAP接口模块,其中以太网控制模块负责FPGA与上位机的通信,上位机通过TCP/IP协议将数据源传输至FPGA ;输出接口控制模块负责将处理后的数据发送至外围接口单元,外围接口单元用于输出重配置后的结果;重配置硬件功能模块则是一个运行在FPGA内部划分好的一个局部重配置区域内的功能模块,内部配置访问接口(InternalConfiguration Access Port, ICAP)模块则可以将上述局部重配置区域根据不同的系统需求配置成不同功能的硬件模块电路,ICAP接口在系统中负责接收PowerPC处理器发送过来的局部重配置位流文件,从而将重配置区域配置成相应的硬件功能电路。为了统一不同硬件功能模块电路与处理器之间的交互接口,在FPGA内部还实现了针对PLB总线的传输接□。
[0046]2.总线传输接口
[0047]为简化重配置硬件功能模块与PLB总线之间的通信,在FPGA内还实现了一个总线传输接口模块,该部分模块由PLB总线接口部分以及重配置应用接口部分组成。其中PLB总线接口部分的作用是将PLB总线的数据、地址以及控制信息传递给重配置接口部分;重配置接口部分由状态控制器、输入/输出FIFO以及中断请求三部分组成,如图2所示。
[0048]重配置接口部分中的状态控制器为外部的重配置功能区域提供具体的控制信号并且周期性的收集重配置功能区域的运行状态,并将收集到的运行状态存储在内部的状态寄存器中,CPU通过访问该寄存器就可起到监视重配置区域的运行状态的效果;输入/输出FIFO用于数据输入输出的缓冲,数据总线上的数据通过输出FIFO传输至重配置区域,通过硬件功能电路处理完成后的数据发送至外围接口单元。出于通用性考虑,在总线接口模块内还实现了一个输入FIFO,重配置区域的运行结果还可以通过输入FIFO传输至数据总线上。中断请求部分的功能是在收到重配置功能模块的处理结果后给CPU—个中断请求,让CPU及时输出缓冲中的数据结果。
[0049]3.系统处理流程
[0050]系统通过上位机实时获取原始数据,并且利用TCP/IP协议传输至FPGA,在FPGA内嵌PowerPC处理器核上运行着一个以太网监听程序,在监听到上位机有数据源传输过来的时候,PowerPC就将收到的数据通过PLB总线发送至重配置功能模块电路,在部分模块电路在处理完成后将处理后的数据通过输出接口控制模块在外围的接口单元内输出重配置后的结果。
[0051]上位机在向FPGA发送原始数据的同时,还需要判断对这段原始数据需要采用哪种硬件配置信息来实现,例如数据处理功能电路、图像处理功能电路等等。当然,这些硬件配置信息是事先实现与验证完成,并且已经根据该在线重配置系统生成过的,同时是可供FPGA进行局部重配置使用的局部位流文件。这些局部位流文件存储在FPGA外部的大容量FLASH中。在FPGA内部实现了一个基于硬件功能的状态寄存器,可以将目前FPGA内部配置的功能信息以及运行状态通过RS232接口通知上位机,之后上位机再决定是否需要对该部分硬件功能进行局部动态重配置。如果需要,上位机则向FPGA发送一个重配置命令并停止数据源的传输,FPGA在接到该重配置命令后,PowerPC则在FLASH中选取相应的局部位流文件并将局部位流文件写入至ICAP接口中,由ICAP接口完成对重配置区域的局部动态重配置。配置完成后通知上位机,上位机再通过TCP/IP协议将相应的数据源传输至FPGA。
【权利要求】
1.一种基于FPGA的在线重配置系统,包括上位系统、FPGA芯片、处理器、接口单元、存储器、通信接口,其特征在于:所述FPGA芯片包括存储器控制模块、通信接口控制模块、重配置硬件功能模块、重配置控制模块、输出接口控制模块,所述存储器控制模块、通信接口控制模块、重配置硬件功能模块、重配置控制模块分别与处理器连接,所述输出接口控制模块的输入端与重配置硬件功能模块的输出端连接,所述输出接口控制模块的输出端与接口单元的输入端连接,所述上位系统通过通信接口与通信接口控制模块连接,所述存储器与存储器控制模块连接。
2.根据权利要求1所述的基于FPGA的在线重配置系统,其特征在于:所述重配置硬件功能模块通过总线传输接口与处理器总线连接,所述总线传输接口包括处理器总线接口及重配置应用接口,所述处理器总线接口用于将总线上的数据、地址及控制信息传输给重配置接口部分,所述重配置接口部分包括状态控制器、状态寄存器、输入/输出FIFO及中断请求,所述状态控制器与处理器总线接口连接,所述状态寄存器的输 入端与状态控制器连接,用于存储状态控制器收集到的运行状态,所述状态寄存器的输出通过处理器总线接口与处理器连接,所述输入FIFO的输入端通过处理器总线接口与处理器连接,所述输入FIFO的输出与重配置硬件功能模块连接,所述输出FIFO的输入端与重配置硬件功能模块连接,所述输出FIFO的输出端通过处理器总线接口与处理器连接,所述中断请求的输入与状态控制器的输出连接,所述中断请求的输出通过处理器总线与处理器连接。
3.根据权利要求1或2所述的基于FPGA的在线重配置系统,其特征在于:所述处理器为FPGA内嵌的处理器核,所述处理器核为处理器软核或处理器硬核中的一种。
4.根据权利要求3所述的基于FPGA的在线重配置系统,其特征在于:所述处理器核与存储器控制模块、通信接口控制模块、重配置硬件功能模块、重配置控制通过片内总线连接。
5.根据权利要求3所述的基于FPGA的在线重配置系统,其特征在于:所述片内总线为PLB总线或AXI总线中的一种。
6.一种基于FPGA的在线重配置方法,其特征在于:包括以下步骤:1】将FPGA内部区域划分为静态存储区及可重配置区域;2】将FPGA重配置用到的局部位流文件进行存储,所述局部位流文件包括重配置过程中重配置功能模块所需的不同硬件配置信息;3】从上位系统获取原始数据;4】上位系统判断对原始数据处理所需要的硬件配置信息的类型;5】上位系统检查FPGA当前硬件配置信息及运行状态的;如果当前的配置信息能够满足步骤3】中获取的原始数据的处理,则无需进行FPGA重配置,否则,向FPGA发送重配置命令并停止数据源的传输,进行步骤6】;6】FPGA重配置;处理器选取相应的硬件配置信息,并将硬件配置信息写入重配置控制模块中,利用重配置控制模块完成对重配置区域的局部动态重配置以满足原始数据的处理要求,7】利用配置后的FPGA对 原始 数 据进行处理。
【文档编号】G06F9/445GK103677916SQ201310670071
【公开日】2014年3月26日 申请日期:2013年12月10日 优先权日:2013年12月10日
【发明者】邹晨, 韩强, 赵小冬, 邓豹, 段小虎, 袁迹, 代明清, 周啸, 高云 申请人:中国航空工业集团公司第六三一研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1