CN113377408A - 一种高可靠sram型fpga在线升级方法及系统 - Google Patents
一种高可靠sram型fpga在线升级方法及系统 Download PDFInfo
- Publication number
- CN113377408A CN113377408A CN202110634679.XA CN202110634679A CN113377408A CN 113377408 A CN113377408 A CN 113377408A CN 202110634679 A CN202110634679 A CN 202110634679A CN 113377408 A CN113377408 A CN 113377408A
- Authority
- CN
- China
- Prior art keywords
- upgrading
- upgrade
- fpga
- flash
- program
- 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.)
- Granted
Links
Images
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种高可靠SRAM型FPGA在线升级方法及系统,属于信息处理领域。本发明的外部主机用于向FPGA发送升级指令与程序数据;升级通道是实现外部主机与FPGA之间稳定数据交互的通道;外部接口逻辑转换模块位于外部接口逻辑转换模块通用在线升级模块的前端,实现升级通道数据协议同FPGA内部通用在线升级模块的接口协议转化,实现外部主机同通用在线升级模块之间的透明数据传输;外部接口逻辑转换模块通用在线升级模块是受控根据升级应用程序状态机和升级备用程序状态机完成FPGA外部配置SPI/BPI接口Nor Flash的在线升级;外部接口逻辑转换模块Nor Flash用于存储跳转头文件、备用程序文件和应用程序文件。本发明用户接口简单、通用,不依赖仿真器,掉电或意外中断可自恢复。
Description
技术领域
本发明属于信息处理领域,具体涉及一种高可靠SRAM型FPGA在线升级方法及系统。
背景技术
现场可编程门阵列(Field Programmable Gate Array,FPGA),是一种用户可编程,可自定义功能的逻辑器件,具有灵活的应用方式。以Xilinx公司的7系列SRAM型为代表的FPGA,凭借丰富的接口资源,提供从低价到高性能多种芯片需求选择,在信息处理电路中应用十分广泛。SRAM型FPGA的本身不具备非易失存储功能,配置逻辑需要存储在外部配置FLASH中,使用专用仿真器,将配置文件烧写入外部配置FLASH中,上电时,FPGA自动执行加载流程,将配置文件加载到FPGA内部配置RAM中,启动运行,实现预定功能。一些特殊应用场景下,当需要进行配置软件更改升级时,并不适合使用仿真器进行升级操作,因此开发出一个高可靠SRAM型FPGA在线升级方法及系统具有现实应用意义。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是如何提供一种高可靠SRAM型FPGA在线升级方法及系统,以解决SRAM型FPGA需使用专用仿真器进行升级的问题。
(二)技术方案
为了解决上述技术问题,本发明提出一种高可靠SRAM型FPGA在线升级系统,该系统包括外部主机、升级通道、外部接口逻辑转换模块、通用在线升级模块和Nor Flash,
所述外部主机用于向待升级的FPGA发送升级指令与程序数据,同时对升级的过程进行监控;
所述升级通道是实现外部主机与FPGA之间稳定数据交互的通道;
所述外部接口逻辑转换模块位于FPGA内部,位于所述通用在线升级模块的前端,实现升级通道数据协议同FPGA内部通用在线升级模块的接口协议转化,实现外部主机同通用在线升级模块之间的透明数据传输;
所述通用在线升级模块是受控根据升级应用程序状态机和升级备用程序状态机完成FPGA外部配置SPI/BPI接口Nor Flash的在线升级;
所述Nor Flash用于存储跳转头文件、备用程序文件和应用程序文件。
进一步地,所述升级通道为EMIF、SRIO、Ethernet、PCIe或USB。
进一步地,所述通用在线升级模块包括控制寄存器组、双端口存储器、控制逻辑模块、状态寄存器组和Flash编程逻辑模块,其中,
所述控制寄存器组连接所述外部接口逻辑转换模块和所述控制逻辑模块,用于实现升级全过程的控制;
所述双端口存储器连接所述外部接口逻辑转换模块和所述控制逻辑模块,用于存储升级数据,所述外部接口逻辑转换模块分包写入升级数据,所述控制逻辑模块读出升级数据包;
所述控制逻辑模块连接所述控制寄存器组、所述双端口存储器、所述状态寄存器组和所述Flash编程逻辑模块,包含完整的升级流程状态机,根据外部指令,接收升级数据,调用所述Flash编程逻辑模块,按照预设的步骤完成整个在线升级流程;所述升级流程状态机包括升级应用程序状态机和升级备用程序状态机;
所述状态寄存器组连接到所述外部接口逻辑转换模块和所述控制逻辑模块,表征升级的过程与状态;
所述Flash编程逻辑模块连接所述控制逻辑模块和所述Nor Flash,对外提供BPI/SPI电气接口,包含BPI/SPI接口Nor Flash编程状态机,完成FPGA外部配置SPI/BPI接口NorFlash的指定扇区擦除、全片擦除、扇区编程写入和数据回读。
进一步地,所述控制寄存器组包括升级区域选择寄存器、升级使能寄存器、升级中止寄存器和软件版本记录寄存器;
所述升级区域选择寄存器用于选择升级备用镜像程序或应用镜像程序;
所述升级使能寄存器在使能后所述通用在线升级模块擦除0扇区与待升级的备用程序文件或应用程序文件区域,进入升级过程状态机等待外部升级数据;
所述升级中止寄存器在使能后,中止当前正在进行的升级过程,用于升级过程意外中断时重新进行升级使用;
所述软件版本记录寄存器用于受控写入备用程序文件与应用程序文件的软件版本,用作软件版本确认使用。
进一步地,所述状态寄存器组包括升级状态寄存器、当前启动镜像位置寄存器、升级进度条寄存器和双端口存储器写允许寄存器;
所述升级状态寄存器表征当前是否处于升级中,升级使能后,自动切换到升级中状态,升级成功后或执行升级中止操作后切换为正常状态,升级失败后切换为升级失败状态;
所述当前启动镜像位置寄存器表征当前设置条件下,FPGA启动时加载哪个程序镜像;
所述升级进度条寄存器表征当前升级的进度;
所述双端口存储器写允许寄存器根据当前双端口存储器中数据是否已经被读取,提供写允许标志,默认为写允许,升级使能寄存器有效后,变为写禁止,数据读取完成后再置位为写允许。
进一步地,所述Nor Flash用于存储跳转头文件、备用程序文件和应用程序文件,其中,
所述跳转头文件分配在Flash Sector0存储空间中,内容为包括总线宽度自动探测模式、同步关键字、启动跳转指示序列和软件版本的特殊字符程序段,上电后,FPGA自动加载解析跳转头文件,根据头文件段内容,实现从备用程序文件段加载配置或跳转至应用程序文件段加载配置;
所述备用程序文件是出厂时烧写的FPGA配置程序版本,分配Flash的Sector1到1/2存储空间之间区域;
所述应用程序文件是出厂时烧写的FPGA配置程序版本,分配在Flash的1/2存储空间之后区域。
进一步地,所述跳转头文件区域内容共有两种状态,一是0xFF,此时FPGA加载备用程序段执行,二是包含上述特殊字符程序段的头文件,FPGA加载后执行,固定实现跳转至应用程序段加载执行。
进一步地,Flash中的备用程序和应用程序均可正常启动工作,一次升级只升级其中一个程序。
本发明还提供一种基于在线升级系统的高可靠SRAM型FPGA在线升级方法,该方法为应用程序在线升级方法,具体包括如下步骤:
接收升级应用程序指令,FPGA进入升级应用程序状态机,清除升级进度,置升级中标志;
擦除配置Flash的头文件区域与应用程序文件区域空间;
持续接收外部数据,组包成固定大小帧,从应用程序空间起始地址开始顺序烧写入配置Flash,并更新升级进度;
升级数据接收完毕后,自动回读校验配置Flash中烧写的内容,若校验错误则置错误标志,结束此次升级;若校验正确继续执行下面步骤;
根据外部输入软件版本信息,自动更新头文件中应用程序版本信息,烧写头文件;
置升级完成标志,同时更新升级进度为100%,结束此次应用程序在线升级。
本发明还提供一种基于在线升级系统的高可靠SRAM型FPGA在线升级方法,该方法为备用程序在线升级方法,具体包括如下步骤:
接收升级应用程序指令,FPGA进入升级备用程序状态机,清除升级进度,置升级中标志;
擦除配置Flash的备用程序文件区域空间;
持续接收外部数据,组包成固定大小帧,从备用程序空间起始地址开始顺序烧写入配置Flash,并更新升级进度;
升级数据接收完毕后,自动回读校验配置Flash中烧写的内容,若校验错误则置错误标志,结束此次升级,若校验正确继续执行下面步骤;
置升级完成标志,同时更新升级进度为100%,结束此次备用程序在线升级。
(三)有益效果
本发明提出一种高可靠SRAM型FPGA在线升级方法及系统,本发明针对SRAM型FPGA需使用专用仿真器进行升级的问题,重新设计了在线升级系统,该升级系统细化了各种接口模块、提供了多种寄存器,且设计了控制状态机,同时,重新设计了FLASH的空间分配;本发明的在线升级系烧写代码方式也同现有技术不同。为了实现在线升级,现有技术中需要使用脚本文件生成加入了头文件的备用镜像文件(.mcs文件)使用仿真器烧写,备用镜像文件(golden image)升级也更复杂(1081figure 8)。本方法在sector0中完成了宽度检测、关键字与调整设置,采用在线的方式即可完成升级,且备用程序与应用程序升级过程完全一致,从而极大地简化和方便了SRAM型FPGA的升级过程。
本发明具有用户接口简单、通用,不依赖仿真器,掉电或意外中断可自恢复的优点。
附图说明
图1为xilinx官方文档截图;
图2为本发明的系统框图;
图3为本发明的配置Flash存储空间分配;
图4为本发明的应用程序在线升级流程;
图5为本发明的备用程序在线升级流程。
具体实施方式
为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
本发明核心(存储两份程序,头文件特殊序列选择等)参考了xilinx 1081文件,可从xilinx官网下载,首页截图如图1。本发明同1081文件区别如下:
细化了接口模块;
同1081的FLASH的空间分配不同;
烧写代码方式不同,为了实现在线升级,1081中需要使用脚本文件生成加入了头文件的备用镜像文件(.mcs文件)使用仿真器烧写,备用镜像文件(golden image)升级也更复杂(1081figure 8)。本方法在sector0中完成了宽度检测、关键字,与调整设置。备用程序与应用程序升级过程完全一致。
本方案使用时,头文件、备用程序、应用程序全利用在线升级的方式烧写。第一次烧写程序时(此时FPGA配置FLASH中无可用程序)先使用仿真器load程序,然后依次执行更新备用程序、更新应用程序完成出厂产品程序烧写。
本发明利用Xilinx公司的7系列FPGA的配置机制,提出了一种高可靠的在线升级方法和系统,具有用户接口简单、通用,不依赖仿真器,掉电或意外中断可自恢复的优点。
本发明的功能框图如图2所示。主要接口及模块说明如下
1.外部主机:
系统内的主控器件或系统外部的主控系统,可向待升级的FPGA发送升级指令与程序数据,同时亦可对升级的过程进行监控。
2.升级通道:
实现外部主机与FPGA之间稳定数据交互的通道,可以是任何的电气、链路协议形式,例如,EMIF,SRIO,Ethernet,PCIe,USB等。
3.外部接口逻辑转换模块:
FPGA内部功能模块,位于通用在线升级模块的前端,实现升级通道数据协议同FPGA内部通用在线升级模块的寄存器+双端口存储器形式的接口协议转化,实现外部主机同通用在线升级模块之间的透明数据传输。在具体的应用中外部接口逻辑转化模块并不是保持不变的,需要跟随升级通道的链路协议变化而改变。
4.通用在线升级模块:
高可靠SRAM型FPGA在线升级系统的核心功能模块,可受控根据升级应用程序状态机和升级备用程序状态机完成FPGA外部配置SPI/BPI接口Nor Flash的在线升级,并提供一组状态寄存器,表征升级进程与状态。
1)控制寄存器组:
一组控制寄存器,连接外部接口逻辑转换模块和控制逻辑模块,实现升级全过程的控制。比如
a)升级区域选择寄存器:可选择升级备用镜像程序或应用镜像程序。
b)升级使能寄存器:使能后,通用在线升级模块,擦除0扇区与待升级的备用镜像或应用镜像内容区域,进入升级过程状态机等待外部升级数据。
c)升级中止寄存器:使能后,中止当前正在进行的升级过程,一般用于升级过程意外中断时重新进行升级使用。执行升级中止后,可按照正常的升级流程重新进行升级。
d)软件版本记录寄存器:可受控写入备用镜像程序与应用镜像程序的软件版本,用作软件版本确认使用。
2)双端口存储器:
完整的升级程序数据分为若干个小的升级数据包,包大小设置为FPGA外部配置FLASH的单位扇区容量。双端口存储器容量可至少保存一包升级数据,连接外部接口逻辑转换模块和控制逻辑模块,外部接口逻辑转换模块分包写入升级程序数据,控制逻辑模块读出升级数据包,调用Flash编程逻辑模块对FPGA外部配置SPI/BPI接口Nor Flash的进行编程写入。
3)控制逻辑模块:
通用在线升级模块的核心功能单元,连接控制寄存器组、双端口存储器、状态寄存器组和Flash编程逻辑模块,包含完整的升级流程状态机(支持升级备用、应用程序),根据外部指令,接收升级数据,调用Flash编程逻辑模块,按照预设的步骤完成整个在线升级流程,同时提供一组状态接口,表征升级过程与状态。
4)状态寄存器组:
一组状态寄存器,连接到外部接口逻辑转换模块和控制逻辑模块,表征升级的过程与状态,比如
a)升级状态寄存器:表征当前是否处于升级中,升级使能后,自动切换到升级中状态,升级成功后或执行升级中止操作后切换为正常状态,升级失败后切换为升级失败状态。
b)当前启动镜像位置寄存器:表征当前设置条件下,FPGA启动时加载哪个程序镜像。
c)升级进度条寄存器:表征当前升级的进度,比如50(标准50%),启动升级后清零,升级完成后置为100。
d)双端口存储器写允许寄存器:根据当前双端口存储器中数据是否已经被读取,提供写允许标志。默认为写允许,升级使能寄存器有效后,变为写禁止,数据读取完成后再置位为写允许。
5)Flash编程逻辑模块:
连接控制逻辑模块和Nor Flash,对外提供BPI/SPI电气接口,包含BPI/SPI接口Nor Flash编程状态机,完成FPGA外部配置SPI/BPI接口Nor Flash的指定扇区擦除、全片擦除,扇区编程写入,数据回读。
5.Nor Flash:用于存储跳转头文件、备用程序文件和应用程序文件。
本发明的工作流程
1.配置程序Flash空间分配
每种SRAM型FPGA的配置程序具有固定的长度。为了实现本方案,需要选择2倍配置程序空间以上的配置Flash。Flash的空间分配如图2。产品出厂时,配置FLASH中按照图3已烧写完成,且头文件设置从应用程序空间启动。
2.程序段说明
1)跳转头文件:
跳转头文件是分配在配置Flash Sector0存储空间中,包括总线宽度自动探测模式、同步关键字、启动跳转指示序列、软件版本等特殊字符的程序段。上电后,FPGA自动加载解析跳转头文件,根据头文件段内容,可实现从备用程序文件段加载配置或跳转至应用程序文件段加载配置。配置Flash中跳转头文件区域内容共有两种状态,一是全为无效的0xFF,此时FPGA加载备用程序段执行。二是包含上述特殊字符串的头文件,FPGA加载后执行,固定实现跳转至应用程序段加载执行。
2)备用程序文件:
出厂时烧写的FPGA配置程序版本,一般作为备用使用,不更改,分配在配置Flash的Sector1到1/2存储空间之间区域。升级应用程序故障时,作为备用配置文件加载使用,文件格式是使用xilinx公司设计软件产生的标准的bin文件。
3)应用程序文件:
出厂时烧写的FPGA配置程序版本,分配在配置Flash的1/2存储空间之后区域。需要应用升级时,则升级此版本软件。文件格式是使用xilinx公司设计软件产生的标准的bin文件。
3.本发明的正常升级流程如下:
1)升级应用程序步骤:
应用程序在线升级流程图如图4所示,
a)接收升级应用程序指令,FPGA进入升级应用程序状态机,清除升级进度,置升级中标志;
b)擦除配置Flash的头文件区域与应用程序段区域空间;
c)持续接收外部数据,组包成固定大小帧,从应用程序空间起始地址开始顺序烧写入配置Flash,并更新升级进度;
d)升级数据接收完毕后,自动回读校验配置Flash中烧写的内容,若校验错误则置错误标志,结束此次升级。若校验正确继续执行下面步骤;
e)根据外部输入软件版本信息,自动更新头文件中应用程序版本信息,烧写头文件;
f)置升级完成标志,同时更新升级进度为100%,结束此次应用程序在线升级。
2)升级备用程序步骤:
升级备用程序同升级应用程序基本一致,只是少了头文件的擦除和更新过程。备用程序在出厂前通过升级备用程序烧写,软件版本在出厂前烧写应用程序时同时写入在头文件中。备用程序一般出厂后不再进行升级。
备用程序在线升级流程如图5所示,
a)接收升级应用程序指令,FPGA进入升级备用程序状态机,清除升级进度,置升级中标志;
b)擦除配置Flash的备用程序段区域空间;
c)持续接收外部数据,组包成固定大小帧,从备用程序空间起始地址开始顺序烧写入配置Flash,并更新升级进度;
d)升级数据接收完毕后,自动回读校验配置Flash中烧写的内容,若校验错误则置错误标志,结束此次升级。若校验正确继续执行下面步骤;
e)置升级完成标志,同时更新升级进度为100%,结束此次备用程序在线升级。
4.升级异常状态及处理
1)升级校验未通过;
一次升级后,升级状态寄存器为升级失败状态,说明刚执行的升级校验未通过,升级未完成。在这种状态下,升级状态机已执行完毕,处于空闲态,此时可通过重新使能一次升级过程完成升级。
2)升级过程中意外断电
由于配置Flash中分别设置了备用程序和应用程序两份均可正常启动工作的程序,约定一次升级只升级其中一份。在升级一份程序之前,通过头文件是否擦除来确保从另一份程序中启动,这样意外断电后,重新上电,FPGA仍然可以正常从另一份程序中启动,然后可通过重新使能一次升级过程完成升级。
3)升级长时间无法完成
意外通信中断等原因可导致长时间升级无法完成,此时可通过设置升级中止寄存器,中止当前正在进行的升级过程。执行升级中止后,升级状态寄存器、升级状态机均恢复为初始态,此后可按照正常的升级流程重新进行升级。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (10)
1.一种高可靠SRAM型FPGA在线升级系统,其特征在于,该系统包括外部主机、升级通道、外部接口逻辑转换模块、通用在线升级模块和Nor Flash,
所述外部主机用于向待升级的FPGA发送升级指令与程序数据,同时对升级的过程进行监控;
所述升级通道是实现外部主机与FPGA之间稳定数据交互的通道;
所述外部接口逻辑转换模块位于FPGA内部,位于所述通用在线升级模块的前端,实现升级通道数据协议同FPGA内部通用在线升级模块的接口协议转化,实现外部主机同通用在线升级模块之间的透明数据传输;
所述通用在线升级模块是受控根据升级应用程序状态机和升级备用程序状态机完成FPGA外部配置SPI/BPI接口Nor Flash的在线升级;
所述Nor Flash用于存储跳转头文件、备用程序文件和应用程序文件。
2.如权利要求1所述的高可靠SRAM型FPGA在线升级系统,其特征在于,所述升级通道为EMIF、SRIO、Ethernet、PCIe或USB。
3.如权利要求1所述的高可靠SRAM型FPGA在线升级系统,其特征在于,所述通用在线升级模块包括控制寄存器组、双端口存储器、控制逻辑模块、状态寄存器组和Flash编程逻辑模块,其中,
所述控制寄存器组连接所述外部接口逻辑转换模块和所述控制逻辑模块,用于实现升级全过程的控制;
所述双端口存储器连接所述外部接口逻辑转换模块和所述控制逻辑模块,用于存储升级数据,所述外部接口逻辑转换模块分包写入升级数据,所述控制逻辑模块读出升级数据包;
所述控制逻辑模块连接所述控制寄存器组、所述双端口存储器、所述状态寄存器组和所述Flash编程逻辑模块,包含完整的升级流程状态机,根据外部指令,接收升级数据,调用所述Flash编程逻辑模块,按照预设的步骤完成整个在线升级流程;所述升级流程状态机包括升级应用程序状态机和升级备用程序状态机;
所述状态寄存器组连接到所述外部接口逻辑转换模块和所述控制逻辑模块,表征升级的过程与状态;
所述Flash编程逻辑模块连接所述控制逻辑模块和所述Nor Flash,对外提供BPI/SPI电气接口,包含BPI/SPI接口Nor Flash编程状态机,完成FPGA外部配置SPI/BPI接口NorFlash的指定扇区擦除、全片擦除、扇区编程写入和数据回读。
4.如权利要求3所述的高可靠SRAM型FPGA在线升级系统,其特征在于,所述控制寄存器组包括升级区域选择寄存器、升级使能寄存器、升级中止寄存器和软件版本记录寄存器;
所述升级区域选择寄存器用于选择升级备用镜像程序或应用镜像程序;
所述升级使能寄存器在使能后所述通用在线升级模块擦除0扇区与待升级的备用程序文件或应用程序文件区域,进入升级过程状态机等待外部升级数据;
所述升级中止寄存器在使能后,中止当前正在进行的升级过程,用于升级过程意外中断时重新进行升级使用;
所述软件版本记录寄存器用于受控写入备用程序文件与应用程序文件的软件版本,用作软件版本确认使用。
5.如权利要求3所述的高可靠SRAM型FPGA在线升级系统,其特征在于,所述状态寄存器组包括升级状态寄存器、当前启动镜像位置寄存器、升级进度条寄存器和双端口存储器写允许寄存器;
所述升级状态寄存器表征当前是否处于升级中,升级使能后,自动切换到升级中状态,升级成功后或执行升级中止操作后切换为正常状态,升级失败后切换为升级失败状态;
所述当前启动镜像位置寄存器表征当前设置条件下,FPGA启动时加载哪个程序镜像;
所述升级进度条寄存器表征当前升级的进度;
所述双端口存储器写允许寄存器根据当前双端口存储器中数据是否已经被读取,提供写允许标志,默认为写允许,升级使能寄存器有效后,变为写禁止,数据读取完成后再置位为写允许。
6.如权利要求1-5任一项所述的高可靠SRAM型FPGA在线升级系统,其特征在于,所述Nor Flash用于存储跳转头文件、备用程序文件和应用程序文件,其中,
所述跳转头文件分配在Flash Sector0存储空间中,内容为包括总线宽度自动探测模式、同步关键字、启动跳转指示序列和软件版本的特殊字符程序段,上电后,FPGA自动加载解析跳转头文件,根据头文件段内容,实现从备用程序文件段加载配置或跳转至应用程序文件段加载配置;
所述备用程序文件是出厂时烧写的FPGA配置程序版本,分配Flash的Sector1到1/2存储空间之间区域;
所述应用程序文件是出厂时烧写的FPGA配置程序版本,分配在Flash的1/2存储空间之后区域。
7.如权利要求6所述的高可靠SRAM型FPGA在线升级系统,其特征在于,所述跳转头文件区域内容共有两种状态,一是0xFF,此时FPGA加载备用程序段执行,二是包含上述特殊字符程序段的头文件,FPGA加载后执行,固定实现跳转至应用程序段加载执行。
8.如权利要求6所述的高可靠SRAM型FPGA在线升级系统,其特征在于,Flash中的备用程序和应用程序均可正常启动工作,一次升级只升级其中一个程序。
9.一种基于权利要求1-8任一项所述的在线升级系统的高可靠SRAM型FPGA在线升级方法,其特征在于,该方法为应用程序在线升级方法,具体包括如下步骤:
a)接收升级应用程序指令,FPGA进入升级应用程序状态机,清除升级进度,置升级中标志;
b)擦除配置Flash的头文件区域与应用程序文件区域空间;
c)持续接收外部数据,组包成固定大小帧,从应用程序空间起始地址开始顺序烧写入配置Flash,并更新升级进度;
d)升级数据接收完毕后,自动回读校验配置Flash中烧写的内容,若校验错误则置错误标志,结束此次升级;若校验正确继续执行下面步骤;
e)根据外部输入软件版本信息,自动更新头文件中应用程序版本信息,烧写头文件;
f)置升级完成标志,同时更新升级进度为100%,结束此次应用程序在线升级。
10.一种基于权利要求1-8任一项所述的在线升级系统的高可靠SRAM型FPGA在线升级方法,其特征在于,该方法为备用程序在线升级方法,具体包括如下步骤:
a)接收升级应用程序指令,FPGA进入升级备用程序状态机,清除升级进度,置升级中标志;
b)擦除配置Flash的备用程序文件区域空间;
c)持续接收外部数据,组包成固定大小帧,从备用程序空间起始地址开始顺序烧写入配置Flash,并更新升级进度;
d)升级数据接收完毕后,自动回读校验配置Flash中烧写的内容,若校验错误则置错误标志,结束此次升级,若校验正确继续执行下面步骤;
e)置升级完成标志,同时更新升级进度为100%,结束此次备用程序在线升级。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110634679.XA CN113377408B (zh) | 2021-06-08 | 2021-06-08 | 一种高可靠sram型fpga在线升级方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110634679.XA CN113377408B (zh) | 2021-06-08 | 2021-06-08 | 一种高可靠sram型fpga在线升级方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113377408A true CN113377408A (zh) | 2021-09-10 |
CN113377408B CN113377408B (zh) | 2023-07-14 |
Family
ID=77576259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110634679.XA Active CN113377408B (zh) | 2021-06-08 | 2021-06-08 | 一种高可靠sram型fpga在线升级方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113377408B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114184212A (zh) * | 2021-12-27 | 2022-03-15 | 北京计算机技术及应用研究所 | 一种惯性仪表零位温度补偿方法 |
CN114443175A (zh) * | 2022-04-11 | 2022-05-06 | 天津讯联科技有限公司 | 一种用于弹载fpga在线升级的启动配置方法 |
CN114721695A (zh) * | 2022-06-08 | 2022-07-08 | 成都航天通信设备有限责任公司 | 一种基于双fpga芯片的软件在线升级系统及方法 |
CN115484219A (zh) * | 2022-08-23 | 2022-12-16 | 中国电子科技集团公司第十研究所 | 规避国产srio交换芯片端口关联的方法、设备及介质 |
CN116501354A (zh) * | 2023-06-21 | 2023-07-28 | 南京全信传输科技股份有限公司 | 光纤通道网络节点设备中fpga配置文件安全在线升级方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106909425A (zh) * | 2017-03-03 | 2017-06-30 | 中国电子科技集团公司第五十四研究所 | 一种dsp和fpga系统在线升级方法 |
CN107943501A (zh) * | 2017-11-30 | 2018-04-20 | 深圳市东微智能科技股份有限公司 | 嵌入式设备升级方法、装置、计算机设备和存储介质 |
CN107977217A (zh) * | 2017-11-22 | 2018-05-01 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 在线加载xilinx-fpga多版本更新程序的方法 |
CN109491686A (zh) * | 2018-11-02 | 2019-03-19 | 天津津航技术物理研究所 | 基于xilinx公司k7系列的FPGA程序在线升级方法 |
CN109710295A (zh) * | 2018-11-23 | 2019-05-03 | 北京计算机技术及应用研究所 | 一种安全可靠地fpga远程升级方法 |
CN110096300A (zh) * | 2019-04-08 | 2019-08-06 | 上海赛治信息技术有限公司 | 一种fpga程序文件备份管理系统、运行方法及升级方法 |
US20190278586A1 (en) * | 2018-03-09 | 2019-09-12 | Samsung Electronics Co., Ltd. | Integrated single fpga and solid state disk controller |
CN112231005A (zh) * | 2020-10-19 | 2021-01-15 | 天津津航计算技术研究所 | 一种基于uboot管理fpga版本的方法 |
CN112256312A (zh) * | 2020-10-14 | 2021-01-22 | 四川九洲空管科技有限责任公司 | 基于PowerPC的FPGA程序便捷升级方法及系统 |
-
2021
- 2021-06-08 CN CN202110634679.XA patent/CN113377408B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106909425A (zh) * | 2017-03-03 | 2017-06-30 | 中国电子科技集团公司第五十四研究所 | 一种dsp和fpga系统在线升级方法 |
CN107977217A (zh) * | 2017-11-22 | 2018-05-01 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 在线加载xilinx-fpga多版本更新程序的方法 |
CN107943501A (zh) * | 2017-11-30 | 2018-04-20 | 深圳市东微智能科技股份有限公司 | 嵌入式设备升级方法、装置、计算机设备和存储介质 |
US20190278586A1 (en) * | 2018-03-09 | 2019-09-12 | Samsung Electronics Co., Ltd. | Integrated single fpga and solid state disk controller |
CN109491686A (zh) * | 2018-11-02 | 2019-03-19 | 天津津航技术物理研究所 | 基于xilinx公司k7系列的FPGA程序在线升级方法 |
CN109710295A (zh) * | 2018-11-23 | 2019-05-03 | 北京计算机技术及应用研究所 | 一种安全可靠地fpga远程升级方法 |
CN110096300A (zh) * | 2019-04-08 | 2019-08-06 | 上海赛治信息技术有限公司 | 一种fpga程序文件备份管理系统、运行方法及升级方法 |
CN112256312A (zh) * | 2020-10-14 | 2021-01-22 | 四川九洲空管科技有限责任公司 | 基于PowerPC的FPGA程序便捷升级方法及系统 |
CN112231005A (zh) * | 2020-10-19 | 2021-01-15 | 天津津航计算技术研究所 | 一种基于uboot管理fpga版本的方法 |
Non-Patent Citations (2)
Title |
---|
XIAOHUI WANG等: "The Design and Implication of Multilevel FPGA Upgrade Online", 《2012 INTERNATIONAL CONFERENCE ON COMPUTER SCIENCE AND SERVICE SYSTEM》, pages 2099 * |
舒鹏飞等: "利用以太网实现FPGA的远程快速升级", 《电子信息对抗技术》, no. 05, pages 89 - 92 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114184212A (zh) * | 2021-12-27 | 2022-03-15 | 北京计算机技术及应用研究所 | 一种惯性仪表零位温度补偿方法 |
CN114184212B (zh) * | 2021-12-27 | 2023-09-26 | 北京计算机技术及应用研究所 | 一种惯性仪表零位温度补偿方法 |
CN114443175A (zh) * | 2022-04-11 | 2022-05-06 | 天津讯联科技有限公司 | 一种用于弹载fpga在线升级的启动配置方法 |
CN114721695A (zh) * | 2022-06-08 | 2022-07-08 | 成都航天通信设备有限责任公司 | 一种基于双fpga芯片的软件在线升级系统及方法 |
CN115484219A (zh) * | 2022-08-23 | 2022-12-16 | 中国电子科技集团公司第十研究所 | 规避国产srio交换芯片端口关联的方法、设备及介质 |
CN115484219B (zh) * | 2022-08-23 | 2023-06-27 | 中国电子科技集团公司第十研究所 | 规避国产srio交换芯片端口关联的方法、设备及介质 |
CN116501354A (zh) * | 2023-06-21 | 2023-07-28 | 南京全信传输科技股份有限公司 | 光纤通道网络节点设备中fpga配置文件安全在线升级方法 |
CN116501354B (zh) * | 2023-06-21 | 2023-09-15 | 南京全信传输科技股份有限公司 | 光纤通道网络节点设备中fpga配置文件安全在线升级方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113377408B (zh) | 2023-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113377408B (zh) | 一种高可靠sram型fpga在线升级方法及系统 | |
CN100377120C (zh) | 非易失性存储器装置的控制方法 | |
CN102317928B (zh) | 修改命令 | |
CN101454746B (zh) | 一种以多功能存储卡通讯的方法 | |
CN103777972A (zh) | 基于现场可编程门阵列的系统、配置方法以及升级方法 | |
CN101770809A (zh) | 非易失性存储器掉电后的恢复 | |
CN106201590B (zh) | 一种fpga配置文件加载方法和系统 | |
CN102945173A (zh) | 用户程序在线升级系统和升级方法 | |
CN112947977A (zh) | 一种软件在线升级方法及系统 | |
US6954815B2 (en) | Microcomputer with universal serial bus interface circuit and method of controlling the same | |
CN115080471A (zh) | 基于FPGA的nand flash接口控制器及读写方法 | |
KR100758300B1 (ko) | 플래시 메모리 장치 및 그것의 프로그램 방법 | |
JP2003140963A (ja) | 半導体記憶システム | |
JP2008027326A (ja) | システムコントローラ、該システムコントローラを有するフラッシュメモリシステム、フラッシュメモリモジュールの制御方法 | |
EP0881578A2 (en) | Microcomputer | |
CN102591738A (zh) | 数据管理方法、存储器控制器与嵌入式存储器储存装置 | |
US6381175B2 (en) | Method and system for validating flash memory | |
TWI417888B (zh) | An embedded chip system, a method for burning a wafer, and a computer program product | |
CN113467842B (zh) | 适用于工业级应用场景的嵌入式设备的启动方法、嵌入式设备和计算机可读存储介质 | |
JP3775697B2 (ja) | 携帯可能情報記憶媒体 | |
CN118093440A (zh) | 一种基于串口的QSPI Flash程序固化系统及其方法 | |
CN113986319A (zh) | 一种基于PowerPC的FPGA远程升级系统及方法 | |
KR100878527B1 (ko) | Nand 형 플래쉬 메모리 제어기와 제어기에서 사용되는클럭제어방법 | |
CN115827032A (zh) | 存储器的烧录方法、装置、电子设备及存储介质 | |
CN112883384A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |