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

FPGA三模冗余TMR工具(二)

学术和商业领域有许多自动化的三模冗余TMR工具,本文介绍当前主流的基于寄存器传输级的三模冗余工具(Register-Transfer Level,RTL),基于重要软核资源的三模冗余工具,以及新兴的基于高层次综合的三模冗余工具(High Level Synthesis,HLS)

>>>>>>>>>>>接上》》》》》》》》》》》》

FPGA三模冗余TMR工具(二)

2.基于HLS的工具

        使用HLS进行FPGA开发,可以极大缩短开发周期,这对于设计周期冗长的TMR设计来说非常重要。Xilinx分析了使用CPU, GPU等标准专用处理器进行项目设计与使用FPGA平台进行项目设计的时间与性能对比,如下图所示,使用FPGA平台开发与标准专用处理器相同的应用无论是初始版本还是优化版本都具有更高的性能,然而采用RTL设计实现FPGA开发需要较长的开发时间,甚至超出了典型软件开发时间的允许范围。在采用HLS技术之后,FPGA开发的时间大大降低,甚至低于DSP和GPU。

        此外,HLS还可以降低设计的资源利用率。Xilinx高层次综合工具Vitis HLS的前身AutoPi-lot曾将Sphere解码器的4000行C代码算法成功综合到Virtex5 FPGA上, 取得了比Xilinx的Sphere解码器IP更少的逻辑资源使用量。这个结果即便在现在看来也是非常出色的,它很好地证明了HLS有潜力取得比RTL级IP更为出色的性能,基于HLS的TMR工具有潜力降低TMR设计带来的巨额资源消耗。

        HLS技术可以成为解决TMR技术在FPGA上的实现所面临的效率及实用性挑战的一种良好尝试。

2.1 TLegUp

        TLegUp是新南威尔士大学研究的一款在高层次综合阶段实现TMR的工具,该工具基于多伦多大学开发的开源高层次综合工具LegUp,以C语言程序为输入,输出 Verilog的TMR设计。

        该工具使用了上述的系统分级技术以及触发器状态同步技术。首先,TLegUp将输入的C程序通过LLVM(Low Level Virtual Machine)编译器转化为LLVM中间代码(Intermediate Representation,IR);之后从LLVM IR中创建更适合进行系统分级和查找反馈周期的数据流图(Data Flow Graph,DFG);然后使用最大流最小割算法将数据流图划分为大小基本相等的分级,并进行调度与绑定的操作;然后TLegUp会通过深度优先的策略来确定同步表决器的插入位置;在完成全部HLS操作和确定表决器的插入位置后,最后会将每个LLVM IR指令写入RTL块3次,并在先前被标记指令插入的表决器电路,生成TMR设计的 Verilog。

        TLegUp中的关键技术在于表决器的插入,这里TLegUp使用上面所说的系统分级技术和状态同步技术的思想。通过表决器的插入,不仅可以将设计进行多级的分区,增加设计的容错性,同时还可以同步各个域之间的状态,防止错误的扩散。

        精简表决器插入顶层模块输出端口,将电路的每个三模输出信号转换为单个输出信号。TLegUp生成的分级电路中,每个分级对应一个TMR组件,该组件具有3个功能相同的模块,分级表决器被插入到每个分级边界的输出信号之后,来防止错误的积累。此外,为了重新同步各域之间的状态,防止错误扩散,同步表决器插入到每个数据路径的循环部分; 而由于电路必须在每个时钟周期更新FSM寄存器,故FSM的下一个逻辑状态中也需要插入同步表决器进行同步。

        该工具由于LegUp后续的商业化,失去了最新开源版本的更新支持,目前已经发展停滞,但是作为在HLS阶段插入TMR的“先锋”,该工具开辟了FPGA的TMR工具研究的新领域,为该方向的研究搭建了整体的研究框架。

2.2 C-TMR

        德克萨斯大学达拉斯分校提出了一种新型的容错硬件加速器的设计方法,该方法为C程序实现TMR,以三模化后的C程序作为HLS工具的输入,从而能够为容错硬件提供更丰富的搜索空间,来探索面积、性能、可靠性的最优平衡。

        该方法分两阶段进行,如下图所示,第1阶段对HLS的C语言行为输入描述Cin进行源到源的转换,并自动将TMR加入新的行为描述CTMR。第2阶段通过修改HLS工具的设计空间资源管理器,在成本函数中加入可靠性参数,对新生成的行为描述CTMR执行HLS空间探索,从而产生具有面积、性能、可靠性平衡的最优配置列表,最后生成可以容错的硬件电路。

        该方案目前还没有形成完整的工具,但是其对于C行为描述的TMR直接插入与当前基于RTL描述的TMR工具的发展相呼应,是超前而又合理的研究思路。

        在高层次综合阶段插入TMR,可以大幅缩短TMR电路复杂而冗长的设计周期,并且提供流水线设计的机会减轻TMR设计带来的负面时序影响,还可以对设计进行HLS空间探索,从而产生面积、性能、可靠性最均衡的硬件电路,是探索快速便捷、适用广泛的TMR工具的新方向。

