CN109634642A - 一种fpga配置文件远程升级的方法 - Google Patents
一种fpga配置文件远程升级的方法 Download PDFInfo
- Publication number
- CN109634642A CN109634642A CN201811363159.4A CN201811363159A CN109634642A CN 109634642 A CN109634642 A CN 109634642A CN 201811363159 A CN201811363159 A CN 201811363159A CN 109634642 A CN109634642 A CN 109634642A
- Authority
- CN
- China
- Prior art keywords
- subregion
- program
- fpga
- flash
- configuration file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种FPGA配置文件远程升级的方法,FPGA与Flash连接进行交互数据,将启动头和默认启动程序分别写入分区A和分区B,在分区A内的程序执行跳转地址设置为START_addr,执行默认启动程序支持通过网口对Flash进行读写操作,下电重启后,FPGA从Flash0地址执行完分区A的启动头后加载分区B中的程序,升级时,PC机通过网口将配置文件写入到分区C中,数据写入完成后,更改分区A的程序执行跳转地址,下电重新启动后,程序自动加载分区C配置文件的内容,支持远程升级。本发明升级方式更灵活,且不受限于JTAG的长度。
Description
技术领域
本发明涉及电路设计领域,尤其是一种配置文件远程升级的解决方法。
背景技术
在含有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中的程序,进行下次的重新升级,提高可靠性。
Claims (1)
1.一种FPGA配置文件远程升级的方法,其特征在于包括下述步骤:
步骤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中的程序,进行下次的重新升级。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811363159.4A CN109634642A (zh) | 2018-11-15 | 2018-11-15 | 一种fpga配置文件远程升级的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811363159.4A CN109634642A (zh) | 2018-11-15 | 2018-11-15 | 一种fpga配置文件远程升级的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109634642A true CN109634642A (zh) | 2019-04-16 |
Family
ID=66068213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811363159.4A Pending CN109634642A (zh) | 2018-11-15 | 2018-11-15 | 一种fpga配置文件远程升级的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109634642A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110297652A (zh) * | 2019-06-21 | 2019-10-01 | 四川九州电子科技股份有限公司 | 一种fpga远程升级的方法 |
CN111176675A (zh) * | 2019-12-03 | 2020-05-19 | 北京星际荣耀空间科技有限公司 | 一种芯片应用程序的升级应用方法 |
CN111813432A (zh) * | 2020-06-01 | 2020-10-23 | 大唐微电子技术有限公司 | 一种fpga配置升级方法和fpga平台 |
CN114443175A (zh) * | 2022-04-11 | 2022-05-06 | 天津讯联科技有限公司 | 一种用于弹载fpga在线升级的启动配置方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080175262A1 (en) * | 2007-01-19 | 2008-07-24 | Fujitsu Limited | Data communication apparatus, configuration information update method, and configuration information update program |
CN104166566A (zh) * | 2014-08-12 | 2014-11-26 | 福建星网锐捷网络有限公司 | 一种fpga配置文件升级方法及系统 |
CN105955783A (zh) * | 2016-05-09 | 2016-09-21 | 浙江大学 | 一种基于fpga控制的远程fpga逻辑代码的下载方法 |
CN107479913A (zh) * | 2017-07-27 | 2017-12-15 | 中国船舶重工集团公司第七二四研究所 | 一种fpga配置多启动低资源占用更新方法及实施系统 |
-
2018
- 2018-11-15 CN CN201811363159.4A patent/CN109634642A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080175262A1 (en) * | 2007-01-19 | 2008-07-24 | Fujitsu Limited | Data communication apparatus, configuration information update method, and configuration information update program |
CN104166566A (zh) * | 2014-08-12 | 2014-11-26 | 福建星网锐捷网络有限公司 | 一种fpga配置文件升级方法及系统 |
CN105955783A (zh) * | 2016-05-09 | 2016-09-21 | 浙江大学 | 一种基于fpga控制的远程fpga逻辑代码的下载方法 |
CN107479913A (zh) * | 2017-07-27 | 2017-12-15 | 中国船舶重工集团公司第七二四研究所 | 一种fpga配置多启动低资源占用更新方法及实施系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110297652A (zh) * | 2019-06-21 | 2019-10-01 | 四川九州电子科技股份有限公司 | 一种fpga远程升级的方法 |
CN111176675A (zh) * | 2019-12-03 | 2020-05-19 | 北京星际荣耀空间科技有限公司 | 一种芯片应用程序的升级应用方法 |
CN111813432A (zh) * | 2020-06-01 | 2020-10-23 | 大唐微电子技术有限公司 | 一种fpga配置升级方法和fpga平台 |
CN114443175A (zh) * | 2022-04-11 | 2022-05-06 | 天津讯联科技有限公司 | 一种用于弹载fpga在线升级的启动配置方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109634642A (zh) | 一种fpga配置文件远程升级的方法 | |
WO2022007656A1 (zh) | Bootloader软件更新方法、装置、嵌入式控制器以及存储介质 | |
EP2902916A1 (en) | Programming auxiliary system of programmable controller and method thereof | |
CN110134426A (zh) | 一种嵌入式系统升级方法、装置及终端设备 | |
CN110597542B (zh) | 软件自动ota升级方法及装置、电子设备 | |
CN105893090A (zh) | 一种嵌入式系统bootrom和应用程序升级方法 | |
CN110515641A (zh) | 服务器固件的更新方法、装置及系统 | |
CN108762833A (zh) | 安卓系统中的应用启动方法和装置 | |
CN104391714A (zh) | 一种车辆的软件更新方法和装置 | |
CN115291946A (zh) | 鸿蒙系统移植方法、装置、电子设备及可读介质 | |
CN106598576A (zh) | 一种基于squashfs只读文件的设备参数升级方法及装置 | |
CN109213510A (zh) | 一种用于嵌入式设备的应用程序升级方法及存储介质 | |
CN108958813A (zh) | 文件系统构建方法、装置及存储介质 | |
US9600397B2 (en) | Dynamic debugging method of a software module and corresponding device | |
CN108334413A (zh) | 一种基于飞腾平台的固件与操作系统之间信息传递方法 | |
CN106201584B (zh) | 版本升级方法及终端设备 | |
CN113934445A (zh) | 设备固件升级系统、方法、装置、计算机设备和存储介质 | |
CN113238819A (zh) | 一种适用于U-Boot的驱动文件动态加载方法及系统 | |
CN106775796A (zh) | 一种固件升级方法、装置及系统 | |
KR102434126B1 (ko) | Plc 프로그램 처리 장치 | |
CN111949278B (zh) | 一种自动安装mcs系统的方法、系统、终端及存储介质 | |
US20040216140A1 (en) | Method and system for accessing system operations through an interface layer | |
CN109960522A (zh) | 一种软件升级方法及装置 | |
CN114741137B (zh) | 一种基于多核微控制器的软件启动方法、装置、设备及存储介质 | |
CN117350916B (zh) | 基于状态机管理gpu内核驱动的方法、电子设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190416 |
|
WD01 | Invention patent application deemed withdrawn after publication |