一种用于fpga芯片敏感区域定位的系统的制作方法

文档序号:6344507阅读:189来源:国知局
专利名称:一种用于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所示,首 先,根据目标故障注入配置信息的位置,映射到备份配置信息中,读回所需的配置信息,将 其中一位取反后,生成所需含有故障信息的配置信息。硬件部分是由电可擦写可编程只读 存储器(简称EEPR0M)、微控制单元(简称MCU)、复杂可编程逻辑器件(简称CPLD)和闪 存(简称FLASH)组成,如图3所示,其间的位置连接关系是EEPROM为MCU实现代码的上电 自动加载,CPLD负责对MCU外围数据总线、地址总线进行译码,FLASH存储备份的配置信息并为故障控制模块软件部分提供所需的配置信息。该EEPROM型号为MLC128 ;该MCU型号 为 CY7C68013A ;该 CPLD 为美国 Altera 公司生产的 EPI\0512AQC208-10N ;该 FLASH 型号为 SST39VF6401。所述故障注入模块由硬件MCU、CPLD和目标FPGA芯片组成,如图4所示,其间的位 置连接关系是已设置的指令及含有故障信息的配置信息通过MCU输入给CPLD,经CPLD经译 码后,先向目标FPGA写入设置指令,再写入含有故障信息的配置信息,最后完成故障注入。 该目标FPGA芯片为美国Xi 1 inx公司生产的XCV300。所述敏感区域检测模块由软件组成,流程图如图5所示,首先,将故障注入后的输 出结果和没有故障注入的输出结果,即正常情况下的输出结果进行比对,看是否发生错误, 若发生错误,则记录故障注入的位置信息,此位置为该逻辑设计下目标FPGA芯片的敏感区 域;若没有故障发生,则继续检测。本系统的工作原理是将原始FPGA配置信息作为基准信息,在此基础上,按照需 求读取基准信息中一段配置信息,将其中一位取反生成所需的含故障信息的配置信息,并 注入到目标FPGA中。若注入故障区域为目标FPGA的敏感区域,此故障信息就会对目标FPGA 的正常工作造成影响,使目标FPGA的输出结果发生错误,此时,将该输出结果和没有进行 故障注入的FPGA的输出结果作比较,即可发现该错误,并将故障注入的区域记录下来。(2) 一种用于FPGA芯片敏感区域定位的方法,它包括以下步骤步骤一如图6所示,根据现有设计好的目标FPGA逻辑,经美国Xilinx公司的产 品XilinxISE 9. Ii编译后,查看FPGA内部的布局布线,找出目标FPGA芯片在该逻辑设计 中所用到的区域;步骤二 根据步骤一已确定的区域位置,映射到存储在FLASH芯片中配置信息的 位置,把其中一位配置信息取反后,对目标FPGA进行故障注入,将目标FPGA的配置信息位 逐个按位进行翻转;步骤三检查目标FPGA输出是否发生错误,若检测到有错误,说明此区域的配置 信息对目标FPGA的逻辑运行有影响,此区域是敏感区域;若没有检测到错误,则说明此区 域的配置信息对目标FPGA的逻辑运行没有影响,不是敏感区域。所述步骤一中用编译工具查看目标FPGA内部的布局布线,找出目标FPGA逻辑设 计中用到的区域的步骤实现过程如下目标FPGA逻辑经Xilinx ISE 9. Ii编译后,找出 目标FPGA逻辑设计用到的区域,记录它们的类型和该区域的行(简称Row)和列(简称 Column),并计算出其主地址(简称MJA)和从地址(简称MNA)。所述步骤二中根据步骤一已确定的区域位置,映射到存储在FLASH芯片中配置信 息的位置,把其中一位配置信息取反后,对目标FPGA进行故障注入,将目标FPGA的配置信 息位逐个按位进行翻转实现过程如下根据步骤一已确定的区域位置,通过映射算法,映射 到存储在FLASH芯片中配置信息的位置,读取所需的配置信息,将其中一位取反后,生成所 需含有故障信息的配置信息,对目标FPGA芯片配置信息进行故障注入,对配置信息逐个按 位进行翻转。步骤二中所述对目标FPGA进行故障注入,步骤如下(1)如图7所示,生成同步字后,设置配置寄存器,设置关闭位(简称Shutdown bit),启动关闭(简称shutdown)功能,防止发生线路冲突;[0020](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写配置数据指令;worcLcount字数;FDRI写帧数 据输入寄存器;LFRM最后一帧指令。
具体实施方式
(1)本实用新型一种用于FPGA芯片敏感区域定位的系统,如图1所示,它包括制 作故障控制模块、故障注入模块和敏感区域检测模块。它们之间的位置连接关系是故障控 制模块将生成所需含有故障信息的配置信息输出给故障注入模块,故障注入模块将配置信 息注入到目标FPGA中,敏感区域检测模块实时检测并比较目标FPGA输出的信号。该故障 控制模块,根据目标配置信息的位置,生成所需的含有故障信息的配置信息;该故障注入模 块,将生成的含故障信息的配置信息写入目标FPGA的配置信息中;该敏感区域检测模块, 实时检测目标FPGA的输出结果,与正确的输出结果比对,若发现错误,则记录注入目标配 置信息的位置,此位置为目标FPGA的敏感区域。5[0036]所述故障控制模块实现过程为根据目标配置信息的位置,从备份的配置信息中 读取出正确的数据,将其中一位数据取反后,生成所需的含有故障信息的配置信息。所述故障注入模块实现过程为设置目标FPGA芯片为可重配置状态,将生成的含 故障信息的配置信息写入目标FPGA的配置信息中,在写入的过程中,不会影响FPGA的正常工作。所述敏感区域检测模块实现过程为在写入含故障信息的配置信息后,实时检测 目标FPGA的输出结果,与正确输出结果比对,若两者不一致,则发现错误,记录注入目标配置信息的位置。所述故障控制模块由软件部分和硬件部分组成,软件部分流程图如图2所示,首 先,根据目标故障注入配置信息的位置,映射到备份配置信息中,读回所需的配置信息,将 其中一位取反后,生成所需含有故障信息的配置信息。硬件部分是由电可擦写可编程只读 存储器(简称EEPR0M)、微控制单元(简称MCU)、复杂可编程逻辑器件(简称CPLD)和闪 存(简称FLASH)组成,如图3所示,其间的位置连接关系是EEPROM为MCU实现代码的上电 自动加载,CPLD负责对MCU外围数据总线、地址总线进行译码,FLASH存储备份的配置信息 并为故障控制模块软件部分提供所需的配置信息。该EEPROM型号为MLC128 ;该MCU型号 为 CY7C68013A ;该 CPLD 为美国 Altera 公司生产的 EPI\0512AQC208-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. Ii编译后,查看FPGA内部的布局布线,找出目标FPGA芯片在该逻辑设计 中所用到的区域;步骤二 根据步骤一已确定的区域位置,映射到存储在FLASH芯片中配置信息的 位置,把其中一位配置信息取反后,对目标FPGA进行故障注入,将目标FPGA的配置信息位 逐个按位进行翻转;步骤三检查目标FPGA输出是否发生错误,若检测到有错误,说明此区域的配置 信息对目标FPGA的逻辑运行有影响,此区域是敏感区域;若没有检测到错误,则说明此区域的配置信息对目标FPGA的逻辑运行没有影响,不是敏感区域。所述步骤一中用编译工具查看目标FPGA内部的布局布线,找出目标FPGA逻辑设 计中用到的区域的步骤实现过程如下目标FPGA逻辑经Xilinx ISE 9. Ii编译后,找出 目标FPGA逻辑设计用到的区域,记录它们的类型和该区域的行(简称Row)和列(简称 Column),并计算出其主地址(简称MJA)和从地址(简称MNA)。所述步骤二中根据步骤一已确定的区域位置,映射到存储在FLASH芯片中配置信 息的位置,把其中一位配置信息取反后,对目标FPGA进行故障注入,将目标FPGA的配置信 息位逐个按位进行翻转实现过程如下根据步骤一已确定的区域位置,通过映射算法,映射 到存储在FLASH芯片中配置信息的位置,读取所需的配置信息,将其中一位取反后,生成所 需含有故障信息的配置信息,对目标FPGA芯片配置信息进行故障注入,对配置信息逐个按 位进行翻转。步骤二中所述映射算法如下若由步骤一确定目标FPGA的位置为逻辑配置区(简称CLB),则映射到FLASH存储 的起始地址为FlashAddr = Configure_Byte + Center_Byte +(MJA-I) *CLB_ Frame+(MNA-I)氺Frame_Byte若由步骤一确定目标FPGA的位置为输入输出模块(简称Ι0Β),或者为随机存取存 储区(简称RAM),则映射到FLASH存储的起始地址为FlashAddr = Configure_Byte+Center_Byte+CLB_Byte+(MJA-CLB_N) Frame+(MNA-I)氺Frame_Byte其中,FlashAddr为映射到FLASH存储配置信息的起始地址,Conf igure_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的逻辑运行没有影响,不是敏感区域。权利要求1.一种用于FPGA芯片敏感区域定位的系统,其特征在于它包括制作故障控制模块、 故障注入模块和敏感区域检测模块;它们之间的位置连接关系是故障控制模块将生成所 需含有故障信息的配置信息输出给故障注入模块,故障注入模块将配置信息注入到目标 FPGA中,敏感区域检测模块实时检测并比较目标FPGA输出的信号;所述故障控制模块由软件部分和硬件部分组成,硬件部分是由电可擦写可编程只读存 储器即EEPR0M、微控制单元即MCU、复杂可编程逻辑器件即CPLD和闪存即FLASH组成,其位 置连接关系是EEPROM为MCU实现代码的上电自动加载,CPLD负责对MCU外围数据总线、地 址总线进行译码,FLASH存储备份的配置信息并为故障控制模块软件部分提供所需的配置 fn息;所述故障注入模块由硬件MCU、CPLD和目标FPGA芯片组成,其位置连接关系是已设置 的指令及含有故障信息的配置信息通过MCU输入给CPLD,经CPLD经译码后,先向目标FPGA 写入设置指令,再写入含有故障信息的配置信息,最后完成故障注入;所述敏感区域检测模块由软件组成。
2.根据权利要求1所述的一种用于FPGA芯片敏感区域定位的系统,其特征在于该 EEPROM型号为MLCU8 ;该MCU型号为CY7C68013A ;该CPLD为美国Altera公司生产的 EPM3512AQC208-10N ;该 FLASH 型号为 SST39VF6401。
3.根据权利要求1所述的一种用于FPGA芯片敏感区域定位的系统,其特征在于该目 标FPGA芯片为美国Xilinx公司生产的XCV300。
专利摘要一种用于FPGA芯片敏感区域定位的系统,它包括制作故障控制模块、故障注入模块和敏感区域检测模块。其位置连接关系是故障控制模块将生成所需含有故障信息的配置信息输出给故障注入模块,故障注入模块将配置信息注入到目标FPGA中,敏感区域检测模块实时检测并比较目标FPGA输出的信号。一种用于FPGA芯片敏感区域定位的方法,该方法有三大步骤。1.根据目标FPGA逻辑,经Xilinx ISE 9.1i编译后,找出目标FPGA芯片在该逻辑设计中所用到的区域;2.根据上步已确定的区域,映射到存储在FLASH芯片中配置信息的位置,把其中一位配置信息取反后,对目标FPGA进行故障注入,将目标FPGA的配置信息位逐个按位进行翻转;3.检查目标FPGA输出是否发生错误,从而判断此区域是不是敏感区域。
文档编号G06F17/50GK201828914SQ201020266828
公开日2011年5月11日 申请日期2010年7月16日 优先权日2010年7月16日
发明者冯文全, 刘曦, 刘苏潇, 孙桦, 官秀梅, 尹佳, 王冬, 赵洪博, 赵琦, 陆国雷, 马拂晓 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1