一种基于动态部分重构的FPGA自修复控制器

1.FPGA动态部分重构技术

        动态部分重构技术指在FPGA运行时,通过加载部分位流文件来修改FPGA可重构区域中的逻辑设计,修改过程中其余逻辑功能不受影响整个系统也能够持续运行。

        下图为FPGA动态部分重构的基本原理图。通过下载A1.bit、A2.bit、A3.bit 或A4.bit 中任一位流文件,可以修改可重构区域A 中的逻辑功能。FPGA设计中的逻辑可分为静态逻辑和可重构逻辑,图中密集方格区域中的逻辑为静态逻辑,区域A中的逻辑为可重构逻辑。当系统加载部分位流文件时静态逻辑保持运行状态,而可重构逻辑由部分位流文件的配置信息代替。

        FPGA动态部分重构技术可以通过有限的硬件资源实现FPGA内部逻辑的动态实时多路复用。

2.基干动态部分重构的FPGA自修复控制器设计

        介绍一款基于AXI总线协议设计了FPGA自修复控制器,如下图所示。当接收到功能模块发出的故障自检测信号后,根据所需配置位流的大小和地址信息,通过DMA控制器生成对应的总线读控制信号送入处理器系统。经过处理器系统的接口协议转换后,DMA控制器读取外部配置存储器中指定地址和长度的配置位流并传输到内部的异步FIFO中,再经过配置接口控制器将配置信息传输到内部配置接口,完成对FPGA动态部分重构。

        顶层电路如下图所示,其中FCi_Repair表示系统中功能模块FCi的故障自检测信号。

        下表为自修复控制器与ICAP接口之间的通信信号,主要用于自修复控制器对ICAP接口的配置控制将配置信息写入ICAP接口并返回重构过程信号。

        下表为自修复控制器与外部存储器通信的AXI总线读控制信号。

3.电路验证方案

        上图为自修复控制器的电路验证实验方案图,将自修复控制器与ICAP接口、接口转换模块和外部配置存储器相连接手动触发系统功能模块FC3的故障自检测控制信号,通过用FPGA的内嵌逻辑分析仪ILA观察自修复控制器的位流配置过程。其中,自修复控制器工作时钟频率和ICAP接口时钟频率为100MHz采用DDR3芯片作为外部配置存储器进行实验。

4.电路结果

        如图所示在ILA监测窗口的第500个监测点处捕获到功能模块FC3的故障自检测信号,290ns后,自修复控制器开始工作,地址控制有效信号arvalid被拉高有效,同时读控制信号arlen、arsize和地址信号araddr准备传输。10ns后arvalid 和 arready(低有效)同时被拉低,存储器等待接收地址/控制信号,rready拉高有效自修复控制器允许接收存储器配置数据。40ns后,自修复控制器拉高地址控制有效信号arvalid,开始向存储器发送配置位流的地址信号。在第550个监测点时存储器向自修复控制器发送读通道的有效信号rvalid,配置位流开始读入,经过自修复控制器内部32位的异步FIFO向ICAP接口传输。当cap_req信号拉高后,配置信息开始从异步FIFO传输到ICAP接口功能模块开始重构。图中可以看出从自修复信号触发到数据配置到ICAP接口,一共经历了59个时钟周期。

        如上图所示在第717个监测点时,自修复控制器和存储器完成一次握手,开始向存储器传输地址信号,持续900ns后读信号的最后一次传输标记rlast被拉高,存储器向自修复控制器输送地址段对应的数据流,直到第973个监测点时,一个地址段的数据传输完成,开始传输下一地址段数据。由arlen和arsize可以看出每个地址段传输一共读了两次数据,每次读了255个字节的数据,历时256个时钟周期共2560ns,可以计算出100M工作频率下,重构速度约为200bit/ms。

        上图所示在第492个监测点时ready和rvalid信号同时拉低,自修复控制器不再发送地址和读控制信号,也不再向ICAP接口传输配置信息。80ns后自修复控制器拉低cap_reqg 信号重构自修复完成。

5.性能分析

5.1可靠性

        评价系统可靠性的定量测度称为可靠度,可靠度指系统在t时刻正常工作的条件下,在时间区间[t0,t]内能正常工作的概率常用 R(t)表示。若一个模块的失效率为常数λ,则它的可靠度为

