首页> 中国专利> 一种FPGA远程更新配置方法、系统、电子设备和存储介质

一种FPGA远程更新配置方法、系统、电子设备和存储介质

摘要

本公开提供了一种FPGA远程更新配置方法,该方法包括:编写配置文件,将配置文件传输到FPGA,对FPGA接收到的配置文件进行数据校验,若校验通过,则将配置文件写入QSPI Flash,重启FPGA并检查配置文件,若配置文件通过检查,加载配置文件中的更新程序,完成对FPGA的更新,若配置文件未通过检查,则加载FPGA中的原始程序。本公开采用SRIO接口,因此本公开能够大幅度提高数据传输速率,减少更新所需时间,还可以实现配置数据远距离传输,从而完成FPGA的远程更新,解决远距离和极端环境下FPGA程序更新的难题,实现大规模批量化FPGA程序更新,提高FPGA更新效率。本公开提供的方法可以避免更新失败而导致的FPGA无法正常加载的情况,因此可以提高安全性。

著录项

  • 公开/公告号CN113268262A

    专利类型发明专利

  • 公开/公告日2021-08-17

    原文格式PDF

  • 申请/专利权人 中国科学院空天信息创新研究院;

    申请/专利号CN202110572906.0

  • 发明设计人 刘霖;田坤;江率;周萱;陆岷;

    申请日2021-05-25

  • 分类号G06F8/654(20180101);G06F8/71(20180101);

  • 代理机构11021 中科专利商标代理有限责任公司;

  • 代理人周天宇

  • 地址 100190 北京市海淀区北四环西路19号

  • 入库时间 2023-06-19 12:16:29

说明书

技术领域

本公开属于数字信号处理技术领域,具体涉及为一种FPGA远程更新配置方法、系统、电子设备和存储介质。

背景技术

FPGA(Field-Programmable Gate Array),即现场可编程门阵列,是在PAL、GAL等可编程器件的基础上进一步发展的产物。FPGA由逻辑单元、RAM、乘法器等硬件资源组成,通过将这些硬件资源合理组织,可实现乘法器、寄存器、地址发生器等硬件电路,此外,还可以通过硬件描述语言进行无限次数的重新编程,实现所需的功能。目前,已广泛应用在通信、嵌入式等多个领域。

传统的FPGA配置程序的更新加载方式采用JTAG接口进行下载文件,由于FPGA芯片一般都采用低功耗设计,JTAG接口的控制能力受到很大程度的制约。在某些极端情况下,例如太空、极地等人类不方便进入的区域,技术人员不太可能近距离频繁的对FPGA配置程序进行更新,从而造成FPGA更新困难的问题。除此之外,程序更新过程也存在下面的问题:一、程序更新出错容易导致系统失效,进而造成设备失效产生财产损失或者重大安全事故;二、更新速度慢,因为JTAG是串行接口,利用输出带锁存的特点,使用软件通过I/O产生JTAG时序,所以频率有限,JTAG口传输速度受到限制。当FPGA的更新程序较大时,会耗费大量的时间,降低效率,还会提高更新出错的可能性。三、IEEE1149.1规范对JTAG调试线缆说明了距离的限制。对多数FPGA芯片,JTAG的控制都在10英寸(约25.4cm)范围内,只能近距离对FPGA进行操作,无法进行远距离传输。四、现有的更新方法实现无法自动化批量更新,JTAG接口只能实现一对一的连接,一次只能更新一个设备,不能做到一对多传输,难以实现大规模批量化FPGA程序更新。

公开内容

(一)要解决的技术问题

针对现有技术的上述不足,本公开的主要目的在于提供一种FPGA远程更新配置方法、系统、电子设备和存储介质,以期至少部分地解决上述技术问题中的至少之一。

(二)技术方案

为了实现上述目的,根据本公开的一个方面,提供了一种FPGA远程更新配置方法,该方法包括:

编写配置文件;

将上述配置文件传输到FPGA;

对上述FPGA接收到的上述配置文件进行数据校验,若校验通过,则将上述配置文件写入QSPI Flash;

重启上述FPGA并检查上述配置文件,若上述配置文件通过检查,则加载上述配置文件中的更新程序,完成对上述FPGA的更新,若上述配置文件未通过检查,则加载上述FPGA中的原始程序。

