一种SRAM型FPGA在轨动态重构管理系统及方法与流程

文档序号:17475905发布日期:2019-04-20 06:07阅读:482来源:国知局
一种SRAM型FPGA在轨动态重构管理系统及方法与流程

本发明涉及一种sram型fpga在轨动态重构管理系统及方法,属于航天元器件可靠性领域和集成电路技术领域。。



背景技术:

sram型fpga在空间辐照环境中工作时,受单粒子效应影响,易发生单粒子翻转故障和单粒子功能中断故障,导致电路运行出错。常见修复此类故障的方法是利用sram型fpga可动态重配的特性对其配置存储阵列进行定时刷新(盲刷)或回读刷新。

中国专利公开号cn103840822b,公开日是2014年6月4日,名称为“基于selectmap的宇航fpga通用刷新电路的实现方法”中公开了一种适用于宇航fpga的通用刷新电路,该电路采用回读刷新的方式,在回读校验不正确的情况下对fpga执行刷新,但此电路存在以下不足之处:

(1)仅支持单通道sram型fpga的配置和刷新;

(2)刷新方式单一,仅支持回读刷新方式,且刷新周期不可控;

(3)不能进行动态配置;

(4)不具备在轨动态重构的能力;

(5)不具备接收外部控制指令调整工作模式或切换工作任务的能力;

中国专利公开号cn104484214a,申请公开日是2015年4月1日,名称为“一种sram型fpga的配置、刷新与程序上注一体化系统”,公开了一种利用综合管理fpga实现对sram型fpga配置、刷新和在轨功能切换的一体化系统,但此专利存在以下不足之处:

(1)刷新方式单一,仅支持定时刷新方式;

(2)仅支持单通道sram型fpga的配置、刷新和在轨功能切换;

(3)仅支持对单一型号xqr2v3000型fpga的配置、刷新和在轨功能切换。



技术实现要素:

本发明要解决的技术问题是:克服现有技术的不足,提供了一种sram型fpga在轨动态重构管理的系统及方法,支持最多四通道、六种型号sram型fpga,具备上电配置、动态配置、定时刷新、回读刷新、定时回读、动态重构、轮询校验的能力,多项工作任务在动态重构管理芯片的统一调度下进行切换,通过硬控制信号或串口控制指令进行工作模式调整,并且通过串口控制指令能够获取内部工作状态信息。

本发明目的通过以下技术方案予以实现:

一种sram型fpga在轨动态重构管理系统,包括sram型fpga、动态重构管理芯片、配置位流存储芯片、动态重构位流存储芯片、串口芯片;

所述配置位流存储芯片上存储完整格式的配置位流;所述动态重构位流存储芯片上存储动态重构位流;所述串口芯片用于接收外部控制指令和外部动态重构位流然后发送给所述动态重构管理芯片;

所述动态重构管理芯片用于读取所述配置位流存储器中存储的配置位流对sram型fpga进行配置和刷新;所述动态重构管理芯片用于读取所述动态重构位流存储芯片中存储的配置位流对sram型fpga进行配置、刷新和重构;所述动态重构管理芯片对所述sram型fpga的位流进行crc检验,根据crc检验结果判断是否执行刷新;所述动态重构管理芯片将工作状态信息发送给所述串口芯片;所述动态重构管理芯片接收外部动态重构位流后写入所述动态重构位流存储芯片中。

上述sram型fpga在轨动态重构管理系统,所述动态重构管理芯片能够对所述动态重构位流存储芯片中保存的bch编码位流进行轮询校验,当校验出错时记录错误所在的扇区地址。

上述sram型fpga在轨动态重构管理系统,所述动态重构管理芯片能够读取所述sram型fpga的配置寄存器中的器件id,然后识别器件型号。

上述sram型fpga在轨动态重构管理系统,所述sram型fpga在轨动态重构管理系统采用从并方式对所述sram型fpga进行配置、刷新和回读。

上述sram型fpga在轨动态重构管理系统,所述sram型fpga在轨动态重构管理系统能够对最多四个通道的sram型fpga进行配置、刷新、在轨重构。

上述sram型fpga在轨动态重构管理系统,所述sram型fpga在轨动态重构管理系统能够对xqvr300、xqr2v3000、xqr4vsx55、xqr5vsx95t、xqr5vlx155t、xqr5vfx130t六种型号的sram型fpga芯片进行配置、刷新、在轨重构。

上述sram型fpga在轨动态重构管理系统,所述动态重构管理芯片包括主控与调度模块、配置模块、刷新模块、回读模块、uart模块、轮询校验模块,其中:

所述主控与调度模块用于所述sram型fpga在轨动态重构管理系统中所有器件工作模式的控制和工作任务的调度;

所述配置模块用于从所述配置位流存储器或所述动态重构位流存储芯片中读取配置位流,然后写入所述sram型fpga;

所述刷新模块用于从所述配置位流存储器或所述动态重构位流存储芯片中读取配置位流,然后对配置位流进行预处理,最后写入所述sram型fpga;

所述回读模块用于从所述sram型fpga的配置存储阵列中读取配置寄存器的状态值和配置位流,实现对所述sram型fpga的器件识别和crc校验;

所述uart模块用于接收外部控制指令和外部动态重构位流,并根据读状态寄存器指令返回相应的内部寄存器值;

所述轮询校验模块用于对所述动态重构位流存储芯片中保存的bch编码位流进行译码、校验,当校验出错时,所述轮询校验模块对所述动态重构位流存储芯片中保存的bch编码位流进行修复或记录。

上述sram型fpga在轨动态重构管理系统,当校验出错时,如果校验出错的bch编码位流小于等于2bit时,所述轮询校验模块对所述的出错的bch编码位流进行修复,如果校验出错的bch编码位流大于等于3bit时,所述轮询校验模块对所述的出错的bch编码位流的所在扇区地址进行记录。

一种sram型fpga在轨动态重构方法,采用上述sram型fpga在轨动态重构管理系统,包括如下步骤:

步骤(1):动态重构管理芯片根据四个通道的con_en管脚状态确定目标通道;

步骤(2):动态重构管理芯片对其中一个目标通道的sram型fpga进行上电配置;

步骤(3):动态重构管理芯片通过回读目标通道的器件id进行器件识别;

步骤(4):动态重构管理芯片通过回读目标通道的sram型fpga的bch编码位流然后计算goldencrc;

步骤(5):重复步骤(1)~步骤(4),对其他目标通道的sram型fpga完成初始化;

步骤(6):根据硬控制信号和或来自串口的控制指令对配置位流存储芯片的配置位流和或动态重构位流存储芯片的动态重构位流进行更新,然后根据配置位流存储芯片和或动态重构位流存储芯片的工作模式对目标通道工作任务进行调度;当工作任务被触发时执行动态配置或定时刷新或回读刷新或定时回读、动态重构或轮询校验。

上述sram型fpga在轨动态重构方法,所述轮询校验包括如下步骤:

步骤(11):对当前flash扇区进行bch译码;

步骤(12):若译码发现错误,对当前扇区重新编码、数据反写进行纠错,进入步骤(13),若译码没有发现错误,直接进入步骤(13);

步骤(13):对当前扇区进行crc校验,若校验正确,直接进入步骤(14);若校验出错,记录出错扇区的地址并更新相应内部寄存器,然后进入步骤(14);

步骤(14):循环执行步骤(11)~步骤(13)直至flash中用于存储配置位流的扇区全部校验完毕。

本发明相比于现有技术具有如下有益效果:

(1)本发明支持最多四通道sram型fpga同时工作,提高了效率;

(2)本发明支持六种型号sram型fpga,具备上电配置、动态配置、定时刷新、回读刷新、定时回读、动态重构、轮询校验的功能,使用范围广;

(3)本发明通过硬控制信号和串口控制指令两种方式调整工作模式和切换工作任务,可控性强,使用灵活;

(4)本发明通过串口发送指令获取内部寄存器值,能实时监控电路工作状态;

(5)本发明对flash芯片存储配置位流的数据轮询校验采用bch译码叠加crc校验的方式,保证了数据的可靠性。

附图说明

图1是本发明的系统组成示意图;

图2是本发明的方法流程图;

图3是本发明的定时刷新流程图;

图4是本发明的回读刷新流程图;

图5是本发明的定时回读流程图;

图6是本发明的轮询校验流程图;

图7是本发明的实施例应用示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步详细描述。

