UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 10822

EXEMPLAR - LeonardoSpectrum で Virtex に TMR (Triple Module Redundancy) レジスタをインスタンシエートする方法

説明

キーワード : TMR, triple, redundancy, module, register, Leonardo, Spectrum, Exemplar, Leo, モジュール, レジスタ

重要度 : 標準

概要 :
Virtex シリーズには、Virtex RadHard (または Virtex QPro) と呼ばれる信頼性の高いデバイスがあります。 これらは、TMR (Triple Module Redundancy) 機能をインプリメントするために使用します。 RadHard デバイスをターゲットとして使用する場合の詳細については、(Xilinx Answer 12618) を参照してください。

Virtex アーキテクチャでは、トライ ステート バッファはパス トランジスタではなく、実際に配線された AND-OR ロジック構造となっています。 次の例では、TMR レジスタは配線された OR 機能を使用して TMR レジスタをインプリメントします。 これらのエレメントをクロス カップルして、多数決回路のブール ファンクションと同じファンクションを生成します。

また、FD セルは、任意のロジックで置換できます。 この回路では、配線 PIP が SRAM セルにより制御されるため、そのセルの欠陥は BUFE のみに影響し、出力には影響しません 複数のフリップフロップの配線 PIP が同時に破損しない限り、この回路は破損しません。

LeonardoSpectrum の ザイリンクス Virtex ライブラリには、TMR 機能をインプリメントするセルはありません。 ただし、TMR を作成することによって、機能をインプリメントできます。 たとえば、レジスタに TMR 機能が必要な場合、Virtex デバイスではこれを比較的容易に行うことができます。

ソリューション

1

Verilog 例

// Truth Table
// fd1 fd2 fd3 out
// 0 0 0 0
// 0 0 1 0
// 0 1 0 0
// 0 1 1 1
// 1 0 0 0
// 1 0 1 1
// 1 0 1 1
// 1 1 0 1
// 1 1 1 1

module tmr_reg (d_in, clk, q_buft);
input d_in, clk;
output q_buft;

reg reg1_out, reg2_out, reg3_out;

FD fd1 (.Q(reg1_out), .C(clk), .D(d_in));
FD fd2 (.Q(reg2_out), .C(clk), .D(d_in));
FD fd3 (.Q(reg3_out), .C(clk), .D(d_in));

BUFT buft1 (.I(reg1_out), .T(reg3_out), .O(q_buft));
BUFT buft2 (.I(reg2_out), .T(reg1_out), .O(q_buft));
BUFT buft3 (.I(reg3_out), .T(reg2_out), .O(q_buft));

endmodule // tmr_reg

2

VHDL 例

--Truth Table
--fd1 fd2 fd3 out
-- 0 0 0 0
-- 0 0 1 0
-- 0 1 0 0
-- 0 1 1 1
-- 1 0 0 0
-- 1 0 1 1
-- 1 0 1 1
-- 1 1 0 1
-- 1 1 1 1

library ieee;
use ieee.std_logic_1164.all;

entity tmr_reg is
port (d_in : in std_logic;
clk : in std_logic;
q_buft : out std_logic);
end entity;

architecture tmr_reg_arch of tmr_reg is

component FD is
port (D : in std_logic;
C : in std_logic;
Q : out std_logic);
end component;

component BUFT is
port (I : in std_logic;
T : in std_logic;
O : out std_logic);
end component;

signal reg1_out, reg2_out, reg3_out : std_logic;

begin

fd1 : FD port map
(D => d_in,
C => clk,
Q => reg1_out);

fd2 : FD port map
(D => d_in,
C => clk,
Q => reg_out2);

fd3 : FD port map
(D => d_in,
C => clk,
Q => reg_out3);

buft1 : BUFT port map
(I => reg1_out,
T => reg3_out,
O => q_buft);

buft2 : BUFT port map
(I => reg2_out,
T => reg1_out,
O => q_buft);

buft3 : BUFT port map
(I => reg3_out,
T => reg2_out,
O => q_buft);

end architecture;
AR# 10822
日付 09/18/2006
ステータス アーカイブ
種類 一般
このページをブックマークに追加