三模冗余资源量对比

目录

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 倍靠拢。

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

相关推荐
XINVRY-FPGA4 小时前
XC7VX690T-2FFG1761I Xilinx AMD FPGA Virtex-7
arm开发·嵌入式硬件·fpga开发·硬件工程·fpga
FPGA_无线通信6 小时前
FPGA 组合逻辑和时序逻辑
fpga开发
Js_cold7 小时前
Xilinx FPGA温度等级及选型建议
fpga开发·fpga·vivado·xilinx
从此不归路9 小时前
FPGA 结构与 CAD 设计(第5章)上
fpga开发
洋洋Young9 小时前
【Xilinx FPGA】7 Series Clocking 设计
fpga开发·xilinx fpga
156082072199 小时前
FPGA下AD采集时钟相位的调整
fpga开发
从此不归路9 小时前
FPGA 结构与 CAD 设计(第5章)下
fpga开发
Js_cold12 小时前
Xilinx FPGA Flash启动时钟频率
单片机·嵌入式硬件·fpga开发·vivado·xilinx·flash·cclk
博览鸿蒙1 天前
FPGA的学习路径和入行指南
fpga开发