Xilinx XAPP645 Virtex-II Pro デバイス アプリケーション ノート『シングル エラー訂正およびダブル エラー 検出』

Similar documents
XAPP453 「3.3V 信号を使用した Spartan-3 FPGA のコンフィギュレーション」 v1.0 (02/05)

増設メモリ 1. 機能 型名 N N N N N GB 16GB 3 (x2 枚 ) (x2 枚 ) (x2 枚 ) (8GBx2 枚 ) (16GBx2 枚 ) DDR3-1066(PC3-8500) 動作クロック

増設メモリ 1. 機能 型名 N N N (x1 枚 ) (x1 枚 ) (x1 枚 ) DDR3-1333(PC ) SDRAM-DIMM, Unbuffered,ECC 動作クロック 667MHz( 差動 ) 1.5V 型名 N8102

増設メモリ 1. 機能 型名 N8102-G342 N8102-G343 N8102-G344 1GB (1GBx1 枚 ) (x1 枚 ) (x1 枚 ) SDRAM-DIMM, Unbuffered,ECC 1.5V 型名 N N N (1GBx1

増設メモリ (2010/06/17)

増設メモリ 1. 機能 型名 N N N N GB (x1 枚 ) (x1 枚 ) (x1 枚 ) (8GBx1 枚 ) DDR3-1333(PC ) 動作クロック 667MHz( 差動 ) 1.5V 型名 N8102-3

-2 外からみたプロセッサ GND VCC CLK A0 A1 A2 A3 A4 A A6 A7 A8 A9 A10 A11 A12 A13 A14 A1 A16 A17 A18 A19 D0 D1 D2 D3 D4 D D6 D7 D8 D9 D10 D11 D12 D13 D14 D1 MEMR

増設メモリ 1. 機能仕様 型番 製品名 備考 N GB 増設メモリボード DDR3-1333(PC ) SDRAM, Unbuffered N GB 増設メモリボード DDR3-1333(PC ) SDRAM, Unbuffered N8

増設メモリ 1. 機能仕様 型番製品名備考 N GB 増設メモリボード (2x 4 GB/U) DDR3L-1333(PC3L-10600) SDRAM ECC 付 Registered, 2GBx2 枚の N GB 増設メモリボード DDR3L-1600(PC3

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?

SOPC Builder ペリフェラル 簡易ユーザ・ガイド - PIO (Parallel I/O)

ザイリンクス アプリケーション ノート XAPP709 : Virtex-4 FPGA デバイスを使用した DDR SDRAM コントローラ

テクニカルガイド 増設メモリ

スライド 1

テクニカルガイド 増設メモリ

スライド 1

DS099-E09: XC3S5000 FPGA エラッタおよび Spartan-3 データシートの確認

Nios II - PIO を使用した I2C-Bus (2ワイヤ)マスタの実装

1. ボードの複数台制御 コンフィグ ROM から FPGA が起動できる場合を想定しています FPGA 回路には 特定のレジスタアドレスにプリセットしたデータが必要です 製品出荷時のサンプル FPGA 回路では レジスタ No.3 を 8bit 幅に設定し FPGA 外部の 4bit ディップスイ

Microsoft Word - 実験4_FPGA実験2_2015

増設メモリ 1. 機能 型名 N N N N GB (x1 枚 ) (x1 枚 ) (x1 枚 ) (8GBx1 枚 ) DDR3-1066(PC3-8500) SDRAM-DIMM, Registered,ECC 動作クロック 53

VelilogHDL 回路を「言語」で記述する

アナログ・接点変換器

「電子政府推奨暗号の実装」評価報告書

CMOS リニアイメージセンサ用駆動回路 C CMOS リニアイメージセンサ S 等用 C は当社製 CMOSリニアイメージセンサ S 等用に開発された駆動回路です USB 2.0インターフェースを用いて C と PCを接続

Microsoft PowerPoint - 3.3タイミング制御.pptx

XAPP932, 色差信号リサンプラー

ザイリンクス DS099-E05 XC3S1000/L FPGA エラッタおよび Spartan-3 データシートの確認

CommCheckerManual_Ver.1.0_.doc

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?

AN 357: Error Detection & Recovery Using CRC in Altera FPGA Devices

(Microsoft Word - DDR\203\215\203W\203A\203i\215\\\220\254-ver0619.doc)

Notes and Points for TMPR454 Flash memory

Crucial Client SSDでのファームウェアアップデート手順

増設メモリ 1. 機能 型名 N N N (x1 枚 ) (x1 枚 ) (x1 枚 ) DDR2-800(PC2-6400) 動作クロック 400MHz( 差動 ) 110Ge, 110Ge-S 型名 N N N810

スライド 1

<4D F736F F F696E74202D2091E6824F82538FCD8CEB82E88C9F8F6F814592F990B382CC8CB4979D82BB82CC82505F D E95848D8682CC90B69

Polycom RealConnect for Microsoft Office 365

BOM for Windows Ver

Oracle Cloud Adapter for Oracle RightNow Cloud Service

PowerPoint プレゼンテーション

UMB-CP2114 User's Manual

Xilinx XAPP721 High-Performance DDR2 SDRAM Interface Data Capture Using ISERDES and OSERDES, Application Note

DS099-E04: XC3S400 FPGA エラッタおよび Spartan-3 データシートの確認

S1C17 Family Application Note S1C17 シリーズ PORT 多重割り込みアプリケーションノート Rev.1.0

TFTP serverの実装

増設メモリ (2006/11/20)

IBIS

ソフトウェア基礎技術研修

本資料のご使用につきましては 次の点にご留意願います 本資料の内容については 予告無く変更することがあります 1. 本資料の一部 または全部を弊社に無断で転載 または 複製など他の目的に使用することは堅くお断りいたします 2. 本資料に掲載される応用回路 プログラム 使用方法等はあくまでも参考情報で

デザインパフォーマンス向上のためのHDLコーディング法

プロバイダ ユーザーズガイド

Presentation Title

Cyclone III デバイス・ファミリの メモリ・ブロック

問 2. タイミングチャート以下に示す VHDL コードで記述されている回路に関するタイミングチャートを完成させよ ) レジスタの動作 use IEEE.std_logic_64.all; entity RegN is generic (N : integer := 8 port ( CLK, EN

Microsoft PowerPoint LC_15.ppt

Oracle DatabaseとIPv6 Statement of Direction

DDR2 SDRAM をフレームバッファに使用した CMOS カメラ表示回路の実装

Microsoft Word - N-TM307取扱説明書.doc

PLL ダイナミック リコンフィギュレーション, アプリケーション ノート (XAPP879)

テクニカルガイド「増設メモリ」(2006/09/15)

Virtex-6 Clocking

Microsoft Word - TC4017BP_BF_J_P10_060601_.doc

McAfee SaaS Protection 統合ガイド Microsoft Office 365 と Exchange Online の保護

HP Z200 Intel i5 CPU 3.33GHz Low Profile 仕様 380 LP Assist 2.2 Instinct v3.0 以降 いいえいいえはいいいえ 4GB および 8GB DDR ECC (2 枚構成の DIMM) ISIS へ接続するにはオンボードの

履歴 修正日 内容 2011/01/18 第 1 版制定 2012/10/ 版 内容 Bee Beans Technologies 社から配布されているネットワーク プロセッサ (SiTCP) のライブラリ使用方法を解説した文書です SiTCP の概要や各信号意味などは別文書 SiTCP

(Veritas\231 System Recovery 16 Monitor Readme)


MODBUS ユーザーズマニュアル 페이지 1 / 23

免責事項 Samsung Electronics は 製品 情報 および仕様を予告なく変更する権利を留保します 本書に記載されている製品および仕様は 参照のみを目的としています 本書に記載されているすべての情報は 現状有姿 のまま 何らの保証もない条件で提供されます 本書および本書に記載されているす

データ収集用 NIM/CAMAC モジュールマニュアル 2006/5/23 目次 クレート コントローラ CC/ NIM ADC 1821 (Seiko EG&G)...3 ADC インターフェイス U デッドタイム

Cisco ViewMail for Microsoft Outlook クイックスタートガイド (リリース 8.5 以降)

untitled

GTR Board

CONTEC DIOプロバイダ ユーザーズガイド

CCD リニアイメージセンサ用駆動回路 C CCD リニアイメージセンサ (S11155/S ) 用 C は 当社製 CCDリニアイメージセンサ S11155/S 用に開発された駆動回路です S11155/S11156-

アプリケーション インスペクションの特別なアクション(インスペクション ポリシー マップ)

! STEP 2. Quartus Prime のダウンロード WEB ブラウザで以下の URL を開きます 2 ページ中段の Quartus Prime 開発ソフトウェア ライト エディ

MW100 Modbusプロトコルによるデータ通信の設定について

Xilinx XAPP485 Spartan-3E FPGA における最大レート 666Mbps でのデシリアライズ、アプリケーション ノート

本仕様はプロダクトバージョン Ver 以降に準じています

PRONETA

Microsoft Word - dg_sataahciip_refdesign_jp.doc

PNopenseminar_2011_開発stack

Microsoft PowerPoint - Sol7 [Compatibility Mode]

オンチップ・メモリ クイック・ガイド for Cyclone III

Windows Graphic Loader for Label Printers

IrDA型赤外線タグ仕様

Microsoft PowerPoint - RL78G1E_スタータキットデモ手順_2012_1119修正版.pptx

目次 1 I2Cとは 13 結線写真 2 センサの多くがI2Cに対応 14 WHO_AM_I 3 マイコンでのI2C通信例 15 I2C読込みプログラム 4 とは 16 I2C読込みスクリプト概要① 5 タイミングパラメータ 17 I2C読込みスクリプト概要② 6 書込み 18 センサ読込みプログラ

Microsoft Word - TC4013BP_BF_J_P9_060601_.doc

2ALU 以下はデータ幅 4ビットの ALU の例 加算, 減算,AND,OR の4つの演算を実行する 実際のプロセッサの ALU は, もっと多種類の演算が可能 リスト 7-2 ALU の VHDL 記述 M use IEEE.STD_LOGIC_1164.ALL; 00 : 加算 use IEE

スライド 1

IIJダイレクトアクセス APN簡易設定ツール(APNSetupperD.exe)を利用した接続方法

Cisco UCS サーバでの訂正可能なメモリ エラーの 管理

Oracle DatabaseとIPv6 Statement of Direction

ソフトウェアの説明

始める スタート > 全てのプログラム > Cypress > PSoC Creator 2.0 > PSoC Creator 2.0 をクリックします プロジェクトを作成する / 開く Start Page の "Create New Project" をクリックし 要求されたプロジェクト情報を入

評価ボード キット 開発ツールご使用上の注意事項 1. 本評価ボード キット 開発ツールは お客様での技術的評価 動作の確認および開発のみに用いられることを想定し設計されています それらの技術評価 開発等の目的以外には使用しないで下さい 本品は 完成品に対する設計品質に適合していません 2. 本評価

Section 36. Programmable Cyclic Redundancy Check (CRC)

Transcription:

アプリケーションノート : Virtex-II Pro および Virtex-4 ファミリ R XAPP5 (v2.1) 2005 年 7 月 20 日 著者 : Simon Tam 概要 このアプリケーションノートでは Virtex -II Virtex-II Pro または Virtex-4 デバイスにおける Error Correction Control (ECC) モジュールのインプリメンテーションについて説明します このデザインでは すべてのシングルビットエラー ( ビットデータと 8 パリティビットまたは 32 ビットデータと 7 パリティビットで構成されるコードワード ) の検出および訂正を行い データ内のダブルビットエラーを検出します デザインでは 単純でありながら 有効な ECC 処理手法であるハミングコードを利用しています これによって 非常に高いパフォーマンスと低いリソース使用率を実現します はじめに 信頼性およびパフォーマンスの高いアプリケーションの多くに エラーの検出および訂正機能があります たとえば エンタープライズデータ格納システム内には システムの信頼性を向上させるために メモリキャッシュが使用されています 通常 キャッシュは ホストインターフェイスとディスクアレイ間にあるコントローラ内に置かれています たいていの場合 信頼性の高いキャッシュメモリデザインには ECC 機能が備わっており あるエラーによってカスタマデータを損失することを回避しています ECC は 衛星放送受信機などの通信アプリケーションにとって 重要な機能となってきています これは データの再送信よりもパフォーマンスおよびコスト効率が高いエラー訂正方法です このアプリケーションノートに記載されているリファレンスデザイン (XAPP5.zip) では -6 スピードグレードの Virtex-II Pro デバイスを使用し パイプライン化されていないラインで最高 144MHz パイプライン化されたラインで最高 313MHz までのデータ読み出し / 書き込み速度で エラーの検出および訂正を行う機能を実現しています コードワード内の任意の位置で ダブルビットエラーが検出され シングルビットエラーが訂正されます また リファレンスデザインは 72 ビットダブルデータレート (DDR) DIMM メモリをターゲットとしています 32 ビットのデザインおよびパイプライン化されたデザインも用意されています また デザインは容易に変更でき より狭いデータ幅に対応させることもできます ハミングコード このアプリケーションノートで説明している ECC 機能は 比較的単純でありながら 非常に有効な ECC コードであるハミングコードを使用して実現されています ハミングコードは データを複数のチェックビット ( パリティ ) と共に送信し データ受信の際には 対応するチェックビットをデーコードすることによって エラーを検出します チェックビットは 元のデータワードにある特定のビットを XOR 接続することによって生成される並行のパリティビットです コードワード内にビットエラーがある場合 受信されたデータワードのデコード後に 複数のチェックビットがパリティエラーを示します また これらのチェックビットエラーの組み合わせによって エラーのタイプがわかります さらに チェックビットからシングルビットエラーの位置が特定されます ハミングコードワードは 元のデータとチェックビット ( パリティ ) が連結したものです これは 規則的な形式 (d + p,d) で表わされます ここで d はデータ幅を示し p はパリティ幅を示します パリティのマトリックス [P] は 次のように表すことができます [P] = [D] [G] 2003-2005 Xilinx, Inc. All rights reserved. すべての Xilinx の商標 登録商標 特許 免責条項は http://www.xilinx.co.jp/legal.htm にリストされています 他のすべての商標および登録商標は それぞれの所有者が所有しています すべての仕様は通知なしに変更される可能性があります 保証否認の通知 : Xilinx ではデザイン コード その他の情報を 現状有姿の状態 で提供しています この特徴 アプリケーションまたは規格の一実施例としてデザイン コード その他の情報を提供しておりますが Xilinx はこの実施例が権利侵害のクレームを全く受けないということを表明するものではありません お客様がご自分で実装される場合には 必要な権利の許諾を受ける責任があります Xilinx は 実装の妥当性に関するいかなる保証を行なうものではありません この保証否認の対象となる保証には 権利侵害のクレームを受けないことの保証または表明 および市場性や特定の目的に対する適合性についての黙示的な保証も含まれます XAPP5 (v2.1) 2005 年 7 月 20 日 www.xilinx.co.jp 1

R ここで [D] はデータマトリックスを示し [G] は ジェネレータマトリックスを示します この [G] マトリックスは 単位マトリックス [I] および生成マトリックス [C] で構成されます [G] = [I:C] たとえば (7,4) ハミングコードは次のようになります G = 1000 0100 0010 0001 111 011 101 110 シングルビットエラーの検出に最低限必要なチェックビット数は 次の等式から求められます D + P + 1 2 P このリファレンスデザインでは (72,) ハミングコードを使用します つまり ハミングコードワード幅が 72 ビットであり データビットと 8 チェックビットで構成されています ビットワードの場合 シングルビットエラーの訂正に必要な最低チェックビット数は 7 です また 追加分となるチェックビットによって ダブルビットエラーの検出機能を持たせることができます エラーを検出するため コードワードベクタにジェネレータマトリックスの転置したものを掛け合わせることによって シンドロームベクタとして知られる 8 ビットのベクタ [S] が求められます [S] = [D,P] [G ] シンドロームベクタのすべての要素がゼロの場合 エラーはありません ゼロ以外の場合は ビットエラータイプおよびシングルビットエラーの位置が示されます そして このベクタを使用して 元の入力データが修正されます ハミングコードを具体的に理解するために 次の表を参照してください 図 1 に示すように 各データビットおよびチェックビットの位置は シンドローム表にマップされています 表内のセルの各位置は行列で示されます たとえば データビット 60 は 100 列 1000 行にあり 1000100 位置にあると言うことができます 各位置にあるビットのパリティビット ( 偶数または奇数 ) を算出することによって 7 チェックビットが導かれます チェックビットの等式は と示される XOR 演算子によって構成されています 次に チェックビット 1 (CB1) のロジック的な等式例を示します CB1 = D0 D1 D3 D4 D6 D8 D10 D11 D13 D15 D17 D19 D21 D23 D25 D26 D28 D30 D32 D34 D36 D38 D40 D42 D44 D46 D48 D50 D52 D54 D56 D57 D59 D61 D63 2 www.xilinx.co.jp XAPP5 (v2.1) 2005 年 7 月 20 日

R 基本的に 表におけるセル位置の最下位ビットが 1 であるすべてのデータビットが CB1 を生成するために選択されます ( 図 1 を参照 ) また CB2 の生成には 最後から 2 番目のビットが選択され 以降も同様です 111 110 101 100 011 010 001 000 D63 D62 D61 D60 D59 D58 D57 CB7 1000 D56 D55 D54 D53 D52 D51 D50 D49 0111 D48 D47 D46 D45 D44 D43 D42 D41 0110 D40 D39 D38 D37 D36 D35 D34 D33 0101 D32 D31 D30 D29 D28 D27 D26 CB6 0100 D25 D24 D23 D22 D21 D20 D19 D18 0011 D17 D16 D15 D14 D13 D12 D11 CB5 0010 D10 D9 D8 D7 D6 D5 D4 CB4 0001 D3 D2 D1 CB3 D0 CB2 CB1 No Error 0000 図 1 : シンドローム表 x5_01_022103 図 2 に示すように ビットエラーがない場合 チェックビットはデータの算出したチェックビットと一致します その結果 すべてのシンドロームビットはゼロになり No Error 位置を示します 111 110 101 100 011 010 001 000 D63 D62 D61 D60 D59 D58 D57 CB7 1000 D56 D55 D54 D53 D52 D51 D50 D49 0111 D48 D47 D46 D45 D44 D43 D42 D41 0110 D40 D39 D38 D37 D36 D35 D34 D33 0101 D32 D31 D30 D29 D28 D27 D26 CB6 0100 D25 D24 D23 D22 D21 D20 D19 D18 0011 D17 D16 D15 D14 D13 D12 D11 CB5 0010 D10 D9 D8 D7 D6 D5 D4 CB4 0001 D3 D2 D1 CB3 D0 CB2 CB1 No Error 0000 図 2 : ビットエラーなしの検出 x5_01_022003 XAPP5 (v2.1) 2005 年 7 月 20 日 www.xilinx.co.jp 3

R 図 3 に示すように シングルビットエラーが発生した場合は いくつかのシンドロームビットが奇数のパリティを持ち ( 結果はロジック 1 になる ) そこで行列の位置が決定されます たとえば D28 がエラーの場合 CB1 CB2 および CB6 のパリティがエラーとなります その結果 シンドローム表では D28 がエラービットと認識されます 111 110 101 100 011 010 001 000 D63 D62 D61 D60 D59 D58 D57 CB7 1000 D56 D55 D54 D53 D52 D51 D50 D49 0111 D48 D47 D46 D45 D44 D43 D42 D41 0110 D40 D39 D38 D37 D36 D35 D34 D33 0101 D32 D31 D30 D29 D28 D27 D26 CB6 0100 D25 D24 D23 D22 D21 D20 D19 D18 0011 D17 D16 D15 D14 D13 D12 D11 CB5 0010 D10 D9 D8 D7 D6 D5 D4 CB4 0001 D3 D2 D1 CB3 D0 CB2 CB1 No Error 0000 図 3 : シングルビットエラーの検出 x5 02 022003 図 4 に示すように ダブルビットエラーが発生した場合は エラービット位置が指定されないか 誤った位置が指定されます たとえば ダブルビットエラーが D28 および D22 で発生すると シンドローム位置は列 111 および行 0111 となります しかし すべてのデータビットを変換させるチェックビット (CB8) を追加することによって ダブルエラーを検出できます CB8 が 0 に戻り CB1 から CB7 が 0 以外の値の場合 ダブルビットエラーが発生していることがわかります 111 110 101 100 011 010 001 000 D63 D62 D61 D60 D59 D58 D57 CB7 1000 D56 D55 D54 D53 D52 D51 D50 D49 0111 D48 D47 D46 D45 D44 D43 D42 D41 0110 D40 D39 D38 D37 D36 D35 D34 D33 0101 D32 D31 D30 D29 D28 D27 D26 CB6 0100 D25 D24 D23 D22 D21 D20 D19 D18 0011 D17 D16 D15 D14 D13 D12 D11 CB5 0010 D10 D9 D8 D7 D6 D5 D4 CB4 0001 D3 D2 D1 CB3 D0 CB2 CB1 No Error 0000 図 4 : ダブルビットエラーの検出 x5_03_022003 4 www.xilinx.co.jp XAPP5 (v2.1) 2005 年 7 月 20 日

R デザイン概要 図 5 に ECC 機能のある DDR メモリコントローラを使用する場合のブロック図を示します この例で示す DDR DIMM は Micron MT18VDDT72G ECC 構成モジュールです また リファレンスデザインには パリティエンコーダおよびパリティデコーダユニットがあります エンコーダはジェネレータマトリックスの機能を果たし デコーダはエラー検出および訂正の役割を果たします さらに 診断機能がサポートされています 次に これらの機能について説明します FORCE_ERROR 2 PowerPC Processor ENCIN DECOUT ERROR Parity Encoder Error Detection and Correction PARITY_OUT 8 ENCOUT DECIN 8 PARITY_IN Memory Controller Address Control Data 72 Strobe 72-bit DIMM FPGA 2 図 5 : メモリシステムにおける ECC x5_04_090104 パリティエンコーダ エンコーダは ルックアップテーブル (LUT) にインプリメントされた XOR およびビットエラージェネレータで構成されます オプションとして これをパイプライン化することよって パフォーマンスを向上させることができます 図 6 に パリティエンコーダのブロック図を示します チェックビットは ビットのデータと共にメモリに書き込まれます メモリの読み出しでは データとチェックビットが同時に読み出されます そして FPGA とメモリ間の読み出しまたは書き込み中に発生したエラーが検出されます XAPP5 (v2.1) 2005 年 7 月 20 日 www.xilinx.co.jp 5

R CB1 CB2 ENCIN CB3 CB4 CB5 PARITY_OUT 8 CB6 CB7 Bit-error Generator '0' TRIPLE ERROR DOUBLE ERROR SINGLE ERROR CB8 ENCOUT FORCE ERROR Exclusive-OR functions in FPGA Look-up Tables Optional pipelined register x5_05_020304 図 6 : パリティエンコーダのブロック図 パリティビットは未修正のハミングコードに基づいて生成されます 表 1 に (72,) コードワードの生成に関連するビットを示し 表 2 に (39,32) コードワードの生成に関連するビットを示します 6 www.xilinx.co.jp XAPP5 (v2.1) 2005 年 7 月 20 日

R 表 1 : ビットハミングコード 関連するデータビット 生成されたチェックビット CB1 CB2 CB3 CB4 CB5 CB6 CB7 CB8 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 XAPP5 (v2.1) 2005 年 7 月 20 日 www.xilinx.co.jp 7

R 表 1 : ビットハミングコード ( 続き ) 関連するデータビット 生成されたチェックビット CB1 CB2 CB3 CB4 CB5 CB6 CB7 CB8 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 8 www.xilinx.co.jp XAPP5 (v2.1) 2005 年 7 月 20 日

R 表 2 : 32 ビットハミングコード 関連するデータビット 生成されたチェックビット CB0 CB1 CB2 CB3 CB4 CB5 CB6 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 XAPP5 (v2.1) 2005 年 7 月 20 日 www.xilinx.co.jp 9

R パリティデコーダ 図 7 に示すように デコーダ回路は 3 つのブロックで構成されます シンドローム生成 シンドローム LUT およびマスク生成 データ訂正 DECIN[63:0] PARITY_IN 7:0 8 Syndrome LUT LUT LUT LUT LUT LUT MASK(0) DOA MASK(1) MASK(2) MASK(3) MASK(63) DECOUT ERROR 2 Syndrome Generator Lookup & Mask Generator Data Correction Exclusive-OR functions in FPGA Look-up Tables Optional pipelined register シンドローム生成 ビットの入力データは 8 ビットのパリティと共に XOR を介し 8 ビットのシンドローム (S1 から S8) を生成します これは チェックビットの生成と非常に類似しています 次の例を参照してください S1 = DECIN0 DECIN1 DECIN3 DECIN4 DECIN6 DECIN8 DECIN10 DECIN11 DECIN13 DECIN15 DECIN17 DECIN19 DECIN21 DECIN23 DECIN25 DECIN26 DECIN28 DECIN30 DECIN32 DECIN34 DECIN36 DECIN38 DECIN40 DECIN42 DECIN44 DECIN46 DECIN48 DECIN50 DECIN52 DECIN54 DECIN56 DECIN57 DECIN59 DECIN61 DECIN63 PARITY_IN(1) 次に シンドロームを使用して エラータイプおよびその位置の検出を行います オプションとして パイプライン化することによって パフォーマンスを向上させることができます シンドローム LUT およびマスク生成 図 7 : ECC 機能ブロック図 x5_06_020304 シングルビットエラーを訂正するために ビットの訂正マスクが作成されます このマスクの各ビットは 前段階のシンドロームの結果に基づいて作成されます エラーが検出されない場合 マスクのすべてのビットは 0 になります シングルビットエラーが検出されると 対応するマスクが エラービット以外のビットをマスクアウトします 次に マスクと元のデータが XOR に入力されます その結果 エラービットが正しいステートに反転 ( または訂正 ) されます ダブルビットエラーが検出された場合は すべてのマスクビットが 0 になります そして 同一クロックサイクルで エラータイプおよびそれに対応する訂正マスクが生成されます 10 www.xilinx.co.jp XAPP5 (v2.1) 2005 年 7 月 20 日

R データ訂正 データ訂正の段階では マスクと元の入力データが XOR され データ訂正が必要な場合 エラービットが訂正されます シングルビットエラーまたはダブルビットエラーが発生していない場合 すべてのマスクビットは 0 です その結果 入力データは 元のデータを維持したまま ECC 回路を通過します エラー診断 リファレンスデザインは エラータイプを示すだけでなく 診断モードもサポートしています 出力コードワードには シングル ダブル およびトリプルビットエラーが発生する可能性があります ERROR ポートが 00 の場合 シングルビットエラー ダブルビットエラー またはそれ以上のビットエラーはいずれも検出されていません つまり 検索したデータには パリティエラーがないことになります ERROR ポートが 01 の場合 72 ビットコードワード内でシングルビットエラーが発生したことを示します そのエラーは修正され データにエラーはなくなります また ERROR ポートが 10 の場合 データワード内でダブルビットエラーが発生しています このエラーに対し エラー修正は実行できません 最後に ERROR ポートが 11 の場合 コードワード内で 検知機能では検知できないエラーが発生していると考えられ エラー修正は実行できません これは 無効なエラータイプです エンコーダの出力で コードワードに意図的にビットエラーを挿入し システムのテストを行うことができます Force_error を使用して いくつかのエラーモードタイプを設定できます Force_error = 00 通常の動作モードです エンコーダの出力でビットエラーは挿入されていません Force_error = 01 シングルビットエラーモードです コードワードでは クロックの立ち上がりエッジごとに 1 ビットが反転します (0 が 1 に または 1 が 0 になります ) シングルビットエラーは シーケンスに従い コードワードのビット 0 からビット 72 に移動します このシーケンスは エラーモードがアクティブである間継続します Force_error = 10 ダブルビットエラーモードです コードワードでは クロックの立ち上がりエッジごとに 2 つの連続したビットが反転します (0 が 1 に または 1 が 0 になります ) ダブルビットエラーは シーケンスに従い コードワードのビット (0,1) からビット (71, 72) に移動します このシーケンスは エラーモードがアクティブである間継続します Force_error = 11 トリプルビットエラーモードです コードワードでは クロックの立ち上がりエッジごとに 3 ビットが反転します (0 が 1 に または 1 が 0 になります ) トリプルビットエラーは シーケンスに従い コードワードのビット (0,1, 2) からビット (70, 71, 72) に連続して移動します シーケンスは エラーモードがアクティブである間連続します 使用率およびパフォーマンス リファレンスデザインでは 最小限のリソースで 高いパフォーマンスを実現しています 表 3 に パフォーマンスおよび使用率の概要を示します このデザインは Xilinx Synthesis Tool (XST) を使用して合成されています パフォーマンスの概要は ISE 7.1i SP2 スピードファイルバージョン 1.53 に基づいており ビットバージョンの ECC リファレンスデザインにのみ反映されます また 全体的なパフォーマンスは デザインによって異なる場合があります XAPP5 (v2.1) 2005 年 7 月 20 日 www.xilinx.co.jp 11

R 表 3 : パフォーマンスおよび使用率の概要 デバイス 使用率 (1) パフォーマンスパイプラインなし 1 段階のパイプライン XC2VP4-6 16% 144MHz 313MHz XC2VP7-6 10% 136MHz 298MHz XC2VP20-6 または 5% 132MHz 232MHz XC2VPX20-6 XC2VP50-6 2% 127MHz 176MHz XC4VLX15-11 6% 178MHz 253MHz XC4VFX20-11 5% 182MHz 252MHz XC4VSX35-11 3% 169MHz 245MHz XC4VFX60-11 2% 155MHz 219MHz メモ : 1.474 スライスの Virtex-II Pro デバイスでの使用率 または 416 スライスの Virtex-4 デバイスでの使用率です レイテンシ 必要条件ではありませんが モジュールの I/O にはレジスタが使用されています エンコーダでは 入力データが ENCIN に現れてから デコードされたデータが ENCOUT で使用可能になるまでのレイテンシは 2 クロックサイクル ( パイプラインなし ) または 3 クロックサイクル ( パイプランあり ) です デコーダでは 入力データが DECIN に現れてから 処理されたデータが DECOUT で使用可能になるまでのレイテンシは 2 クロックサイクル ( パイプラインなし ) または 3 クロックサイクル ( パイプランあり ) です ステータス信号 ERROR は DECOUT に同期しています 図 8 に タイミングレイテンシの図を示します CLK ENCIN ENCOUTunpipelined ENCOUTpipelined DECIN DECOUTunpipelined ERRORunpipelined DECOUTpipelined ERRORpipelined EN1 EN2 EN3 EN4 D5 D6 cen1 cen2 cen3 cen4 cen5 cd6 cen1 cen2 cen3 cen4 cen5 cd6 DE1 DE2 DE3 DE4 DE5 DE6 cde1 cde2 cde3 cde4 cde5 cde6 E1 E2 E3 E4 E5 E6 cde1 cde2 cde3 cde4 cde5 cde6 E1 E2 E3 E4 E5 E6 x5_07_090104 図 8 : タイミング図 レイテンシについて ENx = エンコード前の書き込みデータ ENx = エンコーダから出力された書き込みデータであり チェックビットは書き込みのために使用可能 DEx = ECC ユニットに入力前の読み出しデータ cde = ECC ユニットから出力された訂正済み読み出しデータ Ex = ECC ユニットから生成されたエラーステータス 12 www.xilinx.co.jp XAPP5 (v2.1) 2005 年 7 月 20 日

R ピンについて 表 4 に 立ち上がりエッジで使用できる ECC モジュールのユーザーインターフェイスピンの一覧を示します 表 4 : ECC モジュールのピン ピン名 入力 / 出力 幅 ( ビット 幅 (32 ビット ) 説明 CLK 入力クロック入力 RESET 入力アクティブ Low リセット ENCIN 入力 63:0 31:0 エンコーダへの元の入力データ ENCOUT 出力 63:0 31:0 エンコーダを通りラッチされた元のデータ PARITY_OUT 出力 7:0 6:0 データ (ENCIN) に基づいてエンコーダから 同 一クロックエッジで生成されたパリティビット DECIN 入力 63:0 31:0 デコーダへの入力データ DECOUT 出力 63:0 31:0 DECIN から修正されたデータ PARITY_IN 入力 7:0 6:0 同一立ち上がりエッジでラッチされた入力データ (DECIN) に付随するパリティビット FORCE_ERROR 入力 1:0 1:0 テストの際にエンコードされたデータワードにビットエラーを導入 00 - 通常の動作 01 - シングルビットエラーを挿入 10 - ダブルビットエラーを挿入 11 - ダリプルビットエラーを挿入 ERROR 出力 1:0 1:0 エラーステータス 00 - エラーなし 01 - シングルビットエラーの検出および訂正 10 - ダブルビットエラーの検出 訂正なし 11 - 無効なビットエラーの検出 リファレンスデザインファイル VHDL および Verilog のリファレンスデザインファイルは 次のザイリンクスウェブサイトから入手できます http://www.xilinx.co.jp/bvdocs/appnotes/xapp5.zip おわりに このアプリケーションノートでは Virtex-II Virtex-II Pro および Virtex-4 デバイスを使用した場合のエンコーディングおよびハミングコード検出の簡潔な方法を示しました XAPP5 (v2.1) 2005 年 7 月 20 日 www.xilinx.co.jp 13

R 改訂履歴 次の表に このアプリケーションノートの改訂履歴を示します 日付バージョン改訂内容 2003/03/03 1.0 初版リリース 2003/09/17 1.1 32 ビットデータの場合のエラー検出および訂正 (Error Detection and Correction EDC) 機能についての説明を更新 スピードファイルバージョン 1.81 を反映させたパフォーマンスを記載 2004/02/03 1.2 パイプラインを使用したアプリケーションの説明を追加 2004/09/01 2.0 Virtex-4 FPGA の記載を追加 2005/07/20 2.1 パフォーマンスおよび使用率の概要の表を更新 ( 表 3) 14 www.xilinx.co.jp XAPP5 (v2.1) 2005 年 7 月 20 日