配置数据的抗辐照加固方法

news2025/1/8 21:02:40

        SRAM 型FPGA 的配置存储器可以看成是由0 和1 组成的二维阵列,帧的高度为矩阵阵列的高度,相同结构的配置帧组成配置列,如CLB 列、IOB 列、输入输出互联(Input Output Interconnect,IOI)列、全局时钟(Global Clock, GCLK)列、BRAM 列和BRAM 互联列。配置存储器阵列由3 个独立的模块组成,即CLB 块(包含CLB、GCLK、IOB、IOI)、BRAM块和BRAM 互联块,其中这两个BRAM 块包含了SRAM 型FPGA 所有BRAM 单元的数据和互联,CLB 块则包含了FPGA 中可编程单元的所有配置信息。

不同型号的SRAM 型FPGA 列数及每列对应的帧数有所区别,且在比特流中的位置也有差异。

1.配置数据容错方案

        回读是将内部配置存储器中的指定数据帧读出的过程,可以用来校验当前的配置数据是否正确。对于回读数据的校验,常用的方法有两种:一种方法是逐位比对法,另一种方法是CRC 校验。

1.1逐位比对法

        逐位比对法是将回读数据帧和原始的配置文件中比特流的位映射进行逐比特比较,如下图所示,但并非所有的回读数据都被用来校验,例如配置RAM 中的数据跟用户的设计相关且处于动态变化过程中,用户逻辑比特是为了内部寄存器状态而保留的存储器位置,下图 中的Mask 过滤文件就被用来过滤配置RAM 和用户逻辑比特。可见此过程需要保存配置文件以及过滤文件,并且过滤文件的大小与配置文件相同,这样增加了系统设计需要的存储器资源,因此该方法存在一定的局限性。

1.2CRC 校验

        相比之下,CRC 校验只需要保存正确的CRC结果值就能校验配置数据的正确性,对系统资源的消耗较少,因此常采用此方式进行回读校验。

        回读除了用于调试和验证外,还可以通过回读校验判断配置数据是否出现单粒子翻转,并对出现单粒子翻转的回读进行刷新操作。刷新是一种简单的对FPGA配置数据进行重新写入的方法,刷新可以分为外部刷新和内部刷新两种方式。

2.刷新

2.1外部刷新

        外部刷新示意图如下图所示,其中原始配置数据一般存储在外部的PROM 中,并通过JTAG 接口或SelectMAP 接口来读写配置数据,完成对内部配置RAM 的刷新操作,此方案设计较为复杂,多出的外部PROM 也增加了系统的消耗。

2.2内部刷新

        内部刷新方式更加方便灵活,如下图所示,该方式不需要外部存储器,依靠内部配置的ICAP 接口完成刷新时的读写操作,大大缩短了读写时间,并简化了系统的设计。

        基于配置刷新方式进行SEU 故障修复又可分为定时刷新和局部重配置两种方式。

2.3定时刷新

        定时刷新就是以一定的刷新频率对FPGA 已写入的内容进行全局覆盖,该方式实现相对简单,但是由于缺乏故障检测操作,大部分资源被浪费在了纠正已有的正确数据上,且易打断FPGA 的正常工作状态,导致刷新效率较低。

2.4局部配置

        而局部重配置手段则克服了这样的缺陷,和芯片的重启和完全重新配置不同,局部重配置可使新数据下载到芯片上指定的区域,而芯片的其他部分保持不变甚至仍保持正常工作状态。对于Virtex-II 系列FPGA 而言,其动态重构和局部重配置可在Slave SelectMAP 模式或边界扫描配置模式下完成,这样能有效地提高系统的工作效率和可靠性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2273422.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【学习路线】Python 算法(人工智能)详细知识点学习路径(附学习资源)

学习本路线内容之前,请先学习Python的基础知识 其他路线: Python基础 >> Python进阶 >> Python爬虫 >> Python数据分析(数据科学) >> Python 算法(人工智能) >> Pyth…

【Vue3项目实战系列一】—— 全局样式处理,导入view-ui-plus组件库,定制个性主题

😉 你好呀,我是爱编程的Sherry,很高兴在这里遇见你!我是一名拥有十多年开发经验的前端工程师。这一路走来,面对困难时也曾感到迷茫,凭借不懈的努力和坚持,重新找到了前进的方向。我的人生格言是…

SCAU期末笔记 - 数据库系统概念往年试卷解析

数据库搞得人一头雾水,题型太多太杂,已经准备摆烂了。就刷刷往年试卷,挂不挂听天由命。 2019年 Question 1 选择题 1. R ∩ S R∩S R∩S等于一下哪个选项? 画个文氏图秒了 所以选A. R ∩ S R − ( R − S ) R∩SR-(R-S) R∩…

oxml中创建CT_Document类

概述 本文基于python-docx源码,详细记录CT_Document类创建的过程,以此来加深对Python中元类、以及CT_Document元素类的认识。 元类简介 元类(MetaClass)是Python中的高级特性。元类是什么呢?Python是面向对象编程…

Fabric环境部署

