一种基于多重加载的多FPGA软件烧写故障恢复方法技术

技术编号:27030100 阅读:33 留言:0更新日期:2021-01-12 11:13
本发明专利技术涉及一种基于多重加载的多FPGA软件烧写故障恢复方法,针对多FPGA通过逻辑控制烧写软件过程中出现的故障导致的不可逆的烧写失败问题,包括以下几个步骤:规划引导程序和工作程序在FLASH中的地址分配,其中引导程序从FLASH的基地址开始存储,保证引导程序与工作程序在FLASH存储中分开;产生多重加载模块,并将FPGA多重加载模块嵌入到引导程序中;通过JTAG电缆将引导程序烧写到FLASH的基地址中;系统断电重启,通过上位机将工作程序的配置文件下发给交换FPGA,交换FPGA复制配置文件后发给多个主FPGA,将工作程序烧写到多FLASH的约定地址;烧写完成后,系统再次断电重启,若烧写成功,则系统加载工作程序,若烧写失败,系统跳回引导程序,可继续烧写。

【技术实现步骤摘要】
一种基于多重加载的多FPGA软件烧写故障恢复方法
本专利技术属于现场可编程门阵列(FPGA)
,具体地说是通过利用FPGA多重加载功能,用于实现FPGA软件烧写的故障恢复技术,提高FPGA软件烧写的可靠性。
技术介绍
现场可编程门阵列(FPGA)是上世纪八十年代诞生的数字芯片,其具备高并行、大吞吐、高灵活性等优势,现阶段已经广泛应用于通信电子相关领域。设计人员根据特定系统需求设计FPGA电路,验证完成后产生对应的配置文件烧写到FPGA片外非易失性存储设备FLASH中。系统上电后FPGA自动从FLASH中载入配置文件的数据,完成FPGA的上电配置,使得系统进入正常工作状态。目前将FPGA配置文件烧写到FLASH中的主要方式有两种。第一种方法通过与FPGA连接JTAG调试电缆手动地将配置文件烧写到FLASH中,这种通过JTAG电缆烧写配置文件的方法应用最为普遍;第二种方法通过上位机将待烧写的配置文件分成若干个数据包,上位机通过网络将若干个数据包传输给交换FPGA,交换FPGA将烧写数据包复制并通过多路光纤同时发给多个主FPGA,各个主FGPA通过引导程序将烧写数据包写入FLASH相应的内存地址,这种通过引导程序烧写FPGA配置文件的方法需要设计对FLASH烧写的引导程序,相比第一种软件烧写方式较为繁琐。基于引导程序烧写FPGA的方法,可通过交换FPGA复制烧写数据包并输出多路光纤链路,能够实现多片主FPGA的同时烧写,因此这种烧写方法非常适用于多片FPGA软件需要更新迭代的场景,大大提高了多FPGA软件烧写效率。通过引导程序烧写FPGA软件前,要求各个主FPGA必须先有一个基础的引导程序。并且在烧写过程中的容错率低,一旦系统断电或者烧写数据传输链路故障,导致主FPGA写入FLASH的烧写数据不完整,烧写失败后必须重新对所有主FPGA重新配置引导程序,大大增加了烧写工作量。因此引导程序烧写多片FPGA软件的方法需要具备烧写错误恢复机制,以提高FPGA软件烧写的可靠性。
技术实现思路
要解决的技术问题本专利技术针对上述基于引导程序烧写FPGA软件的容错率低的缺点,提出了一种将FPGA多重加载功能嵌入FPGA引导程序中的方法。技术方案一种基于多重加载的多FPGA软件烧写故障恢复方法,其特征在于步骤如下:步骤1:引导程序从FLASH的基地址开始存储,工作程序从FLASH的约定地址开始存储;并且保证引导程序与工作程序在FLASH存储中分开,互不影响各自功能;步骤2:根据给定的多重加载配置命令控制字,设计步骤1中引导程序的多重加载功能模块;该模块输入一个触发脉冲信号,触发脉冲信号由上位机控制;触发脉冲信号上升沿到来后,先拉低写使能信号RDWRB,下一个时钟周期拉低ICAPE2使能信号CSIB,同时将配置命令控制字进行字节内的bit反序后,依次发送给ICAPE2原语的输入端口,启动主FPGA的多重加载;将多重加载模块嵌入到引导程序,另外引导程序包含FLASH烧写功能;步骤3:将步骤2的具有多重加载功能的引导程序的配置文件通过JTAG电缆烧写到多个主FPGA的片外FLASH中,且保证引导程序必须从FLASH的基地址开始存储;步骤4:步骤3完成后,系统断电重启,多个主FPGA自动从FLASH基地址加载引导程序;上位机将工作程序的配置文件分成多个烧写数据包发送至交换FPGA,交换FPGA将烧写数据包经多路光纤发送至多个主FPGA,开始进行多个主FPGA的软件烧写;保证工作程序的烧写起始地址为步骤1中的约定地址;步骤5:步骤4的多个主FPGA的工作程序烧写完成后,系统断电重启,多个主FPGA自动从FLASH基地址加载引导程序;上位机发送多重加载触发脉冲,多个FPGA接收触发脉冲后,跳转至FLASH的约定地址,启动加载工作程序;若步骤4的烧写过程成功完成,则多个FPGA正常启动工作程序,若步骤4的烧写过程出现软硬件故障,则多个FPGA无法正常启动工作程序,自动跳回引导程序,仍可对多个主FPGA进行软件烧写。步骤2中多重加载配置命令控制字如下表所示:序号配置命令定义10xFFFFFFFF空字20xAA559966同步字30x20000000空闲字40x20000000空闲字50x20000000空闲字60x20000000空闲字70x20000000空闲字80x20000000空闲字90x30022001看门狗时间设置命令100x402625A0看门狗时间(多重加载超出该时间后跳回引导程序)110x30020001热启动起始地址设置命令120x00700000热启动起始地址(工作程序存储的约定地址)130x30008001写命令控制字140x0000000FIprog命令。有益效果本专利技术提出的一种基于多重加载的多FPGA软件烧写故障恢复方法,将具有多重加载功能的引导程序存储在多个主FPGA片外的FLASH基地址中,将工作程序存储在FLASH的约定地址。软件烧写过程只对FLASH的约定地址以后的地址段进行烧写操作,使得引导程序不被破坏,保证了多个主FPGA烧写过程具备错误恢复机制。实现了多个FPGA软件烧写的故障恢复功能,提高了多个FPGA软件烧写的可靠性。附图说明图1为主FPGA片外FLASH存储空间分配;图2为引导程序多重加载功能的ICAPE2命令配置控制字;图3为引导程序多重加载功能的ICAPE2命令配置时序图;图4为多个主FPGA工作程序烧写流程;图5为基于多重加载的烧写故障恢复配置流程。具体实施方式现结合实施例、附图对本专利技术作进一步描述:参考图1的主FPGA片外FLASH存储空间分配,主FPGA设计产生引导程序和工作程序,其中引导程序包含FLASH烧写功能和多重加载功能,引导程序对应的配置文件从FLASH的基地址开始存储;工作程序是满足系统工作的主体程序,其对应的配置文件从FLASH的约定地址开始存储,且要求这个约定地址大于引导程序的尾地址,保证引导程序和工作程序在FLASH存储中完全分开,互不影响。在软件烧写前,通过JTAG电缆将引导程序的配置文件烧写到FLASH的基地址,上电后多个FPGA处于引导程序的工作状态。上位机将工作程序的配置文件分成若干包,通过网络发送给交换FPGA,交换FPGA将烧写数据包复制后经多路光纤发送至多个主FPG本文档来自技高网
...

