System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于航空、航天及核电领域中的fpga高可靠性设计,具体涉及一种实现fpga程序定期自检和自修复的方法。
技术介绍
1、随着信息技术的发展,fpga能够实现的功能日益丰富,应用场景也越来越复杂多样。在一些特殊的应用环境如辐射源附近、宇宙空间中,需要定期对fpga程序进行自检和自动纠错,以确保系统鲁棒性和功能正确性。
2、常规的自检方式是将fpga外部程序存储器中的数据全部读取出来,通过crc等方法与校验码对比校验。优点是占用的存储空间小;缺点是一旦发现问题只能上报,无法实现自修复。
技术实现思路
1、(一)要解决的技术问题
2、本专利技术要解决的技术问题是如何提供一种实现fpga程序定期自检和自修复的方法,以解决高辐照环境下fpga器件长期可靠运行及自检和自动纠错问题。
3、(二)技术方案
4、为了解决上述技术问题,本专利技术提出一种实现fpga程序定期自检和自修复的方法,该方法包括:
5、设置切换开关:在fpga、mcu和fpga外部程序存储器之间增加半导体总线切换开关;通过mcu控制半导体总线切换开关,用于切换对fpga外部程序存储器的控制权,当mcu选通控制引脚输入为“1”时,fpga外部程序存储器与mcu直连;当mcu选通控制引脚输入为“0”时,fpga外部程序存储器与fpga直连;
6、存储器分区:将fpga外部程序存储器按地址分为上下两个区,分别存储同样的fpga程序;
7、加电
8、定期自检:定期自检时,由mcu切换fpga外部程序存储器控制权;通过mcu直接访问fpga外部程序存储器,对其上下两个半区的数据进行逐字读取和比对,若一致,则自检通过,上报日志,并回到正常运行模式;若不一致,则上报故障日志,通过两个半区内存储的相应校验码进行进一步故障定位,确认故障半区后,通过无故障半区内存储的fpga程序对故障半区进行覆盖,再次进行校验,无误后上报处理结果,回到正常运行模式。
9、(三)有益效果
10、本专利技术提出一种实现fpga程序定期自检和自修复的方法,本专利技术通过mcu在定期自检期间直接访问fpga外部程序存储器,对其上下两个半区的数据进行逐字读取和比对,在尽量少占用mcu资源的情况下实现最高的自检效率。并且,一旦发现fpga程序中出现单粒子翻转,可通过无故障分区对对故障分区进行修复。
11、本专利技术为高辐照环境下fpga器件长期可靠运行(主要是抵御单粒子翻转seu)提供一种新的解决问题思路和方法。意在通过定期自检提前发现seu问题,并及时进行自动修复。
12、本专利技术提高fpga外部存储器利用率和fpga程序定期自检的效率和可靠性。
本文档来自技高网...【技术保护点】
1.一种实现FPGA程序定期自检和自修复的方法,其特征在于,该方法包括:
2.如权利要求1所述的实现FPGA程序定期自检和自修复的方法,其特征在于,所述半导体总线切换开关为单刀双掷模拟开关。
3.如权利要求1所述的实现FPGA程序定期自检和自修复的方法,其特征在于,所述半导体总线切换开关为CD4052、BCT4157或HS102。
4.如权利要求1所述的实现FPGA程序定期自检和自修复的方法,其特征在于,在MCU与总线切换开关之间增加硬件拨码开关,当硬件拨码开关高位设置为0时,由硬件拨码开关控制;当硬件拨码开关高位设置为1时,由MCU控制。
5.如权利要求4所述的实现FPGA程序定期自检和自修复的方法,其特征在于,若由硬件控制,MCU选通控制引脚设置无效;当硬件拨码开关低位设置为0时,控制半导体总线切换开关将FPGA与FPGA外部存储器直连,此时,FPGA实现日常的程序加载和逻辑功能;当硬件拨码开关低位设置为1时,控制半导体总线切换开关将MCU与FPGA外部存储器直连,此时,通过MCU读写FPGA外部存储器,实现FPGA程序的升级、
6.如权利要求4所述的实现FPGA程序定期自检和自修复的方法,其特征在于,若由MCU控制,硬件拨码开关低位设置无效;当MCU选通控制引脚设置为0时,控制半导体总线切换开关将FPGA与FPGA外部存储器直连,此时,FPGA实现日常的程序加载和逻辑功能;当MCU选通控制引脚设置为1时,控制半导体总线切换开关将MCU与FPGA外部存储器直连,此时,通过MCU读写FPGA外部存储器,实现FPGA程序的升级、修复,实现对FPGA外部存储器空闲区域的读写,使其作为MCU外部非易失存储器存储空间的补充。
7.如权利要求1所述的实现FPGA程序定期自检和自修复的方法,其特征在于,FPGA外部程序存储器内部按地址分为同样大小的两个分区,一个作为主分区,用于启动时为FPGA加载程序;一个作为备用分区,与主分区互为备份,用于其中一个分区出现SEU故障时通过另一分区进行修复。
8.如权利要求7所述的实现FPGA程序定期自检和自修复的方法,其特征在于,除存储FPGA程序外,还在各自分区分别存储相应的校验码,用于在出现SEU故障时确认故障所在分区。
9.如权利要求1所述的实现FPGA程序定期自检和自修复的方法,其特征在于,无论拨码开关硬件还是MCU软件取得对FPGA外部程序存储器切换的控制权,在设备加电或重新启动时均默认将FPGA与FPGA外部程序存储器相连,使上电或程序加载过程中,FPGA直接从FPGA外部程序存储器的主分区中读取程序并正常运行。
10.如权利要求1-9任一项所述的实现FPGA程序定期自检和自修复的方法,其特征在于,MCU接收自检指令后切换FPGA外部程序存储器控制权;通过MCU直接访问FPGA外部程序存储器,对其上下两个半区的数据进行逐字读取和比对,若一致,则自检通过,上报日志,并回到正常运行模式;若不一致,则上报故障日志,通过两个半区内存储的相应校验码进行进一步故障定位,确认故障半区后,通过无故障半区内存储的FPGA程序对故障半区进行覆盖,再次进行校验,无误后上报处理结果,回到正常运行模式;若尝试三次以上无法自修复,则上报严重故障,由现场运维人员通过硬件拨码开关手动处理,并进行全面检修。
...【技术特征摘要】
1.一种实现fpga程序定期自检和自修复的方法,其特征在于,该方法包括:
2.如权利要求1所述的实现fpga程序定期自检和自修复的方法,其特征在于,所述半导体总线切换开关为单刀双掷模拟开关。
3.如权利要求1所述的实现fpga程序定期自检和自修复的方法,其特征在于,所述半导体总线切换开关为cd4052、bct4157或hs102。
4.如权利要求1所述的实现fpga程序定期自检和自修复的方法,其特征在于,在mcu与总线切换开关之间增加硬件拨码开关,当硬件拨码开关高位设置为0时,由硬件拨码开关控制;当硬件拨码开关高位设置为1时,由mcu控制。
5.如权利要求4所述的实现fpga程序定期自检和自修复的方法,其特征在于,若由硬件控制,mcu选通控制引脚设置无效;当硬件拨码开关低位设置为0时,控制半导体总线切换开关将fpga与fpga外部存储器直连,此时,fpga实现日常的程序加载和逻辑功能;当硬件拨码开关低位设置为1时,控制半导体总线切换开关将mcu与fpga外部存储器直连,此时,通过mcu读写fpga外部存储器,实现fpga程序的升级、修复,实现对fpga外部存储器空闲区域的读写,使其作为mcu外部非易失存储器存储空间的补充。
6.如权利要求4所述的实现fpga程序定期自检和自修复的方法,其特征在于,若由mcu控制,硬件拨码开关低位设置无效;当mcu选通控制引脚设置为0时,控制半导体总线切换开关将fpga与fpga外部存储器直连,此时,fpga实现日常的程序加载和逻辑功能;当mcu选通控制引脚设置为1时,控制半导体总线切换开关将mcu与fpga外部存储器直连,此时,通过mcu读写fpga外部存储器,实...
【专利技术属性】
技术研发人员:吴飞,宋科,李校南,高连跃,张兴凯,吴志轩,任凯琦,贾俊峰,张明明,赵博文,王法秀,
申请(专利权)人:北京计算机技术及应用研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。