首页> 中国专利> 用于多FPGA整机系统的远程动态更新系统和方法

用于多FPGA整机系统的远程动态更新系统和方法

摘要

本发明公开了一种用于多FPGA整机系统的远程动态更新系统和方法。其中,第一FPGA用于更新所述外部flash存储器中的所述至少一第二FPGA的配置文件,以及对所述至少一第二FPGA进行配置;外部flash存储器用于存储所述第一FPGA和所述至少一第二FPGA的所述配置文件;外部SDRAM存储器用于暂存所述至少一第二FPGA更新的配置文件;通信接口用于接收远程上位机发送来的控制字命令以及所述至少一第二FPGA的所述配置文件。本发明实现了结构简单、使用物理资源少、灵活多变、便于远程操作、满足多种试验需求、整机系统升级方便快捷的技术效果。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-02-07

    授权

    授权

  • 2017-12-29

    专利申请权的转移 IPC(主分类):G06F9/445 登记生效日:20171208 变更前: 变更后: 申请日:20160302

    专利申请权、专利权的转移

  • 2017-12-19

    专利申请权的转移 IPC(主分类):G06F9/445 登记生效日:20171129 变更前: 变更后: 申请日:20160302

    专利申请权、专利权的转移

  • 2016-08-24

    实质审查的生效 IPC(主分类):G06F9/445 申请日:20160302

    实质审查的生效

  • 2016-07-27

    公开

    公开

说明书

技术领域

本发明实施例涉及数字电路技术领域,尤其是涉及一种用于多FPGA整机系统的远程动态更新系统和方法。

背景技术

FPGA(Field-ProgrammableGateArray)是一种可编程逻辑器件,其具有丰富的逻辑资源、IO资源。FPGA具有设计周期短、开发费用低、风险小及可靠性高的优点,因而其在数字系统中应用广泛。

但是,通用的大容量FPGA一般基于掉电易失性存储器设计,其在掉电后不能保存配置文件。为了保证FPGA能够正常工作,必须每次上电后对FPGA进行重新配置。目前常用的FPGA配置方式有三种。第一种是采用JTAG(JointTestActionGroup)在线配置。即采用FPGA厂商专用的下载工具,将FPGA配置文件直接写入FPGA芯片内部的易失性存储器中,FPGA就可以正常工作了。此方法适用于单板卡的频繁调试,但是下载速度较慢,且由于下载工具的限制不适用于远程调试。第二种是FPGA外接非易失性存储器,上电自加载非易失性存储器中的配置文件进行配置。此方法适用于功能单一的定制FPGA系统,灵活性比较差。第三种是通过第三方处理器进行加载。此方法相对灵活,便于远程操作与系统升级,但是目前已有的各种方案所需物理资源较多、设计复杂且成本相对较高。

在多FPGA整机系统应用中,要求能够整机远程调试、远程多功能切换以及远程整机升级等等。已有的FPGA配置方案大都着重于单板卡或者单片FPGA应用,无法满足多FPGA整机系统的这种灵活配置需求。

发明内容

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种用于多FPGA整机系统的远程动态更新系统和方法。

为了实现上述目的,根据本发明的一个方面,提供了以下技术方案:

一种用于多FPGA整机系统的远程动态更新系统,其中,所述多FPGA整机系统与远程上位机通信连接;所述系统至少包括:第一FPGA、至少一第二FPGA、外部flash存储器、外部SDRAM存储器及通信接口;其中,所述第一FPGA分别与所述至少一第二FPGA、所述外部flash存储器、所述外部SDRAM存储器和所述通信接口相连;

所述第一FPGA,用于更新所述外部flash存储器中的所述至少一第二FPGA的配置文件,以及对所述至少一第二FPGA进行配置;

所述外部flash存储器,用于存储所述第一FPGA和所述至少一第二FPGA的所述配置文件;

所述外部SDRAM存储器,用于暂存所述至少一第二FPGA更新的配置文件;

