一种FPGA远程升级方法、系统和存储介质技术方案

技术编号:31570234 阅读:13 留言:0更新日期:2021-12-25 11:09
本发明专利技术提供了一种FPGA远程升级方法,包括:在非易失性存储器中写入数据流文件,所述数据流文件按照存储地址顺序依次包括各应用位流的配置程序、黄金位流和各应用位流,每个所述的配置程序顺序包括开关程序和跳转程序。接收并缓存上位机发送的升级版本的应用位流,对缓存的所述升级版本的应用位流进行接收校验。对所述非易失性存储器中存储的升级版本的应用位流进行写入校验。校验通过后在接收到所述升级版本的应用位流的加载指令时,启动对应的开关程序以加载所述升级版本的应用位流。还提供一种用于执行上述方法的远程升级系统和存储介质。本发明专利技术的FPGA远程升级方法、系统和存储介质能够选择是否载入升级数据流文件,且增强了系统的稳定性和可靠性。增强了系统的稳定性和可靠性。增强了系统的稳定性和可靠性。

【技术实现步骤摘要】
一种FPGA远程升级方法、系统和存储介质


[0001]本专利技术涉及可编程逻辑器件
,特别是涉及一种FPGA远程升级方法、系统和存储介质。

技术介绍

[0002]远程升级是现场可编程门阵列(FPGA)的一个主要优点,通过升级能够增强系统功能。现有技术中位流升级更新与启动加载是不分离的,对于某些应用,更新完位流后,但不宜立即启动的情况,不够灵活方便。现有技术中的存储器对位流个数有限制,如需存储的位流数量比较多则会造成不便。在现有远程升级技术中,对于存储器中已有的位流,不能从一个应用位流升级到另一个应用位流,且在更新位流时,没有进行校验或仅进行一次校验。而在接收位流及写入位流的过程中,均可能发生错误,如不进行校验或仅进行一次校验则会导致由于位流错误而不能成功配置FPGA,在远程升级的过程中会导致整个系统陷入死循环,影响FPGA的可靠性及稳定性。

技术实现思路

