CN114237676A - 一种fpga逻辑更新方法、装置、设备及可读存储介质 - Google Patents
一种fpga逻辑更新方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN114237676A CN114237676A CN202111617472.8A CN202111617472A CN114237676A CN 114237676 A CN114237676 A CN 114237676A CN 202111617472 A CN202111617472 A CN 202111617472A CN 114237676 A CN114237676 A CN 114237676A
- Authority
- CN
- China
- Prior art keywords
- user configuration
- information
- configuration information
- module
- fpga
- 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
- 238000000034 method Methods 0.000 title claims abstract description 38
- 230000005540 biological transmission Effects 0.000 claims description 50
- 238000012545 processing Methods 0.000 claims description 35
- 238000004458 analytical method Methods 0.000 claims description 16
- 238000004422 calculation algorithm Methods 0.000 claims description 16
- 238000000605 extraction Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000012423 maintenance Methods 0.000 abstract description 3
- 238000006243 chemical reaction Methods 0.000 description 23
- 238000004891 communication Methods 0.000 description 10
- 230000005236 sound signal Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 101100439969 Arabidopsis thaliana CLPD gene Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
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逻辑更新方法、装置、设备及可读存储介质,涉及信息技术领域,包括第一信息包括至少一个用户配置信息;将所述第一信息存入FLASH中;提取所述第一信息中每一个所述用户配置信息相对应的起始地址信息,并将所述起始地址信息存入存储块内;第一命令包括读取所述存储块中与所述第一信息相匹配的所述起始地址信息;根据所述第一命令,提取所述FLASH中与所述第一命令相匹配的更新后的用户配置信息,并将所述更新后的用户配置信息写入所述FPGA中。一旦板卡更新失败,板卡可以自动回退到上一版本的代码,不需要额外维修;采用远程网络的方式更新逻辑,可以同时操作多块板卡,也加快了更新速度,特别适应某些板卡安装、拆卸困难使用场景。
Description
技术领域
本发明涉及信息技术领域,具体而言,涉及FPGA逻辑更新方法、装置、设备及可读存储介质。
背景技术
常规FPGA系统中,FPGA程序调试完成后需要通过JTAG接口将程序文件烧写到FPGA外挂的配置FLASH上,系统重新上电以后,FPGA从外置的FLASH里读取配置数据后对自己进行配置,常规设备只在调试阶段使用JTAG,设备交付以后JTAG接口一般封闭不对外引出。对于工业应用场景来说,如果系统已经多地部署后,FPGA逻辑需要升级,常规方式需要返厂或者要求用户将设备拆开露出JTAG口来进行逻辑更新,对用于的技术水平要求较高有些场景下不太现实。
发明内容
本发明的目的在于提供一种FPGA逻辑更新方法、装置、设备及可读存储介质,以改善上述问题。为了实现上述目的,本发明采取的技术方案如下:
第一方面,本申请提供了一种FPGA逻辑更新方法,包括:
获取第一信息,所述第一信息包括至少一个用户配置信息;将所述第一信息存入FLASH中;
提取所述第一信息中每一个所述用户配置信息相对应的起始地址信息,并将所述起始地址信息存入存储块内;
发送第一命令,所述第一命令包括读取所述存储块中与所述第一信息相匹配的所述起始地址信息;
根据所述第一命令,提取所述FLASH中与所述第一命令相匹配的更新后的用户配置信息,并将所述更新后的用户配置信息写入所述FPGA中。
优选地,所述获取第一信息,所述第一信息包括至少一个用户配置信息,之前包括:
建立标准化模型;
根据所述标准化模型搭建硬件处理平台;
根据所述硬件处理平台中MCU内核中各个核的任务,配置标准化系统方案及参数;
根据所述标准化系统方案及参数,利用上位机搭建用户配置信息,将所述用户配置信息发送到MCU主控核,所述MCU主控核中至少包括一个用户配置信息。
优选地,所述将所述第一信息存入FLASH中,包括:
根据最优分配算法,计算生成所述用户配置信息的参数文件;
将所述用户配置信息的参数文件发送至所述硬件处理平台的主控核进行任务解析,得到解析后的所述用户配置信息;
根据匹配算法中的映射关系,将解析后的所述用户配置信息加载至所述FLASH中。
优选地,所述利用上位机搭建用户配置信息,将所述用户配置信息发送到MCU主控核,之后包括:
获取所述上位机中的所述用户配置信息;
将所述用户配置信息通过串口总线发送至控制器;
解析所述控制器中的所述用户配置信息;
将解析后的所述用户配置信息生成第一信息,所述第一信息包括用户配置存储地址;
通过spi总线将所述用户配置存储地址写取至所述存储块内。
第二方面,本申请还提供了一种FPGA逻辑更新装置,包括第一获取模块、第一提取模块、第一发送模块和第二提取模块,其中:
第一获取模块:用于获取第一信息,所述第一信息包括至少一个用户配置信息;将所述第一信息存入FLASH中;
第一提取模块:用于提取所述第一信息中每一个所述用户配置信息相对应的起始地址信息,并将所述起始地址信息存入存储块内;
第一发送模块:用于发送第一命令,所述第一命令包括读取所述存储块中与所述第一信息相匹配的所述起始地址信息;
第二提取模块:用于根据所述第一命令,提取所述FLASH中与所述第一命令相匹配的更新后的用户配置信息,并将所述更新后的用户配置信息写入所述FPGA中。
优选地,所述第一获取模块,之前包括建立模块、搭建模块、配置模块和第二发送模块,其中:
建立模块:用于建立标准化模型;
搭建模块:用于根据所述标准化模型搭建硬件处理平台;
配置模块:用于根据所述硬件处理平台中MCU内核中各个核的任务,配置标准化系统方案及参数;
第二发送模块:用于根据所述标准化系统方案及参数,利用上位机搭建用户配置信息,将所述用户配置信息发送到MCU主控核,所述MCU主控核中至少包括一个用户配置信息。
优选地,所述第一获取模块,包括计算单元、发送单元和解析单元,其中:
计算单元:用于根据最优分配算法,计算生成所述用户配置信息的参数文件;
发送单元:用于将所述用户配置信息的参数文件发送至所述硬件处理平台的主控核进行任务解析,得到解析后的所述用户配置信息;
解析单元:用于根据匹配算法中的映射关系,将解析后的所述用户配置信息加载至所述FLASH中。
优选地,第二发送模块,之后包括第二获取模块、第三发送模块、解析模块、生成模块和读取模块,其中:
第二获取模块:用于获取所述上位机中的所述用户配置信息;
第三发送模块:用于将所述用户配置信息通过串口总线发送至控制器;
解析模块:用于解析所述控制器中的所述用户配置信息;
生成模块:用于将解析后的所述用户配置信息生成第一信息,所述第一信息包括用户配置存储地址;
读取模块:用于通过spi总线将所述用户配置存储地址写取至所述存储块内。
第三方面,本申请还提供了一种FPGA逻辑更新设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现所述FPGA逻辑更新方法的步骤。
第四方面,本申请还提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述基于FPGA逻辑更新方法的步骤。
本发明的有益效果为:远程更新FPGA程序时,可以通过外部的COM接口或RJ45网口发送自定义的命令序列,CPLD进行解析,为防止信息泄密,可以对原始配置文件进行加密,CPLD响应对应的命令对SPI FLASH约定的区域进行擦除、写、读等验证更新文件流传输的完整性和正确性,当更新过程中如果意外断电了重新上电再次执行更新操作即可,无需担心硬件设备彻底无法工作的问题。采用CPLD来实现FPGA的逻辑更新,不会影响板卡执行其他的服务程序;一旦板卡更新失败,板卡可以自动回退到上一版本的代码,能正常启动工作,不需要额外维修;采用远程网络的方式更新逻辑,可以同时操作多块板卡,软件版本控制方便,也加快了更新速度,特别适应某些板卡安装、拆卸困难使用场景。
本发明的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例中所述的FPGA逻辑更新方法流程示意图;
图2为本发明实施例中所述的FPGA逻辑更新装置结构示意图;
图3为本发明实施例中所述的FPGA逻辑更新设备结构示意图。
图中:701、第一获取模块;7011、计算单元;7012、发送单元;7013、解析单元;702、第一提取模块;703、第一发送模块;7031、第一接收单元;7032、计算地址信息单元;7033、计算配置地址单元;7034、判断单元;704、第二提取模块;7041、第二接收单元;7042、第三接收单元;7043、传输单元;705、建立模块;706、搭建模块;707、配置模块;708、第二发送模块;709、第二获取模块;710、第三发送模块;711、解析模块;712、生成模块;713、读取模块;800、FPGA逻辑更新设备;801、处理器;802、存储器;803、多媒体组件;804、输入/输出(I/O)接口;805、通信组件。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
实施例1:
本实施例提供了一种FPGA逻辑更新方法,存储块可为eeprom。
参见图1,图中示出了本方法包括步骤S100、步骤S200、步骤S300和步骤S400。
S100、获取第一信息,第一信息包括至少一个用户配置信息;将第一信息存入FLASH中。
可以理解的是,在本步骤中,在S100之前包括S006、S007、S008和S009,其中:
S006、建立标准化模型;优选地,根据仿真系统的数据流,在图形化开发界面调用算法组件并连接组件接口的输入输出关系,形成系统。通过对组件参数的修改,即可重构系统,系统重构后下发重构指令到硬件处理平台,硬件处理平台接收到重构指令即可通过重构流程对指定核上运行的组件进行重构。经过修改后的参数生成新的XML描述文件,并且对组件中对原有的参数进行更新。
S007、根据标准化模型搭建硬件处理平台;根据标准化模型进行设计系统方案,并根据设计的系统方案搭建硬件处理平台。
S008、根据硬件处理平台中MCU内核中各个核的任务,配置标准化系统方案及参数; 形成系统后,点击生成按钮,即可生成组件的任务配置参数文件,将配置文件下发到硬件平台的主控核进行任务解析,匹配算法组件对应多核的映射关系。将算法组件制作成可执行镜像文件加载到MCU的FLASH中,即可将各个算法组件加载到各个核上分别运行。
S009、根据标准化系统方案及参数,利用上位机搭建用户配置信息,将用户配置信息发送到MCU主控核,MCU主控核中至少包括一个用户配置信息。
在S100包括S101、S102和S103,其中:
S101、根据最优分配算法,计算生成用户配置信息的参数文件;
S102、将用户配置信息的参数文件发送至硬件处理平台的主控核进行任务解析,得到解析后的用户配置信息;
S103、根据匹配算法中的映射关系,将解析后的用户配置信息加载至FLASH中。
需要说明的是,S009之后包括S104、S105、S106、S107和S108,其中:
S104、获取上位机中的用户配置信息;
S105、将用户配置信息通过串口总线发送至控制器;
S106、解析控制器中的用户配置信息;
S107、将解析后的用户配置信息生成第一信息,第一信息包括用户配置存储地址;
S108、通过spi总线将用户配置存储地址写取至存储块内。
需要说明的是,本发明是从上位机获取配置信息,将配置信息通过串口总线下发至控制器,控制器通过解析配置信息,生成配置数据和配置存储地址,通过spi总线将配置存储地址写取eeprom,将配置数据通过bpi并行总线写入FLASH。
S200、提取第一信息中每一个用户配置信息相对应的起始地址信息,并将起始地址信息存入存储块内。
可以理解的是,在本步骤中,具体地,MCU可以在存储块eeprom中读取一个FLASH的地址,并且根据地址从FLASH中把地址对应数据给提取出来,以备后续配置使用。
S300、发送第一命令,第一命令包括读取存储块中与第一信息相匹配的起始地址信息。
可以理解的是,在本步骤中,S300包括S301、S302、S303和S304,其中:
S301、接收第一控制命令,第一控制命令为在预设的时间范围内,待配置的FPGA和MCU接收到上机位为发送的控制命令,且该控制命令为开始配置命令帧时,待配置的FPGA继续运行FPGA跳转和配置程序;待配置的MCU运行配置程序;
S302、计算待配置的FPGA和/或待配置的存储块的地址范围和起始地址信息;
S303、根据待配置的存储块的地址范围和起始地址信息,计算得出本帧数据帧的配置地址;
S304、判断是否超出当前待配置的存储块的地址范围,若超出,则将异常状态上传至上位机,并显示数据超限;若没有超出,则待配置的FPGA和/或MCU将对应配置的配置地址至当前待配置的存储块内。
具体地,上位机通过MCU把用户中多个配置文件,多个为至少一个配置文件写入FLASH中,多个配置文件对应多个地址范围和起始地址信息,并把这些信息写入存储块eeprom中,发送命令给MCU后,读取FLASH中的相对应的分区信息,也就是从存储块eeprom中读出起始地址信息。其中,需要判断是否超出当前待配置的存储块的地址范围,若超出,则将异常状态上传至上位机,并显示数据超限,若没有超出的话,将待配置的所对应的配置地址分配到存储块内。
当板卡再次上电时,MCU会根据EEPROM和FPGA中数据完成加载。如果FPGA加载成功,则可以对FPGA的寄存器操作,查询FPGA代码的版本信息;如果FPGA加载失败,MCU可以通过改变读FLASH的起始地址,读取FLASH中存储的上一次的FPGA的程序代码加载到FPGA,从而保证不会因为升级失败原因导致板卡不能正常工作。
S400、根据第一命令,提取FLASH中与第一命令相匹配的更新后的用户配置信息,并将更新后的用户配置信息写入FPGA中。
可以理解的是,在本步骤中,S400包括S401、S402和S403,其中:
S401、通过指令接口接收控制器传入的FPGA的更新指令;
S402、根据传输协议,利用协议转换接口接收传入的FPGA固件;
S403、根据FPGA的更新指令控制协议转换接口将FPGA固件以目标传输协议传输至FPGA的配置接口,以更新FPGA。
具体地,本申请所提供的FPGA更新方法,在逻辑运算芯片通过协议转换接口以及指令接口分别与控制芯片连接的基础上,逻辑运算芯片通过指令接口接收控制芯片传入的FPGA更新指令,并利用协议转换接口接收基于初始传输协议传入的FPGA固件,进而根据FPGA更新指令控制协议转换接口将FPGA固件以目标传输协议传输至FPGA的配置接口,以此实现了对FPGA的更新。
在上述实施例的基础上,作为一种优选的实施方式,利用协议转换接口接收基于初始传输协议传入的FPGA固件,包括:
利用协议转换接口接收由控制芯片、存储芯片以及USB接口中任意一项或多项器件基于初始传输协议传入的FPGA固件。
需要说明的是,本实施方式中,协议转换接口接收的FPGA固件可以具体是基于控制芯片、存储芯片以及USB接口中任意一项或多项器件传入的,具体可以根据实际需求而定,本实施方式进一步确保了通过FPGA更新设备对FPGA进行固件更新时所采取的更新方式的灵活性。
在上述实施例的基础上,作为一种优选的实施方式,当利用协议转换接口接收由控制芯片基于初始传输协议传入的FPGA固件时,初始传输协议包括QSPI协议,目标传输协议包括Avalon-ST协议;
当利用协议转换接口接收由存储芯片基于初始传输协议传入的FPGA固件时,初始传输协议包括CFI协议,目标传输协议包括Avalon-ST协议;
当利用协议转换接口接收由USB接口基于初始传输协议传入的FPGA固件时,初始传输协议包括USB协议,目标传输协议包括JTAG协议。
需要说明的是,本实施方式的重点在于,针对于通过包括USB接口、存储芯片以及控制芯片在内的不同途径进行对FPGA的固件更新时,协议转换接口均进行相应由初始传输协议向目标传输协议的通信协议转换,即当利用协议转换接口接收由控制芯片基于初始传输协议传入的FPGA固件时,初始传输协议包括QSPI(Quad Serial Peripheral interface,4线串行外围设备接口)协议,目标传输协议包括Avalon-ST协议;当利用协议转换接口接收由存储芯片基于初始传输协议传入的FPGA固件时,初始传输协议包括CFI(Common FlashInterface,公共Flash接口)协议,目标传输协议包括Avalon-ST(Strming)协议;当利用协议转换接口接收由USB接口基于初始传输协议传入的FPGA固件时,初始传输协议包括USB协议,目标传输协议包括JTAG协议。
其中,使用QSPI协议时,用户可以一次性传输包含多达16个8位或16位数据的传输队列。一旦传输启动,直到传输结束,都不需要CPU干预,极大的提高了传输效率。
其中,Avalon-ST协议是一种单向点对点的高速接口,主要针对的是高速数据流的传输,减少数据流处理中的瓶颈;JTAG协议是FPGA能够正常读取数据的通信协议,因此本实施方式能够进一步确保对FPGA进行固件更新时的整体可靠性。
在上述实施例的基础上,作为一种优选的实施方式,当利用协议转换接口接收由存储芯片基于初始传输协议传入的FPGA固件时,方法还包括:
将FPGA固件写入存储芯片,并通过存储芯片读取FPGA固件;
判断由存储芯片读取到的FPGA固件与写入存储芯片时的FPGA固件是否一致;
如果由存储芯片读取到的FPGA固件与写入存储芯片时的FPGA固件一致,则不做处理;
如果由存储芯片读取到的FPGA固件与写入存储芯片时的FPGA固件不一致,则执行异常提示。
需要说明的是,本实施方式中,在利用协议转换接口接收由存储芯片基于初始传输协议传入的FPGA固件的场景下,本方法在将FPGA固件预存至存储芯片时,进一步通过存储芯片读取FPGA固件,进而判断由存储芯片读取到的FPGA固件与写入存储芯片时的FPGA固件是否一致,如果由存储芯片读取到的FPGA固件与写入存储芯片时的FPGA固件一致,则不做处理;否则,执行异常提示,以此确保存储芯片中预存的FPGA固件的可用性,进而确保FPGA更新的整体可靠性。
其中,当利用协议转换接口接收由控制芯片基于初始传输协议传入的FPGA固件时,初始传输协议包括QSPI协议,目标传输协议包括Avalon-ST协议;
当利用协议转换接口接收由存储芯片基于初始传输协议传入的FPGA固件时,初始传输协议包括CFI协议,目标传输协议包括Avalon-ST协议;
当利用协议转换接口接收由USB接口基于初始传输协议传入的FPGA固件时,初始传输协议包括USB协议,目标传输协议包括JTAG协议。
实施例2:
如图2所示,本实施例提供了一种FPGA逻辑更新装置,参见图2装置包括第一获取模块701、第一提取模块702、第一发送模块703和第二提取模块704,其中:
第一获取模块701:用于获取第一信息,第一信息包括至少一个用户配置信息;将第一信息存入FLASH中;
第一提取模块702:用于提取第一信息中每一个用户配置信息相对应的起始地址信息,并将起始地址信息存入存储块内;
第一发送模块703:用于发送第一命令,第一命令包括读取存储块中与第一信息相匹配的起始地址信息;
第二提取模块704:用于根据第一命令,提取FLASH中与第一命令相匹配的更新后的用户配置信息,并将更新后的用户配置信息写入FPGA中。
优选地,第一发送模块703包括:第一接收单元7031、计算地址信息单元7032、计算配置地址单元7033和判断单元7034,其中:
第一接收单元7031:接收第一控制命令,第一控制命令为在预设的时间范围内,待配置的FPGA和MCU接收到上机位为发送的控制命令,且该控制命令为开始配置命令帧时,待配置的FPGA继续运行FPGA跳转和配置程序;待配置的MCU运行配置程序;
计算地址信息单元7032:计算待配置的FPGA和/或待配置的存储块的地址范围和起始地址信息;
计算配置地址单元7033:根据待配置的存储块的地址范围和起始地址信息,计算得出本帧数据帧的配置地址;
判断单元7034:判断是否超出当前待配置的存储块的地址范围,若超出,则将异常状态上传至上位机,并显示数据超限;若没有超出,则待配置的FPGA和/或MCU将对应配置的配置地址至当前待配置的存储块内。
优选地,第一获取模块701,之前包括建立模块705、搭建模块706、配置模块707和第二发送模块708,其中:
建立模块705:用于建立标准化模型;
搭建模块706:用于根据标准化模型搭建硬件处理平台;
配置模块707:用于根据硬件处理平台中MCU内核中各个核的任务,配置标准化系统方案及参数;
第二发送模块708:用于根据标准化系统方案及参数,利用上位机搭建用户配置信息,将用户配置信息发送到MCU主控核,MCU主控核中至少包括一个用户配置信息。
优选地,第一获取模块701 ,包括计算单元7011、发送单元7012和解析单元7013,其中:
计算单元7011:用于根据最优分配算法,计算生成用户配置信息的参数文件;
发送单元7012:用于将用户配置信息的参数文件发送至硬件处理平台的主控核进行任务解析,得到解析后的用户配置信息;
解析单元7013:用于根据匹配算法中的映射关系,将解析后的用户配置信息加载至FLASH中。
优选地,第二发送模块708,之后包括第二获取模块709、第三发送模块710、解析模块711、生成模块712和读取模块713,其中:
第二获取模块709:用于获取上位机中的用户配置信息;
第三发送模块710:用于将用户配置信息通过串口总线发送至控制器;
解析模块711:用于解析控制器中的用户配置信息;
生成模块712:用于将解析后的用户配置信息生成第一信息,第一信息包括用户配置存储地址;
读取模块713:用于通过spi总线将用户配置存储地址写取至存储块内。
优选地,第二提取模块704包括:第二接收单元7041、第三接收单元7042和传输单元7043,其中:
第二接收单元7041:通过指令接口接收控制器传入的FPGA的更新指令;
第三接收单元7042:根据传输协议,利用协议转换接口接收传入的FPGA固件;
传输单元7043:根据FPGA的更新指令控制协议转换接口将FPGA固件以目标传输协议传输至FPGA的配置接口,以更新FPGA。
需要说明的是,关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
实施例3:
相应于上面的方法实施例,本实施例中还提供了一种FPGA逻辑更新设备,下文描述的一种FPGA逻辑更新设备与上文描述的一种FPGA逻辑更新方法可相互对应参照。
图3是根据示例性实施例示出的一种FPGA逻辑更新设备800的框图。如图3所示,该FPGA逻辑更新设备800可以包括:处理器801,存储器802。该FPGA逻辑更新设备800还可以包括多媒体组件803, I/O接口804,以及通信组件805中的一者或多者。
其中,处理器801用于控制该FPGA逻辑更新设备800的整体操作,以完成上述的FPGA逻辑更新方法中的全部或部分步骤。存储器802用于存储各种类型的数据以支持在该FPGA逻辑更新设备800的操作,这些数据例如可以包括用于在该FPGA逻辑更新设备800上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器802可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件803可以包括屏幕和音频组件。其中屏幕,例如,可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器802或通过通信组件805发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口804为处理器801和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件805用于该FPGA逻辑更新设备800与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件805可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,FPGA逻辑更新设备800可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal ProcessingDevice,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的FPGA逻辑更新方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的FPGA逻辑更新方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器802,上述程序指令可由FPGA逻辑更新设备800的处理器801执行以完成上述的FPGA逻辑更新方法。
实施例4:
相应于上面的方法实施例,本实施例中还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种FPGA逻辑更新方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的FPGA逻辑更新方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
综上所述,本发明中FPGA程序并非存储于其专用的配置FLASH中,FPGA启动模式也非主动SPI或主动BPI模式,而是采用Slave MAP方式,CPLD外挂的SPI FLASH中可以存放8个FPGA程序,均为用户程序。系统上电以后 CPLD先启动,通过I2C接口读取EEPROM的信息确定当前要配置8个程序中的哪一个到FPGA,之后从SPI FLASH对应存放程序处读取对应的配置数据对FPGA进行配置;采用CPLD来实现FPGA的逻辑更新,不会影响板卡执行其他的服务程序;一旦板卡更新失败,板卡可以自动回退到上一版本的代码,能正常启动工作,不需要额外维修;采用远程网络的方式更新逻辑,可以同时操作多块板卡,软件版本控制方便,也加快了更新速度,特别适应某些板卡安装、拆卸困难使用场景。
在一定程度上,远程更新FPGA逻辑可采用COM口或者RJ45口实现远程数据传输,数据传输到CLPD。CPLD解析消息,根据软件版本号写入到FLASH的指定区域,接收数据完毕,通过CRC校验后修改EEPROM中FLASH起始地址。此时FPGA中仍可执行上一版本的代码,不影响正在执行的服务程序。更关键的是,采用CPLD完成代码更新,保证FPGA在执行其他服务时也可以更新FLASH中逻辑代码。存储多个版本的FPGA逻辑代码保证能回退到上一版本的逻辑。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种FPGA逻辑更新方法,其特征在于,包括:
获取第一信息,所述第一信息包括至少一个用户配置信息;将所述第一信息存入FLASH中;
提取所述第一信息中每一个所述用户配置信息相对应的起始地址信息,并将所述起始地址信息存入存储块内;
发送第一命令,所述第一命令包括读取所述存储块中与所述第一信息相匹配的所述起始地址信息;
根据所述第一命令,提取所述FLASH中与所述第一命令相匹配的更新后的用户配置信息,并将所述更新后的用户配置信息写入所述FPGA中。
2.根据权利要求1所述的FPGA逻辑更新方法,其特征在于,所述获取第一信息,所述第一信息包括至少一个用户配置信息,之前包括:
建立标准化模型;
根据所述标准化模型搭建硬件处理平台;
根据所述硬件处理平台中MCU内核中各个核的任务,配置标准化系统方案及参数;
根据所述标准化系统方案及参数,利用上位机搭建用户配置信息,将所述用户配置信息发送到MCU主控核,所述MCU主控核中至少包括一个用户配置信息。
3.根据权利要求2所述的FPGA逻辑更新方法,其特征在于,将所述第一信息存入FLASH中,包括:
根据最优分配算法,计算生成所述用户配置信息的参数文件;
将所述用户配置信息的参数文件发送至所述硬件处理平台的主控核进行任务解析,得到解析后的所述用户配置信息;
根据匹配算法中的映射关系,将解析后的所述用户配置信息加载至所述FLASH中。
4.根据权利要求2所述的FPGA逻辑更新方法,其特征在于,利用上位机搭建用户配置信息,将所述用户配置信息发送到MCU主控核,之后包括:
获取所述上位机中的所述用户配置信息;
将所述用户配置信息通过串口总线发送至控制器;
解析所述控制器中的所述用户配置信息;
将解析后的所述用户配置信息生成第一信息,所述第一信息包括用户配置存储地址;
通过spi总线将所述用户配置存储地址写取至所述存储块内。
5.一种FPGA逻辑更新装置,其特征在于,包括:
第一获取模块:用于获取第一信息,所述第一信息包括至少一个用户配置信息;将所述第一信息存入FLASH中;
第一提取模块:用于提取所述第一信息中每一个所述用户配置信息相对应的起始地址信息,并将所述起始地址信息存入存储块内;
第一发送模块:用于发送第一命令,所述第一命令包括读取所述存储块中与所述第一信息相匹配的所述起始地址信息;
第二提取模块:用于根据所述第一命令,提取所述FLASH中与所述第一命令相匹配的更新后的用户配置信息,并将所述更新后的用户配置信息写入所述FPGA中。
6.根据权利要求5所述的FPGA逻辑更新装置,其特征在于,所述第一获取模块,之前包括:
建立模块:用于建立标准化模型;
搭建模块:用于根据所述标准化模型搭建硬件处理平台;
配置模块:用于根据所述硬件处理平台中MCU内核中各个核的任务,配置标准化系统方案及参数;
第二发送模块:用于根据所述标准化系统方案及参数,利用上位机搭建用户配置信息,将所述用户配置信息发送到MCU主控核,所述MCU主控核中至少包括一个用户配置信息。
7.根据权利要求6所述的FPGA逻辑更新装置,其特征在于,所述第一获取模块,包括:
计算单元:用于根据最优分配算法,计算生成所述用户配置信息的参数文件;
发送单元:用于将所述用户配置信息的参数文件发送至所述硬件处理平台的主控核进行任务解析,得到解析后的所述用户配置信息;
解析单元:用于根据匹配算法中的映射关系,将解析后的所述用户配置信息加载至所述FLASH中。
8.根据权利要求6所述的FPGA逻辑更新装置,其特征在于,所述第二发送模块,之后包括:
第二获取模块:用于获取所述上位机中的所述用户配置信息;
第三发送模块:用于将所述用户配置信息通过串口总线发送至控制器;
解析模块:用于解析所述控制器中的所述用户配置信息;
生成模块:用于将解析后的所述用户配置信息生成第一信息,所述第一信息包括用户配置存储地址;
读取模块:用于通过spi总线将所述用户配置存储地址写取至所述存储块内。
9.一种FPGA逻辑更新设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至4任一项所述FPGA逻辑更新方法的步骤。
10.一种可读存储介质,其特征在于:所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述FPGA逻辑更新方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111617472.8A CN114237676B (zh) | 2021-12-28 | 2021-12-28 | 一种fpga逻辑更新方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111617472.8A CN114237676B (zh) | 2021-12-28 | 2021-12-28 | 一种fpga逻辑更新方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114237676A true CN114237676A (zh) | 2022-03-25 |
CN114237676B CN114237676B (zh) | 2023-12-08 |
Family
ID=80763629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111617472.8A Active CN114237676B (zh) | 2021-12-28 | 2021-12-28 | 一种fpga逻辑更新方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114237676B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116610631A (zh) * | 2023-07-21 | 2023-08-18 | 西安智多晶微电子有限公司 | 支持多片SPI Flash访问的FPGA启动配置方法 |
CN116719583A (zh) * | 2023-08-08 | 2023-09-08 | 飞腾信息技术有限公司 | 一种启动方法、可编程逻辑器件、计算设备及存储介质 |
CN117093530A (zh) * | 2023-10-17 | 2023-11-21 | 苏州元脑智能科技有限公司 | 一种用于数据传输的fpga、模型训练系统及数据访问方法 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0415710D0 (en) * | 2003-07-16 | 2004-08-18 | Igt Reno Nev | Secured verification of configuration data for field programmable gate array devices |
US20100002871A1 (en) * | 2006-06-14 | 2010-01-07 | Toshihisa Nakano | Device provided with rewritable circuit, updating system, updating method, updating program and integrated circuit |
CN103530164A (zh) * | 2013-10-30 | 2014-01-22 | 广东威创视讯科技股份有限公司 | 一种fpga配置文件远程更新的方法及装置 |
WO2017147011A1 (en) * | 2016-02-26 | 2017-08-31 | Ayla Networks, Inc. | Local over the air update of an embedded system |
WO2018064419A1 (en) * | 2016-09-30 | 2018-04-05 | Amazon Technologies, Inc. | Controlling access to previously-stored logic in a reconfigurable logic device |
WO2018064885A1 (zh) * | 2016-10-08 | 2018-04-12 | 中国科学院微电子研究所 | 一种对可编程逻辑器件进行配置或更新的装置和方法 |
US20180329632A1 (en) * | 2017-05-15 | 2018-11-15 | Alibaba Group Holding Limited | High-volume, low-latency data processing in flexibly configured local heterogeneous computing environments |
CN108875318A (zh) * | 2018-05-28 | 2018-11-23 | 哈尔滨工程大学 | 一种基于mcu的fpga产权保护和远程更新系统及其方法 |
CN109062622A (zh) * | 2018-08-21 | 2018-12-21 | 北京无线电测量研究所 | 一种基于远程fpga加载系统和方法 |
CN109558158A (zh) * | 2019-01-30 | 2019-04-02 | 北京昊海雅正科技有限公司 | 基于网络更新fpga和dsp程序的装置及方法 |
US20200012488A1 (en) * | 2013-03-15 | 2020-01-09 | Electro Industries/Gauge Tech | Devices, systems and methods for tracking and upgrading firmware in intelligent electronic devices |
US20200401392A1 (en) * | 2019-06-21 | 2020-12-24 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method, apparatus, device and storage medium for upgrading application |
CN113268262A (zh) * | 2021-05-25 | 2021-08-17 | 中国科学院空天信息创新研究院 | 一种fpga远程更新配置方法、系统、电子设备和存储介质 |
-
2021
- 2021-12-28 CN CN202111617472.8A patent/CN114237676B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0415710D0 (en) * | 2003-07-16 | 2004-08-18 | Igt Reno Nev | Secured verification of configuration data for field programmable gate array devices |
US20100002871A1 (en) * | 2006-06-14 | 2010-01-07 | Toshihisa Nakano | Device provided with rewritable circuit, updating system, updating method, updating program and integrated circuit |
US20200012488A1 (en) * | 2013-03-15 | 2020-01-09 | Electro Industries/Gauge Tech | Devices, systems and methods for tracking and upgrading firmware in intelligent electronic devices |
CN103530164A (zh) * | 2013-10-30 | 2014-01-22 | 广东威创视讯科技股份有限公司 | 一种fpga配置文件远程更新的方法及装置 |
WO2017147011A1 (en) * | 2016-02-26 | 2017-08-31 | Ayla Networks, Inc. | Local over the air update of an embedded system |
WO2018064419A1 (en) * | 2016-09-30 | 2018-04-05 | Amazon Technologies, Inc. | Controlling access to previously-stored logic in a reconfigurable logic device |
WO2018064885A1 (zh) * | 2016-10-08 | 2018-04-12 | 中国科学院微电子研究所 | 一种对可编程逻辑器件进行配置或更新的装置和方法 |
US20180329632A1 (en) * | 2017-05-15 | 2018-11-15 | Alibaba Group Holding Limited | High-volume, low-latency data processing in flexibly configured local heterogeneous computing environments |
CN108875318A (zh) * | 2018-05-28 | 2018-11-23 | 哈尔滨工程大学 | 一种基于mcu的fpga产权保护和远程更新系统及其方法 |
CN109062622A (zh) * | 2018-08-21 | 2018-12-21 | 北京无线电测量研究所 | 一种基于远程fpga加载系统和方法 |
CN109558158A (zh) * | 2019-01-30 | 2019-04-02 | 北京昊海雅正科技有限公司 | 基于网络更新fpga和dsp程序的装置及方法 |
US20200401392A1 (en) * | 2019-06-21 | 2020-12-24 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method, apparatus, device and storage medium for upgrading application |
CN113268262A (zh) * | 2021-05-25 | 2021-08-17 | 中国科学院空天信息创新研究院 | 一种fpga远程更新配置方法、系统、电子设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
徐晶晶;陈帅;: "SSD系统中多级FPGA在线升级电路的设计与实现", 考试周刊, no. 72 * |
赵冬青;梁?;上官鹏;储成群;: "一种基于SPI FLASH的FPGA固件更新方法", 电子设计工程, no. 16 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116610631A (zh) * | 2023-07-21 | 2023-08-18 | 西安智多晶微电子有限公司 | 支持多片SPI Flash访问的FPGA启动配置方法 |
CN116610631B (zh) * | 2023-07-21 | 2023-09-26 | 西安智多晶微电子有限公司 | 支持多片SPI Flash访问的FPGA启动配置方法 |
CN116719583A (zh) * | 2023-08-08 | 2023-09-08 | 飞腾信息技术有限公司 | 一种启动方法、可编程逻辑器件、计算设备及存储介质 |
CN116719583B (zh) * | 2023-08-08 | 2023-11-10 | 飞腾信息技术有限公司 | 一种启动方法、可编程逻辑器件、计算设备及存储介质 |
CN117093530A (zh) * | 2023-10-17 | 2023-11-21 | 苏州元脑智能科技有限公司 | 一种用于数据传输的fpga、模型训练系统及数据访问方法 |
CN117093530B (zh) * | 2023-10-17 | 2024-02-09 | 苏州元脑智能科技有限公司 | 一种用于数据传输的fpga、模型训练系统及数据访问方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114237676B (zh) | 2023-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114237676B (zh) | 一种fpga逻辑更新方法、装置、设备及可读存储介质 | |
CN105404525B (zh) | 管理计算机系统中的基本输入输出系统配置的方法及装置 | |
CN103412769B (zh) | 外接卡参数配置方法、设备以及系统 | |
CN109034394B (zh) | 一种机器学习模型的更新方法和装置 | |
JP5039428B2 (ja) | プログラマブルコントローラ及びplcシステム | |
CN108563579B (zh) | 白盒测试方法、装置、系统及存储介质 | |
CN113342590B (zh) | NVMe设备调试功能实现方法、装置、设备及存储介质 | |
CN110502434A (zh) | 一种自动测试方法与装置 | |
CN111111201B (zh) | 一种基于游戏的技能创建方法、装置、服务器及介质 | |
CN109507991B (zh) | 一种双轴伺服控制平台调试系统及方法 | |
JP2013242629A (ja) | 制御装置、制御方法および命令セット | |
CN107203471B (zh) | 联调方法、服务平台及计算机存储介质 | |
CN116306396A (zh) | 芯片验证方法及装置、设备和介质 | |
CN115080113A (zh) | 项目代码检测方法和装置、可读存储介质、电子设备 | |
CN114327709A (zh) | 一种控制页面生成方法、装置、智能设备及存储介质 | |
CN108960433B (zh) | 用于运行机器学习建模过程的方法及系统 | |
CN113608752A (zh) | 智能网卡系统的安装方法、系统、装置及可读存储介质 | |
JP2001325011A (ja) | プログラマブルコントローラシステム | |
CN116126366B (zh) | 芯片输入输出接口配置方法,装置,介质及电子设备 | |
CN110113181A (zh) | 节点配置方法、装置、计算机装置、及可读存储介质 | |
CN115657571B (zh) | 智能玩具生产方法、系统、平台及存储介质 | |
CN111061460B (zh) | 基于嵌入式系统的通用软件开发平台 | |
JP7323755B2 (ja) | 情報処理システム、その制御方法及びプログラム | |
CN113268332A (zh) | 持续集成方法及装置 | |
CN114385500A (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 |