3.基于软核的工具

        软核是使用FPGA的逻辑和资源搭建的CPU系统,具有一定的灵活性,Xilinx的MicroBlaze就是常见的软核,由于是使用FPGA的通用逻辑搭建的CPU,因此也会受到单粒子效应的干扰,并且由于其CPU的特殊地位,当受到干扰时,对系统造成的影响也更致命。

        Xilinx在其推出的FPGA设计套件Vivado中也加入了MicroBlaze TMR子系统的IP,旨在提高其软核处理器MicroBlaze的可靠性。MicroBlaze是一种经过优化专门实现在FPGA中的RISC软核处理器,具有使用生成脚本的高度可定制的特性,MicroBlaze TMR子系统包含TMR Manager,TMRVoter,TMR Comparator,TMR Inject和TMRSEM5个IP,如下图所示,是Xilinx开发的一个IP集合,用来自动管理和屏蔽影响MicroBlaze软核的故障。

        MicroBlaze子系统属于容错-故障安全类型,它会在第1次故障后继续工作而不会停止,并将检 测到第2次故障。TMR Manager是TMR子系统IP中的核心组件,它通过持续分析比较器状态来监控故障的出现,如果其中一个出现不匹配,就会断言一个特殊的Break中断信号,并强制出现故障的MicroBlaze子模块开始恢复过程,剩下的两个正常软核将以锁步状态运行,比较器将持续比较它们的输出,如果发生不匹配,则进入崩溃状态,停止MicroBlaze TMR子系统。

        MicroBlaze TMR子系统为软核提供了功能完备的TMR保护策略,但是它仅针对MicroBlaze提供TMR优化,使用范围过于单一局限,是一种针对特殊重要资源的局部保

相关文章:

FPGA三模冗余TMR工具(二)

学术和商业领域有许多自动化的三模冗余TMR工具,本文介绍当前主流的基于寄存器传输级的三模冗余工具(Register-Transfer Level,RTL),基于重要软核资源的三模冗余工具,以及新兴的基于高层次综合的三模冗余工具…...

springboot499基于javaweb的城乡居民基本医疗信息管理系统(论文+源码)_kaic

摘 要 信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自古…...

MF248:复制工作表形状到Word并调整多形状位置

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套,分为初级、中级、高级三大部分,教程是对VBA的系统讲解&#…...

微信流量主挑战:用户破16!新增文档转换(新纪元3)

朋友们,报告好消息!我的小程序用户数量已经涨到16个了!没错,真没拉朋友圈亲戚好友来撑场子,全靠实力(和一点点运气)吸引了16位陌生小伙伴光临!这波进步,连我自己都感动了…...

SelectionArea 实现富文本

使用 SelectionArea Text.rich TextSpan WidgetSpan实现富文本。 前置知识点学习 SelectionArea SelectionArea 是 Flutter 中的一个组件,用于管理文本的选择功能。它允许用户在应用中选择和复制文本,这是在支持文本选择的应用程序中常见的功能。Se…...

upload-labs关卡记录17

该关卡,依旧是上传图片马到服务器,然后借助文件包含漏洞来运行一句话木马,这里还是老样子,先上传我们之前制作的图片马: 上传成功后,复制链接然后通过文件包含漏洞来尝试,发现不可行&#xff1a…...

【Next.js】002-路由篇|App Router

【Next.js】002-路由篇|App Router 文章目录 【Next.js】002-路由篇|App Router一、前言二、文件系统(file-system)1、说明2、演练创建代码运行访问让 Cursor 分析错误别偷懒,还是探究一下 Pages Router 方式吧创建代码运行并访问项目/about …...

如何在 Ubuntu 22.04 上使用 systemctl 管理 systemd 服务教程

简介 Systemd 是许多现代 Linux 发行版提供核心功能的默认服务管理器,而 systemctl 是用户与 systemd 服务交互的方式。这使得 systemctl 成为 Linux 管理员工具箱中重要的一部分。 在本文中,我们将探讨如何使用 systemctl 在使用 systemd 的系统上执行…...

Springboot关于格式化记录