官方下载文档:A Blockchain Platform for the Enterprise — Hyperledger Fabric Docs main documentation 1.1 创建工作目录 将Fabric代码按照GO语言的推荐方式进行存放,创建目录结构并切换到该目录下。具体命令如下: mkdir -p ~/go/src/g…

TCP与DNS的报文分析

场景拓扑: 核心路由配置: 上(DNS):10.1.1.1/24 下(WEB):20.1.1.1/24 左(client):192.168.0.1/24 右(PC3):192.168.1.1/24Clint2配置&a…

怎么管理电脑usb接口,分享四种USB端口管理方法

怎么管理电脑usb接口,分享四种USB端口管理方法 USB接口作为电脑重要的外部接口,方便了数据传输和设备连接。 然而,不加管理的USB接口也可能带来安全隐患,例如数据泄露、病毒传播等。 因此,有效管理电脑USB接口至关重…

教育咨询系统架构与功能分析

一、系统架构 服务端 服务端:Java(最低JDK1.8,支持JDK11以及JDK17)数据库:MySQL数据库(标配5.7版本,支持MySQL8)ORM框架:Mybatis(集成通用tk-mapper&#x…

nginx http反向代理

系统:Ubuntu_24.0.4 1、安装nginx sudo apt-get update sudo apt-get install nginx sudo systemctl start nginx 2、配置nginx.conf文件 /etc/nginx/nginx.conf,但可以在 /etc/nginx/sites-available/ 目录下创建一个新的配置文件,并在…

代码管理助手-Git

前言 Git 是一个版本控制系统,可以帮助你记录文件的每一次修改。这样,如果你在编程时不小心把代码写错了,可以很容易地回退到之前的版本。最重要的是,Git 是完全免费的,用户可以在自己的计算机上安装和使用 Git&#x…

注册中心如何选型?Eureka、Zookeeper、Nacos怎么选

这是小卷对分布式系统架构学习的第9篇文章,第8篇时只回答了注册中心的工作原理的内容,面试官的第二个问题还没回答,今天再来讲讲各个注册中心的原理,以及区别,最后如何进行选型 上一篇文章:如何设计一个注册…

WebRtc02: WebRtc架构、目录结构、运行机制

整体架构 WebRtc主要分为三层: CAPI层:外层调用Session管理核心层:包括视频引擎、音频引擎、网络传输 可由使用者重写视频引擎:编解码器、视频缓存、视频增强音频引擎:编解码器、音频缓存、回音消除、降噪传输&#x…

【Java】JVM内存相关笔记

Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。 程序计数器&am…

基于springboot的网上商城购物系统

作者:学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等 文末获取“源码数据库万字文档PPT”,支持远程部署调试、运行安装。 目录 项目包含: 开发说明: 系统功能: 项目截图…

STM32 拓展 低功耗案例3:待机模式 (hal)

配置PA0的两种方式: 第一种 第二种 复制寄存器代码然后对其进行修改 mian.c /* USER CODE BEGIN Header */ /********************************************************************************* file : main.c* brief : Main program body…

VLMs之Agent之CogAgent:《CogAgent: A Visual Language Model for GUI Agents》翻译与解读

VLMs之Agent之CogAgent:《CogAgent: A Visual Language Model for GUI Agents》翻译与解读 导读:这篇论文介绍了CogAgent,一个专注于图形用户界面 (GUI) 理解和导航的视觉语言模型 (VLM)。这篇论文提出了一种新的视觉语言模型 CogAgent&#…

HTML+CSS+JS制作中华传统文化主题网站(内附源码,含5个页面)

一、作品介绍 HTMLCSSJS制作一个中华传统文化主题网站,包含首页、文化艺术页、传统工艺页、文化遗产页、关于我们页等5个静态页面。其中每个页面都包含一个导航栏、一个主要区域和一个底部区域。 二、页面结构 1. 顶部导航区 包含网站 Logo、主导航菜单&#xff…

笔记-使用ffmpeg产生rtsp视频流,然后用进行VLC播放

笔记-使用ffmpeg产生rtsp视频流,然后用进行VLC播放 1.软件配置1.1下载安装好**ffmpeg**1.2使用EasyDarwin创建RTSP服务器 2.FFmpeg找本地摄像头名字3.FFmpeg推流命令3.1使用VLC实现拉流 1.软件配置 1.1下载安装好ffmpeg ffmpeg官网 本地下载 1.2使用EasyDarwin创…

【竞技宝】CS2:HLTV2024职业选手排名TOP8-broky

北京时间2025年1月7日,HLTV年度选手排名正在持续公布中,今日凌晨正式公布了今年的TOP8为FAZE战队的broky。 选手简介 broky是一位来自拉脱维亚的职业CS选手,现年23岁。2018年7月,broky获得了FPL资格,连续几季在榜上前5。他的首次赛场留名是跟随拉脱维亚本土战队Wolsung出征BES…

Java到底是值传递还是引用传递????

在搞懂这个问题之前, 我们要首先了解什么是值传递, 什么是引用传递? 值传递: 传递的是数据的副本,修改副本不会影响原始数据。引用传递: 传递的是数据的引用(地址),修改引用会直接影响原始数据. 也就是说,值传递和引…