一种sram型fpga在轨动态重构管理系统,包括sram型fpga、动态重构管理芯片、配置位流存储芯片、动态重构位流存储芯片、串口芯片;

所述配置位流存储芯片上存储完整格式的配置位流;所述动态重构位流存储芯片上存储动态重构位流;所述串口芯片用于接收外部控制指令和外部动态重构位流然后发送给所述动态重构管理芯片;

所述动态重构管理芯片用于读取所述配置位流存储器中存储的配置位流对sram型fpga进行配置和刷新;所述动态重构管理芯片用于读取所述动态重构位流存储芯片中存储的配置位流对sram型fpga进行配置、刷新和重构;所述动态重构管理芯片对所述sram型fpga的位流进行crc检验,根据crc检验结果判断是否执行刷新;所述动态重构管理芯片将工作状态信息发送给所述串口芯片;所述动态重构管理芯片接收外部动态重构位流后写入所述动态重构位流存储芯片中。所述动态重构管理芯片能够对所述动态重构位流存储芯片中保存的bch编码位流进行轮询校验,当校验出错时记录错误所在的扇区地址。所述动态重构管理芯片能够读取所述sram型fpga的配置寄存器中的器件id,然后识别器件型号。

所述动态重构管理芯片包括主控与调度模块、配置模块、刷新模块、回读模块、uart模块、轮询校验模块,其中:

所述主控与调度模块用于所述sram型fpga在轨动态重构管理系统中所有器件工作模式的控制和工作任务的调度;

所述配置模块用于从所述配置位流存储器或所述动态重构位流存储芯片中读取配置位流,然后写入所述sram型fpga;

所述刷新模块用于从所述配置位流存储器或所述动态重构位流存储芯片中读取配置位流,然后对配置位流进行预处理,最后写入所述sram型fpga;

所述回读模块用于从所述sram型fpga的配置存储阵列中读取配置寄存器的状态值和配置位流,实现对所述sram型fpga的器件识别和crc校验;

所述uart模块用于接收外部控制指令和外部动态重构位流,并根据读状态寄存器指令返回相应的内部寄存器值;

所述轮询校验模块用于对所述动态重构位流存储芯片中保存的bch编码位流进行译码、校验,当校验出错时,所述轮询校验模块对所述动态重构位流存储芯片中保存的bch编码位流进行修复或记录。具体的,当校验出错时,如果校验出错的bch编码位流小于等于2bit时,所述轮询校验模块对所述的出错的bch编码位流进行修复,如果校验出错的bch编码位流大于等于3bit时,所述轮询校验模块对所述的出错的bch编码位流的所在扇区地址进行记录。

所述sram型fpga在轨动态重构管理系统采用从并方式对所述sram型fpga进行配置、刷新和回读。所述sram型fpga在轨动态重构管理系统能够对最多四个通道的sram型fpga进行配置、刷新、在轨重构。所述sram型fpga在轨动态重构管理系统能够对xqvr300、xqr2v3000、xqr4vsx55、xqr5vsx95t、xqr5vlx155t、xqr5vfx130t六种型号的sram型fpga芯片进行配置、刷新、在轨重构。

一种sram型fpga在轨动态重构方法,采用sram型fpga在轨动态重构管理系统,包括如下步骤:

步骤(1):动态重构管理芯片根据四个通道的con_en管脚状态确定目标通道;

步骤(2):动态重构管理芯片对其中一个目标通道的sram型fpga进行上电配置;

步骤(3):动态重构管理芯片通过回读目标通道的器件id进行器件识别;

步骤(4):动态重构管理芯片通过回读目标通道的sram型fpga的bch编码位流然后计算goldencrc;

步骤(5):重复步骤(1)~步骤(4),对其他目标通道的sram型fpga完成初始化;

步骤(6):根据硬控制信号和或来自串口的控制指令对配置位流存储芯片的配置位流和或动态重构位流存储芯片的动态重构位流进行更新,然后根据配置位流存储芯片和或动态重构位流存储芯片的工作模式对目标通道工作任务进行调度;当工作任务被触发时执行动态配置或定时刷新或回读刷新或定时回读、动态重构或轮询校验。

实施例:

