SRAM型FPGA空间应用的抗单粒子翻转

这篇具有很好参考价值的文章主要介绍了SRAM型FPGA空间应用的抗单粒子翻转。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1   SRAM型FPGA内部结构

        目前,SRAM 型 FPGA 在星载电子产品中应用较多的是Xilinx公司的FPGA。

图1所示为Xilinx系列FPGA器件的内部结构。从图中可以看出,FPGA内部由3 部分组成,分别为:

1)用于实现用户逻辑的可编程阵列(Configurable Logic Block,CLB);

2)用于存储用户数据的左右两列存储器(Block RAM,BRAM);

3)输入/输出模块(I/O Block,IOB)。CLB 中包含有查找表 LUT、进位逻辑和触发器等元件。其中用户逻辑的配置信息存储在 CLB 的存储单元中,该信息如果发生错误,则直接影响到用户逻辑功能。该 FPGA 器件内部的配置存储单元、触发器、LUT、Block RAM、Half Latch都可能发生SEU错误,其中配置存储单元中发生的SEU百分占比最大。

fpga单粒子翻转,FPGA,fpga开发,单粒子反转,空间辐射,星载

图1 Virtex系列FPGA内部结构示意图

2  SRAM型FPGA的抗单粒子翻转设计方法

       2、1   FPGA内部逻辑的三模冗余设计(TMR)

        硬件冗余设计技术是一种有效解决单粒子翻转问题的手段,可以将FPGA器件作为冗余的对象或者对FPGA内部逻辑实施三模冗余设计,设计原理如图2所示。若星载电子产品采用多片FPGA的冗余设计方法,则需要增加额外的FPGA仲裁电路,会增加印制板的面积,增大设备的体积、重量和功耗。若采用FPGA内部逻辑的三模冗余设计,即通过片内的多数表决器对 FPGA 输出信号进行表决输出,则可以有效减缓SEU的影响。

fpga单粒子翻转,FPGA,fpga开发,单粒子反转,空间辐射,星载

图2 三模冗余设计的原理框图

          虽然TMR能够提高FPGA可靠性,但是也会降低经过布局布线后的最大时钟速度,增加FPGA的资源使用量,增大芯片功耗。如果FPGA逻辑设计本身就很复杂,则TMR设计后所带来的资源和功耗往往是系统设计所无法容忍的。因此在具体设计时,可针对部分关键逻辑和电路进行TMR 加固设计。在具体实现中,TMR 可以使用Synplify工具进行设置,选择关键寄存器进行冗余设计

       2、2   FPGA重配置技术

        PGA重配置技术是一种对可编程FPGA的局部或者全部逻辑资源进行重配置的设计方法。该方法不需要额外的FPGA,只需要外部1路脉冲指令即可实现FPGA配置信息的重新加载,控制及实现简单。但是由于重配置过程中FPGA不能正常工作,会引起系统的功能中断。尤其对于使用大容量SRAM型FPGA的星载计算机来说,其配置时间需要持续几十甚至几百ms,系统是无法容忍的。

       2、3   FPGA自动刷新技术

         FPGA 自动刷新是指周期性地对配置信息进行刷新,无论是否发生单粒子翻转,均对FPGA配置区进行配置数据回写操作。刷新过程无须中断用户的功能。对于 Xilinx 系列的 FPGA,在线刷新CLB/IO/DSP/CLK 区域,虽然不会引起功能中断,但是需要额外的外部刷新控制电路的支持,实现刷新的控制时序。对于使用大容量 SRAM 型 FPGA的星载计算机来说,FPGA每次刷新的时间相对较长,使得实时性不高,若工作轨道的空间环境恶劣,则有可能无法及时纠正FPGA发生的单粒子翻转,从而对计算机的稳定运行造成一定的影响。

       2、4   FPGA回读和刷新技术

         对 FPGA 配置单元中的信息实时地进行回读和刷新也是一种有效的抗单粒子翻转的设计方法。

         回读是将FPGA配置存储器中的所有数据读出的过程,可以用来校验当前的配置信息,同时也可以读出 FPGA 寄存器的当前状态和基于 LUT 的RAM与块状RAM中的当前数据。刷新是指将正确的配置信息回写入FPGA相应的配置单元中。Xilinx系列的FPGA支持以帧(每帧大小为41×32 bit)为单位的回读与刷新操作。与自动刷新不同,回读和刷新是指在运行过程中通过对回读的 FPGA 配置数据进行比对或者以某种校验算法进行检错,检验配置数据的正确性,仅在发现错误时进行回写,即刷新操作,因此能够减少FPGA刷新的次数,更加高效和有针对性地对故障进行恢复。

         目前,Xilinx 系列 FPGA 配置访问接口包括JTAG、SelectMap 以及 ICAP 三种。其中,JTAG和SelectMap为外部访问接口,即外部设备通过这两种接口实现对目标FPGA的配置刷新和回读。JTAG接口是串行接口,速度较慢;SelectMap接口是并行接口,速度较快。SelectMap 接口提供了与 Virtex-4配置逻辑之间的一个8 bit/32 bit双向数据总线接口,既可以用于配置,也可以用于回读。ICAP接口为内部访问接口,通过该接口可以访问 FPGA 的配置存储器,实现对自身的故障诊断和检测。Virtex-4系列FPGA三种接口的最大数据带宽如表1所示。

