CN201828914U - 一种用于fpga芯片敏感区域定位的系统 - Google Patents

一种用于fpga芯片敏感区域定位的系统 Download PDF

Info

Publication number
CN201828914U
CN201828914U CN2010202668289U CN201020266828U CN201828914U CN 201828914 U CN201828914 U CN 201828914U CN 2010202668289 U CN2010202668289 U CN 2010202668289U CN 201020266828 U CN201020266828 U CN 201020266828U CN 201828914 U CN201828914 U CN 201828914U
Authority
CN
China
Prior art keywords
configuration information
fpga
fault
sensitizing range
cpld
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2010202668289U
Other languages
English (en)
Inventor
冯文全
马拂晓
赵琦
孙桦
陆国雷
尹佳
刘苏潇
刘曦
王冬
赵洪博
官秀梅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN2010202668289U priority Critical patent/CN201828914U/zh
Application granted granted Critical
Publication of CN201828914U publication Critical patent/CN201828914U/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Abstract

一种用于FPGA芯片敏感区域定位的系统,它包括制作故障控制模块、故障注入模块和敏感区域检测模块。其位置连接关系是:故障控制模块将生成所需含有故障信息的配置信息输出给故障注入模块,故障注入模块将配置信息注入到目标FPGA中,敏感区域检测模块实时检测并比较目标FPGA输出的信号。一种用于FPGA芯片敏感区域定位的方法,该方法有三大步骤。1.根据目标FPGA逻辑,经Xilinx ISE 9.1i编译后,找出目标FPGA芯片在该逻辑设计中所用到的区域;2.根据上步已确定的区域,映射到存储在FLASH芯片中配置信息的位置,把其中一位配置信息取反后,对目标FPGA进行故障注入,将目标FPGA的配置信息位逐个按位进行翻转;3.检查目标FPGA输出是否发生错误,从而判断此区域是不是敏感区域。

Description