所述通信接口,用于接收远程上位机发送来的控制字命令以及所述至少一第二FPGA的所述配置文件。

根据本发明的另一个方面,还提供了一种用于多FPGA整机系统的远程动态更新方法;所述多FPGA整机系统包括第一FPGA、至少一第二FPGA、外部flash存储器、外部SDRAM存储器及通信接口;其中,所述第一FPGA分别与所述至少一第二FPGA、所述外部flash存储器、所述外部SDRAM存储器和所述通信接口相连;

所述方法至少包括:

所述第一FPGA自加载所述外部flash存储器中的所述第一FPGA的配置文件;

所述第一FPGA从所述外部flash存储器加载所述至少一第二FPGA的配置文件,对所述至少一第二FPGA进行配置;

所述第一FPGA实时监测所述通信接口是否接收到控制字命令,若否,则所述多FPGA整机系统运行默认配置;若是,则执行相应的操作:远程调试、远程功能切换或远程系统升级。

与现有技术相比,上述技术方案至少具有以下有益效果:

本发明实施例通过设置第一FPGA、至少一第二FPGA、外部flash存储器、外部SDRAM存储器及通信接口,且第一FPGA分别与至少一第二FPGA、外部flash存储器、外部SDRAM存储器和通信接口相连,并进行如下配置:第一FPGA用于更新所述外部flash存储器中的至少一第二FPGA的配置文件,以及对至少一第二FPGA进行配置;外部flash存储器用于存储第一FPGA和至少一第二FPGA的配置文件;外部SDRAM存储器用于暂存至少一第二FPGA更新的配置文件;通信接口用于接收远程上位机发送来的控制字命令以及至少一第二FPGA的配置文件。从而实现了结构简单、使用物理资源少、灵活多变、便于远程操作、满足多种试验需求、整机系统升级方便快捷的技术效果。

附图说明

图1为根据一示例性实施例示出的用于多FPGA整机系统的远程动态更新系统的结构示意图;

图2为根据一示例性实施例示出的第一FPGA的结构示意图;

图3为根据一示例性实施例示出的多FPGA整机系统运行默认配置的流程示意图;

图4为根据一示例性实施例示出的远程调试的流程示意图;

图5为根据一示例性实施例示出的远程功能切换的流程示意图;

图6为根据一示例性实施例示出的远程升级的流程示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。需要说明的是,在下面的描述中,为了方便理解,给出了许多具体细节。但是很明显,本发明的实现可以没有这些具体细节。需要说明的是,在没有明确限定或不冲突的情况下,本发明中的各个实施例及其中的技术特征可以相互组合而形成技术方案。

本发明实施例提供一种用于多FPGA整机系统的远程动态更新系统,其中,多FPGA整机系统与远程上位机通信连接;如图1所示,该系统10至少包括:第一FPGA11、至少一第二FPGA12、外部flash存储器13、外部SDRAM存储器15及通信接口14;其中,第一FPGA11分别与至少一第二FPGA12、外部flash存储器13、外部SDRAM存储器15和通信接口14相连;第一FPGA11用于更新外部flash存储器中的至少一第二FPGA的配置文件,以及对至少一第二FPGA进行配置。外部flash存储器13用于存储第一FPGA和至少一第二FPGA的配置文件。外部SDRAM存储器15用于暂存至少一第二FPGA更新的配置文件。通信接口14用于接收远程上位机发送来的控制字命令以及至少一第二FPGA的所述配置文件。

在上述实施例中,第一FPGA11用于系统配置。第一FPGA11要实现的功能是基本确定的,其配置文件存储在外部flash存储器13的固定存储空间上,上电后可自加载其配置文件。在实际应用中,可用FPGA厂商自带的工具将各单板上第一FPGA11的配置文件烧写到外部flash存储器13的指定空间。当多FPGA整机系统上电以后,第一FPGA11自加载外部flash存储器指定空间上的配置文件。待第一FPGA11配置完成,即可实现各功能。