fpga单粒子翻转,FPGA,fpga开发,单粒子反转,空间辐射,星载

表1 Virtex系列FPGA配置模式

1)JTAG接口

         通过 JTAG 接口可对 FPGA 内部的 CLB、BRAM以及IOB进行加载、回读和重配置,一般用于FPGA的在线调试和测试。

2)SelectMap接口

         SelectMap 接口有两种配置模式:主动模式仅支持8 bit数据位宽,被动模式下可选择8 bit位宽或32 bit位宽。SelectMap接口将FPGA的配置信息分为若干帧进行传输,每帧大小为 41word(即41×32 bit=1312 bit)。

3)ICAP接口

         ICAP接口能够利用FPGA中内嵌的控制器直接对配置数据进行重配置操作。

         经过分析,采用SelectMAP 接口和用户自定义的纠错检错方式实现FPGA的回读和动态刷新的优点是实现简单,较为可靠。为降低电路结构的复杂程度,可以无须存储rbb文件和msk文件,通过周期性地以帧为单位对FPGA进行回读、用户自定义的纠错检错和刷新操作,电路上仅需一片反熔丝FPGA 和配套 PROM 芯片(PROM 芯片个数根据FPGA 容量确定)。对于校验后检测到故障的配置帧,通过反熔丝FPGA控制SelectMAP接口对该帧进行数据刷新,及将回读校验后不满足用户自定义校验条件的配置数据从PROM配置信息中重新加载。

         SRAM 型 FPGA 的刷新控制电路可以使用外部的反熔丝FPGA或者ASIC来实现,若采用抗辐射等级高的元器件,则具有较高的可靠性。该方法能够对所有配置数据进行定期的回读和纠错检错,在刷新期间不影响FPGA和系统的正常工作;支持以帧为单位的回读、纠错检错和刷新操作,具有SEU的快速诊断和快速故障恢复能力,从而可以有效降低FPGA因受到SEU影响而发生故障的概率。

         在实际应用中,需要根据空间运行环境(预估SEU的发生概率和发生频率)、FPGA配置数据的容量等,合理选择和设置FPGA的配置时钟,在满足元器件频率降额的前提下,满足系统对于FPGA整片刷新的时间要求,使得 SEU 故障能够被及时纠正,不会引起故障的累积和扩散。

       2、5   FPGA局部动态可重构及恢复技术

         基于 FPGA 的局部动态可重构技术是指在一定的控制逻辑的驱动下,不仅能实现系统的高速动态重配置,而且还能实现系统的局部逻辑电路重配置。基于局部动态可重构的故障恢复技术是指从模块角度进行故障恢复。当 DMR/TMR 模块检测到故障后,SE_Controller读取相应故障模块的配置比特,在系统运行时进行故障恢复,速度较快,而且不影响系统运行。

       Xilinx FPGA有4种动态可重构设计流程,包括基于比特流的动态可重构设计流程、基于模块化的动态可重构设计流程、基于差异的动态可重构设计流程和基于EAPR(Early Access Partial Reconfiguration)方法的动态可重构设计流程。

       2、6   其他FPGA容错设计措施

         在FPGA设计中,还有其他的一些容错设计措施,举例如下:

1)状态机编码技术

对关键状态机的状态信息采用编码技术,防止状态机由于单粒子翻转导致的状态跑飞和锁死现象,以提高可靠性。

2)FPGA内部RAM模块的EDAC处理

对FPGA内部的Block RAM,采用EDAC技术对其进行“纠一检二”校验,以提高Block RAM的单粒子效应防护能力

3  工作流程

配置刷新控制用的FPGA以实现对目标FPGA的流程控制,具体步骤如下:

step1:配置刷新控制用的FPGA复位完成后,检测由上位机输出至目标 FPGA 的“配置有效标志信号”,若该信号为1,则表示配置有效,立即启动Virtex系列FPGA的SelectMAP接口方式配置,进入step2;若200 ms后,该信号仍为低电平(无效状态),则自主启动SelectMAP接口方式配置,进入step2;期间保持双向信号INIT为输出状态,且输出低电平,表示FPGA维持在等待配置状态;同时保持复位信号处于有效状态。

