法律状态公告日
法律状态信息
法律状态
2015-12-23
授权
授权
2013-12-04
实质审查的生效 IPC(主分类):G06F11/07 申请日:20130628
实质审查的生效
2013-11-13
公开
公开
技术领域
本发明涉及SRAM型FPGA的配置技术领域,特别涉及一种SRAM型FPGA SEU运行中修复的方法。
背景技术
Virtex-5系列FPGA是Xilinx公司推出的基于SRAM工艺的新型FPGA,其 集成度高,逻辑功能强,被广泛应用于现代数字系统设计中。Virtex-5FPGA的 逻辑功能配置由其SRAM型配置区的数据实现,
SRAM属性决定了配置区数据在掉电后会丢失,因此必须将配置数据保存 在外部非易失存储器中,在FPGA上电后对其进行重新配置。
在宇航应用中,空间高能粒子轰击造成SRAM型FPGA配置区单粒子翻转 SEU可能导致FPGA逻辑错误,必须对FPGA的配置区单粒子翻转进行修复方 可保证FPGA的正常运行。在传统的应对FPGA的配置区的单粒子翻转通常有 以下几种策略:
1)、定期全局重配置
SEU是一种软错误,它不会造成硬件的永久损坏,FPGA重新加载配置数 据后,SEU的影响即可被移除。对一些可靠性要求不很高的应用,系统对少量 的SEU有一定的容忍度,定期的FPGA全局重配置又可消除SEU的积累,基本 可以保证系统处于正常工作状态。所以说,对可靠性要求一般的应用,通过FPGA 的全局重配置解决SEU效应是一种可以接受的方案。
2)、紧急全局重配置
在某些对可靠性要求较高的场合,定期的全局重配置由于无法快速消除 SEU影响而变得不能接受。紧急全局重配置系统必须具备相应的SEU错误检测 和错误等级判断机制,在发生SEU错误后决定立即进行全局重配置或是推迟全 局重配置直到当前关键操作完成。
在要求FPGA高可靠、长时间连续运行的应用中,定期重配置策略、紧急 重配置策略均因会打断FPGA的正常运行而变得不适用,如何在不打断FPGA 的运行的情况下,进行SEU错误的修复将是SRAM型FPGA的配置技术的发展 趋势。
SEU的运行中修复,传统的方法是采用“回读-比较-回写”方式,其中需用 到一个屏蔽文件.msk和一个回读文件.rbb,实际的过程为:使用回读文件.rbb与 原始配置文件.bit进行比较,若二者不同则利用屏蔽文件.msk将回读文件.rbb写 入FPGA中。这种方式除了相对复杂的逻辑外,最大的缺点是.msk和.rbb文件 均具有与原始配置文件.bit相同的大小,导致存储空间的占用达到原来的三倍; 而且由于配置区的回读占用时间较长,达不到进行中修复所需要的实时性。因 此以上“回读-比较-回写”的方式并不实用。
发明内容
有鉴于此,本发明提供了一种SRAM型FPGA SEU运行中修复的方法,目 的是实现SRAM型FPGA的上电全局配置,以及对配置区的SEU进行运行中修 复,且占用较小的存储空间,具备实时性。
为达到上述目的,该方法包括如下步骤:
第一步、在SRAM型FPGA上电后,使用配置管理FPGA对SRAM型FPGA 进行一次全局配置;
第二步、配置管理FPGA读取配置比特流文件,检测该比特流文件并进行 如下处理:
当检测到比特流文件中的帧写入命令FDRI时,将FDRI中附带的帧字数替 换为逻辑和互连帧字数;
当检测到内容配置数据Block RAM时,则使用空操作命令替换Block RAM;
当检测到寄存器复位命令GRESTORE时,则使用空操作命令替换 GRESTORE;
当检测到I/O启动命令STARTUP时,则使用空操作命令替换STARTUP;
第三步、将经过第二步处理后的比特流文件写入SRAM型FPGA;
第四步、重复第二步和第三步直至SRAM型FPGA停止工作。
有益效果:
1、本发明采用了对SEU错误进行“洗涤”的方法来实现SEU的运行中修 复。对配置区进行刷写的数据仍然来自原始的配置比特流文件,其核心原理是 在向配置帧数据入口寄存器FDRI写入数据时,仅写入逻辑和互连配置相关的数 据,将Block RAM内容数据屏蔽掉,这样即实现了SEU的洗涤,也不会破坏用 户RAM中的数据。同时会中断FPGA运行的命令也要屏蔽掉,如GRESTORE 命令,这种并命令打断FPGA的正常运行。因此该方法能够在运行中对FPGA 的SEU错误进行修复。
2、由于该方法不对SEU错误进行检测,而是向配置区反复刷写入正确的配 置数据,将SEU错误“洗涤”掉。相比传统方法的“回读-比较-回写”方式, 不使用屏蔽文件.msk和回读文件.rbb,使用原始的配置比特流文件,因此占用较 少的存储空间;同时由于省去了配置区的回读时间,SEU从发生到被修复的时 间相对传统方法也要短一些,具备实时性;
附图说明
图1电路连接示意图;
图2比特流文件和SEU洗涤比特流的转化关系;
图3SEU洗涤流程图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
本发明所使用的针对SRAM型FPGA的SEU运行中修复的方法,其中该 方法基于传统的FPGA电路连接即可完成,其电路连接如图1所示。
本实施例中所使用的SRAM型FPGA为Virtex-5系列FPGA;
该Virtex-5FPGA的配置比特流文件存放于外部非易失存储器中,在实际操 作中通常使用的外部非易失存储器为PROM;
该Virtex-5FPGA的配置由配置管理FPGA进行控制,本实施例中所使用的 配置管理FPGA为反熔丝型,不受SEU影响;
其中Virtex-5FPGA与配置管理FPGA之间通过Slvae SelectMAP接口连 接。
本发明所提供的针对SRAM型FPGA的SEU运行中修复的方法具体工作 步骤如图3所示,包括如下具体步骤:
第一步、上电后,使用配置管理FPGA开始对SRAM型FPGA进行一次全 局配置;全局配置方法为从外部非易失存储器PROM中读取配置比特流文件, 将其原样输送给SRAM型FPGA以进行全局配置;完成全局配置后,SRAM型 FPGA的DONE信号被拉高,标志SRAM型FPGA全局配置完成;
第二步、在第一步的全局配置成功后配置管理FPGA进入SEU洗涤工作模 式。
在本实施例中,配置管理FPGA一方面需要对RAM型FPGA进行全局配置, 即实现第一步;另一方面需要将配置比特流文件解析处理并写入RAM型FPGA 以进行SEU洗涤,即实现第二步。因此在本实施例中配置管理FPGA内部具有 一路比特流文件的直接写入的电路设置,同时具有一路比特流文件解析电路, 具体的配置管理FPGA结构如图1所示。
配置管理FPGA读取配置比特流文件,经由比特流文件解析电路对比特流 文件做实时处理,当配置管理FPGA检测到SRAM型FPGA的完成信号DONE 被拉高,即全局配置成功,将实时处理后的比特流文件输送给SRAM型FPGA。 APA600重新开始从XCF16P首地址读取比特流,比特流解析电路对比特路进行 解析,对比特流中部分命令和数据做替换和屏蔽处理,检测到比特流中DESYNC 命令后,一次SEU洗涤完成。
在本步骤中,分析比特流文件的结构构成,如图2所示,比特流文件包括 前后命令组、逻辑和互联配置数据以及,其中前后命令组中的帧写入命令FDRI 包括有帧字数、寄存器复位命令GRESTORE和启动命令START可影响到SRAM 型FPGA的运行。
其中该步骤中的实时处理包括:
若检测到比特流文件中的帧写入命令FDRI时,FDRI中带有的帧字数包含 了逻辑和互连帧字数与内容配置数据的帧字数总和,由于本发明中进行洗涤时, 重复刷写的应当仅为逻辑和互联配置数据,不需要包括内容配置数据,所以此 处将该命令中附带的帧字数替换为逻辑和互连帧字数;
若检测到内容配置数据Block RAM,则使用空操作命令替换Block RAM, 因为在SRAM型FPGA中,Block RAM记载了用户数据,因此不需要洗涤。所 以使用空操作命令替换Block RAM使Block RAM内容初始值不会被写入SRAM 型FPGA,则SRAM型FPGA中的用户数据得到保存,仅配置区SEU被洗涤;
若检测到寄存器复位命令GRESTORE命令,则使用空操作命令替换 GRESTORE命令,避免了SRAM型FPGA内的寄存器复位导致的SRAM型 FPGA中断;
若检测到启动命令START命令,则使用空操作命令替换START命令。由 于START命令会开始一系列FPGA启动的流程,而其中一些流程会使I/O在一 段时间内处于高阻态,从而破坏I/O的正常运行,因此本方法并不将START命 令刷写如SRAM型FPGA,从而避免启动带来的SRAM型FPGA中断;
经过本步骤的获得处理后的比特流文件记为SEU洗涤比特流。
第三步、将SEU洗涤比特流写入SRAM型FPGA;
第四步、重复第二步和第三步直至FPGA停止工作。即一次SEU洗涤完成 后,下一次SEU洗涤是立即开始,洗涤工作应当一直持续到FPGA停止工作为 止。
由上述流程可以看出,除了对比特流中部分命令和数据做了替换和屏蔽处 理外,对SEU进行洗涤的过程与上电全局配置的过程是一致的。
本发明也可以使用定时器,由定时器指定定时后开始SEU的洗涤工作模式, 每一次洗涤完成之后,由定时器指定定时后开始下一次洗涤。同样也可以使用 外部控制器,由外部控制器发送SEU洗涤指令至配置管理FPGA,配置管理 FPGA接收到SEU洗涤指令后开始SEU的洗涤工作模式。在实际的实施过程中, 可以根据应用场合的需求灵活进行选择。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保 护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等, 均应包含在本发明的保护范围之内。
机译: 一种提高FPGA和仿真系统多时钟设计运行性能的方法
机译: 板载发光单元阵列上的芯片,一种用于修复该发光单元的方法和一种用于修复同一单元的发光单元,能够从衬底表面中的多个发光二极管中替换一个缺陷的单元
机译: 在患者中治疗或预防至少一种炎症的方法,在因处方药或滥用药物而遭受化学肝损害风险的患者中抑制肝损害的方法,在患者中抑制NKT I型细胞介导的组织损伤的方法,抑制NKT I型细胞活化的方法,抑制炎性疾病患者中NKT I型细胞活化的方法以及抑制患者肝脏中髓样细胞释放的方法