【技术保护点】
1.一种基于多重加载的多FPGA软件烧写故障恢复方法,其特征在于步骤如下:/n步骤1:引导程序从FLASH的基地址开始存储,工作程序从FLASH的约定地址开始存储;并且保证引导程序与工作程序在FLASH存储中分开,互不影响各自功能;/n步骤2:根据给定的多重加载配置命令控制字,设计步骤1中引导程序的多重加载功能模块;该模块输入一个触发脉冲信号,触发脉冲信号由上位机控制;触发脉冲信号上升沿到来后,先拉低写使能信号RDWRB,下一个时钟周期拉低ICAPE2使能信号CSIB,同时将配置命令控制字进行字节内的bit反序后,依次发送给ICAPE2原语的输入端口,启动主FPGA的多重加载;将多重加载模块嵌入到引导程序,另外引导程序包含FLASH烧写功能;/n步骤3:将步骤2的具有多重加载功能的引导程序的配置文件通过JTAG电缆烧写到多个主FPGA的片外FLASH中,且保证引导程序必须从FLASH的基地址开始存储;/n步骤4:步骤3完成后,系统断电重启,多个主FPGA自动从FLASH基地址加载引导程序;上位机将工作程序的配置文件分成多个烧写数据包发送至交换FPGA,交换FPGA将烧写数据包经多路光纤发送至多个主FPGA,开始进行多个主FPGA的软件烧写;保证工作程序的烧写起始地址为步骤1中的约定地址;/n步骤5:步骤4的多个主FPGA的工作程序烧写完成后,系统断电重启,多个主FPGA自动从FLASH基地址加载引导程序;上位机发送多重加载触发脉冲,多个FPGA接收触发脉冲后,跳转至FLASH的约定地址,启动加载工作程序;若步骤4的烧写过程成功完成,则多个FPGA正常启动工作程序,若步骤4的烧写过程出现软硬件故障,则多个FPGA无法正常启动工作程序,自动跳回引导程序,仍可对多个主FPGA进行软件烧写。/n...