第二FPGA12的功能是会根据实际应用需求变化的,对应配置文件的需求是可动态更新的。第二FPGA12根据实际应用可以有多片(FPGA1、FPGA2、……、FPGAn)。第二FPGA12用于计算,也可称为计算用FPGA。

外部flash存储器13中预先存储第二FPGA的几个常用版本的配置文件。这样方便多FPGA整机系统一上电就能进行快速配置,使得多FPGA整机系统快速进入工作状态。外部flash存储器13优选为非易失性存储器。

通信接口14可以采用以太网、USB或串口等方式与上位机进行连接。

如图2所示,在上述实施例的基础上,上述第一FPGA20具体可以包括:通信接口模块21、管理模块22、外部flash存储器更新模块23、第二FPGA配置文件加载模块24和外部SDRAM存储器暂存模块25。其中,通信接口模块21用于与通信接口相连。管理模块22用于根据通信接口模块接收的控制字命令,确定相应的操作。外部SDRAM存储器暂存模块25与外部SDRAM存储器相连,用于暂存至少一第二FPGA的配置文件。外部flash存储器更新模块23与外部flash存储器相连,用于根据管理模块确定的相应操作,来对外部flash存储器中的至少一第二FPGA的配置文件进行更新。第二FPGA配置文件加载模块24用于对至少一第二FPGA进行配置。

在实际应用中,多FPGA整机系统上电后可以运行默认配置。只要第一FPGA自加载配置完成以后,第二FPGA配置文件加载模块就会读取外部flash存储器中的第二FPGA默认配置文件,对第二FPGA进行配置。同时,第一FPGA上连接的通信接口已经初始化成功。

通信接口模块对接收到的包进行解析。若没有接收到控制字命令,则多FPGA整机系统继续运行上电加载的默认配置。若接收到的包为控制命令字,则将接收到的数据发给管理模块;若接收到的包为FPGA配置文件,则将接收到的数据发给外部SDRAM存储器暂存模块。

在上述实施例的基础上,若通信接口模块接收到的控制字命令为远程调试,则通信接口模块将远程调试控制字命令发送给管理模块,并将至少一第二FPGA的配置文件暂存至外部SDRAM存储器暂存模块。外部SDRAM存储器暂存模块将至少一第二FPGA的配置文件暂存到外部SDRAM存储器中。管理模块根据远程调试控制字命令调用第二FPGA配置文件加载模块从外部SDRAM存储器中加载配置文件。

在实际实施过程中,远程调试适用于第二FPGA功能不完全确定的调试阶段。通信接口模块将接收到的FPGA配置文件暂存到外部SDRAM存储器中,第二FPGA配置文件加载模块直接从外部SDRAM存储器中读取配置文件,并对第二FPGA进行配置,不对外部flash存储器中第二FPGA配置文件进行更新,这样能够提高外部flash存储器的寿命。

在上述实施例的基础上,若通信接口模块接收到的控制字命令为远程功能切换,则通信接口模块将远程功能切换控制字命令发送给管理模块。管理模块根据远程功能切换控制字命令,调用第二FPGA配置文件加载模块从外部flash存储器中加载与至少一第二FPGA对应的配置文件。

在实际实施过程中,远程功能切换适用于同一套多FPGA整机系统分时段实现不同功能的场景。外部flash存储器中存储了第二FPGA的多个版本的配置文件。管理模块根据通信接口接收到的控制字命令,调用第二FPGA配置文件加载模块从外部flash存储器中加载与至少一第二FPGA对应的配置文件,并对第二FPGA进行配置。

在上述实施例的基础上,若通信接口模块接收到的控制字命令为远程升级,则,通信接口模块将远程升级控制字命令发送给管理模块,并将所接收的至少一第二FPGA的配置文件暂存至外部SDRAM存储器暂存模块。外部SDRAM存储器暂存模块将至少一第二FPGA的配置文件暂存至外部SDRAM存储器中。管理模块根据远程升级控制字命令调用外部flash存储器更新模块,以根据外部SDRAM存储器中的配置文件进行更新。第二FPGA配置文件加载模块加载外部flash存储器更新模块更新后的配置文件。