一种用于FPGA芯片敏感区域定位的系统
(一)技术领域
本实用新型涉及一种用于现场可编程门阵列(简称FPGA)敏感区域定位的系统。它能快速有效的检测出不同型号的FPGA芯片在不同逻辑设计下的敏感区域。在外太空的环境中,由空间辐射而引发单粒子翻转故障(简称SEU),此故障将会对FPGA逻辑的正常运行产生错误,其发生单粒子翻转故障的区域为敏感区域。该发明属于卫星用FPGA质量保证技术领域。
(二)背景技术
作为航天器的重要组成部分,FPGA的可靠性直接影响到其所在分系统,甚至于整个卫星系统的可靠性,然而,由于FPGA应用于航天领域时间较短,其使用过程中已经暴露出了不少设计、管理方面的问题,如经常发生的SEU故障,严重影响着卫星系统的正常运行。如何切实有效地解决这些问题,迅速提升航天器的FPGA设计水平、保证FPGA的设计可靠性,是一个重要而迫切的课题。
FPGA芯片中发生在敏感区域的SEU故障,往往会使FPGA内部逻辑的运行发生错误,进而造成系统的运行错误。由于不同用户设计的FPGA逻辑不同,选用的FPGA型号不同,其FPGA的敏感配置区域也不同,这就造成了检测FPGA芯片敏感区域实现难度很大。目前,还没有一种明确有效的方法来定位FPGA芯片敏感区域,对其进行保护,增强其抗辐射能力,保证FPGA的设计可靠性。
针对上述问题,本实用新型提出了一种明确可靠的系统及其方法来定位FPGA芯片的敏感区域。
(三)发明内容
1、目的:本实用新型的目的是提供一种用于FPGA芯片敏感区域定位的系统及其方法,它克服了现有技术不能明确有效检测定位FPGA敏感区域的不足,能够明确有效快速的定位FPGA芯片的敏感区域。
2、技术方案:
(1)本实用新型一种用于FPGA芯片敏感区域定位的系统,如图1所示,它包括制作故障控制模块、故障注入模块和敏感区域检测模块。它们之间的位置连接关系是:故障控制模块将生成所需含有故障信息的配置信息输出给故障注入模块,故障注入模块将配置信息注入到目标FPGA中,敏感区域检测模块实时检测并比较目标FPGA输出的信号。
所述故障控制模块由软件部分和硬件部分组成,软件部分流程图如图2所示,首先,根据目标故障注入配置信息的位置,映射到备份配置信息中,读回所需的配置信息,将其中一位取反后,生成所需含有故障信息的配置信息。硬件部分是由电可擦写可编程只读存储器(简称EEPROM)、微控制单元(简称MCU)、复杂可编程逻辑器件(简称CPLD)和闪存(简称FLASH)组成,如图3所示,其间的位置连接关系是EEPROM为MCU实现代码的上电自动加载,CPLD负责对MCU外围数据总线、地址总线进行译码,FLASH存储备份的配置信息并为故障控制模块软件部分提供所需的配置信息。该EEPROM型号为24LC128;该MCU型号为CY7C68013A;该CPLD为美国Altera公司生产的EPM3512AQC208-10N;该FLASH型号为SST39VF6401。
所述故障注入模块由硬件MCU、CPLD和目标FPGA芯片组成,如图4所示,其间的位置连接关系是已设置的指令及含有故障信息的配置信息通过MCU输入给CPLD,经CPLD经译码后,先向目标FPGA写入设置指令,再写入含有故障信息的配置信息,最后完成故障注入。该目标FPGA芯片为美国Xilinx公司生产的XCV300。
所述敏感区域检测模块由软件组成,流程图如图5所示,首先,将故障注入后的输出结果和没有故障注入的输出结果,即正常情况下的输出结果进行比对,看是否发生错误,若发生错误,则记录故障注入的位置信息,此位置为该逻辑设计下目标FPGA芯片的敏感区域;若没有故障发生,则继续检测。
本系统的工作原理是:将原始FPGA配置信息作为基准信息,在此基础上,按照需求读取基准信息中一段配置信息,将其中一位取反生成所需的含故障信息的配置信息,并注入到目标FPGA中。若注入故障区域为目标FPGA的敏感区域,此故障信息就会对目标FPGA的正常工作造成影响,使目标FPGA的输出结果发生错误,此时,将该输出结果和没有进行故障注入的FPGA的输出结果作比较,即可发现该错误,并将故障注入的区域记录下来。
(2)一种用于FPGA芯片敏感区域定位的方法,它包括以下步骤:
步骤一:如图6所示,根据现有设计好的目标FPGA逻辑,经美国Xilinx公司的产品XilinxISE 9.1i编译后,查看FPGA内部的布局布线,找出目标FPGA芯片在该逻辑设计中所用到的区域;
步骤二:根据步骤一已确定的区域位置,映射到存储在FLASH芯片中配置信息的位置,把其中一位配置信息取反后,对目标FPGA进行故障注入,将目标FPGA的配置信息位逐个按位进行翻转;
步骤三:检查目标FPGA输出是否发生错误,若检测到有错误,说明此区域的配置信息对目标FPGA的逻辑运行有影响,此区域是敏感区域;若没有检测到错误,则说明此区域的配置信息对目标FPGA的逻辑运行没有影响,不是敏感区域。
所述步骤一中用编译工具查看目标FPGA内部的布局布线,找出目标FPGA逻辑设计中用到的区域的步骤实现过程如下:目标FPGA逻辑经Xilinx ISE 9.1i编译后,找出目标FPGA逻辑设计用到的区域,记录它们的类型和该区域的行(简称Row)和列(简称Column),并计算出其主地址(简称MJA)和从地址(简称MNA)。
所述步骤二中根据步骤一已确定的区域位置,映射到存储在FLASH芯片中配置信息的位置,把其中一位配置信息取反后,对目标FPGA进行故障注入,将目标FPGA的配置信息位逐个按位进行翻转实现过程如下:根据步骤一已确定的区域位置,通过映射算法,映射到存储在FLASH芯片中配置信息的位置,读取所需的配置信息,将其中一位取反后,生成所需含有故障信息的配置信息,对目标FPGA芯片配置信息进行故障注入,对配置信息逐个按位进行翻转。
步骤二中所述对目标FPGA进行故障注入,步骤如下:
(1)如图7所示,生成同步字后,设置配置寄存器,设置关闭位(简称Shutdown bit),启动关闭(简称shutdown)功能,防止发生线路冲突;
(2)写入填充字,若此时发生线路争夺,则声明拉高(简称GHIGH_B)指令;若没有发生线路争夺,则不用声明GHIGH_B指令,再设置帧地址寄存器(简称FAR),帧地址由步骤一给出,生成写配置数据指令(简称WCFG),写入要写入数据的字数,再向写帧数据输入寄存器(简称FDRI)写入数据;
(3)写入最后一帧指令(简称LFRM),最后,写入填充帧,故障注入完毕。
所述步骤三中检查输出是否发生错误实现过程如下:将把配置信息按位翻转后的输出结果和正常情况下,即没有把配置信息按位翻转的情况下的结果做比较,若输出结果不一致,则说明有错误发生,说明此区域的配置信息对目标FPGA的逻辑运行有影响,此区域是敏感区域;若输出结果一致,若说明没有错误发生,说明此区域的配置信息对目标FPGA的逻辑运行没有影响,不是敏感区域。
3、优点及效果:本实用新型与现有技术相比有益效果为:
(1)实现能够对FPGA的配置信息的任意一位进行翻转,很好的模拟设备在轨工作中发生的SEU故障,并且检测出发生故障后对设备的影响;
(2)本方法灵活,能够快速有效的检测出不同逻辑设计、不同型号的FPGA芯片(FPGA芯片需支持回读功能)的敏感区域。
(四)附图说明
图1本实用新型定位FPGA芯片敏感区域的系统框图;
图2本实用新型中故障控制模块软件流程图;
图3本实用新型中故障控制模块硬件组成图;
图4本实用新型中故障注入模块硬件组成图;
图5本实用新型中故障检测模块软件流程图。
图6本实用新型定位FPGA芯片敏感区域的流程图;
图7本实用新型对FPGA配置信息按位进行故障注入的流程图;
图中的符号和代号说明如下:
EEPROM电可擦写可编程只读存储器;MCU微控制单元;CPLD复杂可编程逻辑器件;FLASH闪存;FPGA现场可编程门阵列;Shutdown bit关闭位;GHIGH_B拉高指令;MJA主地址;MNA从地址;FAR帧地址寄存器;WCFG写配置数据指令;word_count字数;FDRI写帧数据输入寄存器;LFRM最后一帧指令。
(五)具体实施方式
(1)本实用新型一种用于FPGA芯片敏感区域定位的系统,如图1所示,它包括制作故障控制模块、故障注入模块和敏感区域检测模块。它们之间的位置连接关系是:故障控制模块将生成所需含有故障信息的配置信息输出给故障注入模块,故障注入模块将配置信息注入到目标FPGA中,敏感区域检测模块实时检测并比较目标FPGA输出的信号。该故障控制模块,根据目标配置信息的位置,生成所需的含有故障信息的配置信息;该故障注入模块,将生成的含故障信息的配置信息写入目标FPGA的配置信息中;该敏感区域检测模块,实时检测目标FPGA的输出结果,与正确的输出结果比对,若发现错误,则记录注入目标配置信息的位置,此位置为目标FPGA的敏感区域。
所述故障控制模块实现过程为:根据目标配置信息的位置,从备份的配置信息中读取出正确的数据,将其中一位数据取反后,生成所需的含有故障信息的配置信息。
所述故障注入模块实现过程为:设置目标FPGA芯片为可重配置状态,将生成的含故障信息的配置信息写入目标FPGA的配置信息中,在写入的过程中,不会影响FPGA的正常工作。
所述敏感区域检测模块实现过程为:在写入含故障信息的配置信息后,实时检测目标FPGA的输出结果,与正确输出结果比对,若两者不一致,则发现错误,记录注入目标配置信息的位置。
所述故障控制模块由软件部分和硬件部分组成,软件部分流程图如图2所示,首先,根据目标故障注入配置信息的位置,映射到备份配置信息中,读回所需的配置信息,将其中一位取反后,生成所需含有故障信息的配置信息。硬件部分是由电可擦写可编程只读存储器(简称EEPROM)、微控制单元(简称MCU)、复杂可编程逻辑器件(简称CPLD)和闪存(简称FLASH)组成,如图3所示,其间的位置连接关系是EEPROM为MCU实现代码的上电自动加载,CPLD负责对MCU外围数据总线、地址总线进行译码,FLASH存储备份的配置信息并为故障控制模块软件部分提供所需的配置信息。该EEPROM型号为24LC128;该MCU型号为CY7C68013A;该CPLD为美国Altera公司生产的EPM3512AQC208-10N;该FLASH型号为SST39VF6401。
所述故障注入模块由硬件MCU、CPLD和目标FPGA芯片组成,如图4所示,其间的位置连接关系是已设置的指令及含有故障信息的配置信息通过MCU输入给CPLD,经CPLD经译码后,先向目标FPGA写入设置指令,再写入含有故障信息的配置信息,最后完成故障注入。该目标FPGA芯片为美国Xilinx公司生产的XCV300。
所述敏感区域检测模块由软件组成,流程图如图5所示,首先,将故障注入后的输出结果和没有故障注入的输出结果,即正常情况下的输出结果进行比对,看是否发生错误,若发生错误,则记录故障注入的位置信息,此位置为该逻辑设计下目标FPGA芯片的敏感区域;若没有故障发生,则继续检测。
本系统的工作原理是:将原始FPGA配置信息作为基准信息,在此基础上,按照需求读取基准信息中一段配置信息,将其中一位取反生成所需的含故障信息的配置信息,并注入到目标FPGA中。若注入故障区域为目标FPGA的敏感区域,此故障信息就会对目标FPGA的正常工作造成影响,使目标FPGA的输出结果发生错误,此时,将该输出结果和没有进行故障注入的FPGA的输出结果作比较,即可发现该错误,并将故障注入的区域记录下来。
(2)本实用新型一种用于FPGA芯片敏感区域定位的方法,包括以下步骤:
步骤一:如图6所示,根据现有设计好的目标FPGA逻辑,经美国Xilinx公司的产品XilinxISE 9.1i编译后,查看FPGA内部的布局布线,找出目标FPGA芯片在该逻辑设计中所用到的区域;
步骤二:根据步骤一已确定的区域位置,映射到存储在FLASH芯片中配置信息的位置,把其中一位配置信息取反后,对目标FPGA进行故障注入,将目标FPGA的配置信息位逐个按位进行翻转;
步骤三:检查目标FPGA输出是否发生错误,若检测到有错误,说明此区域的配置信息对目标FPGA的逻辑运行有影响,此区域是敏感区域;若没有检测到错误,则说明此区域的配置信息对目标FPGA的逻辑运行没有影响,不是敏感区域。
所述步骤一中用编译工具查看目标FPGA内部的布局布线,找出目标FPGA逻辑设计中用到的区域的步骤实现过程如下:目标FPGA逻辑经Xilinx ISE 9.1i编译后,找出目标FPGA逻辑设计用到的区域,记录它们的类型和该区域的行(简称Row)和列(简称Column),并计算出其主地址(简称MJA)和从地址(简称MNA)。
所述步骤二中根据步骤一已确定的区域位置,映射到存储在FLASH芯片中配置信息的位置,把其中一位配置信息取反后,对目标FPGA进行故障注入,将目标FPGA的配置信息位逐个按位进行翻转实现过程如下:根据步骤一已确定的区域位置,通过映射算法,映射到存储在FLASH芯片中配置信息的位置,读取所需的配置信息,将其中一位取反后,生成所需含有故障信息的配置信息,对目标FPGA芯片配置信息进行故障注入,对配置信息逐个按位进行翻转。
步骤二中所述映射算法如下:
若由步骤一确定目标FPGA的位置为逻辑配置区(简称CLB),则映射到FLASH存储的起始地址为:
FlashAddr=Configure_Byte+Center_Byte+(MJA-1)*CLB_Frame+(MNA-1)*Frame_Byte
若由步骤一确定目标FPGA的位置为输入输出模块(简称IOB),或者为随机存取存储区(简称RAM),则映射到FLASH存储的起始地址为:
FlashAddr=Configure_Byte+Center_Byte+CLB_Byte+(MJA-CLB_N)*N_Frame+(MNA-1)*Frame_Byte
其中,FlashAddr为映射到FLASH存储配置信息的起始地址,Configure_Byte为配置信息中初始化设置FPGA的字节数,Center_Byte为目标FPGA芯片中心区(简称Center)的字节数,MJA为主地址,CLB_Frame为每个CLB列包含的字节数,MNA为从地址,Frame_Byte为每帧(简称Frame)包含的字节数,CLB_Byte为CLB一共包含的字节数,CLB_N为CLB的列数,N_Frame为IOB或者RAM每列包含的字节数。
步骤二中所述的故障注入步骤如下:
(1)如图7所示,生成同步字后,设置配置寄存器,设置关闭位(简称Shutdown bit),启动关闭(简称shutdown)功能,防止发生线路冲突;
(2)写入填充字,若此时发生线路争夺,则声明拉高(简称GHIGH_B)指令;若没有发生线路争夺,则不用声明GHIGH_B指令,再设置帧地址寄存器(简称FAR),帧地址由步骤一给出,生成写配置数据指令(简称WCFG),写入要写入数据的字数,再向写帧数据输入寄存器(简称FDRI)写入数据;
(3)写入最后一帧指令(简称LFRM),最后,写入填充帧,故障注入完毕。
所述步骤三中检查输出是否发生错误实现过程如下:将把配置信息按位翻转后的输出结果和正常情况下,即没有把配置信息按位翻转的情况下的结果做比较,若输出结果不一致,则说明有错误发生,说明此区域的配置信息对目标FPGA的逻辑运行有影响,此区域是敏感区域;若输出结果一致,若说明没有错误发生,说明此区域的配置信息对目标FPGA的逻辑运行没有影响,不是敏感区域。