一种多通道sram型fpga在轨动态重构管理系统,包括:sram型fpga、动态重构管理芯片、配置位流存储芯片prom、动态重构位流存储芯片flash、rs485串口芯片,如图1所示,其中:

所述sram型fpga采用从并方式进行配置、刷新和回读;

所述配置位流存储芯片prom存储完整格式的配置位流,用于所述sram型fpga上电后自动配置和工作过程中的动态配置以及刷新;

所述动态重构位流存储芯片flash存储经bch编码后的动态重构位流,用于所述sram型fpga上电后自动配置、工作过程中的动态配置、刷新以及在轨功能切换;

所述rs485串口芯片是接收外部控制指令、返回工作状态信息、接收上注动态重构位流的通道;

所述动态重构管理芯片具备以下功能:

(1)读取所述配置位流存储器prom中存储的配置位流对sram型fpga进行配置和刷新;

(2)读取所述动态重构位流存储芯片flash中存储的配置位流,经译码对sram型fpga进行配置、刷新和重构;

(3)回读所述sram型fpga的配置寄存器获取器件id,自动识别目标通道的器件型号;

(4)回读所述sram型fpga的位流进行crc检验,做出是否执行刷新的决定;

(5)接收经所述rs485串口芯片传送的指令,返回内部工作状态信息或调整工作模式;

(6)接收经所述rs485串口芯片传送的动态重构位流,经数据包解析和校验后写入所述动态重构位流存储芯片flash中;

(7)对所述动态重构位流存储芯片flash中保存的bch编码位流进行轮询校验,并在校验出错时记录错误所在的flash扇区地址。

所述系统支持最多四个通道sram型fpga芯片的配置、刷新、在轨重构,每个通道对应一个con_en管脚,该管脚的开关状态决定是否对该通道进行控制,目标通道需将con_en管脚接高电平,不工作的通道需将相应con_en管脚接地。

所述系统支持六种型号的sram型fpga芯片的配置、刷新、在轨重构,包括xqvr300、xqr2v3000、xqr4vsx55、xqr5vsx95t、xqr5vlx155t、xqr5vfx130t。

所述系统包含上电配置、动态配置、定时刷新、回读刷新、定时回读、动态重构、轮询校验的工作任务和工作模式。

所述动态重构管理芯片包含主控与调度模块、配置模块、刷新模块、回读模块、uart模块和轮询校验模块,其中:

所述主控与调度模块用于实现对系统中所有器件工作模式的控制和工作任务的调度;

所述配置模块从所述配置位流存储器prom或所述动态重构位流存储芯片flash中读取配置位流,采用从并模式写入所述sram型fpga的配置存储阵列中,实现对所述sram型fpga的上电配置以及工作过程中的动态配置、动态重构;

所述刷新模块从所述配置位流存储器prom或所述动态重构位流存储芯片flash中读取配置位流,并对配置位流进行预处理,采用从并模式写入所述sram型fpga的配置存储阵列中,实现对所述sram型fpga的刷新操作;

所述回读模块采用从并模式从所述sram型fpga的配置存储阵列中读取配置寄存器的状态值和配置位流,实现对所述sram型fpga的器件识别和crc校验;

所述uart模块,用于接收来自上位机或其他控制器的包括动态配置指令、动态重构指令、数据轮询指令、工作模式设置指令和读状态寄存器指令在内的控制指令,以及上注的动态重构位流,并根据读状态寄存器指令返回相应的内部寄存器值;

所述轮询校验模块,用于在接收到相应指令时,对所述动态重构位流存储芯片flash中保存的bch编码位流进行译码、校验,并在校验出错时对2bit以下错误自动修复,对3bit及以上错误的所在扇区地址进行记录。

一种多通道sram型fpga在轨动态重构管理方法,包含整体工作流程、定时刷新流程、回读刷新流程、定时回读流程和轮询校验流程,具体工作流程如下:

所述整体工作流程包括以下步骤,如图2所示:

步骤(1):根据四个通道相应的con_en管脚状态确定目标通道;

步骤(2):对当前目标通道的sram型fpga进行上电配置;

步骤(3):通过回读器件id进行器件识别;

步骤(4):通过回读位流计算goldencrc;

步骤(5):重复步骤(1)~步骤(4),对所有目标通道完成初始化;