优选地,上述FPGA包括MICROBLAZE处理器,上述将上述配置文件传输到FPGA,具体包括:

上述MICROBLAZE处理器与SRIO接口、DDR连接;

上述MICROBLAZE处理器从上述SRIO接口接收上述配置文件;

上述MICROBLAZE处理器将上述配置文件存储在上述DDR中,完成上述配置文件的传输。

优选地,上述重启上述FPGA包括:

重启上述FPGA,从上述QSPI Flash的基地址读取上述FPGA存储的原始程序。

优选地,上述原始程序包括热启动跳转序列和预设的关键开关字;

上述若上述配置文件通过检查,加载上述配置文件中的更新程序,完成对上述FPGA的更新包括:

若上述QSPI Flash存储地址写入的数据等于上述关键开关字,则上述关键开关字的状态为ON,执行上述热启动跳转序列,加载上述配置文件;

上述配置文件未通过检查,则加载上述FPGA中的原始程序包括:

若上述QSPI Flash存储地址写入的数据不等于上述关键开关字,则上述关键开关字的状态为OFF,忽略上述热启动跳转序列,继续读取上述FPGA的原始程序。

优选地,上述关键开关字的控制方法包括:

擦除上述关键开关字所在地址的数据,使上述关键开关字的状态为OFF;

擦除上述QSPI Flash的更新程序区域;

将上述配置文件写入到上述QSPI Flash的更新程序区域;

验证上述配置文件的正确性;

根据对上述配置文件的验证结果确定上述关键开关字的状态,若上述配置文件通过验证,则重新写入上述关键开关字,使上述关键开关字的状态为ON,否则上述关键开关字的状态为OFF。

另一方面,本公开还提供一种FPGA远程更新配置系统,该系统包括:

数据生成模块,用于编写配置文件;

数据传输模块,用于将上述配置文件传输到FPGA;

数据校验模块,用于对上述FPGA接收到的上述配置文件进行数据校验,若校验通过,则将上述配置文件写入QSPI Flash;

数据更新模块,用于重启上述FPGA并检查上述配置文件,若上述配置文件通过检查,加载上述配置文件中的更新程序,完成对上述FPGA的更新,若上述配置文件未通过检查,则加载上述FPGA中的原始程序。

优选地,上述系统还包括:

重启模块,用于重启上述FPGA,从上述QSPI Flash的基地址读取上述FPGA存储的原始程序。

优选地,上述原始程序包括热启动跳转序列和预设的关键开关字,上述重启模块还用于:

若上述QSPI Flash存储地址写入的数据等于上述关键开关字,则上述关键开关字的状态为ON,执行上述热启动跳转序列,加载上述配置文件;

若上述QSPI Flash存储地址写入的数据不等于上述关键开关字,则上述关键开关字的状态为OFF,忽略上述热启动跳转序列,继续读取上述FPGA的原始程序。

另一方面,本公开还提供一种电子设备,上述电子设备包括:

通信器,用于与服务器通信;

处理器;

存储器,其存储有计算机可执行程序,该计算机可执行程序在被上述处理器执行时,使得上述处理器执行如上述的FPGA远程更新配置方法。

另一方面,本公开还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述的FPGA远程更新配置方法。

(三)有益效果

本公开提供的技术方案,至少具有以下有益效果之一:

(1)本公开采用SRIO接口,因此本公开能够大幅度提高数据传输速率,减少更新所需时间。

(2)本公开采用SRIO接口,可以实现配置数据远距离传输,从而完成FPGA的远程更新,解决远距离和极端环境下FPGA程序更新的难题。实现大规模批量化FPGA程序更新,提高FPGA更新效率。

(3)本公开可以避免更新失败而导致的FPGA无法正常加载的情况,可以提高安全性。

附图说明

为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开中的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。

图1示意性示出了本公开一实施例提供的一种FPGA远程更新配置方法的流程图;

图2示意性示出了本公开一实施例提供的一种校验配置文件更新FOGA的方法的流程图;

图3示意性示出了本公开一实施例提供的一种控制关键开关字的方法的流程图;