Claims (3)

1.一种用于FPGA芯片敏感区域定位的系统,其特征在于:它包括制作故障控制模块、故障注入模块和敏感区域检测模块;它们之间的位置连接关系是:故障控制模块将生成所需含有故障信息的配置信息输出给故障注入模块,故障注入模块将配置信息注入到目标FPGA中,敏感区域检测模块实时检测并比较目标FPGA输出的信号;
所述故障控制模块由软件部分和硬件部分组成,硬件部分是由电可擦写可编程只读存储器即EEPROM、微控制单元即MCU、复杂可编程逻辑器件即CPLD和闪存即FLASH组成,其位置连接关系是EEPROM为MCU实现代码的上电自动加载,CPLD负责对MCU外围数据总线、地址总线进行译码,FLASH存储备份的配置信息并为故障控制模块软件部分提供所需的配置信息;
所述故障注入模块由硬件MCU、CPLD和目标FPGA芯片组成,其位置连接关系是已设置的指令及含有故障信息的配置信息通过MCU输入给CPLD,经CPLD经译码后,先向目标FPGA写入设置指令,再写入含有故障信息的配置信息,最后完成故障注入;
所述敏感区域检测模块由软件组成。
2.根据权利要求1所述的一种用于FPGA芯片敏感区域定位的系统,其特征在于:该EEPROM型号为24LC128;该MCU型号为CY7C68013A;该CPLD为美国Altera公司生产的EPM3512AQC208-10N;该FLASH型号为SST39VF6401。
3.根据权利要求1所述的一种用于FPGA芯片敏感区域定位的系统,其特征在于:该目标FPGA芯片为美国Xilinx公司生产的XCV300。
CN2010202668289U 2010-07-16 2010-07-16 一种用于fpga芯片敏感区域定位的系统 Expired - Fee Related CN201828914U (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010202668289U CN201828914U (zh) 2010-07-16 2010-07-16 一种用于fpga芯片敏感区域定位的系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010202668289U CN201828914U (zh) 2010-07-16 2010-07-16 一种用于fpga芯片敏感区域定位的系统

Publications (1)

Publication Number Publication Date
CN201828914U true CN201828914U (zh) 2011-05-11

Family

ID=43967437

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010202668289U Expired - Fee Related CN201828914U (zh) 2010-07-16 2010-07-16 一种用于fpga芯片敏感区域定位的系统

Country Status (1)

Country Link
CN (1) CN201828914U (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662322A (zh) * 2012-04-10 2012-09-12 西华大学 一种fpga处理器及pid膜优化神经网络控制器
CN107992412A (zh) * 2017-11-27 2018-05-04 上海航天测控通信研究所 基于erc32的星载软件抗单粒子翻转故障的测试方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662322A (zh) * 2012-04-10 2012-09-12 西华大学 一种fpga处理器及pid膜优化神经网络控制器
CN107992412A (zh) * 2017-11-27 2018-05-04 上海航天测控通信研究所 基于erc32的星载软件抗单粒子翻转故障的测试方法
CN107992412B (zh) * 2017-11-27 2021-05-11 上海航天测控通信研究所 基于erc32的星载软件抗单粒子翻转故障的测试方法

Similar Documents

Publication Publication Date Title
CN101916306A (zh) 一种用于fpga芯片敏感区域定位的系统及其方法
US9760434B2 (en) ECC method for double pattern flash memory
CN101996689B (zh) 存储器错误处理方法
US8910018B2 (en) Memory with dynamic error detection and correction
CN103971732A (zh) 监控fpga的单粒子翻转效应并纠正重加载的方法及系统
CN104579313B (zh) 一种基于配置帧的在轨sram型fpga故障检测与修复方法
JP6290934B2 (ja) プログラマブルデバイス、エラー保持システム、及び電子システム装置
US8347150B2 (en) Method and semiconductor memory with a device for detecting addressing errors
CN106021014A (zh) 一种内存管理方法及装置
CN109491821A (zh) 抗单粒子翻转的加固系统及方法
CN113608720A (zh) 一种抗单粒子翻转的星载数据处理系统及方法
CN103413571B (zh) 存储器和利用该存储器实现检错纠错的方法
CN201828914U (zh) 一种用于fpga芯片敏感区域定位的系统
CN105824719B (zh) 一种随机存储器的检测方法及系统
CN102981925A (zh) 应用于通讯设备的寄存器巡检校验控制方法
CN105068969B (zh) 用于数字信号处理平台架构的单粒子效应防护系统及方法
JP3139738B2 (ja) 論理回路
CN103744752A (zh) 一种内存的在线故障检测方法和装置
CN101937722B (zh) 存储器装置及其相关测试方法
TWI509622B (zh) 具分散錯誤功能的記憶體及其分散錯誤位元的方法
CN105354048A (zh) 一种针对asic空间应用的系统级加固方法
CN111785310A (zh) 一种用于抗单粒子翻转的fpga加固系统及方法
CN102084342B (zh) 允许在自然辐射环境中使用可编程元件的设备
US11532374B2 (en) Memory testing
CN112230970B (zh) 一种适合于星载xilinx v2 fpga刷新方法

Legal Events

Date Code Title Description
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110511

Termination date: 20120716