CN201828914U - 一种用于fpga芯片敏感区域定位的系统 - Google Patents
一种用于fpga芯片敏感区域定位的系统 Download PDFInfo
- 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
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芯片在不同逻辑设计下的敏感区域。在外太空的环境中,由空间辐射而引发单粒子翻转故障(简称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。
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)
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的星载软件抗单粒子翻转故障的测试方法 |
-
2010
- 2010-07-16 CN CN2010202668289U patent/CN201828914U/zh not_active Expired - Fee Related
Cited By (3)
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 |