...

リード・ソロモン・コンパイラ ユーザーガイド

by user

on
Category: Documents
77

views

Report

Comments

Transcript

リード・ソロモン・コンパイラ ユーザーガイド
リード・ソロモン・コンパイラ
ユーザーガイド
101 Innovation Drive
San Jose, CA 95134
www.altera.com
MegaCore バージョン :
11.0
ドキュメント・デート : 011 年 5 月
Copyright © 2012 Altera Corporation. All rights reserved. Altera, The Programmable Solutions Company, the stylized Altera logo, specific device designations, and all other
words and logos that are identified as trademarks and/or service marks are, unless noted otherwise, the trademarks and service marks of Altera Corporation in the U.S. and other
countries. All other product or service names are the property of their respective holders. Altera products are protected under numerous U.S. and foreign patents and pending applications, maskwork rights, and copyrights. Altera warrants performance of its semiconductor products to current specifications in accordance with Altera's standard warranty,
but reserves the right to make changes to any products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of
any information, product, or service described herein except as expressly agreed to in writing by Altera Corporation. Altera customers are advised to obtain the latest version of
device specifications before relying on any published information and before placing orders for products or services.
UG-RSCOMPILER-11.0
目次
第 1 章 . このコンパイラについて
機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
リリース情報 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
サポートされるデバイス・ファミリ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
パフォーマンスおよびリソース使用率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
インストールおよびライセンス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
OpenCore Plus 評価機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
OpenCore Plus タイム・アウト動作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1‒1
1‒2
1‒3
1‒4
1‒6
1‒6
1‒7
第 2 章 . 使用法
デザイン・フロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2‒1
DSP Builder フロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2‒1
MegaWizard Plug-In Manager フロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2‒2
MegaCore ファンクションのパラメータ化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2‒3
シミュレーションのセット・アップ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2‒6
MegaCore ファンクションの生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2‒8
デザインのシミュレーション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2‒9
デザインのコンパイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2‒10
デバイスのプログラミング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2‒10
第 3 章 . 機能の説明
バックグランド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3‒1
消去 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3‒2
短縮符号語 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3‒2
可変エンコーディングおよびデコーディング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3‒3
RS エンコーダ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3‒3
RS デコーダ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3‒4
エラー・シンボルの出力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3‒5
ビット・エラーの数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3‒6
インタフェース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3‒6
パラメータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3‒7
信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3‒8
スループットの計算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3‒11
A. CCSDS システムに RS エンコーダまたはデコーダの使用
はじめに . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A‒1
テスト・パターン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A‒1
ユーザーガイドについて
改訂履歴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . インフォ ‒1
アルテラへのお問い合わせ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . インフォ ‒1
表記規則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . インフォ ‒2
2011 年 5 月 Altera Corporation
リード・ソロモン・コンパイラ ユーザーガイド
iv
リード・ソロモン・コンパイラ ユーザーガイド
2011 年 5 月
Altera Corporation
1. このコンパイラについて
Altera® Reed-Solomon (RS) コンパイラは、順方向誤り訂正(FEC)アプリケーション向
けの完全にパラメータ化されたエンコーダおよびデコーダで構成されます。RS コー
ドは、データのストレージ、検索および送信用の広範な DSP アプリケーションにお
いて、誤り検出および訂正に幅広く使用されています。RS コンパイラには、以下の
オプションがあります。
■
Erasures-supporting option—RS デコーダは誤り位置が与えられると、最大でチェッ
ク・シンボル数までのシンボル誤りを訂正できます。3–2 ページの「消去」を参
照してください。
■
Variable encoding or decoding— エンコードまたはデコードするときに、コードワー
ドあたりのシンボル総数とチェック・シンボル数を最小許容値から選択された値
までの範囲で、リアルタイムで変更できます。
■
Error symbol output—RS デコーダは誤り値および位置を検出して、これらの値を入
力値に加算(ガロア体上での加算)します。
■
Bit error output—Split Count または Full Count のいずれか
機能
Altera のリード・ソロモン・コンパイラは、以下のような機能もサポートしていま
す。
■
誤り検出および訂正用高性能エンコーダ / デコーダ
■
以下を含む完全にパラメータ化された RS ファンクション:
■
2011 年 5 月
■
シンボルあたりのビット数
■
コードワードあたりのシンボル数
■
コードワードあたりのチェック・シンボル数
■
フィールド多項式
■
生成多項式の最初の根
■
生成多項式の根空間
デコーダ機能:
■
Variable オプション
■
Erasures-supporting オプション
■
エンコーダ機能可変アーキテクチャ
■
短縮コードワードのサポート
■
Consultative Committee for Space Data Systems (CCSDS) Recommendations for Telemetry
Channel Coding, May 1999 に準拠
Altera Corporation
リード・ソロモン・コンパイラ ユーザーガイド
1‒2
第 1 章 : このコンパイラについて
リリース情報
■
使いやすい IP Toolbench インタフェース
■
パラメータ化されたエンコーダまたはデコーダを生成
■
カスタマイズされたテストベンチとカスタマイズされた Tcl スクリプトを生成
■
DSP Builder Ready
■
アルテラでサポートしている VHDL、Verilog HDL シミュレータ上で使用可能な IP
ファンクション・シュミレーション・モデル
■
OpenCore Plus 評価をサポート
リリース情報
表 1–1 に、リード・ソロモン(RS)コンパイラのリリースに関する情報を示します。
表 1‒1. RS コンパイラのリリース情報
項目
説明
バージョン
11.0
リリース月
May 2011 年 5 月
製品コード
IP-RSENC ( エンコーダ )
IP-RSDEC ( デコーダ )
プロダクト ID
0039 0041 ( エンコーダ )
0080 0041 ( デコーダ )
ベンダ ID
f
6AF7
このリリースについて詳しくは、
「 MegaCore IP Library Release Notes and Errata」を参照
してください。
アルテラは、Quartus® II ソフトウェアの現行バージョンが、各 MegaCore ファンク
ションの前のバージョンをコンパイルできることを検証しています。「 MegaCore IP
Library Release Notes and Errata」のレポートでは、この検証に例外がある場合に報告し
ます。アルテラは、1 リリースより前の MegaCore ファンクション・バージョンのコ
ンパイルは検証していません。
リード・ソロモン・コンパイラ ユーザーガイド
2011 年 5 月
Altera Corporation
第 1 章 : このコンパイラについて
サポートされるデバイス・ファミリ
1‒3
サポートされるデバイス・ファミリ
表 1–2 には、アルテラの IP コア用のデバイス・サポート・レベルを定義します。
表 1‒2. アルテラ IP コアのデバイス・サポート・レベル
FPGA デバイス・ファミリ
HardCopy デバイス・ファミリ
暫定サポート —IP コアは、このデバイス・ファミリ
のための暫定タイミング・モデルと検証されます。暫
定サポートとは、メガファンクションがすべての機
能要件を満たすが、メガファンクションに対し、デ
バイス・ファミリについてのタイミング解析がまだ
行われていることがあります。製造デザインでの使
用は注意が必要です。
HardCopy コンパニオン —IP コアは、HardCopy のコン
パニオン・デバイスのための暫定タイミング・モデ
ルと検証されます。メガファンクションに対し、
HardCopy デバイス・ファミリについてのタイミング
解析がまだ行われていることがあります。それは注
意して生産デザインで使用することができます。
最終サポート —IP コアは、このデバイス・ファミリ
のための暫定タイミング・モデルと検証されます。IP
コアがすべての機能およびタイミング要件を満たす
必要があります。また、製造デザインで使用可能で
あります。
HardCopy コンパイル —P コアは、HardCopy のコンパ
ニオン・デバイスのための暫定タイミング・モデル
と検証されます。IP コアがすべての機能およびタイ
ミング要件を満たす必要があります。また、製造デ
ザインで使用可能であります。
表 1–3 に、RS コンパイラによる各アルテラ・デバイス・ファミリへのサポートのレベル
を示します。
表 1‒3. デバイス・ファミリ・サポート
デバイス・ファミリ
2011 年 5 月
サポート
®
Arria GX
最終
Arria II GX
最終
Arria II GZ
最終
Cyclone®
最終
Cyclone II
最終
Cyclone III
最終
Cyclone III LS
最終
Cyclone IV GX
最終
HardCopy® II
HardCopy コンパイル
HardCopy III
HardCopy コンパイル
HardCopy IV E
HardCopy コンパイル
HardCopy IV GX
HardCopy コンパイル
Stratix®
最終
Stratix II
最終
Stratix II GX
最終
Stratix III
最終
Stratix IV GT
最終
Stratix IV GX/E
最終
Stratix V
暫定
Stratix GX
最終
他のデバイス・ファミリ
サポートなし
Altera Corporation
リード・ソロモン・コンパイラ ユーザーガイド
1‒4
第 1 章 : このコンパイラについて
パフォーマンスおよびリソース使用率
パフォーマンスおよびリソース使用率
表 1–4 に、Cyclone III (EP3C10F256C6) デバイス用の Quartus II ソフトウェア v を使用し
た標準的なパフォーマンスを示します。
1
Cyclone III デバイスはルックアップ・テーブル(LUT)とロジック・レジスタを使用
し、Stratix III デバイスはアダプティブ・ルックアップ・テーブル(ALUT)とロジッ
ク・レジスタを使用しています。
表 1‒4. パフォーマンス ̶Cyclone III デバイス
パラメータ
キー・
サイズ
ビ
ッ
ト
(1)
シンボ
ル s (2)
チェッ
ク (3)
標準のデコーダ
ハーフ
4
15
標準のデコーダ
ハーフ
8
分割ビット・エラー・デ
コーダ
ハーフ
フル・ビット・エラー・
デコーダ
LUT
ロジッ
ク・レ
ジスタ
メモリ
(M9K)
fMAX
(MH
z)
スルー
プット
(Mbps)
6
541
365
5
230
216
204
16
1,720
995
5
202
1,613
8
204
16
1,765
1,057
5
194
1,552
ハーフ
8
204
16
1,778
1,058
5
190
1,519
標準のデコーダ
ハーフ
8
255
32
2,972
1,676
5
193
1,213
可数デコーダ
ハーフ
8
204
16
1,886
1,074
5
202
1,620
消去デコーダ
ハーフ
8
204
16
3,151
1,561
5
188
1,500
消去および可数デコーダ
ハーフ
8
204
16
3,465
1,704
6
191
1,527
標準のデコーダ
—
8
204
16
256
210
—
324
2,593
可数エンコーダ
—
8
204
16
1,048
313
—
237
1,897
可数エンコーダ
—
8
204
32
2,341
580
—
227
1,813
オプション
表 1‒4 の注 :
(1) シンボルあたりのビット数 (m)。
(2) コードワードあたりのシンボル数 (N)。
(3) コードワードあたりのチェック・シンボル数 (R)。
表 1–5 に、Stratix III (EP3SE50F780C2) デバイス用の Quartus II ソフトウェア v を使用し
た標準的なパフォーマンスを示します。
表 1‒5. パフォーマンス ̶Stratix III デバイス ( その1 )
パラメータ
キー・
サイズ
ビ
ッ
ト
(1)
シンボ
ル (2)
チェッ
ク (3)
標準のデコーダ
ハーフ
4
15
標準のデコーダ
ハーフ
8
分割ビット・エラー・デ
コーダ
ハーフ
8
オプション
リード・ソロモン・コンパイラ ユーザーガイド
ALUT
ロジッ
ク・レ
ジスタ
メモリ
(M9K)
fMAX
(MH
z)
スルー
プット
(Mbps)
6
417
366
5
403
378
204
16
1,139
998
5
358
2,865
204
16
1,196
1,060
5
336
2,686
2011 年 5 月
Altera Corporation
第 1 章 : このコンパイラについて
パフォーマンスおよびリソース使用率
1‒5
表 1‒5. パフォーマンス ̶Stratix III デバイス ( その2 )
パラメータ
キー・
サイズ
ビ
ッ
ト
(1)
シンボ
ル (2)
チェッ
ク (3)
フル・ビット・エラー・
デコーダ
ハーフ
8
204
標準のデコーダ
ハーフ
8
可数デコーダ
ハーフ
消去デコーダ
消去および 可数デコーダ
ALUT
ロジッ
ク・レ
ジスタ
メモリ
(M9K)
fMAX
(MH
z)
スルー
プット
(Mbps)
16
1,181
1,065
5
328
2,624
255
32
2,027
1,685
5
319
2,011
8
204
16
1,273
1,082
5
359
2,871
ハーフ
8
204
16
2,092
1,564
5
309
2,469
ハーフ
8
204
16
2,200
1,708
6
311
2,490
標準のデコーダ
—
8
204
16
204
210
—
621
4,969
可数エンコーダ
—
8
204
16
779
313
—
397
3,179
可数エンコーダ
—
8
204
32
1,650
581
—
365
2,923
オプション
表 1‒5 の注 :
(1) シンボルあたりのビット数 (m)。
(2) 符号語あたりのシンボル数 (N)。
(3) 符号語あたりのチェック・シンボル数 (R)。
表 1–6 には、Stratix IV(EP4SGX70DF29C2X)デバイスの Quartus II ソフトウェアを使
用する典型的なパフォーマンスを示します。
表 1‒6. パフォーマンス ̶Stratix IV デバイス
パラメータ
メモリ
キー・
サイズ
ビ
ッ
ト
(1)
シンボ
ル (2)
チェ
ッ
ク (3)
ALUT
s
ロジッ
ク・レ
ジスタ
標準のデコーダ
ハーフ
4
15
6
426
382
標準のデコーダ
ハーフ
8
204
16
1,220
分割ビット・エ
ラー・デコーダ
ハーフ
8
204
16
フル・ビット・エ
ラー・デコーダ
ハーフ
8
204
標準のデコーダ
ハーフ
8
可数デコーダ
ハーフ
8
消去デコーダ
ハーフ
消去および可数デ
コーダ
ハーフ
オプション
2011 年 5 月
Altera Corporation
ALUT
M9
K
fMAX
(MH
z)
ツルー
プット
(Mbps)
8
3
413
387
1,034
64
3
368
2,945
1,273
1,092
64
3
340
2,719
16
1,255
1,092
64
3
325
2,603
255
32
2,100
1,713
64
3
324
2,038
204
16
1,362
1,119
64
3
356
2,850
8
204
16
2,170
1,596
64
3
314
2,510
8
204
16
2,322
1,746
96
3
310
2,480
リード・ソロモン・コンパイラ ユーザーガイド
1‒6
第 1 章 : このコンパイラについて
インストールおよびライセンス
表 1‒6. パフォーマンス ̶Stratix IV デバイス
パラメータ
メモリ
キー・
サイズ
ビ
ッ
ト
(1)
シンボ
ル (2)
チェ
ッ
ク (3)
ALUT
s
ロジッ
ク・レ
ジスタ
標準のデコーダ
—
8
204
16
204
可数エンコーダ
—
8
204
16
777
可数エンコーダ
—
8
204
32
1,651
オプション
ALUT
M9
K
fMAX
(MH
z)
ツルー
プット
(Mbps)
210
—
—
620
4,960
313
—
—
387
3,099
582
—
—
347
2,775
表 1‒6 の注 :
(1) シンボルあたりのビット数 (m)。
(2) 符号語あたりのシンボル数 (N)。
(3) 符号語あたりのチェック・シンボル数 (R)。
スループット(Mbps)は、3–11 ページの表 3–9 での式およびデザインが動作可能な
最大周波数から得られます。
全体的なリソース要件は、使用されるパラメータ値によって大きく変化します。
ファンクションを実装するのに必要なロジック・エレメント(LE)または組み合わ
せ ALUT 数は、フィールド・サイズおよびチェック・シンボル数の両方に比例しま
す。1 シンボルあたり 9、10、11、または 12 ビットの場合はさらにメモリが必要で
す。Erasures-supporting オプションと Variable オプションでは、必要なメモリも増加
します。
インストールおよびライセンス
RS コンパイラは、MegaCore® IP ライブラリの一部であり、Quartus II ソフトウェアと
ともに配布されます。また、アルテラのウェブサイト(www.altera.co.jp)からダウン
ロードすることもできます。
f
システム要求およびインストールの手順については、「Altera Software Installation and
Licensing」のマニュアルを参照してください。
リード・ソロモン・コンパイラ ユーザーガイド
2011 年 5 月
Altera Corporation
第 1 章 : このコンパイラについて
インストールおよびライセンス
1‒7
図 1–1 に、トリプル・スピード・イーサネット MegaCore ファンクションをインス
トールした後のディレクトリ構造を示します。この場合、<path> がインストール・
ディレクトリです。Windows でのデフォルトのインストール・ディレクトリは、
c:\altera\<version> です。Linux では、/opt/altera<version> です。
図 1‒1. ディレクトリ構造
<path>
Installation directory.
ip
Contains the Altera MegaCore IP Library and third-party IP cores.
altera
Contains the Altera MegaCore IP Library.
common
Contains shared components.
reed_solomon
Contains the Reed-Solomon Compiler files.
lib
Contains encrypted lower-level design files.
OpenCore Plus 評価機能
アルテラの無償 OpenCore Plus 評価機能により、以下の処理を実行できます。
■
システム内のメガファンクション(アルテラ MegaCore ファンクションまたは
AMPPSM メガファンクション)の動作をシミュレーションする。
■
デザインの機能を検証したり、サイズやスピードを迅速かつ簡単に評価したりす
る。
■
メガファンクションを含むデザインに対し、実行時間に制限のあるデバイス・プ
ログラミング・ファイルを生成する。
■
デバイスをプログラムし、デザインを実機上で検証する。
メガファンクションのライセンスは、お客様が機能と性能に満足し、かつデザイン
を製品化する場合にのみ、ご購入いただく必要があります。ライセンス購入後は、
アルテラ・ウェブサイト(www.altera.co.jp/licensing)からライセンス・ファイルを要
求して、コンピュータにインストールできます。ライセンス・ファイルを要求する
と、アルテラから電子メールで license.dat ファイルが送信されます。インターネッ
トをご利用いただけないお客様は、アルテラの販売代理店にお問い合わせください。
f
「AN320: OpenCore Plus 評価機能に
OpenCore Plus ハードウェア評価について詳しくは、
よるメガファンクションの評価」を参照してください。
OpenCore Plus タイム・アウト動作
penCore Plus ハードウェア評価機能は、以下の動作モードでメガファンクションの実
機評価をサポートします。
2011 年 5 月
■
Untethered(アンテザード)— デザインは限定時間のみ実行されます。
■
Tethered(テザード)— ボードとホスト・コンピュータ間に接続が必要です。デ
ザイン内のすべてのメガファンクションが Tethered モードをサポートしている場
合、デバイスはより長時間または無制限に動作できます。
Altera Corporation
リード・ソロモン・コンパイラ ユーザーガイド
1‒8
第 1 章 : このコンパイラについて
インストールおよびライセンス
OpenCore Plus 評価機能モードで動作中のメガファンクションのうちの 1 つでも評価
時間に達すると、デバイス内のすべてのメガファンクションが同時にタイム・アウ
トします。デザイン内に複数のメガファンクションがある場合、特定のメガファン
クションのタイムアウト動作は、他のメガファンクションのタイムアウト動作に
よってマスクされることがあります。
RS Compiler MegaCore 機能の Untethered タイム・アウトは 1 時間、Tethered タイム・
アウト値は無制限です。
ハードウェア評価期限経過後にデザインは動作を停止し、rsout 出力が Low になり
ます。
リード・ソロモン・コンパイラ ユーザーガイド
2011 年 5 月
Altera Corporation
2. 使用法
デザイン・フロー
RS コンパイラには、以下のオプションがあります。
■
DSP Builder: このフローは、RS コンパイラ・バリエーションを含む DSP Builder モデ
ルを作成する場合に使用します。
■
MegaWizard™ Plug-In Manager: このフローは、手動でデザイン内にインスタンス
化できるバリアントを作成する場合に使用します。
この章では、これらのフローのいずれかの RS のコンパイラを使用する方法について
説明します。パラメータ化は、各フローで同じオプションを提供し、2–3 ページ
の「MegaCore ファンクションのパラメータ化」に説明されています。
これらのフローのいずれかのデザインをパラメータ化し、シミュレートした後、
Quartus II ソフトウェアで完成したデザインをコンパイルすることができます。
DSP Builder フロー
DSP Builder は、設計者がアルゴリズム開発の環境下で行った DSP デザインをハード
ウェアで実現するための支援を行い、デジタル信号処理 (DSP) のデザイン・サイク
ルを短縮します。
DSP Builder は、The MathWorks 社の MATLAB® および Simulink® システム・レベルのデ
ザイン・ツールのアルゴリズム開発、シミュレーション、および検証の機能と、ア
ルテラの Quartus II 開発ソフトウェアおよびサードパーティの合成およびシミュレー
ション・ツールを組み合わせます。既存の Simulink ブロックをアルテラの DSP
Builder/MegaCore ブロックと組み合わせて、システム・レベル仕様を検証し、シミュ
レーションを実行することができます。
DSP Builder では、MegaCore ファンクションの Simulink シンボルが、Simulink ライブ
ラリ・ブラウザでアルテラの DSP Builder ブロック・セットでの MegaCore ファンク
ション・ライブラリに表示されます。
MATLAB/Simulink 環境で RS コンパイラを使用するには、以下のステップに従います。
1. 新規 Simulink モデルを作成します。
2. Simulink ライブラリ・ブラウザでの MegaCore ファンクションのライブラリから
reed_solomon_<version> ブロックを選択し、モデルにそれを追加し、ブロック
に一意の名前を与える。
3. RS コンパイラのパラメータ・エディタを表示するには、モデル内の
reed_solomon_<version> ブロックをダブル・クリックして、RS のコンパイラの
バリエーションをパラメータ化します。RS コンパイラのパラメータを設定する
例については、2–3 ページの「MegaCore ファンクションのパラメータ化」を参照
してください。
4. Finish をクリックしすると、パラメータ化を完了して、RS コンパイラ MegaCore
ファンクションのバリエーションを生成します。生成されるファイルの詳細につ
いては、2–8 ページの表 2–1 を参照してください。
2011 年 5 月
Altera Corporation
リード・ソロモン・コンパイラ ユーザーガイド
2‒2
第 2 章 : 使用法
MegaWizard Plug-In Manager フロー
5. モデル内の他のブロックに RS コンパイラ MegaCore ファンクションのバリエー
ションを接続します。
6. DSP Builder モデルに MegaCore ファンクションのバリエーションをシミュレート
します。
f
1
DSP Builder フローについて詳しくは、DSP Builder User Guide での Using MegaCore
Functions の章を参照してください。
DSP Builder フロー、デバイス選択、シミュレーション、Quartus II のコンパイルおよび
デバイス・プログラミングを使用している場合、すべての DSP Builder の環境で制御
されます。
DSP Builder は、Avalon® Memory-Mapped (Avalon-MM) マスタ / スレーブおよび Avalon
Streaming (Avalon-ST) ソース / シンクのインタフェースを使用してください。
f
Avalon-MM および Avalon-ST インタフェースについて詳しくは、Avalon Interface
Specifications を参照してください。
MegaWizard Plug-In Manager フロー
MegaWizard Plug-In Manager フローでは、RS Compiler MegaCore ファンクションをカス
タマイズし、ファンクション・バリエーションを手動で Quartus II デザインに組み込
むことができます。
MegaWizard Plug-In Manager フローを使用するには、以下のステップに従います。
1. Quartus II ソフトウェアで File メニューから New Project Wizard を選択して、新し
いプロジェクトを作成します。
2. Tools メニューから MegaWizard Plug-In Manager を起動し、新しいカスタム・メガ
ファンクション・バリエーションを作成します(図 2–1 を参照)。
図 2‒1. MegaWizard Plug-In Manager
リード・ソロモン・コンパイラ ユーザーガイド
2011 年 5 月
Altera Corporation
第 2 章 : 使用法
MegaWizard Plug-In Manager フロー
2‒3
3. Next をクリックし、Installed Plug-In タブでの DSP>Error Detection/Correction セク
ションから Reed Solomon <version> を選択します。
4. デバイス・ファミリが、New Project Wizard で指定したものと同じであることを検
証します。
5. デザインのトップレベル出力ファイル・タイプを選択します。ウィザードでは
VHDL と Verilog HDL をサポートしています。
6. MegaWizard Plug-In Manager に、New Project Wizard で指定したプロジェクト・パス
が表示されます。MegaCore ファンクション出力ファイル <project path>\<variation
name> のバリエーション名を追加します。図 2–2 には、これらの設定を指定した
後のパラメータ・エディタを示しています。
図 2‒2. メガファンクションの選択
7. Next をクリックして、IP Toolbench を起動します。
MegaCore ファンクションのパラメータ化
MegaCore ファンクションをパラメータ化するには、以下のステップを実行します。
2011 年 5 月
Altera Corporation
リード・ソロモン・コンパイラ ユーザーガイド
2‒4
第 2 章 : 使用法
MegaWizard Plug-In Manager フロー
1. IP Toolbench で Step 1: Parameterize をクリックします ( 2–4 ページの図 2–3)。
図 2‒3. IP Toolbench̶ パラメータ化
2. Encoder または Decoder を選択します ( 図 2–4)。
図 2‒4. エンコーダまたはデコーダの選択
3. Encoder を選択した場合、Variable オプションをオンにすることもできます。
Variable オプションについて詳しくは、3–3 ページの「可変エンコーディングおよ
びデコーディング」を選択してください。
リード・ソロモン・コンパイラ ユーザーガイド
2011 年 5 月
Altera Corporation
第 2 章 : 使用法
MegaWizard Plug-In Manager フロー
2‒5
4. Decoder を選択した場合、以下のコントロールを使用できます。
a. Erasures-supporting decoder または Variable オプションをオンにすることがで
きます。
b. Full または Half キーサイズを選択します。
c. Error Symbol および Bit Error またはそのいずれかの出力をオンにすることがで
きます。ビット・エラー出力の場合、Split Count または Full Count を選択しま
す。
パラメータについて詳しくは、3–7 ページの表 3–2 を参照してください。
5. Next をクリックします。
6. 実装したい特定の RS 符号語を定義するパラメータを選択します(図 2–5 を参
照)。
図 2‒5. パラメータの選択
1 つずつパラメータを入力するか、または DVB Standard をクリックして、デジタ
ル・ビデオ放送 (DVB) の規格値を使用するか、CCSDS Standard をクリックして、
CCSDS の規格値を使用することができます。
パラメータについて詳しくは、3–8 ページの表 3–3 を参照してください。
7. Next をクリックします。
2011 年 5 月
Altera Corporation
リード・ソロモン・コンパイラ ユーザーガイド
2‒6
第 2 章 : 使用法
MegaWizard Plug-In Manager フロー
8. デコーダのスループットを計算する場合は、周波数(MHz)を入力し、希望の表
示単位を選択してから、Calculate をクリックします。図 2–6 には、デコーダのス
ループット計算のページを示します。
図 2‒6. スループット計算
スループット計算について詳しくは、3–11 ページの「スループットの計算」を参
照してください。
9. Finish をクリックします。
.RS コンパイラのパラメータについて詳しくは、3–7 ページの「パラメータ」を参照
してください。
シミュレーションのセット・アップ
IP 機能シミュレーション・モデルは、Quartus II ソフトウェアで生成するサイクル精
度の正確な VHDL または Verilog HDL モデルです。このモデルにより、業界標準の
VHDL および Verilog HDL シミュレータを使用した IP の高速機能シミュレーションが
可能になります。
c これらのシミュレーション・モデル出力ファイルは、シミュレーション目的にのみ
使用することができ、特に合成やその他の目的には使用できません。これらのモデ
ルを合成に使用すると、機能しないデザインが作成されます。
MegaCore ファンクション用の IP 機能シミュレーション・モデルを生成するには、以
下のステップに従います。
1. IP Toolbench の Step 2:Set Up Simulation をクリックします。2–4 ページの図 2–3 に
は、IP Toolbench を示します。
2. 図 2–7 に示すとおり、Generate Simulation Model をオンにします。
3. Language リストで言語を指定します。
4. 一部サードパーティ合成ツールでは、詳細なロジックは含まず MegaCore ファン
クションの構造のみを含むネットリストを使用して、MegaCore ファンクションを
含むデザインの性能を最適化することができます。合成ツールでこの機能がサ
ポートされている場合、Generate netlist をオンにします。
リード・ソロモン・コンパイラ ユーザーガイド
2011 年 5 月
Altera Corporation
第 2 章 : 使用法
MegaWizard Plug-In Manager フロー
2‒7
5. OK をクリックします。
図 2‒7. シミュレーション・モデルの生成
2011 年 5 月
Altera Corporation
リード・ソロモン・コンパイラ ユーザーガイド
2‒8
第 2 章 : 使用法
MegaWizard Plug-In Manager フロー
MegaCore ファンクションの生成
MegaCore ファンクションを生成するには、以下のステップを実行します。
1. IP Toolbench の Step 3: Generate in IP Toolbench をクリックします( 2–4 ページの図
2–3 を参照)。
ファイル生成フェーズを完了するには、数分かかかる場合があります。生成の進
行状況とステータスがレポート・ウィンドウに表示されます。
図 2–8 に、生成レポートを示します。
図 2‒8. 生成レポート
表 2–1 に、生成されたファイルおよびプロジェクト・ディレクトリに存在する可
能性があるその他のファイルを示します。IP Toolbench レポートに指定される
ファイルの名前とタイプは、デザインを VHDL または Verilog HDL のいずれで作成
したかによって異なります。
表 2‒1. 生成ファイル ( その1 )
( 注 1)
ファイル名
説明
<variation name>.bsf
MegaCore ファンクションのバリエーション用 Quartus II シンボル・
ファイルです。Quartus II ブロック図エディタでこのファイルを使用で
きます。
<variation name>.vo or .vho
VHDL または Verilog HDL の IP 機能シミュレーション・モデルです。
<variation name>. vhd, or .v
カスタム MegaCore ファンクションの VHDL または Verilog HDL トップ
レベルの記述を定義する MegaCore ファンクション・バリエーション・
ファイルです。デザイン内部のこのファイルによって定義されたエン
ティティをインスタンスします。Quartus II ソフトウェアでのデザイン
のコンパイル時にこのファイルがインクルードされます。
リード・ソロモン・コンパイラ ユーザーガイド
2011 年 5 月
Altera Corporation
第 2 章 : 使用法
デザインのシミュレーション
表 2‒1. 生成ファイル ( その2 )
2‒9
( 注 1)
ファイル名
説明
<variation name>. cmp
MegaCore ファンクション・バリエーション用の VHDL コンポーネント
宣言です。このファイルの内容を、MegaCore ファンクションをイン
スタンスする VHDL アーキテクチャの 1 つに追加します。
<variation name>_nativelink.tcl
選択された EDA ツールを使用してデザインをシミュレートするため
に、Quartus II ソフトウェアで NativeLink を設定する Tcl スクリプトで
す。
<variation name>_syn.v or .vhd
一部のサードパーティ合成ツールで使用するためのタイミングおよび
リソースのネットリストです。
<variation name>_testbench.vhd
シミュレーションを実行するトップレベルのテストベンチを定義する
テストベンチ・バリエーション・ファイルです。このファイルには、
reed_solomon\lib ディレクトリからのファンクション・バリエーショ
ン・ファイルおよびテストベンチをインスタンス化します。
<variation name>_vsim_script.tcl
ModelSim シミュレータの MegaCore ファンクションを起動します。
<variation
name>_block_period_stim.txt
テストベンチのスティミュラスは、符号語の数、シンボルの数、およ
び各符号語のチェック・シンボルなどの情報が含まれております。
<variation name>_encoded_data.txt
エンコードされたテスト・データが含まれます。
<variation name>.html
ハイパーテキスト・マークアップ言語のフォーマットでの MegaCore
ファンクション・レポート・ファイルです。
<variation name>.qip
すべてのアサインメント、および Quartus II コンパイラにおける
MegaCore ファンクション・バリエーションを処理するために必要な
その他の情報が含まれている単一の Quartus II IP ファイルが生成され
ます。パラメータ・エディタを終了したときに、現在の Quartus II プ
ロジェクトにこのファイルを追加するように促されます。
表 2‒1 の注 :
(1) <variation name> は、バリエーション名です。
2. 生成レポートを表示した後、Exit をクリックして IP Toolbench を閉じます。その
後、現在の Quartus II プロジェクトにカスタム MegaCore ファンクションを記述す
る .qip ファイルを追加するには、プロンプトの Quartus II の IP のファイル・プロ
ンプトで Yes をクリックします。
f
MegaWizard Plug-In Manager について詳しくは、Quartus II Help を参照してください。
これにより、カスタム・バリエーションをデザインに組み込み、シミュレーション
およびコンパイルを実行することができます。
デザインのシミュレーション
IP Toolbench で生成された Tcl スクリプトでは、シミュレーションをドライブします。
デコーダの場合、テストベンチは、チャネルおよびインスタンス化デコーダが含ま
れています。データは、IP Toolbench で生成されたファイルから読み込まれます。エ
ンコーダの場合、テストベンチは、同じデータファイルを読み込んで、単なるデー
タファイルを使用してエンコーダの出力を比較します。チャネルでは、いくつかの
エラーは RS 符号の様々な場所で導入されています。テストベンチは、RS デコーダ
によってデコードされたデータを受信し、元の送信データと比較します。
シミュレーションは、NativeLink を使用して Quartus II ソフトウェアからサードパー
ティ製シミュレーション・ツールを使用して実行できます。
2011 年 5 月
Altera Corporation
リード・ソロモン・コンパイラ ユーザーガイド
2‒10
第 2 章 : 使用法
デザインのコンパイル
f
NativeLink について詳しくは、
「Quartus II Handbook Volume 3」 「Simulating Altera
Designs」の章を参照してください。
Tcl スクリプト・ファイル <variation name>_nativelink.tcl を使用して、NativeLink テス
トベンチのデフォルト設定を Quartus II プロジェクトに割り当てることができます。
Quartus II ソフトウェアで NativeLink を使用してシミュレーションの設定を行うには、
以下のステップを実行します。
1. カスタム・バリエーションを作成します。ただし、Quartus II プロジェクト名に一
致するバリエーション名を指定してください。
2. サードパーティ・シミュレータ実行ファイルへの絶対パスが設定済みかどうか
チェックします。Tools メニューで、Options をクリックし、EDA Tools Options を
選択します。
3. Processing メニューで、Start をポイントして Start Analysis & Elaboration をクリッ
クします。
4. Tools メニューの Tcl Scripts をクリックします。<variation name>_nativelink.tcl Tcl ス
クリプトを選択して、Run をクリックします。Tcl スクリプトが正常にロードされ
たことを確認するメッセージをチェックします。
5. Assignments メニューの Settings をクリックして、EDA Tool Settings を展開し、
Simulation を選択します。Tool Name でシミュレータを選択します。
6. Tools メニューで EDA Simulation Tool をポイントして、EDA RTL Simulation をク
リックします。
デザインのコンパイル
Quartus II ソフトウェアを使用して、デザインをコンパイルすることができます。コ
ンパイル実行に関するインストラクションについては、Quartus II Help を参照してく
ださい。
デバイスのプログラミング
デザインをコンパイルした後、ターゲットのアルテラ・デバイスをプログラムし、
ハードウェアでデザインを検証します。
アルテラの無償の OpenCore Plus 評価機能では、ライセンスを購入する前に RS
MegaCore ファンクションを評価できます。OpenCore Plus 評価機能により、IP 機能シ
ミュレーション・モデルを生成し、期限付きのプログラミング・ファイを作成でき
ます。
f
IP 機能シミュレーション・モデルについて詳しくは、
「Quartus II ハンドブック Volume
3」の「 Simulating Altera Designs」の章を参照してください。
デザインで RS MegaCore ファンクションをシミュレーションし、ハードウェアによ
り期間限定でデザインの評価を実行できます。
RS コンパイラを使用した OpenCore Plus ハードウェア評価について詳しくは、
「1–7
ページの「OpenCore Plus 評価機能」」を参照してください。
リード・ソロモン・コンパイラ ユーザーガイド
2011 年 5 月
Altera Corporation
3. 機能の説明
バックグランド
Reed-Solomon (RS) 符号を使用するために、データ・ストリームは最初に一連の符号
語に分割されます。各符号語は、いくつかの情報シンボルとそれに続くいくつかの
チェック・シンボル(パリティ・シンボルまたは冗長シンボルとも呼ぶ)で構成さ
れています。シンボルには任意のビット数を含めることができます。誤り訂正シス
テムでは、エンコーダが通信チャネルでの送信前にデータ・ストリームにチェック・
シンボルを追加します。データが受信されると、デコーダは誤りをチェックして訂
正します(図 3–1 を参照)。
図 3‒1. RS 符号語の例
Codeword
Symbol
4 to 10 bits
per symbol.
0010
0110
1010
0011
Information symbols, which
contain the original data.
0111
1011
Check symbols, added by
the RS encoder before
transmission over a
communications channel.
RS 符号は(N、K)で記述されます。ここで、N は 1 符号語あたりのシンボル総数
で、K は情報シンボル数です。R はチェック・シンボル数(N K)です。誤りはシン
ボルごとに定義されます(つまり、1 つのシンボル内にいくつビット誤りがあっても
1 つの誤りとしかみなさない)。
RS 符号は有限体(すなわち Galois 体)演算に基づきます。有限体の元の間での算術
演算(すなわち、加算、減算、乗算、および除算)結果は、その体の元になります。
Galois 体のサイズは、1 シンボルあたりのビット数で決まり、体には 2m 個の元があ
ります。ここで、m は 1 シンボルあたりのビット数です。特定の Galois 体は、ユー
ザーが RS コンパイラに定義した多項式で定義されます。IP Toolbench では有効な
フィールド多項式しか選択できません。
1 つの符号語での最大シンボル数は、有限体のサイズによって 2m – 1 に制限されま
す。例えば、10 ビットのシンボルの場合、コードは符号語あたり 1,023 のシンボル
を持つことができます。RS コンパイラは短縮符号語をサポートします。
次式は符号の生成多項式を表します。
R– 1
g(x) = ∏ (x – αa.i + i0)
i=0
ここで、
i0 は生成多項式の最初の根です。
a は根空間です。
R はチェック・シンボル数です。
α はこの生成多項式の 1 つの根です。
例えば、以下の情報の場合:
2011 年 5 月
Altera Corporation
リード・ソロモン・コンパイラ ユーザーガイド
3‒2
第 3 章 : 機能の説明
バックグランド
3
g(x) = ∏ (x – αi + i0)
i=0
a は 2 進原始多項式 x8 + x7 + x2 + x + 1 の根です。
i0 = 120
以下のパラメータを計算することができます。
■
R–1=3
■
a = 1 (α は、1 掛ける i)
フィールドの多項式は、2 で x を置き換えることによって得ることができます。した
がって
28 + 27 + 22 +2 + 1 = 391
消去
通常の動作では、RS デコーダはシンボル誤りを検出して訂正します。
訂正可能なシンボル誤り数 C は、チェック・シンボル数 R によって異なり、C ≤ R/2
で与えられます。
シンボル誤りの位置が erasure としてマークされている場合、RS デコーダは 2 倍の
誤り、つまり C ≤ R を訂正できます。
1
Erasure は既知の位置でのシンボル誤りです。
外部回路は、eras_sym 信号を使用して、どのシンボルが erasure であるかをデコー
ダに指示します。eras_sym 入力は、erasure を示します(erasures-supporting decoder
オプションが選択されているとき)。
RS デコーダは erasure と誤りが混在した状態で動作することができます。
2e + E)R の場合、符号語は正しくデコードされます。
ここで、
e = 位置不明の誤り(
E =erasure 数
R = チェック・シンボル数
例えば、チェック・シンボルが 10 個の場合、デコーダは 10 個の erasure、5 個のシ
ンボル誤り、または 4 個の erasure と 3 個のシンボル誤りを訂正できます。
1
erasure の数が、チェック・シンボル数に近づくと、誤りを検出する能力(decfail
がアサート)が低下します。3–4 ページの表 3–1 を参照してください。
短縮符号語
短縮符号語には、N の最大値である 2m -1 より少ないシンボルが含まれています。短
縮符号語は、符号語の先頭が 0 に設定された余分なデータ・シンボルを持つ最大長
符号と数学的に等価です。
例えば、(204,188) は (255,239) の短縮符号語です。これらの符号語は両方とも、例え
ば 16 のチェック・シンボルを使用します。
リード・ソロモン・コンパイラ ユーザーガイド
2011 年 5 月
Altera Corporation
第 3 章 : 機能の説明
RS エンコーダ
3‒3
アルテラの RS エンコーダおよびデコーダで短縮符号語を使用するには、IP Toolbench
を使用して、符号語長を例えば 204 などの適正値に設定します。
可変エンコーディングおよびデコーディング
通常の状況では、エンコーダおよびデコーダにより可変エンコーディングおよびデ
コーディングが可能になります。sink_eop を使用して符号語あたりのシンボル数
(N)を変更できますが、デコーディング中はチェック・シンボル数の変更はできま
せん。
1
ただし、Erasure-supporting オプションをオンにしている場合、符号語長は変更できま
せん。
また、Variable オプションをオンにしている場合は、Erasures-supporting オプションが
オンでも、最小許容値から選択された値までリアル・タイムで、符号語あたりのシ
ンボル数 (numn 信号を使用 ) およびチェック・シンボル数 (numcheck 信号を使用 )
を変更することができます。3–10 ページの表 3–7 に、Variable オプション信号を示し
ます。
RS エンコーダ
sink_sop 信号は符号語を開始し、sink_eop はその終了を通知します。アサートさ
れた sink_val は有効データを示します。sink_sop は、sink_val がにアサートさ
れているときにのみ有効です。
1
エンコーダが sink_ena をアサートした 1 クロック・サイクル後にのみ、sink_val
をアサートすることが可能です。
sink_eop 入力がアサートされた後、sink_ena をディアサートすることにより、エ
ンコーダはある期間、それ以上のシンボルを入力できないことを通知します。この
間にエンコーダは、現在の符号語に対するチェック・シンボルを生成しています。
図 3–2 に、RS エンコーダの動作を示します。この例は、8 個の情報シンボルと 5 個
のチェック・シンボルを持つ符号語を示しています。
図 3‒2. エンコーダ・タイミング
clk
sink_ena
sink_val
sink_sop
sink_eop
rsin[8:1]
01 02 03 04 05 06 07 08 09
09
10 11 12 13
14 15 16
source_ena
source_val
source_sop
source_eop
rsout[8:1]
01 02 03 04 05 06 07 08 P1 P2 P3 P4 P5 09 10
12
11 12 13 14 15 16 P6 P7 P8 P9
numcheck 入力は、sink_sop がアサートされると、エンコーダ内にラッチされま
す。
2011 年 5 月
Altera Corporation
リード・ソロモン・コンパイラ ユーザーガイド
3‒4
第 3 章 : 機能の説明
RS デコーダ
エンコーダをリセットしないで動作時に符号語のシンボル数を変更できます。符号
語間で変更を行う必要があります。エンコード中に numcheck を変更することはで
きません。図 3–3 に、可変エンコーディングのタイミング例を示します。
図 3‒3. 可変エンコーディング
clk
sink_ena
sink_val
sink_sop
sink_eop
rsin[8:1]
01 02 03 04 05 06 07 08
09 10 11 12
source_ena
source_val
source_sop
source_eop
rsout[8:1]
numcheck[4:1]
01 02 03 04 05 06 07 08 P1 P2 P3 P4 P5 09 10 11 12
05
05
RS デコーダ
デコーダは、Avalon-ST ベースのパイプライン化された 3 符号語深度(約 3 符号語分
の内部遅延)のアーキテクチャを実装します。パラメータが連続範囲にある場合
( 3–8 ページの表 3–3 を参照)、デコーダは連続動作が可能で、1 クロック・サイクル
ごとに新しいシンボルを受け入れることができます。
デコーダは、セルフ・フラッシュ である — それは供給される新しい符号語を必要と
せずに符号語を処理し、提供します。したがって、入力と出力の間のレイテンシは、
入力データの可用性に依存しません。スループットのレイテンシは約 3 符号語です。
リセットはアクティブ High で、非同期的にアサートすることができます。しかし、
それは clk に同期してディアサートされる必要があります。
RS デコーダは常に符号語で誤りを検出し、修正しようとします。しかし、エラー増
加の数として、デコーダは、もうエラーを修正することができませんが、( そのポイ
ントではデコーダは decfail 信号をアサートするとき ) エラーを検知することだけ
ができるステージになります。エラーの数がまださらに増加すると、結果は予測不
能になります。表 3–1 には、R に応じてデコーダがエラーの修正方法および検出方法
を示します。
表 3‒1. デコーダ点検および修正
エラーの数
Errors ≤ R/2
デコーダ動作
デコーダはエラーを検出して訂正します。
R/2 ≤ errors ≤ R
デコーダは decfail をアサートして、エラーを検出します。(1)
Errors > R
予測不能の結果。
表 3‒1 の注 :
(1) デコーダは、の低値の R(4、5、あるいは 6)、あるいは erasures、および erasures の数の間の差が使
用する場合、また R(4、5 あるいは 6) が低値の場合、decfail をアサートしないかもしれません。
リード・ソロモン・コンパイラ ユーザーガイド
2011 年 5 月
Altera Corporation
第 3 章 : 機能の説明
RS デコーダ
3‒5
RS デコーダは、入力と出力データ用の Avalon-ST インタフェースの規格を遵守しま
す。デコーダが 1 クロック・サイクルが sink_ena をアサートする後に、
sink_val アサートすることができます。デコーダは、有効なデータとして rsin で
データを受け入れます。符号語は sink_sop で開始されます。numcheck と numn
信号は sink_sop にラッチされます。
sink_eop がアサートされると、符号語は終了します。1 クロック・サイクル以降で
sink_ena がディアサートされている場合は、sink_ena が再びアサートされるまで
デコーダはそれ以上のデータを処理することはできません。
出力での動作は同じです。source_ena をアサートした場合、デコーダは
source_val をアサートし、可能であれば rsout に有効なデータを提供します。ま
た、それはそれぞれ source_sop および source_eop と符号語の開始と終了を示
します。
図 3–4 には、RS デコーダの動作を示します。
図 3‒4. デコーダ・タイミンッグ
clk
sink_ena
sink_val
sink_sop
sink_eop
rsin[8:1]
01 02 03 04 05 06 07 08 P1 P2 P3 P4 P5
09 10 11 12 13
source_ena
source_val
source_sop
source_eop
rsout[8:1]
01 02 03 04 05 06 07 08 P1 P2 P3 P4 P5
numcheck[4:1]
05
05
numn[4:1]
13
13
12
デコーダを使用すると、IP Toolbench でのオンにする次のオプションの出力がありま
す。
■
エラー・シンボル
■
ビット・エラー数
エラー・シンボルの出力
エラーのシンボルの出力の rserr は、Galois 体の誤り訂正値です。RS デコーダはエ
ラー値と位置を検出し、入力値にガロア体でこれらの値を追加します。Galois 体加算
と減算は同じ動作です。XOR の動作は、2 つの値のビットの間にこの動作を実行しま
す。
2011 年 5 月
Altera Corporation
リード・ソロモン・コンパイラ ユーザーガイド
3‒6
第 3 章 : 機能の説明
インタフェース
3–6 ページの図 3–5 には、エラーのシンボル出力を示します。
図 3‒5. エラーのシンボル出力
Memory
& Control
Syndrome
Calculation
rsin
Solve Key
Equation
Chien Search
& Forney's
Algorithm
rsout
rserr
rserr が 0 でない場合(decfail が 0 の間)は、エラー訂正が正常に行われます。XOR
をビットごとに行われている場合、rsout は対応する rsin との rserr XOR です。
そのため、それぞれのシンボルが訂正されたことを認識できます。rserr の値は、
シンボルのどのビットが修正されたか示します。1 の rser の各ビットに対して、
rsou の対応するビットが修正されます。
rsou と対応する rserr の値は、同じクロック・サイクルで出力に表示されます。
ビット・エラーの数
デコーダは、修正処理に転電されるビット・エラーの数を提供することができます。
ビット・エラーの数は、次のオプションがあります。
■
Full Count。出力 num_err_bit が接続され、有効な値を示しております。
■
Split Count。出力 num_err_bit0 と num_err_bit1 が接続され、有効な値を示し
ております。
これらの出力について詳しくは、3–10 ページの表 3–8 を参照してください。
インタフェース
RS エンコーダおよびデコーダは、データ入出力に Avalon® Streaming (Avalon-ST) イン
タフェースを使用します。入力は Avalon-ST シンク、出力は Avalon-ST ソースです。
Avalon-ST インタフェースの READY_LATENCY パラメータは 1 に設定されます。
Avalon-ST インタフェースはフロー・コントロールを可能にします。
Avalon Streaming(Avalon-ST)インタフェースは、Atlantic™ インタフェースが進化した
ものです。Avalon-ST インタフェースは、ソース・インタフェースからシンク・イン
タフェースへのデータ転送に対して標準的な柔軟性の高いモジュラ式プロトコルを
定義しており、データパスにおけるデータ・フローのコントロール・プロセスを簡
略化します。Avalon-ST インタフェース信号は、チャネルやパケット境界の概念のな
い従来の単一データ・ストリームをサポートします。このようなインタフェースは
通常、data、ready、および valid 信号から構成されます。
Avalon-ST インタフェースは、複数のチャネルにわたってインタリーブされたパケッ
トでバーストとパケット転送のため、より複雑なプロトコルをサポートすることが
できます。Avalon-ST インタフェースでは、本質的に複雑な制御ロジックを実装せず
に効率的に達成できるようにするマルチ・チャンネル・デザインおよび時間多重実
装を同期させます。
リード・ソロモン・コンパイラ ユーザーガイド
2011 年 5 月
Altera Corporation
第 3 章 : 機能の説明
パラメータ
3‒7
Avalon-ST インタフェースでは、シンクがデータの送信を停止するようにソースに通
知できるフロー・コントロールのメカニズムであるバックプレッシャをサポートし
ています。シンクは通常、FIFO バッファがフルである場合、または、その出力で輻
輳が発生している場合にデータの流れを止めるためにバックプレッシャを使用して
います。ダウンストリームのコンポーネントは、常にデータを受信できると、RS
MegaCore ファンクションを含むデータパスを設計するときは、バックプレッシャを
必要としないことがあります。RS 高の source ready 信号の source_ena をドライブ
し、sink ready 信号の sink_ena を接続しないことで、より高いクロック・レートを
達成する場合もあります。
f
Avalon-ST について詳しくは、Avalon Interface Specifications を参照してください。
図 3–6 には、RS エンコーダおよびデコーダ Avalon-ST インタフェースを示します。
図 3‒6. Avalon ST インタフェース
RS Encoder or Decoder
ena
val
User Module
Source
sop
eop
dat
Sink
sink_ena
Source
source_ena
sink_val
source_val
sink_sop
source_sop
sink_eop
rr/eras_sym
source_eop
decbit
Avalon ST Interface
ena
val
sop
eop
dat
User Module
Sink
Avalon ST Interface
パラメータ
表 3–2 に、実装パラメータを示します。
表 3‒2. 実装パラメータ ( その1 )
パラメータ
値
説明
Function
エンコー
ダまたは
デコーダ
エンコーダおよびデコーダを指定します。3–1 ページの「機能の説
明」を参照してください。
Variable
オンまた
はオフ
Variable オプションを指定します。3–3 ページの「可変エンコーディ
ングおよびデコーディング」を参照してください。
Erasures-supporting decoder
(1)
オンまた
はオフ
消去サポートのデコーダのオプションを指定します。このオプショ
ンは、実質的に使用されるロジック・リソースが増加します。3–2
ページの「消去」を参照してください。
Error symbol (1)
オンまた
はオフ
エラーのシンボル出力を示します。3–4 ページの「RS デコーダ」およ
び 3–10 ページの表 3–8 を参照してください。
Bit error (1)
オンまた
はオフ
Split count または Full count のいずれかにビット・エラー出力を設定
できます。3–4 ページの「RS デコーダ」および 3–10 ページの表 3–8
を参照してください。
2011 年 5 月
Altera Corporation
リード・ソロモン・コンパイラ ユーザーガイド
3‒8
第 3 章 : 機能の説明
信号
表 3‒2. 実装パラメータ ( その2 )
パラメータ
値
Keysize (1)
説明
ハーフま
たはフル
キーサイズのパラメータを使用すると、サポートされているスルー
プットに対してロジック・リソースの量をトレードオフすることが
できます。多くの Galois 体の乗算器は半分持っていますが、フルは
その 2 倍を持っています。フル・デコーダは、より多くのロジック
を使用し、おそらく周波数で若干速度が遅くなりますが、より高い
スループットをサポートしています。フルとハーフの両方がパラ
メータに必要なスループットを提供する場合、常に半分を選択して
ください。
表 3‒2 の注 :
(1) このパラメータは、デコーダのみに適用されます
表 3–3 には、符号語のパラメータを示します。
表 3‒3. RS 符号語のパラメータ
パラメータ
範囲
範囲 ( 続き )
シンボルあたりのビッ
ト数
3 ~ 12
6~2
シンボルあたりのビット数 (m) を設定しま
す。
コードワードあたりの
シンボル数
5 ~ (2m – 1)
7(R + 1) ~2m – 1
符号語あたりのシンボル数 (N) を設定しま
す。
コードワードあたりの
シンボル数
2 ~ min(128, N – 1)
4 ~ N/7 – 1
コードワードあたりのシンボル数 (R) を設
定します。
フィールド多項式
任意の有効な多項式 (1)
生成多項式の最初の根
生成多項式の根空間
説明
Galois 体を定義するプリミティブ多項式を設
定します。
0 ~ (2m – 2)
生成多項式の最初の根 (i0) を指定します。
任意の有効なルートスペース (1)
生成多項式の最小の根空間 (a) を指定しま
す。
表 3‒3 の注 :
(1) IP Toolbench は唯一の法的な値を選択することができます。m > 8 の場合、フィールドの多項式とルートスペースのすべての有
効な値は、IP Toolbench でに存在しています。IP Toolbench リストに意図するフィールドの多項式またはルートスペースを見
つけることができない場合、Altera MySupport にお問い合わせください。
信号
表 3–4 に、グローバル信号を示します。
表 3‒4. グローバル信号
信号名
説明
clk
clk はシステム・クロックのメインです。全体の MegaCore ファンクションは、clk の立ち上がりエッ
ジで動作します。
reset
リセット信号です。リセットが High にアサートされると、全体のデコーダは非同期的にリセット
されます。リセット信号はシステム全体をリセットします。リセット信号は、clk の立ち上がり
エッジに同期的にアサートする必要があります。
リード・ソロモン・コンパイラ ユーザーガイド
2011 年 5 月
Altera Corporation
第 3 章 : 機能の説明
信号
3‒9
表 3–5 には、Avalon-ST sink (データ入力)インタフェースを示します。
表 3‒5. Avalon-ST Sink インタフェース
信号名
AvalonST タイ
プ
入力 /
出力
説明
sink_ena
ena
出力
データ転送のイネーブル信号です。sink_ena は、シンク・インタ
フェースによってドライブされ、インタフェース間でのデータ・フロー
を制御します。sink_ena は、シンクからソースへのリード・イネーブ
ル信号として動作します。ソースが次の clk 立ち上がりエッジでドライ
ブする clk 立ち上がりエッジでアサートした sink_ena を観察すると
き、データが利用可能な場合、Avalon-ST データ・インタフェース信号と
は val をアサートします。シンク・インタフェースには、次の clk の立
ち上がりエッジでデータ・インタフェース信号をキャプチャします。
ソースは、新しいデータを提供できない場合は、有効なデータ・インタ
フェース信号をドライブするための準備ができるまで、1 つまたは複数
のクロック・サイクルのために val をデアサートします。
sink_val
val
入力
データ有効信号。sink_val は、データ信号の有効性を示します。
sink_val は sink_ena がアサートされるクロック・エッジごとに更新さ
れます。sink_ena がアサートされる場合、sink_val と dat のバスは、
現在の値を保持します。sink_val がアサートされると、Avalon-ST デー
タ・インタフェース信号は有効です。sink_val がディアサートされる
と、Avalon-ST データ・インタフェース信号は無効であり、無視する必要
があります。新しいデータが受信されたことを決定するには、シンク・
インタフェースは sink_ena 信号の前の状態と sink_val 信号を限定し
ます。
sink_sop
sop
入力
パケット開始(符号語)です。sop は rsin バス上の符号語の境界の輪
郭を描きます。sink_sop が High の場合、パケット開始は rsin バス上
に存在します。sink_sop は、すべての符号語の最初の転送でアサート
されます。
sink_eop
eop
入力
パケット終了(符号語)です。sink_eop は rsin バス上のパケット境
界の輪郭を描きます。sink_eop が High の場合、パケット終了は dat バ
ス上に存在します。sink_eop は、すべてのパケットの最後の転送でア
サートされます。
rsin[m:1] data
入力
各符号語のデータ入力です。sink_val がアサートされる場合にのみ有
効です。
eras_sym
入力
アサートされると、rsin[] のシンボルは、消去としてマークされてい
ます。Erasures-supporting decoder オプション付きのデコーダにのみ有効
です。
2011 年 5 月
data
Altera Corporation
リード・ソロモン・コンパイラ ユーザーガイド
3‒10
第 3 章 : 機能の説明
信号
表 3–6 には、Avalon-ST ソース ( データ・出力)インタフェースを示します。
表 3‒6. Avalon-ST Source インタフェース
AvalonST タイ
プ
信号名
入力 /
出力
説明
source_ena ena
入力
データ転送のイネーブル信号です。source_ena は、シンク・インタ
フェースによってドライブされ、インタフェース間でのデータ・フロー
を制御します。シンクからソースへのリード・イネーブル信号として
ena に動作します。ソース・インタフェースが次の clk 立ち上がりエッ
ジでドライブする clk 立ち上がりエッジでアサートした source_ena
を観察するとき、シンク・インタフェースからのデータが利用可能な場
合、Avalon-ST データ・インタフェースは source_val をシグナルし、
アサートします。シンク・インタフェースには、次の clk の立ち上が
りエッジでデータ・インタフェース信号をキャプチャします。このソー
スは、新しいデータを提供することができない場合、有効なデータ・イ
ンタフェース信号をドライブするための準備ができるまで、1 つまたは
複数のクロック・サイクルのための source_val をデアサートします。
source_val val
出力
データ有効信号です。rsout 信号上に有効な出力があるたびに、
source_val は High にアサートされますが、rsout 信号上に有効な出力
が存在しない場合、source_val がディアサートされます。
source_sop sop
出力
パケット開始(符号語)信号です。
source_eop eop
出力
パケット終了(符号語)信号です。
rsout
data
出力
source_val がアサートされる場合、rsout 信号がデコードされた出力
が含まれています。修正されたシンボルは、入力されたときと同じ順序
であります。
rserr
data
出力
誤り訂正値(デコーダのみ、オプション)です。3–5 ページの「エ
ラー・シンボルの出力」を参照してください。
表 3–7 には、コンフィギュレーション信号を示します。
表 3‒7. コンフィギュレーション信号
信号名
説明
bypass
符号語がバイパスされたまたはバイパスされていない(デコーダのみ)ことを設定する 1 ビッ
ト信号です。デコーダは、継続的に bypass をサンプルします。
numcheck
パラメータ R(可変オプションのみ)で設定された最大値にシンボルを確認する可変数を設定
します。sink_sop がアサートされるときだけデコーダが numcheck をサンプルします。
numn
N の変数の値です。N の選択された値(変数および Erasures-supporting オプションのみ)まで
N の最小許容値から任意の値を指定できます。sink_sop がアサートされるときだけデコーダ
が numn をサンプルします。
表 3–8 には、ステータス信号 ( デコーダのみ)を示します。
表 3‒8. ステータス信号 ( その1 )
信号名
説明
decfail
修正不可能を示します。source_sop がアサートされるときに有効です。Avalon-ST イン
タタイプは err です。
num_err_sym
シンボル・エラーの数を表します。source_sop がアサートされるときに有効ですが、
decfail がアサートされると無効になります。
リード・ソロモン・コンパイラ ユーザーガイド
2011 年 5 月
Altera Corporation
第 3 章 : 機能の説明
スループットの計算
3‒11
表 3‒8. ステータス信号 ( その2 )
信号名
説明
num_err_bit
符号語に訂正したビット・エラーの数を表します。source_sop がアサートされるとき
に有効ですが、decfail がアサートされると無効になります。Bit error (Full count) オプ
ションがオンにされている場合にのみ接続されます。3–4 ページの「RS デコーダ」を参
照してください。
num_err_bit0
ビット 1 からビット 0 に修正するビット・エラーの数です。最新のビットは正しいビッ
トです。sop_source がアサートされるときに有効ですが、decfail がアサートされる
と無効になります。デコーダは、次の source_sop のアサーション(次の符号語)で、
これらの値を示します。Bit error (Split count) オプションがオンになっている場合にのみ接
続されます。
num_err_bit1
ビット 0 からビット 1 に修正するビット・エラーの数です。最新のビットは正しいビッ
トです。sop_source がアサートされるときに有効ですが、decfail がアサートされる
と無効になります。デコーダは、次の source_sop のアサーション(次の符号語)で、
これらの値を示します。Bit error (Split count) オプションがオンになっている場合にのみ接
続されます。
スループットの計算
IP Toolbench でスループットの計算(デコーダのみ)は以下の式を使用しています。
秒あたりスループット(メガシンボルで)= N × 周波数 (MHz)/NC
Mbps の場合、シンボル当たりのビット数を m で掛けます。
表 3–9 には、NC の値を示します。
表 3‒9. NC の計算
消去
2011 年 5 月
キーサイズ
NC
なし
ハーフ
最大 (N, 10 × R + 4)
なし
フル
最大 (N, 7 × R + 5)
あり
ハーフ
最大 (N, 10 × R + 6)
あり
フル
最大 (N, 8 × R + 4)
Altera Corporation
リード・ソロモン・コンパイラ ユーザーガイド
3‒12
リード・ソロモン・コンパイラ ユーザーガイド
第 3 章 : 機能の説明
スループットの計算
2011 年 5 月
Altera Corporation
A. CCSDS システムに RS エンコーダま
たはデコーダの使用
はじめに
リード・ソロモン(RS)エンコーダまたはデコーダ MegaCore ファンクションは、標
準的なベース(それ以外の場合は、従来のベースとして知られている)で動作しま
す。このベースは、混乱を引き起こす可能性があります。例えば、デュアル・ベー
スのシステムに直接 RS エンコーダまたはデコーダを実装しようとする Consultative
Committee for Space Data Systems (CCSDS) のスタンダードで作業する場合です。
デュアル・ベースのシステムに標準的なベースから転送するには、Berlekamp 変換が
使用されています(ここで、ロジックで実装する必要がある)。図 A–1 には、
Berlekamp 変換の使用例を示します。
図 A‒1. Berlekamp 変換の使用
Pre-transform
(Dual to Canonical)
RS Encoder
Berlekamp
Transform
(Canonical to Dual)
Channel
Berlekamp
Transform
(Dual to Canonical)
RS Decoder
Post-transform
(Canonical to Dual)
テスト・パターン
デュアル・ベースなどのシステム、例えば CCSDS で作業とデュアル・ベースのシス
テムからいくつかのテスト・パターンでの RS エンコーダまたはデコーダを提供する
必要があるしている場合は、次の手順に従います。
テスト・パターンを確認します。
1. テスト・パターンに Berlekamp 変換を(デュアルから標準へ)適用します。
2. RS エンコーダやデコーダのテストパターンを適用します。
3. エンコーダの出力に Berlekamp 変換を(標準からデュアルへ)適用します。
4. テスト・パターンを確認します。
f
2011 年 5 月
変換関数の実装については、www.ccsds.org での CCSDS-101.0-B-5 の標準仕様書の
Annex B を参照してください。
Altera Corporation
リード・ソロモン・コンパイラ ユーザーガイド
A–2
リード・ソロモン・コンパイラ ユーザーガイド
付録 A: CCSDS システムに RS エンコーダまたはデコーダの使用
テスト・パターン
2011 年 5 月
Altera Corporation
ユーザーガイドについて
改訂履歴
表 1 にこのユーザー・ガイドの章の改訂履歴を示します。.
表 1. 改訂履歴
日付
2011 年 6 月
2010 年 12 月
2010 年 7 月
2010 年 2 月
バー
ジョン
3.0
変更内容
■
High-Performance Controller へのレファランスを削除。
■
High-Performance Controller II の情報を更新。
■
HardCopy III, HardCopy IV E, HardCopy IV GX, Stratix III, および
Stratix IV サポートを削除。
10.1. のために更新。
2.1
■
Controller latency, Enable reduced bank tracking for area
optimization および Number of banks to track についての情報
を追加。
■
IP Advisor についての情報を削除。この機能は DDR/DDR2
SDRAM IP サポートのバージョン 10.0 から削除。
2.0
1.3
誤植を修正。
アルテラへのお問い合わせ
Altera 製品に関する最新情報については、表 2 を参照してください。
表 2. アルテラのお問い合わせ先
お問い合わせ先 (1)
お問い合わせ方法
アドレス
テクニカル・サポート
ウェブサイト
www.altera.com/mysupport/
テクニカル・トレーニング
ウェブサイト
www.altera.com/training
製品資料
ウェブサイト
www.altera.com/literature
メール
[email protected]
(ソフトウェア・ライセン
ス)
表 2 の注:
(1) 詳しくは、日本アルテラまたは販売代理店にお問い合わせください。.
2011 年 5 月
Altera Corporation
リード・ソロモン・コンパイラ ユーザーガイド
Info‒2
第章 :
表記規則
本資料では、表 Info–1 に示す表記規則を使用しています。
表 Info‒1. 表記規則
書体
意味
太字かつ文頭が大
文字
コマンド名、ダイアログ・ボックス・タイトル、チェックボックス・オプション、およ
びダイアログ・ボックス・オプションは、太字かつ文頭が大文字で表記されています。
例:Save As ダイアログ・ボックス。
太字
外部タイミング・パラメータ、ディレクトリ名、プロジェクト名、ディスク・ドライブ
名、ファイル名、ファイルの拡張子、およびソフトウェア・ユーティリティ名は、太字
で表記されています。例:fMAX, \qdesigns ディレクトリ、d: ドライブ、chiptrip.gdf ファイ
ル。
斜体かつ文頭が大
文字
資料のタイトルは、斜体かつ文頭が大文字で表記されています。例:AN 75: High-Speed
Board Design。
斜体
内部タイミング・パラメータおよび変数は、斜体で表記されています。例:tPIA, n + 1。
変数は、山括弧 (< >)で囲み、斜体で表記されています。例:< ファイル名 >、< プロ
ジェクト名 >.pof ファイル。
文頭が大文字
「小見出しタイト
ル」
Courier フォント
キーボード・キーおよびメニュー名は、文頭が大文字で表記されています。例:Delete
キー、Options メニュー。
資料内の小見出しおよびオンライン・ヘルプ・トピックのタイトルは、鉤括弧で囲んで
います。例:「表記規則」
信号およびポート名は、Courier フォントで表記されています。例:data1、tdi、input.
アクティブ Low 信号は、サフィックス nn で表示されています。(例:resetn)
表示されているとおりに入力する必要があるものは、Courier フォントで表記されてい
ます。例:c:\qdesigns\tutorial\chiptrip.gdf. また、Report ファイルのような実際
のファイル、ファイルの構成要素 ( 例:AHDL キーワードの SUBDESIGN)、ロジック・
ファンクション名 ( 例:TRI) も Courier フォントで表記されています。
1.、2.、3. および
a.、b.、c. など
手順など項目の順序が重要なものは、番号が付けられリスト形式で表記されています。
■
箇条書きの黒点などは、項目の順序が重要ではないものに付いています。
■
v
チェックマークは、1 ステップしかない手順を表します。
1
指差しマークは、要注意箇所を表しています。
c
注意は、製品または作業中のデータに損傷を与えたり、破壊したりするおそれのある条
件や状況に対して注意を促します。
w
r
f
警告は、ユーザーに危害を与えるおそれのある条件や状況に対して注意を促します。
矢印は、Enter キーを押すことを示しています。
足跡マークは、詳細情報の参照先を示しています。
リード・ソロモン・コンパイラ ユーザーガイド
2011 年 5 月
Altera Corporation
Fly UP