一种FPGA配置文件远程升级的方法与流程

文档序号:17441265发布日期:2019-04-17 04:47阅读:389来源:国知局
一种FPGA配置文件远程升级的方法与流程

本发明涉及电路设计领域,尤其是一种配置文件远程升级的解决方法。



背景技术:

在含有fpga的硬件电路的设计中,采用将fpga的jtag引到外部,通过fpga对配置flash进行烧写。该方法受限于jtag的长度,导致或需要破坏硬件的密闭环境,将jatg接口暴露出来,或需要升级设备就近放置,或需要电脑上安装相关的软件,方能实现升级功能。专利cn106547596中,描述了配置的软件流程方法,需要合并升级文件和配置文件,计算升级时间等,专利cn105159731a中列出了远程升级的硬件方案,但需要cpu、sram等的外部设备,增加硬件设计的复杂度,需依靠外部环境。



技术实现要素:

为了克服现有技术的不足,本发明提供一种fpga配置文件远程升级的方法。设计fpga和有配置flash的硬件电路通过网络或者其它接口与电脑相连接,实现配置文件的远程升级。

本发明解决其技术问题所采用的技术方案的步骤是:

步骤1:fpga与配置flash通过flash的可读写的接口连接,进行交互数据,接口为flash的jtag或者地址数据接口,pc机与fpga通过网口进行数据交互,实现配置文件的传输;

步骤2:针对所选flash或者fpga生成默认启动程序,支持通过网口对配置flash的读写访问功能,并对flash的地址空间进行分区,如图2,分为启动头分区a,启动程序分区b和升级程序分区c,其中分区a的大小等于所选flash或者fpga跳转指令及启动指令的大小,分区b和分区c的大小应大于fpga的配置文件大小,其中分区b中存储默认启动程序,分区c中存储升级后的程序;

步骤3:上电后,将启动头和默认启动程序分别写入到分区a和分区b,在分区a内的程序执行跳转地址设置为start_addr,执行默认启动程序支持通过网口对配置flash进行读写操作;

步骤4:根据步骤2、3的设置,下电重启后,fpga默认从flash0地址执行完分区a的启动头后加载分区b中的程序;

步骤5:当需要升级时,即对fpga内执行的功能进行更新,fpga的配置文件发生变化需重新写入到flash时,pc机通过网口将配置文件写入到分区c中,配置文件即升级程序,升级程序除了包含电路需实现的相应功能外,还支持通过网口对配置flash的读写操作;

步骤6:当对分区c的数据写入完成后,进行数据校验,校验通过后,更改分区a的程序执行跳转地址,设置为update_addr;

步骤7:下电重新启动后,程序自动加载分区c配置文件的内容,同样支持远程升级;

若升级的过程中失败,因未对分区a、b的内容进行修改,下电重启仍可执行分区b中的程序,进行下次的重新升级。

本发明的有益效果在于解决了fpga这种需要使用jtag作为烧写工具时,因jtag要求的烧写距离短、需要特定的软件支持、需要特定的烧写线缆等问题,以及在安装到机箱或机柜内后,因需要使用jtag下载而导致的需要拆箱的问题。本发明的升级方式更灵活,且不受限于jtag的长度。

附图说明

图1为本发明的硬件连接图,

图2为本发明的flash空间划分示意图。

具体实施方式

下面结合附图和实施例对本发明进一步说明。

本发明仅需默认一个分区用于存放启动逻辑,后续升级文件加载到分区b中,并可通过网口显示升级进度,保证可靠性且简单。

步骤1:fpga与配置flash通过flash的可读写的接口连接,进行交互数据,接口为flash的jtag或者地址数据接口,pc机与fpga通过网口进行数据交互,实现配置文件的传输;

步骤2:针对所选flash或者fpga生成默认启动程序,支持通过网口对配置flash的读写访问功能,并对flash的地址空间进行分区,如图2,分为启动头分区a,启动程序分区b和升级程序分区c,其中分区a的大小等于所选flash或者fpga跳转指令及启动指令的大小,分区b和分区c的大小应大于fpga的配置文件大小,其中分区b中存储默认启动程序,分区c中存储升级后的程序;

步骤3:上电后,将启动头和默认启动程序分别写入到分区a和分区b,在分区a内的程序执行跳转地址设置为start_addr,执行默认启动程序支持通过网口对配置flash进行读写操作;

步骤4:根据步骤2、3的设置,下电重启后,fpga默认从flash0地址执行完分区a的启动头后加载分区b中的程序;

步骤5:当需要升级时,即对fpga内执行的功能进行更新,fpga的配置文件发生变化需重新写入到flash时,pc机通过网口将配置文件写入到分区c中,即图2中的升级程序,升级程序除了包含电路需实现的相应功能外,还支持通过网口对配置flash的读写操作;

步骤6:当对分区c的数据写入完成后,进行数据校验,校验通过后,更改分区a的程序执行跳转地址,设置为update_addr;

步骤7:下电重新启动后,程序自动加载分区c配置文件的内容,同样支持远程升级;

若升级的过程中失败,因未对分区a、b的内容进行修改,下电重启仍可执行分区b中的程序,进行下次的重新升级,提高可靠性。

下面对本发明做进一步详细说明。

参照图1,硬件设计与连接,fpga与配置flash的交互通过flash的可读写的接口进行,可以是flash的jtag或者地址数据接口,pc机与fpga通过网口进行数据交互,实现配置文件的传输。

上电后,将启动头和默认启动程序分别写入到分区a和分区b,在分区a内的程序执行跳转地址设置到图2的start_addr,默认启动程序支持通过网口对配置flash进行读写操作。

根据上一步的设置,下电重启后,fpga默认加载分区b中的程序。

升级时,pc机通过网口将配置文件写入到分区c中,即图2中的升级程序,升级程序除了包含电路需实现的相应功能外,还支持通过网口对配置flash的读写操作。

当对分区c的数据写入完成后,进行校验,更改分区a的程序执行跳转地址,设置为update_addr。

下电重新启动后,程序自动加载分区c配置文件的内容,同样支持远程升级。

若升级的过程中失败,因未对分区a、b的内容进行修改,下电重启仍可执行分区b中的程序,进行下次的重新升级,提高可靠性。



技术特征:

技术总结
本发明提供了一种FPGA配置文件远程升级的方法,FPGA与Flash连接进行交互数据,将启动头和默认启动程序分别写入分区A和分区B,在分区A内的程序执行跳转地址设置为START_addr,执行默认启动程序支持通过网口对Flash进行读写操作,下电重启后,FPGA从Flash0地址执行完分区A的启动头后加载分区B中的程序,升级时,PC机通过网口将配置文件写入到分区C中,数据写入完成后,更改分区A的程序执行跳转地址,下电重新启动后,程序自动加载分区C配置文件的内容,支持远程升级。本发明升级方式更灵活,且不受限于JTAG的长度。

技术研发人员:董欢;姬生毅
受保护的技术使用者:中国航空工业集团公司洛阳电光设备研究所
技术研发日:2018.11.15
技术公布日:2019.04.16
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1