当前位置: 首页 > news >正文

配置刷新技术

FPGA 片上三模冗余( TMR) 设计结合配置刷新( Scrubbing) 的防护方法能够有效地提高系统的抗单粒子翻转性能。

        三模冗余的方法利用模块三冗余及三取二自动表决来掩蔽错误,但是如果错误积累到一定程度,导致同时有两个或两个以上模块发生翻转错误,三模冗余的掩蔽功能就会失效。因此,必须利用配置刷新及时纠正已发生的翻转错误。

        配置刷新的方法通过连续的回读检测或周期性的回写及时纠正翻转错误。这种方法通常需要连续地占用配置端口,这就限制了部分FPGA 的局部重构( Partial Reconfiguration) 功能。

        FPGA 的局部重构是指在系统运行的情况下,对设计中的某些子模块进行功能的升级或修改。这种功能在航天应用中有重要意义。

配置刷新一般有全局复位刷新和动态刷新两种方法。

        全局复位刷新的方法是指,在每隔一定时间拉低FPGA 的PROG 管脚,对FPGA 进行全局的重配置,完成刷新。这种方法会造成FPGA 的功能中断。动态刷新是指,在不中断FPGA 功能的情况下,对FPGA 内部的配置空间进行整体或局部的刷新。

配置刷新能够有效纠正FPGA 中发生的单粒子翻转错误。其基本思想是将正确的配置数据按照一定的规则写入到FPGA 的配置空间内,刷新其内容。

通常来讲,实现配置刷新需加入额外的配置控制器来控制刷新的过程。其系统结构示于下图。


        图中左侧的存储器中存储着原始的配置数据,为了防止其中的配置数据受到单粒子效应的影响发生翻转,通常该存储器采用抗单粒子翻转的存储器件,如PROM 等。

        配置存储器用于控制整个刷新的过程,通过配置端口对目标FPGA 的配置空间进行刷新。目标FPGA 中是待保护的设计实体,其中的配置端口可以是JTAG、Select MAP 及ICAP 中的一种。

按照配置刷新过程中写入规则的不同,可以将配置刷新的方法分为检测刷新和直接刷新两大类。

1 检测刷新

        这种方法利用FPGA 的回读功能,将配置空间中的数据进行回读,然后与外部的原始配置数据进行比较校验,检测出错误后,对出错帧进行刷新,完成纠错。比较校验的方法通常有两种: 一种是直接将回读数据与原始配置数据进行比较,另一种是比较二者的编码值( 例如: CRC 码) 。检测刷新能够准确地发现并纠正翻转错误,但控制逻辑相对复杂。

2 直接刷新

        与检测刷新不同,直接刷新的方法省掉了比较检测的过程,只是周期性地对配置空间进行逐帧的刷新。这种方法的控制逻辑相对简单,但对FPGA 的写入操作明显增多,将增大写入过程中发生故障的概率。


文章转载自:

http://MEfawOEU.knzdt.cn
http://iZpLr8Sm.knzdt.cn
http://6EmyiCds.knzdt.cn
http://0HfuHUqN.knzdt.cn
http://FQdlP3Lf.knzdt.cn
http://BCqiJR5m.knzdt.cn
http://UWUaoDF7.knzdt.cn
http://70Ex1Gdy.knzdt.cn
http://EdZlifj7.knzdt.cn
http://IKqHSEON.knzdt.cn
http://bQFShnTc.knzdt.cn
http://AwsqzaPA.knzdt.cn
http://lOsMph3f.knzdt.cn
http://KgwDgaiB.knzdt.cn
http://8HhPkJ4c.knzdt.cn
http://bJ338FNK.knzdt.cn
http://LTNGie9A.knzdt.cn
http://T34vXJi3.knzdt.cn
http://mQaR0ol6.knzdt.cn
http://RPQlmzLB.knzdt.cn
http://WyqThIFo.knzdt.cn
http://x1lsEWtx.knzdt.cn
http://y9RGOPKI.knzdt.cn
http://VMYDfVN9.knzdt.cn
http://7hq2l2vh.knzdt.cn
http://OoLPC8id.knzdt.cn
http://Ybqr8RPd.knzdt.cn
http://Ux48W7z8.knzdt.cn
http://67ElY0b6.knzdt.cn
http://XBANHhOb.knzdt.cn
http://www.dtcms.com/a/227839.html

相关文章:

  • DAY01:【ML 第三弹】基本概念和建模流程
  • JS手写代码篇---手写类型判断函数
  • Python中三种不同包读取csv文件数据的方式:numpy、pandas、csv
  • Shell
  • android binder(三)binder.c函数分析
  • hadoop伪分布式配置(单机)
  • Unity中的MonoSingleton<T>与Singleton<T>
  • 回测效率提升500%!khQuant打板策略回测性能深度剖析——基于miniQMT的回测系统深度优化【AI量化第29篇】
  • AI矢量软件|Illustrator 2025网盘下载与安装教程指南
  • PAT-甲级JAVA题解(更新中...)
  • 浅写弱口令与命令爆破
  • 中科院报道铁电液晶:从实验室突破到多场景应用展望
  • 动中通天线跟踪性能指标的测试
  • windows11安装scoop 20250602
  • RAG入门 - Retriever(1)
  • 每天总结一个html标签——a标签
  • 第一章:计算机系统概论
  • AI智能体|扣子(Coze)搭建【合同/文档审查】工作流
  • Modern C++(二)预处理器及表达式
  • 嵌入式开发之STM32学习笔记day16
  • 安装DockerDocker-Compose
  • Playwright Python API 测试:从入门到实践
  • LearnOpenGL-笔记-其十三
  • ROS 2源换源后GPG错误解决方法
  • LangChain输出格式化实践:提升测试工程师LLM开发效率的完整指南
  • Python训练营---Day43
  • 云服务器突发宕机或无响应怎么办
  • <6>, 界面优化
  • 【PCB设计】STM32开发板——电源设计
  • 第二章支线五 ·CSS炼金续章:变量与暗黑主题术