三模冗余资源量对比

目录

1.三模冗余简介

2.常见的三模冗余模式

[2.1. 局部 TMR (Local TMR)](#2.1. 局部 TMR (Local TMR))

[2.2. 分布式 TMR (Distributed TMR)](#2.2. 分布式 TMR (Distributed TMR))

[2.3. 全局 TMR (Global TMR)](#2.3. 全局 TMR (Global TMR))

2.4总结与对比

3.全局TMR前后资源消耗量对比

[3.1. 常见的各项指标含义](#3.1. 常见的各项指标含义)

3.2资源消耗量对比


1.三模冗余简介

三模冗余(Triple Modular Redundancy, 简称 TMR )是数字逻辑设计(尤其是航空航天、核工业等高可靠性领域)中一种经典的容错设计技术 。它的核心思想非常简单:"所有事情做三遍,出问题少数服从多数"。通过引入 200% 的硬件冗余(即总共 3 倍的资源),来换取系统在遇到"单粒子翻转(SEU)"或其他硬件故障时的极高可靠性。如果其中一路逻辑出错,另外两路正确的结果会通过"表决器"修正输出。

2.常见的三模冗余模式

2.1. 局部 TMR (Local TMR)

定义: 一份组合逻辑 -> 三份时序单元 (FF) -> 表决器

  • 工作原理:

    • 电路的运算逻辑(组合逻辑)只保留一份。

    • 但是在数据需要保存(写入寄存器/触发器)时,数据被同时写入到 3 个并行的触发器中。

    • 在触发器的输出端,通过一个表决器读取这 3 个值,输出"多数票"的结果。

  • 优点:

    • 节省面积: 因为庞大的组合逻辑云没有被复制,只复制了寄存器,资源消耗相对较小。
  • 缺点/风险:

    • 防不住组合逻辑错误: 如果前面的那"一份"组合逻辑本身受到了干扰(比如粒子撞击导致与门翻转),那么错误的信号会同时传给 3 个触发器,表决器也就失效了(因为 3 票都是错的)。
  • 适用场景: 主要用于保护状态机(FSM)的状态寄存器,防止状态跑飞。

2.2. 分布式 TMR (Distributed TMR)

定义: 三份组合逻辑 + 三份时序单元 + 表决器

  • 工作原理:

    • 这是最标准的 TMR 形式。从输入端开始,整个数据通路被完全复制成三份(Domain A, Domain B, Domain C)。

    • 每一路都有自己独立的运算逻辑和寄存器。

    • 表决器位置: 通常放在下一级逻辑的输入端,或者反馈回路中。这意味着即使某一路的组合逻辑算错了,或者某一路的触发器翻转了,另外两路正常的逻辑流依然能保证数据正确。

  • 优点:

    • 极高的逻辑可靠性: 能够修正组合逻辑产生的瞬态脉冲(SET)和触发器的翻转(SEU)。
  • 缺点:

    • 资源消耗大: 逻辑资源(LUT)和寄存器(FF)都需要原来的 3 倍以上(加上表决器)。
  • 注意: 它通常共享同一个全局时钟树。

2.3. 全局 TMR (Global TMR)

定义: 三份组合逻辑 + 三份时序单元 + 三份全局时钟 + 表决器

  • 工作原理:

    • 这是"分布式 TMR"的加强版。

    • 在分布式 TMR 中,如果那根唯一的"全局时钟线"或者"复位线"受到干扰,三路逻辑可能同时挂掉。

    • 全局 TMR 彻底隔离了三个域(Domain),每个域使用"独立的时钟缓冲器(BUFG)"和复位网络。

  • 优点:

    • 终极可靠性: 消除了一切"单点故障"(Single Point of Failure)。即使某个时钟树部分损坏,另外两个域依然能正常工作。
  • 缺点:

    • 极其昂贵: FPGA 的全局时钟资源(Global Clock Buffers)非常宝贵且有限,这种方式会消耗大量时钟资源。

    • 时序收敛困难: 处理三个时钟域的对齐和表决器的时序非常复杂。

2.4总结与对比

特性 局部 TMR 分布式 TMR 全局 TMR
主要保护对象 寄存器/状态 (SEU) 整个数据通路 (SEU + SET) 整个芯片架构 (含时钟/复位)
资源消耗 (面积) 低 (1.x 倍) 高 (>3 倍) 极高 (>3 倍 + 时钟资源)
抗辐照能力 最强
对时序的影响 中 (表决器引入延时) 大 (布线拥塞 + 逻辑级数增加)

特别提示:

引入 TMR(特别是加了表决器 Voter 之后),会在数据路径上插入额外的组合逻辑(多数表决逻辑:)。这会增加路径延时,恶化 Setup/Hold 时序。如果你在做抗辐照设计,加上 TMR 后,你之前遇到的时序违例可能会更加严重,需要更小心的约束和优化。

3.全局TMR前后资源消耗量对比

3.1. 常见的各项指标含义

  • LUT (Look-Up Table, 查找表)

    • 功能:实现组合逻辑(如加法、逻辑运算等)的核心单元。
  • FF (Flip-Flop, 触发器)

    • 功能:实现时序逻辑(寄存器、存储状态)的单元。
  • IO (Input/Output, 引脚)

    • 功能:芯片实际与外部电路连接的物理引脚。
  • BUFG (Global Buffer, 全局时钟缓冲器)

    • 功能:用于驱动芯片内部全局时钟网络的资源,确保时钟信号同步。

3.2资源消耗量对比

进行全局 TMR(三模冗余) 后,资源占用(LUT)并不是简单的 3 倍关系,从资源利用率图表中可以发现,LUT 的增幅达到了约 13.75 倍 (110 vs 8),而 FF(触发器)和 BUFG(全局时钟缓冲器)则严格遵循了 3 倍 关系(87 vs 29,3 vs 1)。

出现这种情况,主要由以下几个核心原因导致:

(1) 投票器(Voter)的额外开销

TMR 的核心不仅仅是把逻辑复制三份,最关键的是引入了多数表决逻辑(Majority Voters)

  • 同步要求:在 Global TMR 中,为了防止三套逻辑因单点故障产生失步,工具会在每一个寄存器(FF)的反馈路径上插入投票器。

  • 三倍投票器 :为了避免"投票器本身"成为单点故障,Xilinx 的 TMR 技术通常会三倍化投票器(即每个原始 FF 对应 3 个投票器)。

  • 资源占用推算:一个多数表决器通常占用 1 个 LUT。

    • 工程 B 有 29 个 FF

    • 在 TMR 后,这 29 个 FF 对应的投票逻辑就会消耗约个 LUT

    • 原始逻辑 个 LUT。

    • 这与你图中显示的 110 个 LUT 几乎完全吻合。

(2). 逻辑优化受限

在没有 TMR 的普通工程中,Vivado 的综合工具(Synthesis)会进行大量的逻辑优化(如逻辑合并、常数传播等),将简单的逻辑压缩到极少的 LUT 中(你的 baseline 仅用了 8 个 LUT,说明逻辑非常简单)。

一旦开启 Global TMR,工具必须强制维持三套逻辑的物理隔离,许多跨模块的优化被禁止,导致逻辑无法像之前那样被高效压缩。


总结分析表

资源类型 工程 B (Baseline) 工程 A (TMR) 倍数关系 解释
FF (触发器) 29 87 正好 3x 寄存器是严格按位三倍复制的。
BUFG (时钟) 1 3 正好 3x 时钟网络也进行了三倍冗余,以防止时钟域故障。
LUT (查找表) 8 110 约 13.7x 冗余逻辑(3x) + 投票器逻辑(大头)

结论 :在逻辑非常小的工程中(如你的 Baseline 仅 8 个 LUT),投票器的固定开销会占据主导地位,使得 LUT 的增加倍数远超 3 倍。随着你的设计规模增大,逻辑本身的占比提高,这个比例会逐渐向 3 到 4 倍靠拢。

以上就是本次笔记的内容。

相关推荐
嵌入式-老费5 小时前
Linux Camera驱动开发(fpga + csi rx/csi tx)
fpga开发
ALINX技术博客17 小时前
【202601芯动态】全球 FPGA 异构热潮,ALINX 高性能异构新品预告
人工智能·fpga开发·gpu算力·fpga
JJRainbow1 天前
SN75176 芯片设计RS-232 转 RS-485 通信模块设计原理图
stm32·单片机·嵌入式硬件·fpga开发·硬件工程
s9123601011 天前
FPGA眼图
fpga开发
北京青翼科技1 天前
【PCIe732】青翼PCIe采集卡-优质光纤卡- PCIe接口-万兆光纤卡
图像处理·人工智能·fpga开发·智能硬件·嵌入式实时数据库
minglie11 天前
verilog信号命名规范
fpga开发
XINVRY-FPGA1 天前
中阶FPGA效能红线重新划定! AMD第2代Kintex UltraScale+登场,记忆体频宽跃升5倍
嵌入式硬件·fpga开发·硬件工程·dsp开发·fpga
南檐巷上学1 天前
基于FPGA的音频信号监测识别系统
fpga开发·音频·verilog·fpga·傅立叶分析·fft·快速傅里叶变换
Aaron15882 天前
基于RFSOC的数字射频存储技术应用分析
c语言·人工智能·驱动开发·算法·fpga开发·硬件工程·信号处理
碎碎思2 天前
当 FPGA 遇见怀旧计算:486 与 Atari ST 的硬件级重生
fpga开发