公开/公告号CN113247308A
专利类型发明专利
公开/公告日2021-08-13
原文格式PDF
申请/专利权人 中国科学院上海技术物理研究所;
申请/专利号CN202110394824.1
申请日2021-04-13
分类号B64G1/24(20060101);G06F8/654(20180101);G06F8/656(20180101);G06F15/78(20060101);
代理机构50230 重庆市信立达专利代理事务所(普通合伙);
代理人包晓静
地址 200083 上海市虹口区玉田路500号
入库时间 2023-06-19 12:14:58
技术领域
本发明属于SRAM型FPGA在轨可靠性技术领域,尤其涉及一种多源重构系统、重构方法、构建方法及应用。
背景技术
目前,为了提高SRAM型FPGA在轨运用的可靠性,需要对其进行抗辐照加固,目前采用方法比较多的是通过反熔丝FPGA对其进行定时刷新形式的动态局部重构和全部重构两种形式,一般采用配置PROM(XQR17V16)做为外部配置程序存储器,一旦遇到PROM器件在轨失效或者在轨程序需要升级修改的问题将无法进行很好的解决,通常采用备份PROM的办法进行提高在轨运行的可靠性,这种办法虽然解决了前者问题,但是后者问题仍然存在。
通过上述分析,现有技术存在的问题及缺陷为:
1)对FPGA进行从PROM进行定时刷新和全部重构,刷新源和全部重构源单一。
2)航天器在轨运行中遇到可以通过修改程序进行修复的故障,无法对SRAM型FPGA的程序进行升级,在轨遇到的程序问题也无法进行修复。
解决以上问题及缺陷的难度为:如果遇到PROM器件在轨失效可以通过设计备份PROM进行解决,但是会占用硬件资源,并且增加硬件成本费用;如果在轨遇到可以通过改变程序参数等的办法来解决一些问题,由于没有此功能,无法上注程序对程序进行升级修改并且没有预先设置可以通过上注参数数据的途径,遇到此类问题基本无法解决。
解决以上问题及缺陷的意义为:
1)可选择多源外部程序存储器进行定时刷新以及重构,灵活性、可靠性高;
2)可进行在轨程序上注,提高SRAM型FPGA在轨工作的可靠性。
发明内容
针对现有技术存在的问题,本发明提供了一种多源重构系统、重构方法、构建方法及应用。
本发明是这样实现的,一种基于FPGA的多源重构方法包括:对FPGA存储器板进行通电,反熔丝FPGA从PROM或者Flash将程序加载到SRAM型FPGA内,进行上电自动加载;由于norflash存储空间较大,可以存储4套程序,因此通过卫星总线指令对FPGA从不同的存储器芯片(PROM或flash和norflash)中的不同程序进行多源全部重构或动态定时局部重构,并进行定时刷新;还可以通过卫星总线指令对norflash进行在轨程序擦写和回读,并且可以对norflash上注的程序进行定时刷新和重配置。
进一步,所述多源重构包括:从PROM(在轨运行使用)或者flash(地面测试使用)和norflash对SRAM型FPGA进行定时刷新和重构;对norflash进行在轨4套程序的擦写和回读,并且可以从每一套程序中对SRAM型FPGA进行定时刷新和重构,实现了SRAM型FPGA多源存储器的在轨定时刷新和重构。
进一步,所述基于FPGA的多源重构方法包括以下步骤:
步骤一,上电并将SRAM型FPGA通过与反熔丝FPGA的selectmap接口,从外部默认上电存储器PROM(在轨运行)或者flash(地面测试)写入到SRAM型FPGA程序数据,进行上电自动加载;
步骤二,地面测试通过上位机,在轨通过卫星总线通信指令对norflash存储器进行程序擦写和回读,实现在轨程序上注。由于norflash存储空间较大,根据片选选择可以存储4套程序,因此首先对norflash进行全片擦除,擦除完成后对其进行片选[0:3]选择写入,最后通过回读程序与实际写入的程序进行对比,确保上注程序的有效性。按照上述步骤通过片选选择的方式对norflash内4套的程序进行上注,norflash内4套程序上注完成;
步骤三,地面测试通过上位机,在轨通过卫星总线通信指令,进行多源选择定时刷新以及程序重构,可根据需求切换不同的程序源并且进行在轨定时刷新和重构,可从PROM内的程序和norflash内4套的程序对SRAM型FPGA进行定时刷新和重配置的操作,实现了SRAM型FPGA多源存储器的在轨定时刷新和重构。同时可以实时回读和验证SRAM型FPGA的状态寄存器,实时监测FPGA在轨运行的健康状态。
进一步,步骤二中,所述进行在轨擦写和回读包括:擦写和回读时,重新开辟norflash与反熔丝FPGA,反熔丝FPGA与SRAM型FPGA的8或者16位数据通道以及norflash的控制线和地址线,将反熔丝FPGA作为norflash上注程序到SRAM型FPGA的通路选择开关。
进一步,步骤三中,所述回读和验证SRAM型FPGA的状态寄存器包括:在轨通过selectmap回读SRAM型FPGA状态寄存器的关键状态信息,对状态寄存器的第4,5,6,7位进行检测,若其中任意一位返回为0,则进行FPGA的重配置。
进一步,步骤三中,所述在轨多源选择定时刷新以及程序重构包括:将SRAM型FPGA通过与反熔丝FPGA的selectmap接口,从不同的存储器芯片中多源程序存储器中进行程序多源全部重构或者对多源动态定时局部重构以及刷新。
本发明的另一目的在于提供一种实施所述基于FPGA的多源重构方法的基于FPGA的多源重构系统,所述基于FPGA的多源重构系统设置有:
FPGA存储器板以及上位机;
所述FPGA存储器板为FPGA、FLASH或PROM和norflash存储器的存储器板;
所述FPGA存储器板,地面测试时与上位机通过USB接口连接,在轨运行时通过卫星总线指令进行操作,用于FPGA从外部存储器PROM或flash和norflash写入相应程序。
地面测试时上位机与FPGA存储器板通过USB接口进行连接,在轨使用时FPGA存储器板通过卫星通信总线连接,对norflash程序存储器进行程序擦写和回读,由于norflash存储空间较大,根据片选选择可以存储4套程序,因此首先对norflash进行全片擦除,擦除完成后对其进行片选[0:3]选择写入,最后通过回读程序与实际写入的程序进行对比,确保上注程序的有效性。按照上述步骤通过片选选择的方式对norflash内4套的程序进行上注,norflash内4套程序上注完成。并且可以对norflash内4套的程序以及其他外部程序存储器(PROM、flash)的不同程序进行多源全部重构以及动态定时局部重构。
本发明的另一目的在于提供一种所述基于FPGA的多源重构系统的基于FPGA的多源重构系统构建方法,所述基于FPGA的多源重构系统构建方法包括:
构建基于反熔丝FPGA或强抗单粒子的处理器,以多种存储器为多源位流配置源,以SRAM型FPGA为重构对象搭建基于FPGA的多源重构系统。
本发明的另一目的在于提供一种搭载所述基于FPGA的多源重构系统的电子产品。
本发明的另一目的在于提供一种搭载所述基于FPGA的多源重构系统的航空航天装备。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明针对不同存储器源头对FPGA进行重构并且对norflash进行擦写和回读,有效解决了SRAM型FPGA在轨遇到的单粒子问题以及可通过重新注入新程序可解决一些在轨遇到的问题,有效的实现了在轨故障处理。
本发明不仅满足了SRAM型反熔丝FPGA在轨使用的可靠性,还能够进行在轨更新程序。本发明能够在满足能够在轨程序上注的前提下,对上注的新程序进行定时刷新形式的动态局部重构和全部重构。
本发明有效的解决了SRAM型FPGA在轨的可靠性以及在轨上注程序的问题,实现了在轨程序上注并且实时多源动态局部重构和全部重构的功能。
本发明基于FPGA的动态可重构技术能够在FPGA运行过程中将其内部的全部或部分逻辑资源进行重新配置进而实现FPGA逻辑功能的动态切换和时分复用,而不终止器件的运行。如果需要在轨更新程序,就要进行在轨上注,因此增加norflash存储器实现了该功能,对其进行擦写和回读,实现了对旧程序的擦除和重新写入新程序,并且对写入的新程序进行回读确保了写入程序的正确性,并且在满足能够在轨上注的前提下,对上注的新程序进行定时刷新形式的动态局部重构和全部重构。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的基于FPGA的多源重构方法流程图。
图2是本发明实施例提供的基于FPGA的多源重构方法原理图。
图3是本发明实施例提供的基于FPGA的多源重构原理图。
图4是本发明实施例提供的基于FPGA的多源重构系统示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种多源重构系统、重构方法、构建方法及应用,下面结合附图对本发明作详细的描述。
本发明实施例提供的基于FPGA的多源重构方法包括:对FPGA存储器板进行通电,反熔丝FPGA从PROM或者Flash加载到SRAM型FPGA内,进行上电自动加载;由于norflash相比于PROM存储空间较大,可以存储4套程序,因此通过卫星总线指令对FPGA从不同的存储器芯片(PROM或flash和norflash)中的不同程序进行多源全部重构或动态定时局部重构,并进行定时刷新;还可以通过卫星总线指令对norflash进行在轨程序擦写和回读,并且可以对norflash上注的程序进行定时刷新和重配置。
本发明实施例提供的多源重构包括:从PROM(在轨运行使用)或者flash(地面测试使用)和norflash对SRAM型FPGA进行定时刷新和重构;对norflash进行在轨4套程序的擦写和回读,并且可以从每一套程序中对SRAM型FPGA进行定时刷新和重构,实现了SRAM型FPGA多源存储器的在轨定时刷新和重构。
如图1所示,本发明实施例提供的基于FPGA的多源重构方法包括以下步骤:
S101,上电并将SRAM型FPGA通过与反熔丝FPGA的selectmap接口,从外部默认上电存储器PROM(在轨运行)或者flash(地面测试)写入到SRAM型FPGA程序数据,进行上电自动加载;
S102,地面测试通过上位机,在轨通过卫星总线通信指令对norflash存储器进行程序擦写和回读,实现在轨程序上注。由于norflash存储空间较大,根据片选选择可以存储4套程序,因此首先对norflash进行全片擦除,擦除完成后对其进行片选[0:3]选择写入,最后通过回读程序与实际写入的程序进行对比,确保上注程序的有效性。按照上述步骤通过片选选择的方式对norflash内4套的程序进行上注,norflash内4套程序上注完成。
S103,地面测试通过上位机,在轨通过卫星总线通信指令,进行多源选择定时刷新以及程序重构,可根据需求切换不同的程序源并且进行在轨定时刷新和重构,可从PROM内的程序和norflash内4套的程序对SRAM型FPGA进行定时刷新和重配置的操作,实现了SRAM型FPGA多源存储器的在轨定时刷新和重构。同时可以实时回读和验证SRAM型FPGA的状态寄存器,实时监测FPGA在轨运行的健康状态;
步骤S102中,本发明实施例提供的进行在轨上注包括:擦写和回读时,重新开辟norflash与反熔丝FPGA,反熔丝FPGA与SRAM型FPGA的8或者16位数据通道以及norflash的控制线和地址线,将反熔丝FPGA作为norflash擦写和回读程序到SRAM型FPGA的通路选择开关。
步骤S103中,本发明实施例提供的回读和验证SRAM型FPGA的状态寄存器包括:在轨通过selectmap回读SRAM型FPGA状态寄存器的关键状态信息,对状态寄存器的第4,5,6,7位进行检测,若其中任意一位返回为0,则进行FPGA的重配置。
本发明实施例提供的在轨多源选择定时刷新以及程序重构包括:
将SRAM型FPGA通过与反熔丝FPGA的selectmap接口,从不同的存储器芯片中多源程序存储器中进行程序多源全部重构或者对多源动态定时局部重构以及刷新。
如图4所示,本发明实施例提供的基于FPGA的多源重构系统设置有:
FPGA存储器板以及上位机(上位机为地面测试使用,在轨为卫星通信总线指令);
FPGA存储器板为FLASH、norflash和PROM及其他存储器的存储器板;
FPGA存储器板,与上位机通过USB接口连接,用于从外部存储器PROM或flash读入相应程序;
上位机(上位机为地面测试使用,在轨为卫星总线指令),与FPGA存储器板通过USB接口进行连接,用于对norflash程序存储器进行程序擦写和回读,并对FPGA从不同的存储器芯片中不同程序进行多源全部重构以及动态定时局部重构。
本发明实施例提供的基于FPGA的多源重构系统构建方法包括:构建基于反熔丝FPGA或强抗单粒子的处理器,以多种存储器为多源位流配置源,以SRAM型FPGA为重构对象搭建基于FPGA的多源重构系统。
下面结合具体实施例对本发明的技术方案作进一步描述。
实施例1:
本发明的系统主要硬件组成为SRAM型FPGA为Vitex Xilinx V4系列,反熔丝FPGA为A54SX72A,PROM为XQR17V16,地面测试flash为xcf32p,程序存储器norflash为3DFO256M16VS4269。
本发明的可多源重构系统包括:在轨运行时,FPGA存储器板与卫星总线指令通信,用于针对FPGA从不同的存储器芯片中不同程序进行多源刷新和重构以及对norflash存储器进行程序擦写和回读;
卫星指令通信与FPGA存储器板通过总线形式进行连接,用于对norflash程序存储器进行程序擦写和回读,并对FPGA从不同的存储器芯片中不同程序进行多源全部重构以及动态定时局部重构。
本发明的基于FPGA的多源重构系统包括:
第一步,系统加电,FPGA默认从外部程序存储器PROM或flash中加载程序,FPGA存储器板上运行正常;
第二步,在轨通过卫星总线指令对FPGA从不同的存储器芯片中不同程序进行多源全部重构以及动态定时局部重构;
第三步,在轨通过卫星总线指令对norflash存储器进行程序擦写和回读。
本发明的基于FPGA的多源重构方法包括:
步骤一,上电并将SRAM型FPGA通过与反熔丝FPGA的selectmap接口,从外部默认上电存储器PROM(在轨运行)或者flash(地面测试)写入到SRAM型FPGA程序数据,进行上电自动加载;
步骤二,地面测试通过上位机,在轨通过卫星总线通信指令对norflash存储器进行程序擦写和回读,实现在轨程序上注。由于norflash存储空间较大,根据片选选择可以存储4套程序,因此首先对norflash进行全片擦除,擦除完成后对其进行片选[0:3]选择写入,最后通过回读程序与实际写入的程序进行对比,确保上注程序的有效性。按照上述步骤通过片选选择的方式对norflash内4套的程序进行上注,norflash内4套程序上注完成。;
步骤三,地面测试通过上位机,在轨通过卫星总线通信指令,进行多源选择定时刷新以及程序重构,可根据需求切换不同的程序源并且进行在轨定时刷新和重构,可从PROM内的程序和norflash内4套的程序对SRAM型FPGA进行定时刷新和重配置的操作,实现了SRAM型FPGA多源存储器的在轨定时刷新和重构。同时可以实时回读和验证SRAM型FPGA的状态寄存器,实时监测FPGA在轨运行的健康状态。
实施例2:
本发明的系统主要硬件组成为SRAM型FPGA为Vitex Xilinx V4系列,反熔丝FPGA为A54SX72A,地面测试flash为xcf32p,程序存储器norflash为3DFO256M16VS4269。
将各个设备按照图4所示的连接方式进行互联,地面测试时工作步骤如下:
S1、系统加电,FPGA从外部存储器flash读入相应程序;
S2、通过上位机控制软件,对norflash存储器进行程序擦写和回读,由于norflash存储空间较大,可以存储4套程序,因此可以对4套程序进行擦写和回读操作。首先通过上位机指令擦除旧程序,然后再通过上位机指令上注写入新程序,最后通过上位机指令回读写入的新程序,通过进行比对保证写上注入程序的有效性,并且从上注成功的norflash几套程序对SRAM型FPGA进行定时刷新和重配置;
S3、通过上位机控制软件,实现对FPGA从不同的存储器芯片中(flash和norflash)不同程序进行多源全部重构以及对实现从FPGA不同存储器进行动态定时局部重构。
进一步,地面测试时通过USB接口对测试过程进行人工干预。
表1基于FPGA的多源重构方法和装置接口说明
本发明的系统主要硬件组成为SRAM型FPGA为Vitex Xilinx V4系列,反熔丝FPGA为A54SX72A,PROM为XQR17V16,地面测试flash为xcf32p,程序存储器norflash为3DFO256M16VS4269。验证周期性定时刷新、程序上注以及多数据源选择切换的功能如下。
1)定时刷新系统验证
首先程序中设置刷新时间间隔为2s,系统运行时,通过示波器观察,由于selectmap接口配置时钟CCLK为4MHz,2s定时刷新部分配置数据有大约1996000个数据,因此2s定时刷新的部分配置数据长度约为499000us,约499ms。
经过查找.bit或者.rbt文件,找出第一个同步字FF FF FF FF在第一行配置数据,到最后一个配置数据头共有98个数(一个数为16bit),数据读写频率为4Mhz,因此到后一个配置数据头的时间为98*0.25us=24.5us。通过观察示波器数据位的输出,从配置数据头的第一个FF到最后一个数据间隔时间为24.5us。
2)程序上注系统验证
上注程序后,通ISE的Chipscope插核回读数据是否上注成功。从Chipscope插核回读第一包与实际注数包比对,上注数据正确。
从Chipscope插核回读最后一包上注数据与实际注数包比对,上注数据正确。
3)数据源切换系统验证
对不同数据源用指令进行切换,数据源切换后,通过示波器观察,设置刷新时间间隔为2s,CCLK为4MHz,2s定时刷新部分配置数据有大约1996000个数据,因此2s定时刷新的部分配置数据长度约为499000us,约499ms。每次数据源切换均符合以上要求,说明对不同数据源用指令切换操作成功。
通过以上功能性系统验证表明,本发明实现了多源刷新重构并且可以在轨程序上注的方法。
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
机译: 一种在运行时为应用程序适配可重构硬件的芯片(SOC)方法和系统
机译: 一种在运行时为应用程序适配可重构硬件的芯片(SOC)方法和系统
机译: 一种在运行时为应用程序适配可重构硬件的芯片(SOC)方法和系统