R(t)=e-λt

        对于一个可维修的系统,它的平均寿命可以用系统的平均无故障间隔时间TMTBF(mean time between failures,MTBF)来表示[即可靠度R(t)的均值表达式如下:

        对于一个不可维修的系统,它的平均寿命可以用系统的平均无故障运行时间MTTF(mean time to failures,MTTF)来表示,MTTF和MTBF表达式完全相同,只是针对不同类型系统的可靠性表达方式。

        采用本文自修复控制器的系统与故障自检测电路的设计方式相关,当系统采用时间余自检测电路时,该自修复控制器可靠性与回读刷新及定时刷新相同,设刷新可修复率为μ,则配置刷新的可靠性可以表示为

        可以计算出三模余的可靠性为

        以失效率λ=1x10-6/h刷新可修复率为μ∈[0,1]为例绘制如下图所示的可靠性MTTF/MTBF对比分析图。由图可知,配置刷新法的可靠性MTBF都随μ增大而快速提升且始终高于三模冗余。

5.2硬件资源消耗

        以32位流水线乘法器功能为例分别对三模冗余、回读刷新、定时刷新和采用自修复控制器的配置刷新进行硬件资源消耗对比。如下表所示,采用自修复控制器的配置刷新资源消耗是定时刷新法的2.94倍,较三模冗余法减少了12.76%,较回读刷新法减少了34.79%。

5.3时间消耗分析

        设系统的工作时钟周期为Tclk,重构时钟周期为Treclk部分配置位流的大小为Nbit(字节)则本文应用系统的故障修复时间为5Tclk+58Treclk+(Nbit/200)μs,物理实验中取Tclk =50MHz,Treclk =100MHz。基于zynq7020系SOC芯片其中最小重构单元即一帧位流的大小为Nbit =37381个字节,全局位流大小为151484个字节,可以计算出一次故障修复时间约为190.84μs。下表为一次故障的修复时间对比分析表,可见在配置刷新中,基于动态部分重构的配置刷新最快只需要191μs,实验中较回读刷新法减少了92.17%,较定时刷新法减少了84.07%。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络体系结构基础知识

一、计算机网络的两个目标: ①两台计算机之间通信 ②两台计算机之间的资源共享 二、计算机网络概述 1.定义:利用通信线路将地理上分散的、具有独立功能的计算机系统和通信设备按不同 的形式连接起来,以功能完善的网络软件及协…

云计算学习架构篇之HTTP协议、Nginx常用模块与Nginx服务实战

一.HTTP协议讲解 1.1rsync服务重构 bash 部署服务端: 1.安装服务 [rootbackup ~]# yum -y install rsync 2.配置服务 [rootbackup ~]# vim /etc/rsyncd.conf uid rsync gid rsync port 873 fake super yes use chroot no max connections 200 timeout 600 ignore erro…

合合信息亮相CSIG AI可信论坛,全面拆解AI视觉内容安全的“终极防线”

合合信息亮相CSIG AI可信论坛,全面拆解视觉内容安全的“终极防线”! 🐯 AI伪造泛滥,我们还能相信“眼见为实”吗? 近期,由中国图象图形学学会主办的CSIG青年科学家会议 AI可信论坛在杭州成功举办。本次论…

AI 智能助手对话系统

一个基于 React 和 Tailwind CSS 构建的现代化 AI 对话系统,提供流畅的用户体验和丰富的交互功能。 项目链接:即将开放… 功能特点 🤖 智能对话:支持与 AI 助手实时对话,流式输出回答📁 文件处理&#xff…

经验证:将数据从索尼传输到Android的 4 种方法

概括 像Android Galaxy S20 这样的新型Android智能手机很酷,但除了将数据从索尼传输到Android之外。众所周知,旧的索尼手机上存储着大量的文件,因此将数据从旧的索尼手机传输到新的Android手机非常重要。为了解决这个问题,我们做…

IDEA 搭建 SpringBoot 项目之配置 Maven

目录 1?配置 Maven 1.1?打开 settings.xml 文件1.2?配置本地仓库路径1.3?配置中央仓库路径1.4?配置 JDK 版本1.5?重新下载项目依赖 2?配置 idea 2.1?在启动页打开设置2.2?配置 Java Compiler2.3?配置 File Encodings2.4?配置 Maven2.5?配置 Auto Import2.6?配置 C…

走方格(蓝桥杯2020年试题H)

【问题描述】在平面上有一些二维点阵。这些点的编号就像二维数组的编号一样,从上到下依次为第1~n行,从左到右依次为第1~m列,每个点可以用行号和列号表示。 现在有个人站在第1行第1列,他要走到第n行第m列,只能向右或者向…

python opencv的orb特征检测(Oriented FAST and Rotated BRIEF)

官方文档:https://docs.opencv.org/4.10.0/d1/d89/tutorial_py_orb.html SIFT/SURF/ORB对比 https://www.bilibili.com/video/BV1Yw411S7hH?spm_id_from333.788.player.switch&vd_source26bb43d70f463acac2b0cce092be2eaa&p80 ORB代码 import numpy a…

全面解析 Node-RED:功能、Docker 部署与实战示例

言简意赅的讲解Node-RED解决的痛点 Node-RED 是一个基于流的编程工具,专为物联网(IoT)应用而设计。它通过可视化的编程界面,使开发者能够轻松地连接各种硬件设备、API 以及在线服务,构建复杂的应用流程。本文将详细介…

使用 CSS 的 `::selection` 伪元素来改变 HTML 文本选中时的背景颜色

定义 ::selection 伪元素: 在你的 CSS 文件中,添加 ::selection 伪元素,并设置 background-color 属性来改变选中文本的背景颜色。 示例代码: ::selection {background-color: yellow; /* 你可以根据需要更改颜色 */color: black…

电商项目-数据同步解决方案(四)商品下架同步更新ES索引库数据

商品下架索引库删除数据 一、 需求分析和业务逻辑 商品下架后将商品从索引库中移除。 主要应用技术有: 消息队列-RabbitMQ ,分布式搜索引擎-ElasticSearch,Eureka,Canal,Feign远程调用 (1)在…

HTML5 标签输入框(Tag Input)详解

HTML5 标签输入框(Tag Input)详解 标签输入框(Tag Input)是一种用户界面元素,允许用户输入多个标签或关键词,通常用于表单、搜索框或内容分类等场景。以下是实现标签输入框的详细讲解。 1. 任务概述 标…

创建线程的8种方法

创建线程的8种方法 目录 继承Thread类实现Runnable接口实现Callable接口使用线程池使用ScheduledExecutorService使用Fork/Join框架使用CompletableFuture使用Guava的ListenableFuture总结 1. 继承Thread类 最直接的方式是创建一个继承自Thread类的子类,并重写其r…

计算机网络—————考研复试

第一章、计算机网络体系结构 1. OSI参考模型和TCP/IP模型: OSI与TCP/IP的记忆方法:只需把OSI的七层记住,将应用层、表示层、会话层一起记,到TCP/IP变成应用层。物理层和数据链路层换成网络接口层。把网络层换个字变成网际层。 而…

word运行时错误‘-2147221164(80040154)’ 没有注册类的解决办法

目录 问题描述解决方案 问题描述 解决方案 打开C盘找到路径C:\Users\Administrator\AppData\Roaming\Microsoft\Word\STARTUP或者在everything中搜索“Microsoft\Word\STARTUP”删除NEWebWordAddin.dotm文件即可正确打开word。

虚拟机Centos下安装Mysql完整过程(图文详解)

目录 一. 准备工作 1. 设置虚拟机静态IP 2. 卸载Mysql 3. 给CentOS添加rpm源 二. 安装MySQL 1. 安装mysql服务 2. 启动mysql服务 3. 开启MySQL开机自启动 4. 查看mysql服务状态 5. 查看mysql初始密码 6. 登录mysql ,修改密码 7. 允许外部访问MySQL数据库…

VScode 只能运行c,运行不了c++的解决问题

原文链接:Vscode只能运行c,运行不了c的解决方法 VScode 只能运行c,运行不了c,怎么回事呢,解决问题: 在tasks.json中加上“"-lstdc"”, 这样之后 要重启VScode,点击链接…

driftingblues6靶机

打开靶场 查看页面源代码,最下面有一个注释,提供了一个网址 vmlist.github.io,我们去访问一下 这里是一个github页面,提供攻防虚拟机的下载,对我们解题并没有什么有用的信息,我们再去扫描端口 发现只有80端…

YOLOv5部署到web端(flask+js简单易懂)

文章目录 前言最终实现效果图后端实现 主界面检测函数检测结果显示 前端实现 主界面(index.html)显示图片界面 总结 前言 最近,老板让写一个程序把yolov5检测模型部署到web端,在网页直接进行目标检测。经过1个星期的努力,终于实…

基本算法——聚类

目录 创建工程 加载数据 聚类算法 评估 完整代码 结论 相比于有监督的分类器,聚类的目标是从一组未打标签的数据中识别相似对象组。它可 以用于识别同类群体的代表性样本,找到有用与合适的分组;或者找到不寻常的样本,比如 异…