CN108536458A - 一种fpga在线升级方法、装置、设备及存储介质 - Google Patents
一种fpga在线升级方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN108536458A CN108536458A CN201810333662.9A CN201810333662A CN108536458A CN 108536458 A CN108536458 A CN 108536458A CN 201810333662 A CN201810333662 A CN 201810333662A CN 108536458 A CN108536458 A CN 108536458A
- Authority
- CN
- China
- Prior art keywords
- solid
- state memory
- application profiles
- program
- online upgrading
- 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
-
- 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
Abstract
本发明涉及一种FPGA在线升级方法、装置、设备及存储介质,包括:将现场可编程门阵列的在线升级程序配置文件和应用程序配置文件分别存储在固态存储器的不同位置;擦除所述固态存储器中原有的应用程序配置文件;将待升级的应用程序配置文件写入所述固态存储器中原有应用程序配置文件的位置;根据所述固态存储器中的应用程序配置文件和在线升级程序配置文件配置现场可编程门阵列。该方法不需要多余的硬件,方法简单且不需要断电就能重配置FPGA程序。
Description
技术领域
本发明属于FPGA配置技术领域,具体涉及一种FPGA在线升级方法、装置、设备及存储介质。
背景技术
现在系统设计越来越讲求时效性,现场可编程阵列FPGA满足设计周期短,验证快的需求,越来越多的硬件设计采用FPGA。然而FPGA程序目前主要是通过jtag(联合测试工作组)等仿真器来下载到flash(固态存储器)中,很多项目都存在未知的bug,需要不定期的给客户升级,且程序需要保密性。
目前的FPGA在线升级方法主要有:1、通过专用的编程器进行离线升级,这种方法太过复杂,且需要断电重启;2、通过cpu等来对FPGA程序的存储器直接进行编程,这样增加了硬件成本,且方法比较复杂。
发明内容
本发明的目的在于,针对上述现有技术存在的缺陷,提供设计一种FPGA在线升级方法、装置、设备及存储介质,以解决上述技术问题。
第一方面,本申请提供一种FPGA在线升级方法,包括:将现场可编程门阵列的在线升级程序配置文件和应用程序配置文件分别存储在固态存储器的不同位置;擦除所述固态存储器中原有的应用程序配置文件;将待升级的应用程序配置文件写入所述固态存储器中原有应用程序配置文件的位置;根据所述固态存储器中的应用程序配置文件和在线升级程序配置文件配置现场可编程门阵列。
结合第一方面,在第一方面的第一种实施方式中,擦除所述固态存储器中原有的应用程序配置文件包括:擦除固态存储器中原有应用程序配置文件的正常标志位;配置在线升级程序配置文件在固态存储器中的起始地址;将处于应用程序的现场可编程门阵列切换至在线升级程序;擦除固态存储其中的原有应用程序配置文件。
结合第一方面,在第一方面的第二种实施方式中,将待升级的应用程序配置文件写入所述固态存储器中原有应用程序配置文件的位置包括:利用在线升级程序将接收的待升级的应用程序配置文件写到固态存储器中原有应用程序配置文件的位置;利用在线升级程序在固态存储器中写应用程序配置文件的正常标志位;配置应用程序配置文件在固态存储器中的起始地址;将处于在线升级程序的现场可编程门阵列切换至应用程序。
第二方面,本申请实施例提供一种FPGA在线升级装置,包括:存储单元,配置用于将现场可编程门阵列的在线升级程序配置文件和应用程序配置文件分别存储在固态存储器的不同位置;擦除单元,配置用于擦除所述固态存储器中原有的应用程序配置文件;写入单元,配置用于将待升级的应用程序配置文件写入所述固态存储器中原有应用程序配置文件的位置;配置单元,配置用于根据所述固态存储器中应用程序配置文件和在线升级程序配置文件配置现场可编程门阵列。
结合第二方面,在第二方面的第一种实施方式中,擦除单元包括:标志位擦除子单元,配置用于擦除固态存储器中原有应用程序配置文件的正常标志位;第一预配置子单元,配置用于配置在线升级程序配置文件在固态存储器中的起始地址;第一程序切换子单元,配置用于将处于应用程序的现场可编程门阵列切换至在线升级程序;文件擦除子单元,配置用于擦除固态存储其中的原有应用程序配置文件。
结合第二方面,在第二方面的第二种实施方式中,写入单元包括:文件写入子单元,配置用于利用在线升级程序将接收的待升级的应用程序配置文件写到固态存储器中原有应用程序配置文件的位置;标志位写入子单元,配置用于利用在线升级程序在固态存储器中写应用程序配置文件的正常标志位;第二预配置子单元,配置用于配置应用程序配置文件在固态存储器中的起始位置;第二程序切换子单元,配置用于将处于在线升级程序的现场可编程门阵列切换至应用程序。。
第三方面,本申请实施例提供一种设备,所述设备包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如第一方面及第一方面任一种实施方式所述的方法。
第四方面,本申请实施例提供一种存储介质,该程序被处理器执行时实现如第一方面及第一方面任一种实施方式所述的方法。
本发明的有益效果在于,
本方法通过将FPGA(现场可编程门阵列)的应用程序配置文件和在线升级配置文件分别存储在flash(固态存储器)的不同位置,在升级FPGA过程中,在线升级配置文件不变,只更新应用程序配置文件,而更新应用程序配置文件不会对在线升级配置文件造成任何影响,在线升级程序在FPGA升级过程中正常运行。该方法不需要多余的硬件,方法简单且不需要断电就能重配置FPGA程序。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为本申请实施例提供的FPGA在线升级程序架构示意图;
图2为本申请实施例提供的FPGA在线升级方法的流程图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
本发明实施例中所选用的FPGA型号是Altera公司的CycloneIV E:EP4CE15E22I7,存储器是Altera公司的串行配置芯片EPCS16。
下面对远程在线升级使用的软件编程环境和ip核做一下介绍:开发软件是用的QuartusII12.1sp1;ip核是RSU(远程更新)远程升级ip核,可以配置FPGA重配置的存储器地址,可以控制FPGA重配置,可以配置看门狗打开关闭和喂狗时间等。cpu用的是niosII,可以在这个cpu上运行软件程序来控制串口,RSU(远程更新)ip核和flash controller。flashcontroller是EPCS Serial Flash Controller,可以对flash芯片进行读写控制。串口ip核是UART,Altera公司提供的ip核,负责上位机和cpu的交互。
请参考图1和图2,本实施例提供一种FPGA在线升级方法,方法如下:
S1、通过软件把应用程序的hardware和software配置文件转换成一个待下载文件。(待升级文件)
S2、运行上位机,连接串口,上位机给FPGA应用程序发送擦除应用程序配置文件正常标志位(该标志位在flash中),擦除该标志位之后,配置FPGARSU(远程更新)ip核(知识产权核)中FPGA重新配置时程序配置文件在flash的起始地址。给RSUip核重新配置FPGA的指令或者停止喂看门狗,FPGA配置成在线升级程序。
S3、重新连接串口,上位机发送指令给FPGA确认重配置到在线升级程序。
S4、上位机给FPGA的在线升级程序发送擦除flash中应用程序配置文件的指令,等待FPGA给上位机发送擦除成功信号。
S5、上位机选择要升级的应用程序配置文件,通过ymodem协议发送给FPGA,FPGA在线升级程序把该文件的数据写到flash指定位置。
S6、FPGA在线升级程序写flash中的应用程序配置文件正常标志位。
S7、FPGA重新配置,切换到应用程序。
S8、重新连接串口,上位机发送指令给FPGA,确认应用程序版本正确,升级结束。
具体实施方式如下:
步骤一、通过软件合并应用程序hardware的sof配置文件和software的elf配置并转化成下载的文件格式,本发明是bin格式的文件。应用程序的软件代码的配置文件在flash中的位置是变化的,所以应用程序需要修改cpu的boot_loader代码,具体是修改代码转换成的hex文件。
步骤二、打开上位机,通过串口连接现在的应用程序,连接成功之后,上位机发送擦除应用程序配置文件正常标志位指令,FPGA应用程序软件通过flash controller把flash相应位置的数据擦除。擦除成功后发送信息给上位机,上位机接收到擦除成功反馈,FPGA应用程序软件通过控制RSU模块,配置FPGA重配置的flash初始地址,并重配置FPGA到在线升级工程。应用程序除了应用程序实现功能用到的ip以外,还要增加RSU远程升级ip,保证应用程序可以在不断电的情况下重配置FPGA进入在线升级程序。
步骤三、上位机关闭串口,再重新连接串口,连接串口成功之后,上位机发送指令到FPGA程序,验证是否目前程序是在线升级程序,FPGA工程软件发送信息给上位机,上位机确定进入在线升级程序。
步骤四、上位机发送擦除应用程序配置文件的指令给在线升级程序,FPGA接收到指令之后,通过软件控制flash controller,擦除应用程序配置文件存储在flash位置上的数据,擦除成功之后,FPGA发送擦除成功信息给上位机,上位机显示擦除成功信息。
步骤五、上位机选择要升级的应用程序配置文件的bin文件,上位机发送数据输出指令给FPGA,等待FPGA反回ACK指令,如果等待超出时间后显示升级失败,如果上位机接收到ACK指令,上位机先发送一个数据包头文件给在线升级程序,包括传送文件大小等信息,再次收到FPGA ACK指令后上位机通过ymodem协议把文件一帧一帧的串行发送给FPGA,一帧是1024bit,FPGA在线升级程序接收到数据后把串行数据转换成并行数据,并验证传输数据的正确性,如果正确,通过flash controller把这一帧的数据写到flash相应的位置,然后反馈给上位机ACK指令,如果验证错误则发送给上位机NAK指令,上位机接收到指令之后发送下一帧数据或者重新发送这一帧数据。最后一帧数据发送结束后,上位机发送EOT指令给FPGA在线升级程序,FPGA在线升级程序发送NAK指令给上位机,上位机再发送EOT指令给FPGA在线升级程序,FPGA在线升级程序发送ACK指令给上位机,应用程序配置文件的传输和写flash结束。
步骤六、应用程序配置文件写到flash结束后,FPGA在线升级程序软件控制flashcontroller把flash中的应用程序配置文件正常标志位写标志。
步骤七、FPGA在线升级程序软件配置RSUip核的FPGA重配置flash起始位置地址,发送重新配置FPGA指令给RSUip核,RSUip核控制FPGA重新配置,FPGA切换到应用程序。
步骤八、上位机关闭串口,再重新连接串口,发送查询应用工程版本指令给FPGA,FPGA返回版本信息给上位机,上位机显示版本信息,版本正确,程序升级成功。
本实施例提供一种FPGA在线升级装置,包括:存储单元,配置用于将现场可编程门阵列的在线升级程序配置文件和应用程序配置文件分别存储在固态存储器的不同位置;擦除单元,配置用于擦除所述固态存储器中原有的应用程序配置文件;写入单元,配置用于将待升级的应用程序配置文件写入所述固态存储器中原有应用程序配置文件的位置;配置单元,配置用于根据所述固态存储器中应用程序配置文件和在线升级程序配置文件配置现场可编程门阵列。
其中,擦除单元包括:标志位擦除子单元,配置用于擦除固态存储器中原有应用程序配置文件的正常标志位;第一预配置子单元,配置用于配置在线升级程序配置文件在固态存储器中的起始地址;第一程序切换子单元,配置用于将处于应用程序的现场可编程门阵列切换至在线升级程序;文件擦除子单元,配置用于擦除固态存储其中的原有应用程序配置文件。
写入单元包括:文件写入子单元,配置用于利用在线升级程序将接收的待升级的应用程序配置文件写到固态存储器中原有应用程序配置文件的位置;标志位写入子单元,配置用于利用在线升级程序在固态存储器中写应用程序配置文件的正常标志位;第二预配置子单元,配置用于配置应用程序配置文件在固态存储器中的起始位置;第二程序切换子单元,配置用于将处于在线升级程序的现场可编程门阵列切换至应用程序。
本实施例提供一种设备,所述设备包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如本申请实施例提供的FPGA在线升级方法。
本实施例提供一种存储介质,该程序被处理器执行时实现如本申请实施例提供的FPGA在线升级的方法。
以上公开的仅为本发明的优选实施方式,但本发明并非局限于此,任何本领域的技术人员能思之的没有创造性的变化,以及在不脱离本发明原理前提下所作的若干改进和润饰,都应落在本发明的保护范围内。
Claims (8)
1.一种FPGA在线升级方法,其特征在于,所述方法包括:
将现场可编程门阵列的在线升级程序配置文件和应用程序配置文件分别存储在固态存储器的不同位置;
擦除所述固态存储器中原有的应用程序配置文件;
将待升级的应用程序配置文件写入所述固态存储器中原有应用程序配置文件的位置;
根据所述固态存储器中应用程序配置文件和在线升级程序配置文件配置现场可编程门阵列。
2.根据权利要求1所述的方法,其特征在于,所述擦除所述固态存储器中原有的应用程序配置文件包括:
擦除固态存储器中原有应用程序配置文件的正常标志位;
配置在线升级程序配置文件在固态存储器中的起始地址;
将处于应用程序的现场可编程门阵列切换至在线升级程序;
擦除固态存储其中的原有应用程序配置文件。
3.根据权利要求1所述的方法,其特征在于,所述将待升级的应用程序配置文件写入所述固态存储器中原有应用程序配置文件的位置包括:
利用在线升级程序将接收的待升级的应用程序配置文件写到固态存储器中原有应用程序配置文件的位置;
利用在线升级程序在固态存储器中写应用程序配置文件的正常标志位;
配置应用程序配置文件在固态存储器中的起始位置;
将处于在线升级程序的现场可编程门阵列切换至应用程序。
4.一种FPGA在线升级装置,其特征在于,所述装置包括:
存储单元,配置用于将现场可编程门阵列的在线升级程序配置文件和应用程序配置文件分别存储在固态存储器的不同位置;
擦除单元,配置用于擦除所述固态存储器中原有的应用程序配置文件;
写入单元,配置用于将待升级的应用程序配置文件写入所述固态存储器中原有应用程序配置文件的位置;
配置单元,配置用于根据所述固态存储器中的应用程序配置文件和在线升级程序配置文件配置现场可编程门阵列。
5.根据权利要求4所述的装置,其特征在于,所述擦除单元包括:
标志位擦除子单元,配置用于擦除固态存储器中原有应用程序配置文件的正常标志位;
第一预配置子单元,配置用于配置在线升级程序配置文件在固态存储器中的起始地址;
第一程序切换子单元,配置用于将处于应用程序的现场可编程门阵列切换至在线升级程序;
文件擦除子单元,配置用于擦除固态存储其中的原有应用程序配置文件。
6.根据权利要求4所述的装置,其特征在于,所述写入单元包括:
文件写入子单元,配置用于利用在线升级程序将接收的待升级的应用程序配置文件写到固态存储器中原有应用程序配置文件的位置;
标志位写入子单元,配置用于利用在线升级程序在固态存储器中写应用程序配置文件的正常标志位;
第二预配置子单元,配置用于配置应用程序配置文件在固态存储器中的起始位置;
第二程序切换子单元,配置用于将处于在线升级程序的现场可编程门阵列切换至应用程序。
7.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1-3中任一项所述的方法。
8.一种存储有计算机程序的计算机可读存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-3中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810333662.9A CN108536458A (zh) | 2018-04-13 | 2018-04-13 | 一种fpga在线升级方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810333662.9A CN108536458A (zh) | 2018-04-13 | 2018-04-13 | 一种fpga在线升级方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108536458A true CN108536458A (zh) | 2018-09-14 |
Family
ID=63481066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810333662.9A Pending CN108536458A (zh) | 2018-04-13 | 2018-04-13 | 一种fpga在线升级方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108536458A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110908693A (zh) * | 2019-11-21 | 2020-03-24 | 江苏北方湖光光电有限公司 | 一种基于fpga的程序更新方法及系统 |
CN111142915A (zh) * | 2018-11-06 | 2020-05-12 | 阿里巴巴集团控股有限公司 | 更新方法、装置和设备 |
CN112732304A (zh) * | 2021-02-03 | 2021-04-30 | 浙江日风电气股份有限公司 | 一种cpld固件更新方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7607005B1 (en) * | 2004-12-22 | 2009-10-20 | Rmt, Inc. | Virtual hardware system with universal ports using FPGA |
CN103530164A (zh) * | 2013-10-30 | 2014-01-22 | 广东威创视讯科技股份有限公司 | 一种fpga配置文件远程更新的方法及装置 |
CN105278976A (zh) * | 2014-07-08 | 2016-01-27 | 南车株洲电力机车研究所有限公司 | 一种fpga重构装置、系统及方法 |
-
2018
- 2018-04-13 CN CN201810333662.9A patent/CN108536458A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7607005B1 (en) * | 2004-12-22 | 2009-10-20 | Rmt, Inc. | Virtual hardware system with universal ports using FPGA |
CN103530164A (zh) * | 2013-10-30 | 2014-01-22 | 广东威创视讯科技股份有限公司 | 一种fpga配置文件远程更新的方法及装置 |
CN105278976A (zh) * | 2014-07-08 | 2016-01-27 | 南车株洲电力机车研究所有限公司 | 一种fpga重构装置、系统及方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111142915A (zh) * | 2018-11-06 | 2020-05-12 | 阿里巴巴集团控股有限公司 | 更新方法、装置和设备 |
CN111142915B (zh) * | 2018-11-06 | 2023-04-25 | 阿里巴巴集团控股有限公司 | 更新方法、装置和设备 |
CN110908693A (zh) * | 2019-11-21 | 2020-03-24 | 江苏北方湖光光电有限公司 | 一种基于fpga的程序更新方法及系统 |
CN112732304A (zh) * | 2021-02-03 | 2021-04-30 | 浙江日风电气股份有限公司 | 一种cpld固件更新方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102609286B (zh) | 一种基于处理器控制的fpga配置程序远程更新系统及其方法 | |
TWI592808B (zh) | High-speed automated cluster system deployment using virtual disks | |
CN102999350B (zh) | 一种数字信号处理平台中fpga程序升级在线下载方法 | |
CN101814248B (zh) | 一种计算机硬件系列课程的远程实验系统 | |
US20090198770A1 (en) | System and method of updating codes in controller | |
CN108536458A (zh) | 一种fpga在线升级方法、装置、设备及存储介质 | |
CN101673202A (zh) | 一种程序烧写方法和系统以及一种待烧写装置和烧写装置 | |
CN102609287A (zh) | 一种通过cpu远程更新fpga的装置及其方法 | |
JPH08278927A (ja) | 再プログラム可能ネットワーク通信装置及びネットワーク通信装置の再プログラム方法 | |
CN111008033A (zh) | 一种基于串口的通用dsp在线升级系统及升级方法 | |
CN101814036A (zh) | 一种rf远程升级方法及系统 | |
CN101853173A (zh) | 一种分布式系统的可编程逻辑器件的软件升级方法和设备 | |
CN110851163B (zh) | 一种基于can通信的兼容多设备平台的软件更新方法 | |
CN111026427B (zh) | 一种含cpu和fpga的嵌入式系统远程在线升级方法 | |
CN109002310A (zh) | 固件升级方法 | |
CN104077166A (zh) | 基于fpga中ip核的epcs与epcq存储器在线升级方法 | |
CN109669729A (zh) | 一种处理器的启动引导方法 | |
CN110196726A (zh) | 一种基于cpu+cpld实现fpga程序远程升级加载的方法 | |
CN1996244A (zh) | 一种通过个人计算机进行固件下载的方法及装置 | |
CN110941444A (zh) | 一种升级配置逻辑电路、方法、系统及可编程逻辑器件 | |
CN109388413A (zh) | 一种fpga程序更新方法及系统 | |
CN107479917A (zh) | 一种批量刷新psu fw的方法 | |
CN112231005A (zh) | 一种基于uboot管理fpga版本的方法 | |
CN110134423B (zh) | 固件的更新方法、装置及计算机可读存储介质 | |
CN116560688A (zh) | 用于域控制器的软件更新方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180914 |
|
RJ01 | Rejection of invention patent application after publication |