在实际实施过程中,远程升级适用于多FPGA整机系统的功能升级。通信接口模块将接收到的第二FPGA的配置文件暂存到外部SDRAM存储器中。然后,管理模块根据以通信接口接收到的控制字命令,通知外部flash存储器更新模块对相应存储空间的FPGA配置文件进行更新。待更新完毕以后,第二FPGA配置文件加载模块读取更新后的FPGA配置文件对第二FPGA进行配置。

下面以一优选实施例来对本发明进行详细的说明。

第一FPGA用于系统配置,可称之为系统配置用FPGA。第二FPGA用于计算,可称之为计算用FPGA。本实施例采用两片计算用FPGA,即FPGA1和FPGA2。其中,将系统配置用FPGA配置为具有:通信接口模块、管理模块、外部SDRAM存储器暂存模块、外部flash存储器更新模块以及FPGA1和FPGA2配置文件加载模块。通信接口模块与通信接口相连。

本实施例使用FPGA厂商自带的工具将系统配置用FPGA的配置文件烧写到外部flash存储器的指定空间中,并采用本更新系统将FPGA1和FPGA2几个常用版本的配置文件烧写到外部flash存储器器中。

多FPGA整机系统进行上电。之后,系统配置用FPGA自加载外部flash存储器指定空间上的配置文件。当系统配置用FPGA自加载完成之后,FPGA1和FPGA2配置文件加载模块就会读取外部flash存储器中的FPGA1和FPGA2的默认配置文件,并对FPGA1和FPGA2进行配置。同时,系统配置用FPGA上连接的通信接口已经初始化成功,通信接口模块对接收到的包进行解析。若通信接口模块没有接收到控制字命令,则多FPGA系统继续运行上电加载的默认配置。

若通信接口模块接收到的包为控制字命令且控制字命令为远程调试,则通信接口模块将接收到的FPGA1或者FPGA2的配置文件写入到外部SDRAM存储器中。待完整的配置文件接收完毕,管理模块通知FPGA1和FPGA2配置文件加载模块去读取外部SDRAM存储器中的配置文件,并对FPGA1或者FPGA2进行重新配置。

若通信接口模块接收到的包为控制字命令且控制字命令为远程功能切换,则管理模块通知FPGA1和FPGA2配置文件加载模块去读取外部flash存储器中对应版本的配置文件,并对FPGA1或者FPGA2进行重新配置。

若通信接口模块接收到的包为控制字命令且控制字命令为远程升级,则通信接口模块将接收到的FPGA1或者FPGA2的配置文件写入到外部SDRAM存储器中。待完整的配置文件接收完毕,管理模块通知外部flash存储器更新模块去读取外部SDRAM存储器中的配置文件,将其更新到外部flash存储器对应存储空间上。待外部flash存储器对应存储空间上的配置文件更新完毕,管理模块通知FPGA1和FPGA2配置文件加载模块去读取外部flash存储器中更新后的配置文件,并对FPGA1或者FPGA2进行重新配置。

此外,本发明实施例还提供一种用于多FPGA整机系统的远程动态更新方法。该方法可由上述系统执行。该方法至少包括:

S31:第一FPGA自加载外部flash存储器中的第一FPGA的配置文件。

S32:第一FPGA从外部flash存储器加载至少一第二FPGA的配置文件,对至少一第二FPGA进行配置。

S33:第一FPGA实时监测通信接口是否接收到控制字命令,若否,则多FPGA整机系统运行默认配置。

图3示例性地示出了多FPGA整机系统运行默认配置的流程图,如图3所示。其中,FPGA0为第一FPGA。FPGA1和FPGA2为第二FPGA。