step2:实现对 SelectMAP 接口方式配置,配置期间保持复位信号有效,然后进入step3。

step3:等待FPGA输出Done信号(配置完成)上升沿,若发现上升沿,则表示配置完成,进入step4;若计数器已达到预定上限值还未采集到Done信号上升沿,则认为发生配置故障,进入step8。

step4:继续保持FPGA的复位有效20~30 ms,然后释放复位信号,进入step5。

step5:检测由上位机输出至目标FPGA的“重构有效标志信号”,若信号为1,则表示重构有效,立即启动 SelectMAP 接口方式重构操作,进入step6;否则判断“刷新有效标志信号”,若该信号为1,则代表刷新有效,立即启动SelectMAP接口方式回读、纠检错和刷新操作,进入step8;否则保持在step5中。

step6:进行 SelectMAP 接口有效性检测,若发生接口的单粒子功能中断(SEFI),则进入step12,否则进入step7。

step7:实现对SelectMAP接口方式重构操作,并同时保持重构模块的复位信号有效,期间不对主模块进行复位处理;重构完成后20~30 ms释放重构模块的复位信号,之后进入step5。

step8:进行 SelectMAP 接口有效性检测,若发生接口的单粒子功能中断,则进入 step8,否则进入step9。

step9:实现对SelectMAP接口方式配置数据回读操作,并同时进行CRC16检验码的计算;回读配置数据完成后,验证检验码,若发生纠检错的错误,则进入step10;未发生,则进入step11。

step10:实现对SelectMAP接口方式配置数据的刷新操作,完成后进入step11。

step11:判断是否到达配置数据地址的最后值,若到达则进入step5,否则配置数据地址加1 后,进入step9。

step12:建立故障标志,向上位机输出故障标志后,进入step13。

step13:等待上位机发出的重配置指令,若采集到“配置有效标志信号”输出上升沿,清除故障标志;且立即启动SelectMAP接口方式配置,进入step2;否则保持在step13中。

外部控制器实现的配置、回读、纠检错、刷新和局部可重构流程如图3所示。

fpga单粒子翻转,FPGA,fpga开发,单粒子反转,空间辐射,星载

3 FPGA工作流程图

                                    fpga单粒子翻转,FPGA,fpga开发,单粒子反转,空间辐射,星载

首先反熔丝FPGA从并加载SRAM型FPGA,并且启动喂狗信号一直喂狗,并且反熔丝FPGA拉高RDWR_B信号,定时回读SRAM型FPGA的当前程序状态,SRAM型FPGA的回读校验采用按帧编码校验的方式。在回读过程中,对出错的帧进行记录和数传。当SRAM型FPGA的回读校验都完成以后,进行错误判决。首先如果检测出状态错误,并且收到看门狗复位信号SRAM型FPGA,重新加载。

  1. SelectMAP模式
    1. 加载时序

参考UG470---40页

fpga单粒子翻转,FPGA,fpga开发,单粒子反转,空间辐射,星载

fpga单粒子翻转,FPGA,fpga开发,单粒子反转,空间辐射,星载

fpga单粒子翻转,FPGA,fpga开发,单粒子反转,空间辐射,星载

fpga单粒子翻转,FPGA,fpga开发,单粒子反转,空间辐射,星载

fpga单粒子翻转,FPGA,fpga开发,单粒子反转,空间辐射,星载

fpga单粒子翻转,FPGA,fpga开发,单粒子反转,空间辐射,星载

fpga单粒子翻转,FPGA,fpga开发,单粒子反转,空间辐射,星载

    1. 回读时序

fpga单粒子翻转,FPGA,fpga开发,单粒子反转,空间辐射,星载

在ISE中bit流生成时勾选以下三个选项,将会生成rbd(回读)文件和msd(掩码)文件,

fpga单粒子翻转,FPGA,fpga开发,单粒子反转,空间辐射,星载

在ucf文件中添加如下约束,确保SELECTMAP32接口在配置完后仍然保持:
CONFIGCONFIG_MODE = S_SELECTMAP32 + READBACK;

回读过程中,将回读的32bit内容依次与存储在片外PROM中的rbd文件比较,注意其中msd文件中为1对应的rbd中的bit位不需要比较。如果比较结果除不需要比较的bit位以外其他都一致,则比较结果正确,否则判断发生故障。回读比较可以用来检测FPGA的配置区域逻辑是否发生单粒子翻转。文章来源地址https://www.toymoban.com/news/detail-848628.html