[0003]本专利技术的目的在于克服现有技术中存在的不足,并提供一种FPGA远程升级方法、系统和存储介质,以解决位流升级更新与启动加载不分离的技术问题,同时提供一种多次校验、可靠、稳定的FPGA系统。
[0004]为实现上述目的,本专利技术采用的技术方案为:
[0005]一种FPGA远程升级方法,包括以下步骤:
[0006]在非易失性存储器中写入数据流文件,所述数据流文件按照存储地址顺序依次包括各应用位流的配置程序、黄金位流和各应用位流,每个所述应用位流的配置程序顺序包括开关程序和跳转程序,所述开关程序用于启动对应的所述跳转程序,所述跳转程序用于跳转并载入指定位置的应用位流;
[0007]接收并缓存上位机发送的升级版本的应用位流,擦除所述非易失性存储器中存储的对应原版本的应用位流,对缓存的所述升级版本的应用位流进行接收校验;
[0008]若接收校验通过,则将缓存的所述升级版本的应用位流写入所述非易失性存储器的对应存储区域;
[0009]回读所述非易失性存储器中存储的所述升级版本的应用位流,对回读的所述升级版本的应用位流进行写入校验;
[0010]若写入校验通过,则在接收到所述升级版本的应用位流的加载指令时,关闭当前运行的所述开关程序,启动所述升级版本的应用位流的开关程序以加载所述升级版本的应用位流;
[0011]若加载所述升级版本的应用位流失败,则关闭对应的所述开关程序以加载所述黄金位流。
[0012]对上述技术方案的进一步改进是:
[0013]所述非易失性存储器包括FLASH芯片,所述FLASH芯片至少包括SPI FLASH和BPI FLASH中的任意一种。
[0014]所述在非易失性存储器中写入数据流文件,包括:获取所述非易失性存储器的第一存储空间的初始存储地址;从所述第一存储空间的初始存储地址开始存储所述配置程序中的程序数据,每存储一个所述程序数据,在存储所述程序数据对应的存储地址上加1,其中,所述第一存储空间的比特数大于或等于所述配置程序的比特数;将存储地址加预设数目,得到第二存储空间的起始存储地址,从所述第二存储空间的起始存储地址开始存储所述黄金位流中的位流数据,其中,所述预设数目为大于或等于零的整数,所述第二存储空间的比特数大于或等于所述黄金位流的比特数;将存储地址加预设数目,得到第三存储空间的起始存储地址,从所述第三存储空间的起始存储地址开始存储第一个应用位流中的位流数据,其中,所述预设数目为大于或等于零的整数,所述第三存储空间的比特数大于或等于所述第一个应用位流的比特数;重复上述步骤,直至所有应用位流存储完毕;将各所述应用位流的起始存储地址分别写入所述第一存储区域中对应各跳转程序。
[0015]所述对缓存的所述升级版本的应用位流进行接收校验,包括:利用CRC校验算法分别获取所述上位机中升级版本的应用位流的第一CRC校验码以及缓存的升级版本的应用位流的第二CRC校验码,判断所述第一CRC校验码和所述第二CRC校验码是否一致;若一致,则确定接收校验通过;若不一致,则确定接收校验失败。
[0016]所述对回读的所述升级版本的应用位流进行写入校验,包括:利用CRC校验算法分别获取所述上位机中升级版本的应用位流的第一CRC校验码、所述缓存的升级版本的应用位流的第二CRC校验码以及回读的升级版本的应用位流的第三CRC校验码,判断所述第一CRC校验码、所述第二CRC校验码和所述第三CRC校验码是否一致;若一致,则确定回读校验通过;若不一致,则确定回读校验失败。
[0017]若接收校验失败,则重新接收并缓存上位机发送的升级版本的应用位流,对重新缓存的所述升级版本的应用位流进行接收校验。
[0018]若回读校验失败,则重新将缓存的所述升级版本的应用位流写入所述非易失性存储器的对应存储区域,对重新写入的所述升级版本的应用位流进行写入校验。
[0019]若接收校验失败,关闭当前运行的所述开关程序以加载黄金位流;若回读校验失败,关闭当前运行的所述开关程序以加载黄金位流。
[0020]本专利技术还提供了一种FPGA远程升级系统,包括:
[0021]写入模块,用于在非易失性存储器中写入数据流文件,所述数据流文件按照存储地址顺序依次包括各应用位流的配置程序、黄金位流和各应用位流,每个所述应用位流的配置程序顺序包括开关程序和跳转程序,所述开关程序用于启动对应的所述跳转程序,所述跳转程序用于跳转并载入指定位置的应用位流;
[0022]接收校验模块,用于接收并缓存上位机发送的升级版本的应用位流,擦除所述非易失性存储器中存储的对应原版本的应用位流,对缓存的所述升级版本的应用位流进行接收校验;
[0023]更新模块,用于若接收校验通过,则将缓存的所述升级版本的应用位流写入所述非易失性存储器的对应存储区域;
[0024]回读校验模块,用于回读所述非易失性存储器中存储的所述升级版本的应用位
流,对回读的所述升级版本的应用位流进行写入校验;
[0025]第一加载模块,用于若写入校验通过,则在接收到所述升级版本的应用位流的加载指令时,关闭当前运行的所述开关程序,启动所述升级版本的应用位流的开关程序以加载所述升级版本的应用位流;
[0026]第二加载模块,用于若加载所述升级版本的应用位流失败,则关闭对应的所述开关程序以加载所述黄金位流。
[0027]本专利技术还提供一种存储介质,所述存储介质内存储有程序指令,所述程序指令被处理器执行时实现上述的FPGA远程升级方法。
[0028]根据本专利技术的技术方案可知,本专利技术的FPGA远程升级方法,在非易失性存储器中写入数据流文件后,可以根据需要选择加载的文件,即位流升级更新与启动加载是分离的,针对位流升级更新后不宜立即启动的情况,其更加灵活方便。在对上位机发送的升级版本的应用位流的接收及写入过程均进行校验,校验失败的情况下不对升级版本的应用位流进行启动,保证了系统的稳定性。且在选择载入升级版本的应用位流时,如载入过程发生错误,会将对应的开关程序关闭,从而顺序载入稳定的黄金位流,避免系统陷本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种FPGA远程升级方法,其特征在于,包括以下步骤:在非易失性存储器中写入数据流文件,所述数据流文件按照存储地址顺序依次包括各应用位流的配置程序、黄金位流和各应用位流,每个所述应用位流的配置程序顺序包括开关程序和跳转程序,所述开关程序用于启动对应的所述跳转程序,所述跳转程序用于跳转并载入指定位置的应用位流;接收并缓存上位机发送的升级版本的应用位流,擦除所述非易失性存储器中存储的对应原版本的应用位流,对缓存的所述升级版本的应用位流进行接收校验;若接收校验通过,将缓存的所述升级版本的应用位流写入所述非易失性存储器的对应存储区域;回读所述非易失性存储器中存储的所述升级版本的应用位流,对回读的所述升级版本的应用位流进行写入校验;若写入校验通过,则在接收到所述升级版本的应用位流的加载指令时,关闭当前运行的所述开关程序,启动所述升级版本的应用位流的开关程序以加载所述升级版本的应用位流;若加载所述升级版本的应用位流失败,则关闭对应的所述开关程序以加载所述黄金位流。2.根据权利要求1所述的FPGA远程升级方法,其特征在于:所述非易失性存储器包括FLASH芯片,所述FLASH芯片至少包括SPI FLASH和BPI FLASH中的任意一种。3.根据权利要求1所述的FPGA远程升级方法,其特征在于:所述在非易失性存储器中写入数据流文件,包括:获取所述非易失性存储器的第一存储空间的初始存储地址;从所述第一存储空间的初始存储地址开始存储所述配置程序中的程序数据,每存储一个所述程序数据,在存储所述程序数据对应的存储地址上加1,其中,所述第一存储空间的比特数大于或等于所述配置程序的比特数;将存储地址加预设数目,得到第二存储空间的起始存储地址,从所述第二存储空间的起始存储地址开始存储所述黄金位流中的位流数据,其中,所述预设数目为大于或等于零的整数,所述第二存储空间的比特数大于或等于所述黄金位流的比特数;将存储地址加预设数目,得到第三存储空间的起始存储地址,从所述第三存储空间的起始存储地址开始存储第一个应用位流中的位流数据,其中,所述预设数目为大于或等于零的整数,所述第三存储空间的比特数大于或等于所述第一个应用位流的比特数;重复上述步骤,直至所有应用位流存储完毕;将各所述应用位流的起始存储地址分别写入所述第一存储区域中对应各跳转程序。4.根据权利要求1所述的FPGA远程升级方法,其特征在于:所述对缓存的所述升级版本的应用位流进行接收校验,包括:利用CRC校验算法分别获取所述上位机中升级版本的应用位流的第一CRC校验码以及缓存的升级版本的应用位流的第二CRC校验码,判断所述第一CRC校验...

【专利技术属性】
技术研发人员:张航彭祥吉
申请(专利权)人:深圳市紫光同创电子有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1