图4示意性示出了本公开一实施例提供的一种FPGA远程更新配置方法的应用场景图。

图5示意性示出了本公开一实施例提供的一种FPGA远程更新配置系统的结构示意图;

图6示意性示出了一种电子设备的硬件结构图。

具体实施方式

为使本公开的目的、特征、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明,显然,所描述的实施例仅仅是本公开一部分实施例,而非全部实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开的保护范围。

图1示意性示出了本公开一实施例提供的一种FPGA远程更新配置方法的流程图,如图1所示,在本公开一实施例中,该配置方法包括:

S101、编写配置文件;

在本实施例中,用户根据设计需求完成对FPGA的编程设计,验证通过后,生成FPGA的配置文件,若验证未通过,则重新编写。

S102、将配置文件传输到FPGA;

在本实施例中,FPGA包括MICROBLAZE处理器,MICROBLAZE处理器与SRIO接口、DDR连接,MICROBLAZE处理器从SRIO接口接收配置文件,MICROBLAZE处理器将配置文件存储在DDR中,完成配置文件的传输,因为SRIO接口具有远距离传输的性能,因此本公开可以远距离向FPGA传输配置文件,从而实现远距离更新FPGA。

S103、对FPGA接收到的配置文件进行数据校验,若校验通过,则将配置文件写入QSPI Flash;

在本实施例中,FPGA在将配置文件全部接收之后对配置文件进行校验,若配置文件通过校验,则将配置文件写入QSPI Flash,若配置文件未通过校验,则不将配置文件写入QSPI Flash,更新失败。

S104、重启FPGA并检查配置文件,若配置文件通过检查,加载配置文件中的更新程序,完成对FPGA的更新,若配置文件未通过检查,则加载FPGA中的原始程序。

在本实施例中,对FPGA进行远程更新时,先编写配置文件,再将配置文件远程传输给FPGA,FPGA接收到配置文件后对配置文件进行数据校验,若配置文件通过校验,则将配置文件写入到QSPI Flash中,将配置文件写入到QSPI Flash后,将FPGA重启,检查配置文件,若配置文件完全正确,则加载配置文件,若检查配置文件时发现配置文件存在错误,则更新失败,加载FPGA的原始程序,如此,可以避免因为更新失败而导致FPGA失效。

图2示意性示出了本公开一实施例提供的一种检查配置文件更新FOGA的方法的流程图,如图2所示,在本公开一实施例中,该校验方法包括:

S201、重启FPGA,从QSPI Flash的基地址读取FPGA存储的原始程序。

S202、检查配置文件。

S203、若QSPI Flash存储地址写入的数据等于关键开关字,则关键开关字的状态为ON,执行热启动跳转序列,加载配置文件。

S204、若QSPI Flash存储地址写入的数据不等于关键开关字,则关键开关字的状态为OFF,忽略热启动跳转序列,继续读取FPGA的原始程序。

在本实施例中,原始程序包括热启动跳转序列和预设的关键开关字,关键开关字为预先设置的值,QSPIFlash存储地址写入的数据等于关键开关字时,关键开关字的状态为ON,否则关键开关字的状态为OFF。如果关键开关字的状态为ON,则执行热启动跳转序列,热启动跳转序列包含需要跳转的地址,因此可以跳转到指定地址,加载配置文件。如果关键开关字的状态为OFF,则忽略热启动跳转序列,读取FPGA的原始程序(Golden Bitstream)。本公开提供的FPGA远程更新配置方法在检查配置文件时,并没有将整个配置文件全部读取,而是通过引入关键开关字,判断QSPI Flash存储地址写入的数据和关键开关字的关系来决定是否加载配置文件,当QSPI Flash存储地址写入的数据等于关键开关字时,关键开关字的状态为ON,执行热启动跳转序列,加载配置文件,而当QSPI Flash存储地址写入的数据不等于关键开关字时,加载FPGA的原始程序。如此可以节约读取配置文件的时间,提高FPGA远程更新配置的效率,并且因为QSPI Flash存储地址写入的数据不等于关键开关字时,加载FPGA的原始程序QSPI Flash存储地址写入的数据不等于关键开关字时,加载的是FPGA的原始程序,可以有效地避免更新失败时FPGA的原始程序被破坏,导致FPGA无法运行,从而导致系统瘫痪的问题。