到了这里,关于SRAM型FPGA空间应用的抗单粒子翻转的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FPGA - 7系列 FPGA内部结构之CLB -03- CLB相关原语以及应用

    本文节选UG474的第二章,进行整理翻译。CLB资源被FPGA综合工具自动有效地使用,不需要任何特殊的FPGA专用编码。一些HDL编码建议和技术可以帮助优化设计以获得最大效率。 这些指南是为有效使用7系列CLB的设计建议提供的快速核对表。7系列CLB的设计建议: 资源利用 使用通用

    2024年02月03日
    浏览(49)
  • FPGA应用于图像处理

    FPGA(Field-Programmable Gate Array)直译过来就是现场可编程门阵列。是一种可以编程的逻辑器件,具有高度的灵活性,可以根据具体需求就像编程来实现不同的功能。 FPGA器件属于专用的集成电流中的一种半定制电路,是可编程的逻辑阵列,内部有基本的逻辑单元,可配置的逻辑

    2024年02月11日
    浏览(42)
  • FPGA加速技术在智能电网中的应用:介绍FPGA加速技术在智能电网中的应用,探讨其优化策略

    作者:禅与计算机程序设计艺术 作为人工智能专家,程序员和软件架构师,CTO,我今天将为大家介绍FPGA加速技术在智能电网中的应用,并探讨其优化策略。 引言 智能电网作为推动数字化转型和可持续发展的重要手段,其运行的灵活性和可靠性对保障电力系统的安全和稳定至

    2024年02月14日
    浏览(43)
  • FPGA开发必备技能:MATLAB应用

    FPGA开发必备技能:MATLAB应用 FPGA作为一种高性能的可编程逻辑器件,在各个领域都有着广泛的应用。而MATLAB作为一个重要的科学计算软件,也能够在FPGA开发中发挥巨大的作用。本文将介绍如何使用MATLAB来进行FPGA开发。 首先,我们需要了解MATLAB的特点和功能。MATLAB是一款强大

    2024年03月16日
    浏览(51)
  • 高速Serdes技术(FPGA领域应用)

          回顾接口技术发展历史,其实数据的传输最开始是低速的串行接口(Serial Interface,简称串口),为了提高数据的总带宽,首先想到的是增加数据传输位宽,再进一步提升速率。也就是并行接口(Parallel Interface,简称并口)的方式,并逐渐取代传统低速串口成为主流。

    2024年02月04日
    浏览(43)
  • FPGA与DSP:区别与应用

    FPGA与DSP:区别与应用 在数字信号处理领域,FPGA和DSP是两个经常被提到的概念。虽然它们具有一些相似之处,但是它们在设计方式、应用范围、计算能力等方面却有着明显的不同。 FPGA(Field-Programmable Gate Array)即现场可编程门阵列,它是一种可编程的硬件平台。FPGA可以被程

    2024年02月07日
    浏览(43)
  • FPGA应用案例——超级计算机

    01超级计算机和FPGA 1、超算?       大数据、基因科学、金融工程、人工智能、新材料设计、制药和医疗工程、气象灾害预测等领域所涉及的计算处理,家用个人计算机级别的性能是远远不够的。超级计算机(以下简称超算)就是为了解决这种超大规模的问题而开发的。超算并没

    2023年04月23日
    浏览(39)
  • 图形学中的抗锯齿讨论以及在unity中的应用

    抗锯齿(Anti-Aliasing)是图形学中,很重要的一个部分。本文旨在做一些分析总结,并对平时不理解的细节,做了调研,但毕竟不是做GPU行家,所以有不对的地方,欢迎拍砖^^。 下图,是一个在unity中,不开启抗锯齿的情况下的渲染效果,可以看到,边沿区域,例如黄色块的边沿

    2024年02月15日
    浏览(49)
  • FPGA行业应用二:通用仪器行业

    通用仪器指的是电子测试技术中涉及的仪器仪表,如:万用表,示波器,信号发生器,波形发生器,频谱分析仪,功率计,电源,等…… 用于测量,测试,控制,监测。 【FPGA应用场景】 通用仪器产品对于FPGA芯片算是高度依赖,涉及数据采集,传输,信号处理,协议转换,

    2024年02月05日
    浏览(54)
  • 在FPGA设计中怎么应用ChatGPT?

    科技即生产力,最近,OpenAI 发布了 ChatGPT,在各大论坛和许多网站上受到了广泛关注,ChatGPT是由 OpenAI 提出的大型预训练语言模型,使用了许多深度学习技术,可以生成文本内容,也可以进行文本分类、问答等任务。这么强大的功能,自然会有很多人想着测试它的能力,让它

    2024年02月06日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包