系统上电后,FPGA0自加载,FPGA0加载FPGA1和FPGA2的默认配置文件配置FPGA1和FPGA2,然后,实时监测通信接口是否接收到控制字命令,若未收到控制字命令,则FPGA系统继续运行默认配置。

在步骤S33中,若接收到控制字命令,则执行相应的操作,如远程调试、远程功能切换、远程系统升级。即,还会有以下情况:

(1)在通信接口接收到控制字命令且控制字命令为远程调试的情况下,将至少一第二FPGA的配置文件暂存到外部SDRAM存储器中;然后,从外部SDRAM存储器中读取配置文件,对至少一第二FPGA进行配置。

以图3所示实施例为基础,下面结合图4详细说明远程调试的流程,如图4所示。

S40:系统上电。

S41:FPGA0自加载。

S42:FPGA0加载FPGA1和FPGA2的默认配置文件配置FPGA1和FPGA2。

S43:实时监测通信接口是否接收到控制字命令,若接收到的控制字命令为远程调试。

S44:将通信接口接收到的FPGA1或者FPGA2的配置文件写入外部SDRAM存储器。

S45:读取外部SDRAM存储器中FPGA1或者FPGA2的配置文件重新配置FPGA1或者FPGA2。

S46:FPGA1、FPGA2配置完成,正常工作。

(2)在通信接口接收到控制字命令且控制字命令为远程功能切换的情况下,从外部flash存储器中读取与至少一第二FPGA对应的配置文件,并对至少一第二FPGA进行配置。

以图3所示实施例为基础,下面结合图5详细说明远程功能切换的流程,如图5所示。

S50:系统上电。

S51:FPGA0自加载。

S52:FPGA0加载FPGA1和FPGA2的默认配置文件配置FPGA1和FPGA2。

S53:实时监测通信接口是否接收到控制字命令,若接收到的控制字命令为远程功能切换。

S54:读取外部flash存储器中指定版本的FPGA1或者FPGA2的配置文件重新配置FPGA1或者FPGA2。

S55:FPGA1、FPGA2配置完成,正常工作。

(3)在通信接口接收到控制字命令且控制字命令为远程升级的情况下,将至少一第二FPGA的配置文件写入至外部SDRAM存储器中;读取外部SDRAM存储器中至少一第二FPGA的配置文件,并将其更新至外部flash存储器;读取外部flash存储器中更新后的配置文件,对至少一第二FPGA进行配置。

以图3所示实施例为基础,下面结合图6详细说明远程升级的流程,如图6所示。

S60:系统上电。

S61:FPGA0自加载。

S62:FPGA0加载FPGA1和FPGA2的默认配置文件配置FPGA1和FPGA2。

S63:实时监测通信接口是否接收到控制字命令,若接收到的控制字命令为远程升级。

S64:将通信接口接收到的FPGA1或者FPGA2的配置文件写入外部SDRAM存储器中。

S65:读取外部SDRAM存储器中FPGA1或者FPGA2的配置文件,更新到外部flash存储器对应的存储空间上。

S66:读取外部flash存储器中更新后的FPGA1或者FPGA2的配置文件,重新配置FPGA1或者FPGA2。

S67:FPGA1、FPGA2处理器配置完成,正常工作。

本实施例中虽然将各个步骤按照上述先后次序的方式进行了描述,但是本领域技术人员可以理解,为了实现本实施例的效果,不同的步骤之间不必按照这样的次序执行,其可以同时(并行)执行或以颠倒的次序执行,这些简单的变化都在本发明的保护范围之内。

如本文中所使用的,术语“模块”可以指代在计算系统上执行的软件对象或例程。可以将本文中所描述的不同模块实现为在计算系统上执行的对象或过程(例如,作为独立的线程)。

虽然本文说明了大量的具体细节。但是,应该能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实施例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

本发明并不限于上述实施方式,在不背离本发明实质内容的情况下,本领域普通技术人员可以想到的任何变形、改进或替换均落入本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号