图3示意性示出了本公开一实施例提供的一种控制关键开关字的方法的流程图,如图3所示,在本公开一实施例中,该控制方法包括:

S301、擦除关键开关字所在地址的数据,使关键开关字的状态为OFF。

S302、擦除QSPI Flash的更新程序区域。

S303、将配置文件写入到QSPI Flash的更新程序区域。

S304、验证配置文件的正确性。

S305、根据对配置文件的验证结果确定关键开关字的状态,若配置文件通过验证,则重新写入关键开关字,使关键开关字的状态为ON,否则关键开关字的状态为OFF。

在本实施例中,因为关键开关字的状态决定了是加载配置文件还是加载原始程序,因此,关键开关字的状态的控制非常重要,在确定关键开关字的状态时,先擦除关键开关字所在地址的数据,使关键开关字的状态为OFF,再擦除QSPI Flash上存储更新程序的区域,将配置文件写入到被擦除后的QSPI Flash上存储更新程序的区域,验证配置文件的正确性,若配置文件通过验证,则重新写入关键开关字,使关键开关字的状态变为ON,若配置文件没有通过验证,则不再重新写入关键开关字,关键开关字的状态仍然为OFF。

图4示意性示出了本公开一实施例提供的一种FPGA远程更新配置方法的应用场景图,如图4所示,在本公开一实施例中,一个主机通过一个路由器可以和多个FPGA相连接。

在本实施例中,采用SRIO接口,因为SRIO接口具有远距离传输的性能,因此本公开可以实现配置文件的远距离传输,完成FPGA的远程更新,解决远距离和极端环境下FPGA程序更新的难题,同时因为SRIO接口使用的Rapid IO协议在传输层满足一对多传输要求,因此,可以实现大规模批量化的FPGA程序更新,提高FPGA更新效率。

图5示意性示出了本公开一实施例提供的一种FPGA远程更新配置系统的结构示意图,如图5所示,本公开还提供了一种系统,该系统包括:数据生成模块510、数据传输模块520、数据校验模块530和数据更新模块540。

数据生成模块510,用于编写配置文件;

数据传输模块520,用于将配置文件传输到FPGA;

数据校验模块530,用于对FPGA接收到的配置文件进行数据校验,若校验通过,则将配置文件写入QSPI Flash;

数据更新模块540,用于重启FPGA并检查配置文件,若配置文件通过检查,加载配置文件中的更新程序,完成对FPGA的更新,若配置文件未通过检查,则加载FPGA中的原始程序。

在本公开一实施例中,上述系统还包括:

重启模块550,用于重启FPGA,从QSPI Flash的基地址读取FPGA存储的原始程序;

若QSPI Flash存储地址写入的数据等于关键开关字,则关键开关字的状态为ON,执行热启动跳转序列,加载配置文件;

若QSPI Flash存储地址写入的数据不等于关键开关字,则关键开关字的状态为OFF,忽略热启动跳转序列,继续读取FPGA的原始程序。

本公开还提供了一种电子设备600,该设备包括:

通信器610,用于与服务器通信;

处理器620;

存储器630,其存储有计算机可执行程序,该计算机可执行程序在被处理器执行时,使得处理器执行如上述的一种FPGA远程更新配置方法。

图6示意性示出了一种电子设备的硬件结构图,如图6所示,所述电子设备600包括通信器610、处理器620和存储器630。该电子设备600可以执行根据本公开实施例的方法。

具体地,处理器620例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器620还可以包括用于缓存用途的板载存储器。处理器620可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

存储器630,例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。其存储有计算机可执行程序,该程序在被所述处理器执行时,使得所述处理器执行如上文所述的一种FPGA远程更新配置方法。

本公开还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序包含如上文所述的一种FPGA远程更新配置方法。该计算机可读存储介质可以是上述实施例中描述的装置/设备中所包含的;也可以是单独存在,而未装配入该装置/设备中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。

根据本公开的实施例,计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。

在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线、光缆、射频信号等等,或者上述的任意合适的组合。

以上所述的具体实施例,对本公开的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本公开的具体实施例而已,并不用于限制本公开,本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号