...

Vivado 高位合成を使用したリード ソロモン消去コーデックの

by user

on
Category: Documents
19

views

Report

Comments

Transcript

Vivado 高位合成を使用したリード ソロモン消去コーデックの
ア プ リ ケーシ ョ ン ノ ー ト : Kintex UltraScale FPGA
Vivado 高位合成を使用 し た リ ー ド ソ ロ モ ン消去コ ーデ ッ クのデザイ ン
XAPP1273 (v1.0) 2016 年 3 月 14 日
著者 : Matt Ruan
概要
こ のアプ リ ケーシ ョ ン ノ ー ト は、 ザ イ リ ン ク ス Vivado® 高位合成 (HLS) ツールを使用 し た消去 コ ーデ ッ ク のデザ イ ンに
焦点を当ててい ます。 こ の コ ーデ ッ ク は、 C プ ロ グ ラ ミ ン グ言語の ソ ース コ ー ド を利用 し 、 Kintex® UltraScale™ FPGA 用
の高効率で合成可能な Verilog ま たは VHDL コ ー ド を生成 し ます。 生成行列の定義や消去コ ー ド レー ト な ど の消去 コ ー ド
パ ラ メ ー タ ーを変更す る 必要があ る 場合、 C ヘ ッ ダー フ ァ イ ルをわずかに修正す る だけで済みます。 サンプルの リ ー ド
ソ ロ モン消去 コ ーデ ッ ク は一般的な アーキ テ ク チ ャ にな っ てお り 、 C ソ ース コ ー ド を変更すれば、 別の タ イ プの消去
コ ーデ ッ ク が作成で き ます。
こ のアプ リ ケーシ ョ ン ノ ー ト の リ フ ァ レ ン ス デザ イ ン フ ァ イ ルは、 ザ イ リ ン ク ス の ウ ェ ブサ イ ト か ら ダ ウ ン ロ ー ド で き
ます。 デザ イ ン フ ァ イ ルの詳細は、 「 リ フ ァ レ ン ス デザ イ ン」 を参照 し て く だ さ い。
は じ めに
現代社会では、 日々大量のデー タ が生成 さ れ、 消費 さ れてい ます。 それ ら のデー タ を処理お よ び保管する 目的で設営 さ れ
る デー タ セ ン タ ーでは、 ス ト レージ デバ イ ス内のハー ド デ ィ ス ク 、 メ モ リ 、 ネ ッ ト ワー ク コ ネ ク タ な ど の電子 コ ン ポー
ネ ン ト にはエ ラ ーの発生が避け ら れないに も かかわ ら ず、 デー タ の消失は絶対に許 さ れません。 一般的なデー タ の保護方
法は、 同 じ デー タ の複数の コ ピーを別々の場所で保管する と い う も のです ([参照 1]、 [参照 2])。 その よ う にすれば、 デー
タ の消失はデー タ のすべての コ ピーが失われた り 破損 し た り し ない限 り 起き る こ と はな く 、 その可能性は冗長コ ピーの数
を増やせばす ぐ に減 ら す こ と がで き ます。 消失の可能性を十分低い レベルに維持する ために、 標準的なデー タ セ ン タ ー
ではデー タ の少な く と も 3 つの同一 コ ピーを保管 し ます。 言い換えれば、 冗長デー タ の量は元のデー タ の 2 倍 よ り も 多 く
な る と い う こ と です。 こ れは ま っ た く 非効率です。
深刻な ノ イ ズやチ ャ ネルの悪条件に よ り 送信信号が損なわれがちな通信シ ス テ ムで も 、 エ ラ ーか ら の保護 と い う 同様の問
題が研究 さ れて き ま し た。 シ ス テ ムでは元の信号の複製をい く つ も 送信する のではな く 、 レ シーバー側で自動的にエ ラ ー
を修正で き る 、 前方誤 り 訂正 (FEC) コ ー ド が採用 さ れてい ます。 こ のア イ デアはデー タ セ ン タ ーに も 応用 さ れてい ます。
リ ー ド ソ ロ モン (RS) 消去 コ ー ド は誤 り 訂正方式の 1 つであ り 、 追加 さ れ る コ ーデ ィ ン グ情報 と 同数のエ ラ ーを完全に回
復で き ます ([参照 1])。 詳 し く 言えば、 n 個の ワ ー ド で成る 元デー タ に k 個の ワ ー ド で成 る コ ーデ ィ ン グ情報を追加 し た場
合、 合計数 (n+k) 個の ワー ド の う ち、 k 個ま で ワ ー ド エ ラ ーを許容で き る と い う こ と です。 (k+1) 個の ワ ー ド にエ ラ ーがあ
る 場合、 エ ラ ーは回復で き ません。 誤 り 訂正 コ ー ド で対応で き る のは こ れが最大限であ り 、 コ ー ド はかな り 慎重に構築す
る 必要があ る こ と に注意 し て く だ さ い。
本資料は表記のバージ ョ ンの英語版を翻訳 し た も ので、内容に相違が生 じ る場合には原文を優先 し ます。 資料に よ っ ては英語版の更新に対応 し ていない も のがあ り ます。 日本
語版は参考用 と し て ご使用の上、 最新情報につ き ま し ては、 必ず最新英語版を ご参照 く だ さ い。
XAPP1273 (v1.0) 2016 年 3 月 14 日
1
japan.xilinx.com
動作理論
た と えば、 10 デー タ ブ ロ ッ ク ご と に 4 つま でのデー タ 破損の発生を許容で き る よ う にする には、 コ ーデ ィ ン グ デー タ を
格納す る ための 4 つの追加ブ ロ ッ ク があれば よ く 、 オーバーヘ ッ ド は 40% に ま で抑え ら れます。 ただ し 、 RS 消去 コ ー
デ ッ ク は計算量の多い タ ス ク であ り 、 ミ ド ルレ ン ジ サーバーで実行 し た場合には、 プ ロ セ ッ サ実行時間の 30% ~ 40% を
占め る 可能性があ り ます。 こ れはかな り のオーバーヘ ッ ド であ り 、 プ ロ グ ラ マブル ロ ジ ッ ク に基づいて構築 さ れた、 柔
軟性、 ス ケー ラ ビ リ テ ィ 、 そ し て リ ソ ース効率に優れた ア ク セ ラ レー タ を必要 と し ます ([参照 3])。
こ のアプ リ ケーシ ョ ン ノ ー ト は、 C プ ロ グ ラ ミ ン グ言語で消去コ ーデ ッ ク を記述 し 、 その C コ ー ド を Vivado HLS ツール
( 『Vivado Design Suite ユーザー ガ イ ド : 高位合成』 (UG902) ([参照 4])) を使用 し てハー ド ウ ェ ア記述言語 (HDL) に合成 し 、
プ ロ グ ラ マブル ロ ジ ッ ク デバ イ ス に イ ンプ リ メ ン ト す る 方法を説明 し ます。 Vivado HLS は、 一定の制約に従っ て高性能
なパ イ プ ラ イ 化 さ れた アーキ テ ク チ ャ を生成 し 、 HDL と C コ ー ド の動作が同 じ であ る こ と を確認す る テ ス ト ベンチを作
成で き ます。 多 く の場合、 Vivado HLS 合成コ ー ド の効率 と 性能は、 経験豊富な ロ ジ ッ ク エン ジニ アが設計 し て コ ーデ ィ
ン グ し た HDL と 同程度 と な り ます。 ク ロ ッ ク レー ト 、 タ ーゲ ッ ト ロ ジ ッ ク デバ イ ス、 ま たは生成行列や コ ー ド レー ト
な ど の消去 コ ーデ ッ ク パ ラ メ ー タ ーを変更する 必要があ る 場合には、 C ヘ ッ ダー フ ァ イ ルをわずかに修正す る だけで済
みます。 C で設計 さ れた消去 コ ーデ ッ ク は、 ソ フ ト ウ ェ ア エン ジニアが新 し いアプ リ ケーシ ョ ン向けに簡単にカ ス タ マ
イ ズで き る 、 文字どお り の IP にな り ます。
動作理論
こ のセ ク シ ョ ンでは、 消去チ ャ ネルでの前方誤 り 訂正の基本理論 と 、 消去 コ ーデ ッ ク の機能の仕方を説明 し ます。
消去チ ャ ネルで、 送信信号のアルフ ァ ベ ッ ト を A と 定義 し ます。 ( こ こ で、 アルフ ァ ベ ッ ト と は一連の送信信号を意味 し
ます。 た と えば、 {-1, +1} は BPSK 変調信号のアルフ ァ ベ ッ ト です)。 受信 し た ど のシ ン ボル S ∈ A で も 、 受信 し た シ ン ボ
ルの消去フ ラ グが設定 さ れていなければ、 送信シ ン ボルは必ず S にな り ます。 設定 さ れていれば、 シ ン ボルは等 し い確率
であ ら ゆ る アルフ ァ ベ ッ ト の可能性があ り ます。 後者の場合には、 有用な情報を レ シーバーに提供せずにチ ャ ネル内でシ
ン ボルが消去 さ れたかの よ う にな り ます。 消去フ ラ グは、 よ り 複雑な誤 り 訂正方式を必要 と す る 標準的な通信チ ャ ネルで
は使用で き ない こ と に注意 し て く だ さ い。 デー タ セ ン タ ーでは、 ス ト レージ デバ イ ス に組み込まれてい る デー タ 整合性
チ ェ ッ ク 回路が消去 イ ベン ト を示す こ と がで き ます。
XAPP1273 (v1.0) 2016 年 3 月 14 日
2
www.xilinx.com
動作理論
図 1 は、 消去 コ ー ド の構築方法を示 し てい ます。
X-Ref Target - Figure 1
$GGLWLRQDO&RGHG%ORFNV
2ULJLQDO'DWD%ORFNV
2QH(UDVXUH
&RGH%ORFN
'DWD
%ORFN
'DWD
%ORFN
'DWD
%ORFN
'DWD
%ORFN
'DWD
%ORFN
'DWD
%ORFN
3DULW\
3DULW\
3DULW\
3DULW\
3DULW\
3DULW\
&RGHG
%ORFN
&RGHG
%ORFN
&RGHG
%ORFN
3DULW\%LWVIRU,QWHJULW\&KHFNZLWKLQ(DFK'DWD%ORFN
;
図 1 : 消去コ ー ド のブ ロ ッ ク図
オ レ ン ジ色の囲みは元のデー タ ブ ロ ッ ク であ り 、 その長 さ は 1 キ ロ バ イ ト か ら 128 メ ガバ イ ト ま で さ ま ざ ま です。 緑色の
囲みは、 整合性テ ス ト のために各デー タ ブ ロ ッ ク に追加 さ れたパ リ テ ィ チ ェ ッ ク 情報です。 パ リ テ ィ チ ェ ッ ク 情報のサ
イ ズはデー タ ブ ロ ッ ク のサ イ ズ よ り も かな り 小 さ く 、 多 く の場合、 整合性テ ス ト の機能は ス ト レージ デバ イ ス に内蔵 さ
れてい ます。 図の右側は、 消去 コ ーデ ッ ク で生成 さ れた コ ー ド 化デー タ ブ ロ ッ ク です。 エン コ ー ド はすべてのデー タ ブ
ロ ッ ク 間で水平に実行 さ れます。 図 1 の例では、 1 つの消去 コ ー ド ブ ロ ッ ク は、 各デー タ ブ ロ ッ ク か ら 1 つずつの合計で
6 つの情報シ ン ボル と 、 消去エン コ ーダーに よ り 計算 さ れた 3 つの コ ー ド 化シ ン ボルで構成 さ れてい ます。
Di を i 番目のデー タ ブ ロ ッ ク か ら 取 ら れた シ ン ボル、 Ci を i 番目の コ ー ド 化シ ン ボル と する と 、 エン コ ー ド プ ロ セ ス は、
特定のシ ン ボル ビ ッ ト 幅のガ ロ ア体で定義 さ れた 1 つの行列 ド ッ ト 乗算で表す こ と がで き ます ([参照 1])。 こ れは図 2 で
示 し てお り 、 生成行列係数 {ai, j} お よ び ド ッ ト 乗算演算を含むすべてのシ ン ボルは、 同 じ ガ ロ ア体で定義 さ れます。
X-Ref Target - Figure 2
*HQHUDWRU0DWUL[
(QFRGHG'DWD%ORFNV
2ULJLQDO'DWD%ORFNV
'
'
'
'
'
'
'
'
'
&
D
D
D
D
,GHQWLW\0DWUL[
D
D
&
D
D
D
D
D
D
D
D
D
D
D
D
&
'
'
'
&RGLQJ0DWUL[
;
図 2 : 消去 コ ー ド のエ ン コ ー ド
XAPP1273 (v1.0) 2016 年 3 月 14 日
3
www.xilinx.com
動作理論
図 3 (a) に示す と お り 、 一部のデー タ ブ ロ ッ ク が失われたか ま たは破損 し た場合、 残存デー タ ブ ロ ッ ク と 生成行列に関す
る 既知の情報を使用 し てデー タ を回復で き ます。 計算手順は図 3 (b) に示 し てい ます。 こ こ で、 残存行 (水色) の逆数で残
存デー タ ブ ロ ッ ク の ド ッ ト 乗算を行 う と 、 元のデー タ ブ ロ ッ ク が得 ら れ、 次に消去 さ れた行 (グ レー ) で ド ッ ト 乗算を行
う と 、 消去 さ れたデー タ ブ ロ ッ ク が回復 さ れます。
X-Ref Target - Figure 3
(QFRGHG'DWD%ORFNV
*HQHUDWRU0DWUL[
2ULJLQDO'DWD%ORFNV
'
'
'
'
'
'
'
'
'
&
D
D
D
D
D
D
&
D
D
D
D
D
D
D
D
D
D
D
D
&
'
'
'
(UDVHG5RZV
6XUYLYHG5RZV
D(UDVHGGDWDEORFNVDQGURZV
'HFRGLQJ0DWUL[
(UDVHG'DWD%ORFNV
6XUYLYHG'DWD%ORFNV
'
'
D
D
D
D D
&
D
(UDVHG5RZV
D
D
D
D
D
D
D
D
D
D
D
D
6XUYLYHG5RZV
'
'
'
'
&
&
2ULJLQDO'DWD%ORFN
E5HFRYHU\RIWKHHUDVHGGDWDEORFNV
;
図 3 : 消去コ ー ド のデ コ ー ド
図 3 (b) に示す と お り 、 消去 コ ー ド のデ コ ー ド では、 残存行で構成 さ れ る 行列の逆数の存在が暗黙に想定 さ れてい ます。
こ の想定は、 一部の特殊構築 さ れた生成行列に当ては ま り ます。 その 1 つは、 こ のアプ リ ケーシ ョ ン ノ ー ト でサンプル
と し て使用 し てい る リ ー ド ソ ロ モン コ ー ド ([参照 1]) です。 ただ し 、 こ こ で説明 さ れてい る 設計手法は、 その他の多様な
消去 コ ー ド に も 適用 さ れます。
図 3 は、 エン コ ー ド プ ロ セ ス を、 元のデー タ ブ ロ ッ ク がすべて残存 し て コ ー ド 化ブ ロ ッ ク が消去 さ れ る 特殊ケース のデ
コ ー ド と 見なす こ と がで き る と い う も う 1 つの事実を示 し てい ます。 し たがっ て、 必要 と さ れ る のは、 エン コ ー ド に も 対
応で き る 消去デ コ ーダーを設計す る こ と のみです。
XAPP1273 (v1.0) 2016 年 3 月 14 日
4
www.xilinx.com
RS 消去 コ ーデ ッ クのアーキテ ク チ ャ
RS 消去 コ ーデ ッ ク のアーキテ ク チ ャ
デー タ セ ン タ ーでは、 重要度が異な る デー タ ブ ロ ッ ク に合わせて、 多数のエ ラ ー保護レベルが必要です。 こ れには、 多
数の コ ー ド レー ト をサポー ト す る ための コ ーデ ッ ク が必要です。 短いデー タ ブ ロ ッ ク でオンザフ ラ イ のエン コ ー ド お よ
びデ コ ー ド 方式を使用で き る よ う に、 レ イ テ ン シ を最小化す る 必要 も あ り ます。
こ のアプ リ ケーシ ョ ン ノ ー ト では、 こ の よ う なマルチ レー ト の消去コ ーデ ッ ク を、 通常 300Mhz 以上の ク ロ ッ ク 周波数で
動作す る ザ イ リ ン ク ス Kintex UltraScale FPGA で設計する 例を示 し ます。 こ のデザ イ ンは、 非常に小 さ いデコ ー ド レ イ テ
ン シの ス ト リ ー ミ ン グ入力 イ ン タ ーフ ェ イ ス を特徴 と す る 一方で、 表 1 に ま と め ら れてい る と お り 、 1/3 か ら 2/3 ま でを
範囲 と す る 4 つの コ ー ド レー ト をサポー ト し てい ます。 デザ イ ンにわずかな変更を加えれば、 さ ら に幅広い コ ー ド レー
ト をサポー ト で き ます。
注記 : こ の例は Kintex FPGA 向けですが、 方式や設計は基本的にすべてのデバ イ ス に適合 し ます。
表 1 : 低レ イ テ ン シ マルチ レー ト 消去 コ ーデ ッ ク の コ ー ド レー ト
デー タ ブ ロ ッ ク の数
コ ー ド ブ ロ ッ ク の数
オーバーヘ ッ ド の比率
6
4
67%
8
4
50%
10
4
40%
12
4
33%
図 4 は、 消去 コ ーデ ッ ク の理想的な イ ン タ ーフ ェ イ ス タ イ ミ ン グ図を示 し てい ます。 水色、 黄色、 お よ び緑色は、 消去
デ コ ー ド パ ラ メ ー タ ー (残存パ タ ーン と 消去コ ー ド タ イ プ) が異な る 3 つのデー タ セ ッ ト を表 し てい ます。 パ ラ メ ー タ ー
の変更にギ ャ ッ プ挿入は必要ないため、 ほかのシ ス テ ム コ ン ポーネ ン ト と の相互接続を簡単にする ために、 ス ト リ ー ミ
ン グ イ ン タ ーフ ェ イ スへの入力は簡略化 さ れてい ます。
X-Ref Target - Figure 4
YOGBL
&RGH,'
6XUYLYDO3DWWHUQ
6XUYLYHG'DWD
%ORFNV
YOGBR
5HFRYHUHG'DWD
%ORFNV
1RWLPHLQWHUYDOIRUPRGHRU
VXUYLYDOSDWWHUQFKDQJHV
'HFRGLQJ
ODWHQF\
;
図 4 : 消去コ ーデ ッ クのイ ン タ ー フ ェ イ ス タ イ ミ ング図
XAPP1273 (v1.0) 2016 年 3 月 14 日
5
www.xilinx.com
イ ン プ リ メ ン テーシ ョ ンの詳細
単純な ス ト リ ー ミ ン グ イ ン タ ーフ ェ イ ス を実現する ために、 完全にパ イ プ ラ イ ン化 さ れた アーキ テ ク チ ャ を選択 し ます。
行列反転の完了には何百 も の ク ロ ッ ク サ イ ク ルが必要 と な る ため、 大き な課題にな り ます。 こ れに対処する ための 1 つ
の解決策は、 サポー ト 対象のすべての コ ー ド お よ び考え ら れ る すべての残存パ タ ーンのすべてのデ コ ー ド 行列を事前に計
算 し 、 プ ロ グ ラ マブル ロ ジ ッ ク デバ イ ス の内部 メ モ リ に保存 し てお く こ と です。 こ の場合、 消去 コ ーデ ッ ク のアーキ テ
ク チ ャ 全体は図 5 の よ う にな り ます。
X-Ref Target - Figure 5
(UDVXUH&RGH,'
6XUYLYDO3DWWHUQ
'HFRGLQJ0DWUL[
,QGH[&DOFXODWLRQ
520IRU3UHFDOFXODWHG
'HFRGLQJ0DWUL[
0DWUL[0XOWLSOLFDWLRQ
RQ*)Q
6XUYLYHG'DWD%ORFNV
5HFRYHUHG'DWD%ORFNV
;
図 5 : 消去コ ーデ ッ クの高位アーキテ ク チ ャ
デ コ ー ド 行列 ROM のサ イ ズは、 プ ロ グ ラ マブル デバ イ ス に適 し た も のにす る 必要があ り ます。 元のデー タ ブ ロ ッ ク m
個 と コ ー ド 化ブ ロ ッ ク k 個で構成 さ れ る 特定の消去 コ ー ド に対す る 、 考え ら れ る 残存パ タ ーンの数は (m+k)! / m! / k! で求
め る こ と がで き ます。 こ こ で n! は、 n 未満のすべての正の整数の積を表 し ます。 4 つすべての消去コ ー ド タ イ プの残存パ
タ ーンの総数は、 式 1 に示す よ う に算出で き ます。
10! / 4! / 6! + 12! / 4! / 8! + 14! / 4! / 10! + 16! / 4! / 12! = 3,526
式1
各デ コ ー ド 行列は、 GF(28) では最大で 12  4 = 48 の要素を持ち、 ROM のサ イ ズは 3,526  48  8 = 1,353,984 ビ ッ ト と な
り ます。 こ れは 20nm UltraScale FPGA には非常に適 し てい ます。
高位アーキ テ ク チ ャ に基づいて、 アルゴ リ ズ ムは C プ ロ グ ラ ミ ン グ言語で記述 さ れ、 Vivado HLS ツールは各種のハー ド
ウ ェ ア イ ンプ リ メ ン テーシ ョ ン オプシ ョ ン を調べ、 デザ イ ンに最 も 適 し た も のを選択 し ます。
イ ン プ リ メ ン テーシ ョ ンの詳細
消去 コ ーデ ッ ク のアーキ テ ク チ ャ (図 5 参照) は、 大き く 分けて次の 2 つの計算ス テ ッ プで構成 さ れ、 C プ ロ グ ラ ミ ン グ言
語で実装 さ れます。 1 つは特定の残存パ タ ーン と コ ー ド ID のデ コ ー ド 行列 イ ンデ ッ ク ス の計算であ り 、 も う 1 つはデ
コ ー ド 行列 と 残存デー タ ブ ロ ッ ク の乗算です。
デ コ ー ド 行列イ ンデ ッ ク スの計算
残存パ タ ーンは、 残存デー タ ブ ロ ッ ク を示す 1 と 消去 さ れ る デー タ ブ ロ ッ ク を示す 0 を用いた ビ ッ ト の文字列で表す こ
と がで き ます。 図 3 に示す例では、 残存パ タ ーンは 2 進数では 101101、 16 進数では 0x2D と 表記で き ます。 表記を簡単
にす る ために、 残存パ タ ーンは次の よ う に XOR 演算に よ っ て消去パ タ ーンに変換で き ます。
// translate the survival pattern into erasure pattern
unsigned short errpat = survival_pattern^((1<<RSCODE_LEN)-1);
こ こ で、 こ の場合では (k+m) と 等 し い RSCODE_LEN は、 パ リ テ ィ を含むデー タ ブ ロ ッ ク の総数です。 消去パ タ ーン と デ
コ ー ド 行列 と の間には 1 対 1 のマ ッ ピ ン グ関係があ り ますが、 (k+m) が大き い場合、 ル ッ ク ア ッ プ テーブルは大 き く な り
ます。 た と えば、 m = 12 かつ k = 4 であ る と す る と 、 (12+4)! / 12! / 4! = 1,820 のデ コ ー ド 行列があ る こ と にな り 、 ル ッ ク
ア ッ プ テーブルのサ イ ズは 2(12+4)  ceil(log21820) = 720,896 ビ ッ ト にな り ます。 こ れは 40 個の BRAM18K を占め る ビ ッ
ト 数です。 特定の消去パ タ ーンか ら デ コ ー ド 行列 イ ンデ ッ ク ス を計算す る には、 さ ら に効率的な方式が必要です。
XAPP1273 (v1.0) 2016 年 3 月 14 日
6
www.xilinx.com
イ ン プ リ メ ン テーシ ョ ンの詳細
式 2 に示す よ う に、 整数を 2 進数形式で書き ます。
z =
L–1
 zi  2
i
式2
i=0
こ こ で、 zi ∈ {0,1} お よ び L はビ ッ ト の数です。
L–1
Ω(yL,p) = {z|yL,p < z < 2L お よ び
 zi
= p } の整数セ ッ ト を定義 し ます。
i=0
こ こ で yL,p は、 p 個の消去 さ れたデー タ ブ ロ ッ ク の消去パ タ ーン を表す、 L ビ ッ ト 長の整数です。  の構文に よ り 、 セ ッ
ト 内のすべての L ビ ッ ト の整数は yL,p よ り も 必ず大 き く な り 、 厳密に p 個のビ ッ ト が 1 にな り ます。 ど の消去パ タ ーン
yL,p で も 、 (yL,p) は  (yL,p) 内の要素数を示 し ます。 (yL,p) には次の反復関係が見 ら れます。
(ym+k,k) を、 消去パ タ ーン ym+k,k のデ コ ー ド 行列 イ ンデ ッ ク ス と し て定義 し ます。 上記の反復関係は、 次の よ う な C
コ ー ド で記述 さ れた ビ ッ ト 単位の走査アルゴ リ ズ ムにな り ます。
// pad 1's to the msb of
unsigned char padlen =
unsigned short padmask =
unsigned short errpat =
the error pattern
(3^(codeidx&3))<<1;
((1<<padlen)-1)<<(RSCODE_LEN-padlen);
erasure_pattern | padmask;
// Initialize the number of remaining ones = (p+1)
char p = NUM_EQUATION-1 + padlen;
// Scan the bits of errpat from MSB to LSB
for(k=0; k<RSCODE_LEN; k++){
// number of remaining bits = (L+1)
unsigned char L = (k^0xf)&0xf;
// extract the msb of the remaining bits
unsigned char msb = (errpat>>(RSCODE_LEN-1))&1;
//if this bit is 0, then count the number of integers larger than it
//if this bit is 1, decrease p by 1
if (msb) p--;
else if(p>=0) decmat_idx+=F_tbl[((p&3)<<4) | (L&0xf)];
// dump the msb and move to the next bit
errpat=(errpat<<1);
}
XAPP1273 (v1.0) 2016 年 3 月 14 日
7
www.xilinx.com
イ ン プ リ メ ン テーシ ョ ンの詳細
こ こ で f(L, p) 関数は、 ル ッ ク ア ッ プ テーブル F_tbl に よ り 実現 し ます。 複数の消去 コ ー ド タ イ プ をサポー ト す る ため
に、 最初にベース ア ド レ ス が decmat_idx に割 り 当て ら れ、 ベース ア ド レ ス に対する オ フ セ ッ ト と し て (ym+k,k) が計
算 さ れます。
図 6 は、 デ コ ー ド 行列 イ ンデ ッ ク ス計算の一例です。 コ ー ド ID は 0x1 で、 残存パ タ ーン内に 8 + 4 = 12 の有効ビ ッ ト を持
つ RS(8, 4) コ ー ド であ る こ と を示 し てい ます。 消去パ タ ーンはビ ッ ト 12 か ら 15 に 1 がパデ ィ ン グ さ れてい ます。 デコ ー
ド 行列 イ ンデ ッ ク ス decmat_idx は、 RS(8, 4) コ ー ド の ROM ベース ア ド レ ス、 256 で初期化 さ れます。 errpat の 5 つ
の最上位ビ ッ ト はすべて 1 であ る ため、 decmat_idx の値はビ ッ ト 10 ま で同 じ です。 ビ ッ ト 10 では f(L,p) = f(10,3) = 45
に よ る イ ン ク リ メ ン ト が行われます。 次に続 く 3 つのビ ッ ト であ る ビ ッ ト 9 か ら 7 ま ではすべて 0 であ る ため、 ビ ッ ト 6
で次の 1 に達す る ま で、 decmat_idx の値は 386 に イ ン ク リ メ ン ト さ れます。 こ の反復プ ロ セ スは、 ビ ッ ト 文字列の末尾
ま で続行 さ れます。
X-Ref Target - Figure 6
6XUYLYDO3DWWHUQ
;
;
;
;
(UDVXUH3DWWHUQ
;
;
;
;
HUUSDW
/
S 1XPRI/DUJHU
,QWHJHUV
GHFPDWBLG[ ;
図 6 : デ コ ー ド 行列イ ンデ ッ ク ス計算の一例 (codeid = 1、 survival_pattern = 0x7B9)
GF(2n) での行列乗算
GF(2n) では、 すべての整数が項 xi の係数を示す i 番目のビ ッ ト で多項式を表 し ます。 x はガ ロ ア体生成多項式のルー ト で
す。 次に、 デー タ ブ ロ ッ ク d の 1 つのシ ン ボル と デコ ー ド 行列 r の 1 つの要素を、 次の多項式形式に書 き 込む こ と がで き
ます。
XAPP1273 (v1.0) 2016 年 3 月 14 日
8
www.xilinx.com
イ ン プ リ メ ン テーシ ョ ンの詳細
XAPP1273 (v1.0) 2016 年 3 月 14 日
9
www.xilinx.com
合成の結果
GF(2n) での x に よ る 乗算では、 整数の単純な左シ フ ト の後に生成多項式に よ る 簡約演算が続 き ます。 し たがっ て、 Ri は
反復的に計算で き 、 di ∈ {0,1} での乗算は 0 のマルチプ レ ク サーで計算で き ます。
具体的には、 GF(2n) での行列乗算は、 次の C コ ー ド で記述で き ます。
// initialize the decoding matrix polynomial
for(k=0;k<NUM_ELEMENT;k++) r[k] = DECMAT_ROM[decmat_idx][k];
// reset all the code bits
for(k=0; k<NUM_EQUATION; k++) c[k] = 0;
// loop for all the bits of the input data
for(i=0; i<GF_ORDER; i++)
// loop for all survived data blocks
for(j=0; j<NUM_TAPS; j++)
// loop for all coding equations
for(k=0; k<NUM_EQUATION; k++){
unsigned char idx = k*NUM_TAPS+j;
unsigned char tmp = r[idx];
// update c
c[k] = c[k] ^ ( ((d[j]>>i)&1)? tmp : 0 );
// update r
r[idx] = ((tmp>>7)&1) ? ((tmp<<1)^gf_poly) : (tmp<<1);
指示子
C コ ー ド を HDL に変換す る 際、 Vivado HLS はパ ラ メ ー タ ーを記述す る ためにい く つかの福次情報を必要 と し ます。 こ の
情報には、 ループの完了に使用で き る ク ロ ッ ク サ イ ク ル数や、 モジ ュ ールが古い入力をすべて処理する 前に新 し い入力
を受け入れ る こ と がで き る か ど う かな ど があ り ます。 デザ イ ンの重要部分であ る こ れ ら の指示子は、 理想的な動作のため
に C コ ー ド を HDL に合成す る 方法を指定 し ます。 既存のデザ イ ン を新 し いアプ リ ケーシ ョ ンに移植する 場合、 C コ ー ド
には変更を加えず、 指示子にわずかな変更を加え る だけで済む こ と があ り ます。
消去 コ ーデ ッ ク の場合、 理想的な動作を実現す る ために次の指示子が使用 さ れます。 指示子は最小限に と ど め ら れ る の
で、 後の段階で、 Vivado 合成ツールはデザ イ ン全体を把握 し て、 よ り 柔軟に合成オプシ ョ ン を選択で き ます。 た と えば、
デ コ ー ド 行列 ROM は、 ブ ロ ッ ク RAM ま たは分散 RAM のいずれかに イ ンプ リ メ ン ト で き ます。 こ の決定を よ り 適正に
行 う ために、 Vivado 合成ツールを使用 し ます。 こ の ツールでは、 ほかのシ ス テ ム モジ ュ ール と の統合後に リ ソ ース使用
率のバ ラ ン ス を取 る こ と がで き ます。
# The function takes pipelined architecture and accepts new inputs every clock cycle
set_directive_pipeline -II 1 rs_erasure
# the arrays c and d should be partitioned completely for the access
# to all the elements of the array in one clock cycle
set_directive_array_partition -type complete rs_erasure c
set_directive_array_partition -type complete rs_erasure d
# The interface definition
set_directive_interface -mode ap_none
set_directive_interface -mode ap_vld
rs_erasure d
rs_erasure codeidx
合成の結果
ザ イ リ ン ク ス Vivado HLS はすべてのデザ イ ン フ ァ イ ルを分析 し 、 合成指示子の形式で指定 さ れた目標の ク ロ ッ ク 周波数
と デー タ スループ ッ ト を満たす適切なハー ド ウ ェ ア アーキ テ ク チ ャ を自動的に選択 し ます。 C コ ンパ イ ルの完了後には、
合成 さ れた HDL に関す る 基本情報を見直 し 、 デザ イ ン目標に照 ら し て確認で き ます。 図 7 は、 Vivado HLS で生成 さ れた
消去 コ ーデ ッ ク 合成レ ポー ト を示 し てい ます。
XAPP1273 (v1.0) 2016 年 3 月 14 日
10
www.xilinx.com
合成の結果
X-Ref Target - Figure 7
;
図 7 : C 合成レポー ト
XAPP1273 (v1.0) 2016 年 3 月 14 日
11
www.xilinx.com
検証結果
レ ポー ト に よ る と 、 HLS で生成 さ れた RTL は 1/2.96ns = 338Mhz で動作す る と 推定 さ れてお り 、 こ れは 300Mhz と い う 要
件を満た し てい ます。 C 合成段階での ク ロ ッ ク 周波数推定は、 最終結果 と ±15% の誤差が生 じ る 可能性があ り ます。 こ れ
は配置配線が完了す る ま で ロ ジ ッ ク 配線レ イ テ ン シが確定 し ないためです。 さ ら に合成レ ポー ト は、 デザ イ ンのデコ ー ド
レ イ テ ン シが 27 ク ロ ッ ク サ イ ク ル (300Mhz ク ロ ッ ク では約 90ns) であ る こ と を示 し てい ます。 パ イ プ ラ イ ン処理の入力
間隔は 1 です。 こ れは コ ーデ ッ ク の最大スループ ッ ト が、 入力の場合は 12 デー タ ブ ロ ッ ク  デー タ ブ ロ ッ ク あ た り
8 ビ ッ ト  300MHz = 28.8Gb/s、出力の場合は 4 デー タ ブ ロ ッ ク  デー タ ブ ロ ッ ク あ た り 8 ビ ッ ト  300MHz = 9.6Gb/s で
あ る こ と を意味 し ます。 必要な場合、 複数の消去 コ ーデ ッ ク を並列に機能す る よ う に イ ン ス タ ン シエー ト し て、 よ り 高い
デー タ スループ ッ ト を実現で き ます。
検証結果
Vivado HLS デザ イ ン フ ロ ーでは、 機能検証は 2 つの ス テ ッ プで構成 さ れてい ます。
最初の ス テ ッ プは、 ゴールデン テ ス ト ベ ク タ ーに照 ら し て C コ ー ド を検証す る 、 C 機能検証です。 C ラ イ ブ ラ リ は リ ッ
チ フ ァ イ ル I/O 機能を提供 し てい る ため、 格納済みの入力お よ び出力テ ス ト ベ ク タ ーに基づいて C テ ス ト ベンチを コ ー
デ ィ ン グす る こ と は簡単です。 消去 コ ーデ ッ ク の リ フ ァ レ ン ス デザ イ ンは、 こ のアプ ロ ーチに従い ます。 ゴールデン テ
ス ト ベ ク タ ーには、 4 つすべての消去 コ ー ド レー ト に対応す る 実行数 1000 の消去デ コ ー ド が含まれてお り 、 各コ ー ド
レー ト に対 し て ラ ン ダ ムに選択 さ れた 25 の残存パ タ ーン、お よ び各残存パ タ ーン用の 10 セ ッ ト のデー タ ブ ロ ッ ク が設定
さ れてい ます。
C の動作が検証 さ れ、 C の関数が HDL に合成 さ れ る と 、 Vivado HLS は C のテ ス ト コ ー ド に従っ て HDL テ ス ト ベンチを
自動的に生成で き ます。 こ の ス テ ッ プは、 C/RTL 協調シ ミ ュ レーシ ョ ン と 呼ばれ、 HDL の動作 と C の機能を確実に一致
さ せます。 図 8 に示す と お り 、 Vivado HLS は C/RTL 協調シ ミ ュ レーシ ョ ン用に多数のシ ミ ュ レー タ と HDL コ ー ド 形式を
サポー ト し てい ます。
X-Ref Target - Figure 8
;
図 8 : C および HDL 協調シ ミ ュ レーシ ョ ン ダ イ ア ログ ウ ィ ン ド ウ
XAPP1273 (v1.0) 2016 年 3 月 14 日
12
www.xilinx.com
検証結果
HDL デザ イ ンの出力は、 機能が正 し い こ と を確認す る ために、 ゴールデン テ ス ト ベ ク タ ーの出力 と 比較 さ れます。 シ
ミ ュ レーシ ョ ンの最後に、 Vivado HLS は次の よ う なチ ェ ッ ク 後の結果を出力 し ます。
…..
******
****
****
**
xsim v2015.3 (64-bit)
SW Build 1368829 on Mon Sep 28 20:06:43 MDT 2015
IP Build 1367837 on Mon Sep 28 08:56:14 MDT 2015
Copyright 1986-2015 Xilinx, Inc. All Rights Reserved.
source xsim.dir/rs_erasure/xsim_script.tcl
# xsim {rs_erasure} -maxdeltaid 10000 -autoloadwcfg -tclbatch {rs_erasure.tcl}
Vivado Simulator 2015.3
Time resolution is 1 ps
source rs_erasure.tcl
## add_wave -r /
WARNING: Simulation object /apatb_rs_erasure_top/next_trigger_ready_cnt was not
traceable in the design for the following reason:
Vivado Simulator does not yet support tracing of Verilog named events.
## save_wave_config rs_erasure.wcfg
## run all
$finish called at time : 3512850 ps : File
"C:/MattRuan/appnote/ProjRSErasure/SolutionX/sim/verilog/rs_erasure.autotb.v" Line
1276
## quit
INFO: [Common 17-206] Exiting xsim at Thu Nov 05 13:58:56 2015...
[0]
0 out of 250 test vectors failed.
[1]
0 out of 250 test vectors failed.
[2]
0 out of 250 test vectors failed.
[3]
0 out of 250 test vectors failed.
Total 1000 Test Vectors, Err Count = 0.
Test Passed!
@I [SIM-1000] *** C/RTL co-simulation finished: PASS ***
波形での手動デバ ッ グのために、 信号 ト レース を ダ ンプす る オプシ ョ ン も あ り ます。 図 9 は、 多様な コ ー ド レー ト と 残
存パ タ ーンのテ ス ト ケース用に Vivado Simulator 2015.3 が生成 し た シ ミ ュ レーシ ョ ン波形です。 図 9 に示す波形か ら 、 マ
ルチモー ド 消去 コ ーデ ッ ク の レ イ テ ン シが 88.9ns/3.3ns = 27 ク ロ ッ ク サ イ ク ルであ り 、 合成レ ポー ト の値 と 一致す る こ と
が確認で き ます。
XAPP1273 (v1.0) 2016 年 3 月 14 日
13
www.xilinx.com
イ ン プ リ メ ン テーシ ョ ンの結果
X-Ref Target - Figure 9
;
図 9 : C および HDL 協調シ ミ ュ レーシ ョ ンの波形
イ ン プ リ メ ン テーシ ョ ンの結果
ザ イ リ ン ク ス Vivado HLS は、 C 関数の HDL コ ー ド を生成す る だけでな く 、 HDL を IP にパ ッ ケージする 多数のオプシ ョ
ン を提供す る ため、 System Generator、 エンベデ ッ ド 開発キ ッ ト (EDK)、 IP イ ン テ グ レー タ ーな ど の Vivado Design Suite を
使用 し て、 よ り 大規模なデザ イ ンに容易に統合で き ます。 例示目的で、 サンプルの リ フ ァ レ ン ス デザ イ ン用に IP カ タ ロ
グが選択 さ れてい ます (図 10 参照)。
X-Ref Target - Figure 10
;
図 10 : HDL エ ク スポー ト ダ イ ア ログ ウ ィ ン ド ウ
Vivado HLS ツールは、 Vivado プ ロ ジ ェ ク ト を自動的に作成 し てすべての HDL コ ー ド を合成 し 、 イ ンプ リ メ ン テーシ ョ ン
のパフ ォーマ ン ス を検証 し ます。 次の よ う な消去 コ ーデ ッ ク の最終 イ ンプ リ メ ン テーシ ョ ン レ ポー ト に よ っ て、 デザ イ
ン目標が達成 さ れてい る こ と を確認 し ます。
XAPP1273 (v1.0) 2016 年 3 月 14 日
14
www.xilinx.com
リ フ ァ レ ン ス デザイ ン
Implementation tool: Xilinx Vivado v.2015.3
Device target:
xcku040-ffva1156-2-e
Report date:
Thu Nov 05 14:30:47 +0800 2015
#=== Resource usage ===
CLB:
4411
LUT:
26010
FF:
5264
DSP :
0
BRAM:
0
SRL:
110
#=== Final timing ===
CP required:
3.300
CP achieved:
3.143
Timing met
こ の レ ポー ト は、 合成ツールが、 デ コ ー ド 行列 ROM の イ ンプ リ メ ン テーシ ョ ンに、 ブ ロ ッ ク RAM ではな く 分散 RAM
を選択 し た こ と を示 し てい ます。 こ れは、 RS(12, 4) のみが フル ス ト レージ容量を使用 し 、 その他の コ ー ド ではデコ ー ド
行列 ROM に多 く のゼ ロ がパデ ィ ン グ さ れてい る ためです。 合成ツールは ROM の スパース性を検出 し 、 タ イ ミ ン グ パ
フ ォーマ ン ス を向上 さ せ る ために ROM を分散 RAM に イ ンプ リ メ ン ト す る こ と を決定 し ます。
リ フ ァ レ ン ス デザイ ン
こ のアプ リ ケーシ ョ ン ノ ー ト の リ フ ァ レ ン ス デザ イ ン フ ァ イ ルは、 ザ イ リ ン ク ス の ウ ェ ブサ イ ト か ら ダ ウ ン ロ ー ド で き
ます。
デザイ ン フ ァ イルの階層
最上位フ ォ ルダーの下のデ ィ レ ク ト リ 構造は次の と お り です。
\src
| This folder contains C design files and header files.
|
\tb
| This folder contains a C design file that serves as the test bench.
|
\tv
| This folder contains the input and output golden test vectors for
|
verification purposes.
|
イ ン ス ト ール と 操作の手順 1.
ザ イ リ ン ク ス Vivado ツールのバージ ョ ン 2015.3 以降を イ ン ス ト ール し ます。
2.
デザ イ ン フ ァ イ ルを ク リ ーン デ ィ レ ク ト リ に解凍 し ます。
3.
Vivado HLS コ マ ン ド ラ イ ン ウ ィ ン ド ウ で、 次を十国 し ます。
a.
cd を実行 し て、 デザ イ ンのルー ト デ ィ レ ク ト リ に移動 し ます。
b.
「vivado_hls run.tcl」 と 入力 し ます。
c.
合成 さ れたデザ イ ンが想定を満た し てい る こ と を確認 し ます。
XAPP1273 (v1.0) 2016 年 3 月 14 日
15
www.xilinx.com
ま とめ
表 2 に、 リ フ ァ レ ン ス デザ イ ンの詳細を示 し ます。
表 2 : リ フ ァ レ ン ス デザ イ ンの詳細
パラ メ ー タ ー
説明
一般
Matt Ruan
開発者
Kintex® UltraScale™ FPGA (KU040、 KU060)
Virtex®-7 FPGA (7V690)
注記 : リ フ ァ レ ン ス デザ イ ンは Virtex-7 お よ び Kintex UltraScale
FPGA でテ ス ト さ れてい ますが、 Zynq UltraScale+ MPSoC、 さ
ら には Artix®-7 や Spartan®-6 FPGA と いっ たほかのデバ イ ス で
も 動作す る はずです。 Spartan-6 お よ び Artix-7 デバ イ ス で達成
可能な ス ループ ッ ト は、 Kintex お よ び Virtex UltraScale デバ イ
ス で達成可能な ス ループ ッ ト よ り も 低い と 予想 さ れます。
タ ーゲ ッ ト デバ イ ス
ソ ース コ ー ド の提供
あり
ソ ース コ ー ド の形式
C、 テ ス ト ベ ク タ ー、 お よ び合成ス ク リ プ ト
既存のザ イ リ ン ク ス アプ リ ケーシ ョ ン ノ ー ト / リ フ ァ レ ン ス
デザ イ ン、 ま たはサー ド パーテ ィ か ら デザ イ ンへの コ ー ド
/IP の使用
なし
シ ミ ュ レーシ ョ ン
論理シ ミ ュ レーシ ョ ンの実施
あり
タ イ ミ ン グ シ ミ ュ レーシ ョ ンの実施
なし
論理シ ミ ュ レーシ ョ ンお よ び タ イ ミ ン グ シ ミ ュ レーシ ョ ン
でのテ ス ト ベンチの利用
あり
C
テ ス ト ベンチの形式
Vivado Simulator 2015.3
使用 し たシ ミ ュ レー タ /バージ ョ ン
SPICE/IBIS シ ミ ュ レーシ ョ ンの実施
なし
イ ン プ リ メ ン テーシ ョ ン
Vivado 高位合成 2015.3
使用 し た合成ツール/バージ ョ ン
使用 し た イ ンプ リ メ ン テーシ ョ ン ツール/バージ ョ ン
ス タ テ ィ ッ ク タ イ ミ ン グ解析の実施
Vivado Design Suite 2015.3
あり
ハー ド ウ ェ ア検証
ハー ド ウ ェ ア検証の実施
なし
検証に使用 し たハー ド ウ ェ ア プ ラ ッ ト フ ォーム
N/A
ま とめ
こ のアプ リ ケーシ ョ ン ノ ー ト は、 C コ ー ド を入力 と し て利用 し 、 FPGA 上で合成可能な HDL コ ー ド を生成す る Vivado
HLS ツール チ ェ ーン を使用 し て、 低レ イ テ ン シのマルチ レー ト 消去コ ーデ ッ ク を作成す る 方法を示 し てい ます。 C ソ ー
ス コ ー ド は維持が簡単であ り 、 多様な FPGA デバ イ ス、 消去 コ ー ド レー ト 、 お よ びシ ス テ ム ク ロ ッ ク 周波数に合わせて
拡張で き ます。 デ コ ー ド 行列 ROM を変更すれば、 パ イ プ ラ イ ン化 さ れた Gf(2n)n) 汎用行列乗算アーキ テ ク チ ャ か ら ほか
の タ イ プの消去 コ ーデ ッ ク の作成 も 容易です。
XAPP1273 (v1.0) 2016 年 3 月 14 日
16
www.xilinx.com
参考資料
参考資料
注記 : 日本語版のバージ ョ ンは、 英語版 よ り 古い場合があ り ます。
1.
Burkhard, W. A. and Menon, J. (June 1993) "Disk array storage system reliability."Proceedings of the 23rd Annual International
Symposium on Fault-Tolerant Computing, pp. 432–441
2.
Dimakis, A.G.; Prabhakaran, V.; Ramchandran, K. (June 2006) "Decentralized erasure codes for distributed networked
storage.”IEEE Transactions on Information Theory, pp. 2809–2816, Volume 52, Issue 6
3.
Sobe, Peter (March 2009) "Coding for Reliable Data Storage on Different Hardware Platforms."Architecture of Computing
Systems - ARCS 2009: 22nd International Conference Proceedings, pp. 1-6
4.
『Vivado Design Suite ユーザー ガ イ ド : 高位合成』 (UG902 : 英語版、 日本語版)
改訂履歴
次の表に、 こ の文書の改訂履歴を示 し ます。
日付
バージ ョ ン
2016 年 3 月 14 日
1.0
内容
初版
法的通知
本通知に基づいて貴殿ま たは貴社 (本通知の被通知者が個人の場合には 「貴殿」、 法人その他の団体の場合には 「貴社」。 以下同 じ ) に開
示 さ れ る 情報 (以下 「本情報」 と いい ます) は、 ザ イ リ ン ク ス の製品を選択お よ び使用す る こ と のためにのみ提供 さ れます。 適用 さ れ る
法律が許容す る 最大限の範囲で、 (1) 本情報は 「現状有姿」、 お よ びすべて受領者の責任で (with all faults) と い う 状態で提供 さ れ、 ザ イ リ
ン ク ス は、 本通知を も っ て、 明示、 黙示、 法定を問わず (商品性、 非侵害、 特定目的適合性の保証を含みますが こ れ ら に限 ら れません)、
すべての保証お よ び条件を負わない (否認す る ) も の と し ます。 ま た、 (2) ザ イ リ ン ク ス は、 本情報 (貴殿ま たは貴社に よ る 本情報の使用
を含む) に関係 し 、 起因 し 、 関連す る 、 いかな る 種類 ・ 性質の損失ま たは損害について も 、 責任を負わない (契約上、 不法行為上 (過失の
場合を含む)、 その他のいかな る 責任の法理に よ る か を問わない) も の と し 、 当該損失ま たは損害には、 直接、 間接、 特別、 付随的、 結
果的な損失ま たは損害 (第三者が起 こ し た行為の結果被っ た、 デー タ 、 利益、 業務上の信用の損失、 その他あ ら ゆ る 種類の損失や損害を
含みます) が含ま れ る も の と し 、 それは、 た と え当該損害や損失が合理的に予見可能であ っ た り 、 ザ イ リ ン ク ス がそれ ら の可能性につい
て助言を受けていた場合であ っ た と し て も 同様です。 ザ イ リ ン ク ス は、 本情報に含ま れ る いかな る 誤 り も 訂正す る 義務を負わず、 本情
報ま たは製品仕様のア ッ プデー ト を貴殿ま たは貴社に知 ら せ る 義務 も 負い ません。 事前の書面に よ る 同意のない限 り 、 貴殿ま たは貴社
は本情報を再生産、 変更、 頒布、 ま たは公に展示 し てはな り ません。 一定の製品は、 ザ イ リ ン ク ス の限定的保証の諸条件に従 う こ と と
な る ので、 http://japan.xilinx.com/legal.htm#tos で見 ら れ る ザ イ リ ン ク ス の販売条件を参照 し て く だ さ い。 IP コ アは、 ザ イ リ ン ク ス が貴殿
ま たは貴社に付与 し た ラ イ セ ン ス に含ま れ る 保証 と 補助的条件に従 う こ と にな り ます。 ザ イ リ ン ク ス の製品は、 フ ェ イ ルセーフ と し て、
ま たは、 フ ェ イ ルセーフ の動作を要求す る アプ リ ケーシ ョ ンに使用す る ために、 設計 さ れた り 意図 さ れた り し てい ません。 その よ う な
重大な アプ リ ケーシ ョ ンにザ イ リ ン ク ス の製品を使用す る 場合の リ ス ク と 責任は、 貴殿ま たは貴社が単独で負 う も のです。
http://japan.xilinx.com/legal.htm#tos で見 ら れ る ザ イ リ ン ク ス の販売条件を参照 し て く だ さ い。
自動車用のアプ リ ケーシ ョ ンの免責条項
ザ イ リ ン ク ス の製品は、 フ ェ イ ルセーフ と し て設計 さ れた り 意図 さ れてはお ら ず、 ま た、 フ ェ イ ルセーフ の動作を要求す る アプ リ ケー
シ ョ ン (具体的には、 (I) エアバ ッ グの展開、 (II) 車の コ ン ト ロ ール (フ ェ イ ルセーフ ま たは余剰性の機能 (余剰性を実行す る ためのザ イ リ
ン ク ス の装置に ソ フ ト ウ ェ ア を使用す る こ と は含ま れません) お よ び操作者が ミ ス を し た際の警告信号があ る 場合を除 き ます)、 (III) 死亡
や身体傷害を導 く 使用、 に関す る アプ リ ケーシ ョ ン) を使用す る ために設計 さ れた り 意図 さ れた り も し てい ません。 顧客は、 その よ う な
アプ リ ケーシ ョ ンにザ イ リ ン ク ス の製品を使用す る 場合の リ ス ク と 責任を単独で負い ます。
© Copyright 2016 Xilinx, Inc. Xilinx、 Xilinx の ロ ゴ、 Artix、 ISE、 Kintex、 Spartan、 Virtex、 Vivado、 Zynq、 お よ び こ の文書に含ま れ る その
他の指定 さ れたブ ラ ン ド は、 米国お よ びその他各国のザ イ リ ン ク ス社の商標です。 すべてのその他の商標は、 それぞれの保有者に帰属
し ます。
こ の資料に関す る フ ィ ー ド バ ッ ク お よ び リ ン ク な ど の問題につ き ま し ては、 [email protected] ま で、 ま たは各ページの右下
にあ る [フ ィ ー ド バ ッ ク 送信] ボ タ ン を ク リ ッ ク す る と 表示 さ れ る フ ォームか ら お知 ら せ く だ さ い。 いただ き ま し た ご意見を参考に早急
に対応 さ せていただ き ます。 なお、 こ の メ ール ア ド レ スへのお問い合わせは受け付け てお り ません。 あ ら か じ めご了承 く だ さ い。
XAPP1273 (v1.0) 2016 年 3 月 14 日
17
www.xilinx.com
Fly UP