步骤(6):根据硬控制信号和来自串口的控制指令对内部寄存器进行更新,并根据内部寄存器设置的工作模式进行当前目标通道工作任务的调度,在工作任务被触发时执行相应的动态配置、定时刷新、回读刷新、定时回读、动态重构、轮询校验;

步骤(7):当前通道工作任务执行完成后在内部寄存器设置相应的工作状态并选择下一个目标通道循环重复步骤(6)~步骤(7)。

所述定时刷新流程包括以下步骤,如图3所示:

步骤(1):按照预先设置的定时刷新周期计时,当计时来到时进行单粒子功能中断检测;

步骤(2):若发生单粒子功能中断故障,进入步骤(3),若没有单粒子功能中断故障,进入步骤(4);

步骤(3):若动态重配使能,从当前选择的配置位流存储器(prom/flash)中读取配置位流,采用从并模式重新配置fpga,若动态重配禁止,本次操作结束,再次开始计时;

步骤(4):从当前选择的配置位流存储器(prom/flash)中读取配置位流,经码流预处理后采用从并模式对fpga部分配置存储阵列进行重新配置,执行单次刷新;

步骤(5):刷新完成,再次开始计时。

所述回读刷新流程包括以下步骤,如图4所示:

步骤(1):按照预先设置的回读刷新周期计时,当计时来到时进行单粒子功能中断检测;

步骤(2):若发生单粒子功能中断故障,进入步骤(3),若没有单粒子功能中断故障,进入步骤(4);

步骤(3):若动态重配使能,从当前选择的配置位流存储器(prom/flash)中读取配置位流重新配置fpga,若动态重配禁止,本次操作结束,再次开始计时;

步骤(4):采用从并模式从fpga中回读位流进行crc校验,将生成的currentcrc校验码与goldencrc对比,若校验结果相同则本次操作结束,重新开始计时;若校验结果不一致,则从当前选择的配置位流存储器(prom/flash)中读取配置位流,经码流预处理后对fpga部分配置存储阵列进行重新配置,执行单次刷新;

步骤(5):刷新完成,再次开始计时。

所述定时回读流程包括以下步骤,如图5所示:

步骤(1):按照预先设置的定时回读周期计时,当计时来到时进行单粒子功能中断检测;

步骤(2):若发生单粒子功能中断故障,进入步骤(3),若没有单粒子功能中断故障,进入步骤(4);

步骤(3):若动态重配使能,从当前选择的配置位流存储器(prom/flash)中读取配置位流重新配置fpga,若动态重配禁止,本次操作结束,再次开始计时;

步骤(4):采用从并模式从fpga中回读位流进行crc校验,将生成的currentcrc校验码保存至相应的内部寄存器;

步骤(5):本次操作结束,再次开始计时。

所述轮询校验流程包括以下步骤,如图6所示:

步骤(1):对当前flash扇区进行bch译码;

步骤(2):若译码发现错误,对当前扇区重新编码、数据反写进行纠错,进入步骤(3),若译码没有发现错误,直接进入步骤(3);

步骤(3):对当前扇区进行crc校验,若校验正确,说明发生的是2bit及以下错误,步骤(2)已完成纠错;若校验出错,说明发生的是3bit及以上错误,是不可纠正错误,记录出错扇区的地址并更新相应内部寄存器;

步骤(4):循环执行步骤(1)~步骤(4)直至flash中用于存储配置位流的扇区全部校验完毕。

图7是四通道sram型fpga同时工作的系统连接示意图,7-1~7-4是待刷新/重构的sram型fpga,共用数据线、时钟线和配置模式线,7-5~7-8是配置位流存储芯片prom,共用时钟线和数据线,其中保存的数据是系统在轨应用前固化好的配置位流,分别对应7-1~7-4,7-9是动态重构位流存储芯片flash,采用256mb大容量存储芯片,用于接收地面上注的配置位流,该芯片的分区0、分区1、分区2、分区3分别对应7-1~7-4,7-10是采用rs485协议的uart接口,7-11是动态重构管理芯片,7-12是典型硬控制信号,包括动态配置使能信号dyna_prog7-12-1、刷新使能信号en_scrub7-12-2、刷新模式信号mode_scrub7-12-3、刷新周期信号intervel[2:0]7-12-4和数据源选择信号sel_bit7-12-5,7-13是四个通道的开关管脚con_en_0、con_en_1、con_en_2、con_en_3。