【技术特征摘要】
1.一种基于多重加载的多FPGA软件烧写故障恢复方法,其特征在于步骤如下:
步骤1:引导程序从FLASH的基地址开始存储,工作程序从FLASH的约定地址开始存储;并且保证引导程序与工作程序在FLASH存储中分开,互不影响各自功能;
步骤2:根据给定的多重加载配置命令控制字,设计步骤1中引导程序的多重加载功能模块;该模块输入一个触发脉冲信号,触发脉冲信号由上位机控制;触发脉冲信号上升沿到来后,先拉低写使能信号RDWRB,下一个时钟周期拉低ICAPE2使能信号CSIB,同时将配置命令控制字进行字节内的bit反序后,依次发送给ICAPE2原语的输入端口,启动主FPGA的多重加载;将多重加载模块嵌入到引导程序,另外引导程序包含FLASH烧写功能;
步骤3:将步骤2的具有多重加载功能的引导程序的配置文件通过JTAG电缆烧写到多个主FPGA的片外FLASH中,且保证引导程序必须从FLASH的基地址开始存储;
步骤4:步骤3完成后,系统断电重启,多个主FPGA自动从FLASH基地址加载引导程序;上位机将工作程序的配置文件分成多个烧写数据包发送至交换FPGA,交换FPGA将烧写数据包经多路光纤发送至多个主FPGA,开始进行多个主FPGA的软件烧写;保证工作程序的烧写起始地址为步骤1中的约定地址;
步骤5:步骤4的多个主FPGA的工作程序烧写完成后,系统断电重启,多个主FPGA自动从FLASH基地址加载引导程序;上位机发送多重加载触发脉冲,多个FPGA接收触发脉冲后,跳转至FLASH的约定地址,启动加载工作程序;若步骤4的烧写过程成功完成,则多个FPGA正常启动工作程序,若步骤4的烧写过程出现软硬件故障,则多个FPGA无法正常...

【专利技术属性】
技术研发人员:陈亮崔向阳田欢李耀南
申请(专利权)人:西安电子工程研究所
类型:发明
国别省市:陕西;61

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

1