首页> 中国专利> 一种SRAM型FPGA SEU运行中修复的方法

一种SRAM型FPGA SEU运行中修复的方法

摘要

本发明公开了一种SRAM型FPGA SEU运行中修复的方法,属于SRAM型FPGA的配置技术领域。该方法包括如下步骤:第一步、对SRAM型FPGA上电后,使用配置管理FPGA首先对SRAM型FPGA进行一次全局配置;第二步、配置管理FPGA读取配置比特流文件,检测该比特流文件并进行如下处理:当检测到比特流文件中的帧写入命令FDRI时,将FDRI中附带的帧字数替换为逻辑和互连帧字数;当检测到内容配置数据Block RAM时,则使用空操作命令替换Block RAM;当检测到寄存器复位命令GRESTORE,则使用空操作命令替换GRESTORE时;当检测到I/O启动命令STARTUP时,则使用空操作命令替换STARTUP;第三步、将经过第二步处理后的比特流文件写入SRAM型FPGA;第四步、重复第二步和第三步直至SRAM型FPGA停止工作。本方法适用于SRAM型FPGA SEU运行中修复。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 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的洗涤工作模式。在实际的实施过程中, 可以根据应用场合的需求灵活进行选择。

综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保 护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等, 均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号