日期格式化 返回前端日期需要格式化 <dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.2</version> </dependency>JsonFormat(pattern "yyyy-MM-dd…...

Android 自定义shell命令

模拟触摸、按键等操作&#xff0c;直接在命令行输入对应命令即可。命令行如何识别并操作此命令&#xff0c;执行操作的是shell程序&#xff0c;还是java程序&#xff1f;是不是可以添加自定义的命令&#xff1f; 以下在Android13的代码中分析input命令 Android系统中使用了一…...

Unity游戏环境交互系统

概述 交互功能使用同一个按钮或按钮列表&#xff0c;在不同情况下显示不同的内容&#xff0c;按下执行不同的操作。 按选项个数分类 环境交互系统可分为两种&#xff0c;单选项交互&#xff0c;一般使用射线检测&#xff1b;多选项交互&#xff0c;一般使用范围检测。第一人…...

TOP K问题:利用堆排序找出数组中最小的k个数

设计一个算法&#xff0c;找出数组中最小的k个数。以任意顺序返回这k个数均可。 找小的数需要建大堆来解决&#xff0c;首先将数组中前K个数建成一个大堆&#xff0c;将从k1个数直到数组结束的所有数与堆顶的数进行比较&#xff0c;如果比堆顶的数小&#xff0c;则替换堆顶的数…...

《信息传播:人工智能助力驱散虚假信息阴霾》

在信息爆炸的时代&#xff0c;虚假信息和谣言如同脱缰野马&#xff0c;肆意传播&#xff0c;对社会秩序和公众生活造成了严重影响。人工智能作为一种强大的技术工具&#xff0c;正逐渐成为信息传播的有力助手&#xff0c;为防止虚假信息和谣言扩散提供了新的途径。 虚假信息和…...

数据权限和角色权限区别

1、概念 角色权限&#xff08;Role-Based Access Control, RBAC&#xff09;和数据权限&#xff08;Data Access Control&#xff09;是两种不同的权限管理策略&#xff0c;它们在权限控制的侧重点和应用场景上有所区别&#xff1a; 角色权限&#xff08;RBAC&#xff…...

Flink的多流转换(分流-侧输出流、合流-union、connect、join)

在实际应用中&#xff0c;我们可能要将多个不同来源的数据连接合并在一起进行处理&#xff0c;也有可能要将一条流拆分成多条流进行处理&#xff0c;这就涉及到了Flink的多流转换问题。简单来说&#xff0c;就是分流和合流两大操作&#xff0c;分流主要通过侧输出流实现&#x…...

DirectUI属性表

<?xml version"1.0" encoding"UTF-8"?> <Controls><Window parent""><Attribute name"size" default"0,0" type"SIZE" comment"窗口的初始化大小,如(800,600)"/><Attribu…...

RBAC权限控制

1、Spring Security 是一个功能强大的Java安全框架&#xff0c;它提供了全面的安全认证和授权的支持。 2 SpringSecurity配置类&#xff08;源码逐行解析&#xff09; Spring Security的配置类是实现安全控制的核心部分 开启Spring Security各种功能&#xff0c;以确保Web应…...

STM32高级物联网通信之以太网通讯

目录 以太网通讯基础知识 什么是以太网 互联网和以太网的区别 1)概念与范围 (1)互联网 (2)以太网 2)技术特点 (1)互联网 (2)以太网 3)应用场景 (1)互联网 (2)以太网 以太网的层次 1)物理层 2)数据链路层 OSI 7层模型 TCPIP 4层模型 一些常见…...

【小程序】全局配置window和tabBar

目录 全局配置 1. 全局配置文件及常用的配置项 全局配置 - window 1. 小程序窗口的组成部分 2. 了解 window 节点常用的配置项 ​编辑 3. 设置导航栏的标题 4. 设置导航栏的背景色 5. 设置导航栏的标题颜色 6. 全局开启下拉刷新功能 7. 设置下拉刷新时窗口的背景色 …...

详解VHDL如何编写Testbench

1.概述 仿真测试平台文件(Testbench)是可以用来验证所设计的硬件模型正确性的 VHDL模型&#xff0c;它为所测试的元件提供了激励信号&#xff0c;可以以波形的方式显示仿真结果或把测试结果存储到文件中。这里所说的激励信号可以直接集成在测试平台文件中&#xff0c;也可以从…...

树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频

使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

Qt Http Server模块功能及架构

Qt Http Server 是 Qt 6.0 中引入的一个新模块&#xff0c;它提供了一个轻量级的 HTTP 服务器实现&#xff0c;主要用于构建基于 HTTP 的应用程序和服务。 功能介绍&#xff1a; 主要功能 HTTP服务器功能&#xff1a; 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

蓝桥杯 冶炼金属

原题目链接 &#x1f527; 冶炼金属转换率推测题解 &#x1f4dc; 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V&#xff0c;是一个正整数&#xff0c;表示每 V V V 个普通金属 O O O 可以冶炼出 …...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能&#xff1a;服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...

tomcat指定使用的jdk版本

说明 有时候需要对tomcat配置指定的jdk版本号&#xff0c;此时&#xff0c;我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...

抽象类和接口(全)

一、抽象类 1.概念&#xff1a;如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象&#xff0c;这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法&#xff0c;包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中&#xff0c;⼀个类如果被 abs…...

协议转换利器,profinet转ethercat网关的两大派系,各有千秋

随着工业以太网的发展&#xff0c;其高效、便捷、协议开放、易于冗余等诸多优点&#xff0c;被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口&#xff0c;具有实时性、开放性&#xff0c;使用TCP/IP和IT标准&#xff0c;符合基于工业以太网的…...

【UE5 C++】通过文件对话框获取选择文件的路径

目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 &#xff0c;这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器&#xff0c;右键点击 .uproject 文件&#xff0c;选择 "Generate Visual Studio project files"&#xff0c;重…...