以下为默认设置:硬控制信号7-12-1、7-12-2、7-12-3为高电平,7-12-5为低电平,7-12-4为零,分别代表动态配置使能、刷新使能、回读刷新模式、数据源为prom、刷新周期为可选的最低间隔;con_en_0、con_en_1、con_en_2、con_en_3均为高电平,代表四个目标通道均处于打开状态。

上电后,7-11首先从第一个目标通道开始执行初始化操作,包括:根据硬控制信号决定的默认设置对该通道对应的内部寄存器进行更新,然后从7-5中读取配置位流自动配置7-1,配置成功后再通过回读7-1的idcode寄存器和配置位流实现器件id识别和生成goldencrc,将此时工作状态信息更新后对下一个目标通道执行以上操作,直至四个目标通道全部初始化完成。随后对各目标通道循环进行工作任务的分配工作,具体来说,选择一个目标通道,根据7-12的管脚电平状态或来自7-10的外部控制指令对内部寄存器进行更新,并根据内部寄存器设置的工作模式进行当前工作任务的调度,执行相应的动态配置、定时刷新、回读刷新、定时回读、动态重构或轮询校验操作,当前通道的工作任务执行完成后更新相应的工作状态信息并选择下一个通道进行以上操作。

以第一个通道为例,工作任务调度和执行的具体方式如下:

读取内部寄存器值,若接收到动态配置指令,中止正在执行的刷新或回读操作,根据当前设置选择从数据源7-5或7-9的分区0中读取配置位流,采用从并模式对7-1进行配置,其中从7-9读取的数据需先经bch译码再写入7-1;

若接收到动态重构指令,中止正在执行的刷新操作,先对7-9的分区0执行擦除操作,再将从7-10接收到的来自地面的动态重构位流写入7-9的分区0;在下一次执行动态配置时可将本次更新的动态重构位流写入7-1,实现在轨功能切换;

若接收到数据轮询指令,中止正在执行的刷新操作,对7-9的分区0中保存的配置位流进行校验,并将校验结果保存至相应内部寄存器;

若工作模式为定时刷新,在计时未到且无其他工作任务指令的情况下对当前通道执行空操作,跳转至通道选择状态,对下一个目标通道进行工作模式获取及任务调度操作;在计时来到时,首先对fpga进行sefi检测,若检测无sefi故障,根据当前设置选择从数据源7-5或7-9的分区0中读取配置位流,经预处理得到有效数据帧后采用从并模式对7-1进行刷新,本次刷新完成后重新开始计时;若检测出sefi故障,根据当前设置,在动态配置使能时对fpga执行动态配置,完成后重新开始计时,在动态配置禁止时直接中止本次操作,重新开始计时;

若工作模式为回读刷新,在计时未到且无其他工作任务指令的情况下对当前通道执行空操作,跳转至通道选择状态,对下一个目标通道进行工作模式获取及任务调度操作;在计时来到时,首先对fpga进行sefi检测,若检测无sefi故障,采用从并模式回读7-1的位流并计算currentcrc,将之与初始化操作中保存的goldencrc进行对比,当两值相同时无需刷新,当两值不同时,根据当前设置选择从数据源7-5或7-9的分区0中读取配置位流,经预处理得到有效数据帧后采用从并模式对7-1进行刷新,本次刷新完成后重新开始计时;若检测出sefi故障,根据当前设置,在动态配置使能时对fpga执行动态配置,完成后重新开始计时,在动态配置禁止时直接中止本次操作,重新开始计时;

若工作模式为定时回读,在计时未到且无其他工作任务指令的情况下对当前通道执行空操作,跳转至通道选择状态,对下一个目标通道进行工作模式获取及任务调度操作;在计时来到时,首先对fpga进行sefi检测,若检测无sefi故障,采用从并模式回读7-1的位流并计算currentcrc,将之保存至相应内部寄存器中,本次回读完成后重新开始计时;若检测出sefi故障,根据当前设置,在动态配置使能时对fpga执行动态配置,完成后重新开始计时,在动态配置禁止时直接中止本次操作,重新开始计时。

本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1