リード・ソロモン・コンパイラ...

38
101 Innovation Drive San Jose, CA 95134 www.altera.com リード・ソロモン・コンパイラ ユーザーガイド MegaCore 采察沙崎策 : 11.0 ドキュメント・デート : 011 年 5 月

Upload: others

Post on 11-Mar-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

101 Innovation DriveSan Jose, CA 95134www.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 otherwords 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 othercountries. 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 ap-plications, 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 ofany 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 ofdevice specifications before relying on any published information and before placing orders for products or services.

UG-RSCOMPILER-11.0

2011 年 5 月 Altera Corporation

目次

第 1 章 . このコンパイラについて機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1‒1リリース情報 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1‒2サポートされるデバイス・ファミリ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1‒3パフォーマンスおよびリソース使用率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1‒4インストールおよびライセンス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1‒6OpenCore Plus 評価機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1‒6OpenCore Plus タイム・アウト動作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1‒7

第 2 章 . 使用法デザイン・フロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2‒1DSP Builder フロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2‒1MegaWizard Plug-In Manager フロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2‒2MegaCore ファンクションのパラメータ化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2‒3シミュレーションのセット・アップ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2‒6MegaCore ファンクションの生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2‒8

デザインのシミュレーション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2‒9デザインのコンパイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2‒10デバイスのプログラミング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2‒10

第 3 章 . 機能の説明バックグランド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3‒1消去 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3‒2短縮符号語 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3‒2可変エンコーディングおよびデコーディング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3‒3

RS エンコーダ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3‒3RS デコーダ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3‒4エラー・シンボルの出力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3‒5ビット・エラーの数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3‒6

インタフェース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3‒6パラメータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3‒7信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3‒8スループットの計算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3‒11

A. CCSDS システムに RS エンコーダまたはデコーダの使用はじめに . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A‒1テスト・パターン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A‒1

ユーザーガイドについて改訂履歴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .インフォ ‒1アルテラへのお問い合わせ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . インフォ ‒1表記規則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .インフォ ‒2

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

iv

リード・ソロモン・コンパイラ ユーザーガイド 2011 年 5月 Altera Corporation

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 ファンクション:

■ シンボルあたりのビット数

■ コードワードあたりのシンボル数

■ コードワードあたりのチェック・シンボル数

■ フィールド多項式

■ 生成多項式の最初の根

■ 生成多項式の根空間

■ デコーダ機能:

■ Variable オプション

■ Erasures-supporting オプション

■ エンコーダ機能可変アーキテクチャ

■ 短縮コードワードのサポート

■ Consultative Committee for Space Data Systems (CCSDS) Recommendations for Telemetry Channel Coding, May 1999 に準拠

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

1‒2 第 1 章 : このコンパイラについてリリース情報

■ 使いやすい IP Toolbench インタフェース

■ パラメータ化されたエンコーダまたはデコーダを生成

■ カスタマイズされたテストベンチとカスタマイズされた Tcl スクリプトを生成

■ DSP Builder Ready

■ アルテラでサポートしている VHDL、Verilog HDL シミュレータ上で使用可能な IPファンクション・シュミレーション・モデル

■ OpenCore Plus 評価をサポート

リリース情報表 1–1 に、リード・ソロモン(RS)コンパイラのリリースに関する情報を示します。

f このリリースについて詳しくは、「 MegaCore IP Library Release Notes and Errata」を参照

してください。

アルテラは、Quartus® II ソフトウェアの現行バージョンが、各 MegaCore ファンク

ションの前のバージョンをコンパイルできることを検証しています。「 MegaCore IP Library Release Notes and Errata」のレポートでは、この検証に例外がある場合に報告し

ます。アルテラは、1 リリースより前の MegaCore ファンクション・バージョンのコ

ンパイルは検証していません。

表1‒1. RS コンパイラのリリース情報

項目 説明

バージョン 11.0

リリース月 May 2011 年 5 月

製品コード IP-RSENC ( エンコーダ )

IP-RSDEC ( デコーダ )

プロダクト ID 0039 0041 ( エンコーダ )

0080 0041 ( デコーダ )

ベンダ ID 6AF7

リード・ソロモン・コンパイラ ユーザーガイド 2011 年 5月 Altera Corporation

第 1 章 : このコンパイラについて 1‒3サポートされるデバイス・ファミリ

サポートされるデバイス・ファミリ表 1–2 には、アルテラの IP コア用のデバイス・サポート・レベルを定義します。

表 1–3 に、RS コンパイラによる各アルテラ・デバイス・ファミリへのサポートのレベルを示します。

表1‒2. アルテラ IP コアのデバイス・サポート・レベル

FPGA デバイス・ファミリ HardCopy デバイス・ファミリ暫定サポート —IP コアは、このデバイス・ファミリのための暫定タイミング・モデルと検証されます。 暫定サポートとは、メガファンクションがすべての機能要件を満たすが、メガファンクションに対し、デバイス・ファミリについてのタイミング解析がまだ行われていることがあります。製造デザインでの使用は注意が必要です。

HardCopy コンパニオン —IP コアは、HardCopy のコンパニオン・デバイスのための暫定タイミング・モデルと検証されます。 メガファンクションに対し、HardCopy デバイス・ファミリについてのタイミング解析がまだ行われていることがあります。それは注意して生産デザインで使用することができます。

最終サポート —IP コアは、このデバイス・ファミリのための暫定タイミング・モデルと検証されます。 IPコアがすべての機能およびタイミング要件を満たす必要があります。また、製造デザインで使用可能であります。

HardCopy コンパイル —P コアは、HardCopy のコンパニオン・デバイスのための暫定タイミング・モデルと検証されます。 IP コアがすべての機能およびタイミング要件を満たす必要があります。また、製造デザインで使用可能であります。

表1‒3. デバイス・ファミリ・サポート

デバイス・ファミリ サポート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 最終

他のデバイス・ファミリ サポートなし

2011 年 5月 Altera Corporation リード・ソロモン・コンパイラ ユーザーガイド

1‒4 第 1 章 : このコンパイラについてパフォーマンスおよびリソース使用率

パフォーマンスおよびリソース使用率表 1–4 に、Cyclone III (EP3C10F256C6) デバイス用の Quartus II ソフトウェア v を使用し

た標準的なパフォーマンスを示します。

1 Cyclone III デバイスはルックアップ・テーブル(LUT)とロジック・レジスタを使用

し、Stratix III デバイスはアダプティブ・ルックアップ・テーブル(ALUT)とロジッ

ク・レジスタを使用しています。

表 1–5 に、Stratix III (EP3SE50F780C2) デバイス用の Quartus II ソフトウェア v を使用し

た標準的なパフォーマンスを示します。

表1‒4. パフォーマンス̶Cyclone III デバイス

パラメータ

LUT

ロジック・レジスタ

メモリ(M9K)

fMAX (MHz)

スループット (Mbps)オプション

キー・サイズ

ビット (1)

シンボル s (2)

チェック (3)

標準のデコーダ ハーフ 4 15 6 541 365 5 230 216

標準のデコーダ ハーフ 8 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 デバイス ( その1 )

パラメータ

ALUT

ロジック・レジスタ

メモリ (M9K)

fMAX (MHz)

スループット(Mbps)オプション

キー・サイズ

ビット (1)

シンボル (2)

チェック (3)

標準のデコーダ ハーフ 4 15 6 417 366 5 403 378

標準のデコーダ ハーフ 8 204 16 1,139 998 5 358 2,865

分割ビット・エラー・デコーダ

ハーフ 8 204 16 1,196 1,060 5 336 2,686

リード・ソロモン・コンパイラ ユーザーガイド 2011 年 5月 Altera Corporation

第 1 章 : このコンパイラについて 1‒5パフォーマンスおよびリソース使用率

表 1–6 には、Stratix IV(EP4SGX70DF29C2X)デバイスの Quartus II ソフトウェアを使

用する典型的なパフォーマンスを示します。

フル・ビット・エラー・デコーダ

ハーフ 8 204 16 1,181 1,065 5 328 2,624

標準のデコーダ ハーフ 8 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‒5. パフォーマンス̶Stratix III デバイス ( その2 )

パラメータ

ALUT

ロジック・レジスタ

メモリ (M9K)

fMAX (MHz)

スループット(Mbps)オプション

キー・サイズ

ビット (1)

シンボル (2)

チェック (3)

表 1‒6. パフォーマンス̶Stratix IV デバイス

パラメータ

ALUTs

ロジック・レジスタ

メモリ

fMAX (MHz)

ツループット (Mbps)オプション

キー・サイズ

ビット (1)

シンボル (2)

チェック (3) ALUT

M9K

標準のデコーダ ハーフ 4 15 6 426 382 8 3 413 387

標準のデコーダ ハーフ 8 204 16 1,220 1,034 64 3 368 2,945

分割ビット・エラー・デコーダ

ハーフ 8 204 16 1,273 1,092 64 3 340 2,719

フル・ビット・エラー・デコーダ

ハーフ 8 204 16 1,255 1,092 64 3 325 2,603

標準のデコーダ ハーフ 8 255 32 2,100 1,713 64 3 324 2,038

可数デコーダ ハーフ 8 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

2011 年 5月 Altera Corporation リード・ソロモン・コンパイラ ユーザーガイド

1‒6 第 1 章 : このコンパイラについてインストールおよびライセンス

スループット(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」のマニュアルを参照してください。

標準のデコーダ — 8 204 16 204 210 — — 620 4,960

可数エンコーダ — 8 204 16 777 313 — — 387 3,099

可数エンコーダ — 8 204 32 1,651 582 — — 347 2,775

表1‒6の注 :(1) シンボルあたりのビット数 (m)。(2) 符号語あたりのシンボル数 (N)。(3) 符号語あたりのチェック・シンボル数 (R)。

表1‒6. パフォーマンス̶Stratix IV デバイス

パラメータ

ALUTs

ロジック・レジスタ

メモリ

fMAX (MHz)

ツループット (Mbps)オプション

キー・サイズ

ビット (1)

シンボル (2)

チェック (3) ALUT

M9K

リード・ソロモン・コンパイラ ユーザーガイド 2011 年 5月 Altera Corporation

第 1 章 : このコンパイラについて 1‒7インストールおよびライセンス

図 1–1 に、トリプル・スピード・イーサネット MegaCore ファンクションをインス

トールした後のディレクトリ構造を示します。この場合、<path>がインストール・

ディレクトリです。Windows でのデフォルトのインストール・ディレクトリは、

c:\altera\<version> です。Linux では、/opt/altera<version> です。

OpenCore Plus 評価機能アルテラの無償 OpenCore Plus 評価機能により、以下の処理を実行できます。

■ システム内のメガファンクション(アルテラ MegaCore ファンクションまたは

AMPPSM メガファンクション)の動作をシミュレーションする。

■ デザインの機能を検証したり、サイズやスピードを迅速かつ簡単に評価したりす

る。

■ メガファンクションを含むデザインに対し、実行時間に制限のあるデバイス・プ

ログラミング・ファイルを生成する。

■ デバイスをプログラムし、デザインを実機上で検証する。

メガファンクションのライセンスは、お客様が機能と性能に満足し、かつデザイン

を製品化する場合にのみ、ご購入いただく必要があります。ライセンス購入後は、

アルテラ・ウェブサイト(www.altera.co.jp/licensing)からライセンス・ファイルを要

求して、コンピュータにインストールできます。ライセンス・ファイルを要求する

と、アルテラから電子メールで license.dat ファイルが送信されます。インターネッ

トをご利用いただけないお客様は、アルテラの販売代理店にお問い合わせください。

f OpenCore Plus ハードウェア評価について詳しくは、「AN320: OpenCore Plus 評価機能によるメガファンクションの評価」を参照してください。

OpenCore Plus タイム・アウト動作penCore Plus ハードウェア評価機能は、以下の動作モードでメガファンクションの実

機評価をサポートします。

■ Untethered(アンテザード)— デザインは限定時間のみ実行されます。

■ Tethered(テザード)— ボードとホスト・コンピュータ間に接続が必要です。デ

ザイン内のすべてのメガファンクションが Tethered モードをサポートしている場

合、デバイスはより長時間または無制限に動作できます。

図 1‒1. ディレクトリ構造

libContains encrypted lower-level design files.

ipContains the Altera MegaCore IP Library and third-party IP cores.

<path>Installation directory.

alteraContains the Altera MegaCore IP Library.

commonContains shared components.reed_solomonContains the Reed-Solomon Compiler files.

2011 年 5月 Altera Corporation リード・ソロモン・コンパイラ ユーザーガイド

1‒8 第 1 章 : このコンパイラについてインストールおよびライセンス

OpenCore Plus 評価機能モードで動作中のメガファンクションのうちの 1 つでも評価

時間に達すると、デバイス内のすべてのメガファンクションが同時にタイム・アウ

トします。デザイン内に複数のメガファンクションがある場合、特定のメガファン

クションのタイムアウト動作は、他のメガファンクションのタイムアウト動作に

よってマスクされることがあります。

RS Compiler MegaCore 機能の Untethered タイム・アウトは 1 時間、Tethered タイム・

アウト値は無制限です。

ハードウェア評価期限経過後にデザインは動作を停止し、rsout 出力が Low になり

ます。

リード・ソロモン・コンパイラ ユーザーガイド 2011 年 5月 Altera Corporation

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 を参照してください。

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

2‒2 第 2章 : 使用法MegaWizard Plug-In Manager フロー

5. モデル内の他のブロックに RS コンパイラ MegaCore ファンクションのバリエー

ションを接続します。

6. DSP Builder モデルに MegaCore ファンクションのバリエーションをシミュレート

します。

f DSP Builder フローについて詳しくは、 DSP Builder User Guide での Using MegaCore Functions の章を参照してください。

1 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 章 : 使用法 2‒3MegaWizard Plug-In Manager フロー

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 には、これらの設定を指定した

後のパラメータ・エディタを示しています。

7. Next をクリックして、IP Toolbench を起動します。

MegaCore ファンクションのパラメータ化MegaCore ファンクションをパラメータ化するには、以下のステップを実行します。

図 2‒2. メガファンクションの選択

2011 年 5月 Altera Corporation リード・ソロモン・コンパイラ ユーザーガイド

2‒4 第 2章 : 使用法MegaWizard Plug-In Manager フロー

1. IP Toolbench で Step 1: Parameterize をクリックします ( 2–4 ページの図 2–3)。

2. Encoder または Decoder を選択します ( 図 2–4)。

3. Encoder を選択した場合、 Variable オプションをオンにすることもできます。

Variable オプションについて詳しくは、3–3 ページの「可変エンコーディングおよ

びデコーディング」を選択してください。

図 2‒3. IP Toolbench̶パラメータ化

図 2‒4. エンコーダまたはデコーダの選択

リード・ソロモン・コンパイラ ユーザーガイド 2011 年 5月 Altera Corporation

第 2 章 : 使用法 2‒5MegaWizard Plug-In Manager フロー

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 を参

照)。

1 つずつパラメータを入力するか、または DVB Standard をクリックして、デジタ

ル・ビデオ放送 (DVB) の規格値を使用するか、CCSDS Standard をクリックして、

CCSDS の規格値を使用することができます。

パラメータについて詳しくは、3–8 ページの表 3–3 を参照してください。

7. Next をクリックします。

図 2‒5. パラメータの選択

2011 年 5月 Altera Corporation リード・ソロモン・コンパイラ ユーザーガイド

2‒6 第 2章 : 使用法MegaWizard Plug-In Manager フロー

8. デコーダのスループットを計算する場合は、周波数(MHz)を入力し、希望の表

示単位を選択してから、Calculate をクリックします。図 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 をオンにします。

図 2‒6. スループット計算

リード・ソロモン・コンパイラ ユーザーガイド 2011 年 5月 Altera Corporation

第 2 章 : 使用法 2‒7MegaWizard Plug-In Manager フロー

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–1 に、生成されたファイルおよびプロジェクト・ディレクトリに存在する可

能性があるその他のファイルを示します。IP Toolbench レポートに指定される

ファイルの名前とタイプは、デザインを VHDL または Verilog HDL のいずれで作成

したかによって異なります。

図 2‒8. 生成レポート

表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‒9デザインのシミュレーション

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 ソフトウェアからサードパー

ティ製シミュレーション・ツールを使用して実行できます。

<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‒1. 生成ファイル ( その2 ) ( 注 1)

ファイル名 説明

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

2011 年 5月 Altera Corporation

3. 機能の説明

バックグランドReed-Solomon (RS) 符号を使用するために、データ・ストリームは最初に一連の符号

語に分割されます。各符号語は、いくつかの情報シンボルとそれに続くいくつかの

チェック・シンボル(パリティ・シンボルまたは冗長シンボルとも呼ぶ)で構成さ

れています。シンボルには任意のビット数を含めることができます。誤り訂正シス

テムでは、エンコーダが通信チャネルでの送信前にデータ・ストリームにチェック・

シンボルを追加します。データが受信されると、デコーダは誤りをチェックして訂

正します(図 3–1 を参照)。

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 コンパイラは短縮符号語をサポートします。

次式は符号の生成多項式を表します。

ここで、

i0 は生成多項式の最初の根です。

a は根空間です。

R はチェック・シンボル数です。

α はこの生成多項式の 1 つの根です。

例えば、以下の情報の場合:

図 3‒1. RS 符号語の例

0010 0110 1010 0011 0111 1011

Information symbols, which contain the original data.

Check symbols, added bythe RS encoder before transmission over acommunications channel.

Symbol Codeword

4 to 10 bits per symbol.

R – 1

g(x) = ∏ (x – αa.i + i0)

i = 0

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

3‒2 第 3 章 : 機能の説明バックグランド

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 のチェック・シンボルを使用します。

3

g(x) = ∏ (x – αi + i0)

i = 0

リード・ソロモン・コンパイラ ユーザーガイド 2011 年 5月 Altera Corporation

第 3 章 : 機能の説明 3‒3RS エンコーダ

アルテラの 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 個

のチェック・シンボルを持つ符号語を示しています。

numcheck入力は、sink_sopがアサートされると、エンコーダ内にラッチされま

す。

図 3‒2. エンコーダ・タイミング

clk

sink_ena

sink_val

sink_sop

sink_eop

rsin[8:1]

source_ena

source_val

source_sop

source_eop

rsout[8:1]

01 02 03 04 05 06 07 08 09 09 10 11 12 13 14 15 16

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

2011 年 5月 Altera Corporation リード・ソロモン・コンパイラ ユーザーガイド

3‒4 第 3 章 : 機能の説明RS デコーダ

エンコーダをリセットしないで動作時に符号語のシンボル数を変更できます。符号

語間で変更を行う必要があります。エンコード中に numcheck を変更することはで

きません。図 3–3 に、可変エンコーディングのタイミング例を示します。

RS デコーダデコーダは、Avalon-ST ベースのパイプライン化された 3 符号語深度(約 3 符号語分

の内部遅延)のアーキテクチャを実装します。パラメータが連続範囲にある場合

( 3–8 ページの表 3–3 を参照)、デコーダは連続動作が可能で、1 クロック・サイクル

ごとに新しいシンボルを受け入れることができます。

デコーダは、セルフ・フラッシュ である — それは供給される新しい符号語を必要と

せずに符号語を処理し、提供します。したがって、入力と出力の間のレイテンシは、

入力データの可用性に依存しません。スループットのレイテンシは約 3 符号語です。

リセットはアクティブ High で、非同期的にアサートすることができます。しかし、

それは clk に同期してディアサートされる必要があります。

RS デコーダは常に符号語で誤りを検出し、修正しようとします。しかし、エラー増

加の数として、デコーダは、もうエラーを修正することができませんが、( そのポイ

ントではデコーダは decfail 信号をアサートするとき ) エラーを検知することだけ

ができるステージになります。エラーの数がまださらに増加すると、結果は予測不

能になります。 表 3–1 には、R に応じてデコーダがエラーの修正方法および検出方法

を示します。

図 3‒3. 可変エンコーディング

clk

sink_ena

sink_val

sink_sop

sink_eop

rsin[8:1]

source_ena

source_val

source_sop

source_eop

rsout[8:1]

numcheck[4:1]

01 02 03 04 05 06 07 08 09 10 11 12

01 02 03 04 05 06 07 08 P1 P2 P3 P4 P5 09 10 11 12

05 05

表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 章 : 機能の説明 3‒5RS デコーダ

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 デコーダの動作を示します。

デコーダを使用すると、IP Toolbench でのオンにする次のオプションの出力がありま

す。

■ エラー・シンボル

■ ビット・エラー数

エラー・シンボルの出力エラーのシンボルの出力の rserr は、Galois 体の誤り訂正値です。 RS デコーダはエ

ラー値と位置を検出し、入力値にガロア体でこれらの値を追加します。Galois 体加算

と減算は同じ動作です。XOR の動作は、2 つの値のビットの間にこの動作を実行しま

す。

図 3‒4. デコーダ・タイミンッグ

clk

sink_ena

sink_val

sink_sop

sink_eop

rsin[8:1]

source_ena

source_val

source_sop

source_eop

rsout[8:1]

numcheck[4:1]

numn[4:1]

01 02 03 04 05 06 07 08 P1 P2 P3 P4 P5 09 10 11 12 13

01 02 03 04 05 06 07 08 P1 P2 P3 P4 P5 12

05 05

13 13

2011 年 5月 Altera Corporation リード・ソロモン・コンパイラ ユーザーガイド

3‒6 第 3 章 : 機能の説明インタフェース

3–6 ページの図 3–5 には、エラーのシンボル出力を示します。

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 インタフェースでは、本質的に複雑な制御ロジックを実装せず

に効率的に達成できるようにするマルチ・チャンネル・デザインおよび時間多重実

装を同期させます。

図 3‒5. エラーのシンボル出力

Memory& Control

SyndromeCalculationrsin rserr

rsout

Solve KeyEquation

Chien Search& Forney's Algorithm

リード・ソロモン・コンパイラ ユーザーガイド 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–2 に、実装パラメータを示します。

図 3‒6. Avalon ST インタフェース

Avalon ST Interface

Source

source_val

source_ena

source_eopdecbit

source_sopUser Module

Sink

ena

val

sop

eop

dat

Avalon ST Interface

User Module Source

ena

val

sop

eop

dat

SinkRS Encoder or Decoder

sink_val

sink_ena

sink_eoprr/eras_sym

sink_sop

表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–3 には、符号語のパラメータを示します。

信号表 3–4 に、グローバル信号を示します。

Keysize (1) ハーフまたはフル

キーサイズのパラメータを使用すると、サポートされているスループットに対してロジック・リソースの量をトレードオフすることができます。多くの Galois 体の乗算器は半分持っていますが、フルはその 2 倍を持っています。フル・デコーダは、より多くのロジックを使用し、おそらく周波数で若干速度が遅くなりますが、より高いスループットをサポートしています。フルとハーフの両方がパラメータに必要なスループットを提供する場合、常に半分を選択してください。

表3‒2の注 :(1) このパラメータは、デコーダのみに適用されます

表3‒2. 実装パラメータ ( その2 )

パラメータ 値 説明

表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. グローバル信号

信号名 説明clk clkはシステム・クロックのメインです。全体の MegaCore ファンクションは、clk の立ち上がりエッ

ジで動作します。

reset リセット信号です。リセットが High にアサートされると、全体のデコーダは非同期的にリセットされます。リセット信号はシステム全体をリセットします。リセット信号は、clkの立ち上がりエッジに同期的にアサートする必要があります。

リード・ソロモン・コンパイラ ユーザーガイド 2011 年 5月 Altera Corporation

第 3 章 : 機能の説明 3‒9信号

表 3–5 には、 Avalon-ST sink (データ入力)インタフェースを示します。

表3‒5. Avalon-ST Sink インタフェース

信号名

Avalon-ST タイプ

入力 /出力 説明

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 data 入力 アサートされると、rsin[]のシンボルは、消去としてマークされています。Erasures-supporting decoder オプション付きのデコーダにのみ有効です。

2011 年 5月 Altera Corporation リード・ソロモン・コンパイラ ユーザーガイド

3‒10 第 3 章 : 機能の説明信号

表 3–6 には、 Avalon-ST ソース ( データ・出力)インタフェースを示します。

表 3–7 には、コンフィギュレーション信号を示します。

表 3–8 には、ステータス信号 ( デコーダのみ)を示します。

表3‒6. Avalon-ST Source インタフェース

信号名

Avalon-ST タイプ

入力 /出力 説明

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. コンフィギュレーション信号

信号名 説明bypass 符号語がバイパスされたまたはバイパスされていない(デコーダのみ)ことを設定する 1 ビッ

ト信号です。デコーダは、継続的に bypassをサンプルします。

numcheck パラメータ R(可変オプションのみ)で設定された最大値にシンボルを確認する可変数を設定します。 sink_sopがアサートされるときだけデコーダが numcheckをサンプルします。

numn N の変数の値です。N の選択された値(変数および Erasures-supporting オプションのみ)までN の最小許容値から任意の値を指定できます。sink_sopがアサートされるときだけデコーダが numnをサンプルします。

表3‒8. ステータス信号 ( その1 )

信号名 説明decfail 修正不可能を示します。source_sopがアサートされるときに有効です。 Avalon-ST イン

タタイプは errです。

num_err_sym シンボル・エラーの数を表します。source_sopがアサートされるときに有効ですが、decfailがアサートされると無効になります。

リード・ソロモン・コンパイラ ユーザーガイド 2011 年 5月 Altera Corporation

第 3 章 : 機能の説明 3‒11スループットの計算

スループットの計算IP Toolbench でスループットの計算(デコーダのみ)は以下の式を使用しています。

秒あたりスループット(メガシンボルで) = N × 周波数 (MHz)/NC

Mbps の場合、シンボル当たりのビット数を m で掛けます。

表 3–9 には、 NC の値を示します。

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) オプションがオンになっている場合にのみ接続されます。

表3‒8. ステータス信号 ( その2 )

信号名 説明

表3‒9. NC の計算

消去 キーサイズ NCなし ハーフ 最大 (N, 10 × R + 4)

なし フル 最大 (N, 7 × R + 5)

あり ハーフ 最大 (N, 10 × R + 6)

あり フル 最大 (N, 8 × R + 4)

2011 年 5月 Altera Corporation リード・ソロモン・コンパイラ ユーザーガイド

3‒12 第 3 章 : 機能の説明スループットの計算

リード・ソロモン・コンパイラ ユーザーガイド 2011 年 5月 Altera Corporation

2011 年 5月 Altera Corporation

A. CCSDS システムに RS エンコーダまたはデコーダの使用

はじめにリード・ソロモン(RS)エンコーダまたはデコーダ MegaCore ファンクションは、標

準的なベース(それ以外の場合は、従来のベースとして知られている)で動作しま

す。このベースは、混乱を引き起こす可能性があります。例えば、デュアル・ベー

スのシステムに直接 RS エンコーダまたはデコーダを実装しようとする Consultative Committee for Space Data Systems (CCSDS) のスタンダードで作業する場合です。

デュアル・ベースのシステムに標準的なベースから転送するには、Berlekamp 変換が

使用されています(ここで、ロジックで実装する必要がある)。図 A–1 には、

Berlekamp 変換の使用例を示します。

テスト・パターンデュアル・ベースなどのシステム、例えば CCSDS で作業とデュアル・ベースのシス

テムからいくつかのテスト・パターンでの RS エンコーダまたはデコーダを提供する

必要があるしている場合は、次の手順に従います。

テスト・パターンを確認します。

1. テスト・パターンに Berlekamp 変換を(デュアルから標準へ)適用します。

2. RS エンコーダやデコーダのテストパターンを適用します。

3. エンコーダの出力に Berlekamp 変換を(標準からデュアルへ)適用します。

4. テスト・パターンを確認します。

f 変換関数の実装については、www.ccsds.org での CCSDS-101.0-B-5 の標準仕様書の

Annex B を参照してください。

図A‒1. Berlekamp 変換の使用

RS EncoderBerlekampTransform

(Canonical to Dual)

Pre-transform(Dual to Canonical)

Post-transform(Canonical to Dual)

BerlekampTransform

(Dual to Canonical)

Channel

RS Decoder

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

A–2 付録 A: CCSDS システムに RS エンコーダまたはデコーダの使用テスト・パターン

リード・ソロモン・コンパイラ ユーザーガイド 2011 年 5月 Altera Corporation

2011 年 5月 Altera Corporation

ユーザーガイドについて

改訂履歴 表 1 にこのユーザー・ガイドの章の改訂履歴を示します。.

アルテラへのお問い合わせAltera 製品に関する最新情報については、表 2 を参照してください。

表1. 改訂履歴

日付 バージョン 変更内容

2011 年 6 月 3.0

■ High-Performance Controller へのレファランスを削除。

■ High-Performance Controller II の情報を更新。

■ HardCopy III, HardCopy IV E, HardCopy IV GX, Stratix III, およびStratix IV サポートを削除。

2010年 12月 2.1 10.1.のために更新。

2010 年 7 月 2.0

■ Controller latency, Enable reduced bank tracking for area optimization および Number of banks to track についての情報を追加。

■ IP Advisor についての情報を削除。この機能は DDR/DDR2 SDRAM IP サポートのバージョン 10.0 から削除。

2010 年 2 月 1.3 誤植を修正。

表2. アルテラのお問い合わせ先

お問い合わせ先 (1) お問い合わせ方法 アドレス

テクニカル・サポート ウェブサイト www.altera.com/mysupport/

テクニカル・トレーニング ウェブサイト www.altera.com/training

製品資料 ウェブサイト www.altera.com/literature

(ソフトウェア・ライセンス)

メール [email protected]

表 2の注:(1) 詳しくは、日本アルテラまたは販売代理店にお問い合わせください。.

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

Info‒2 第章 :

表記規則本資料では、 表 Info–1 に示す表記規則を使用しています。

表 Info‒1. 表記規則

書体 意味太字かつ文頭が大文字

コマンド名、ダイアログ・ボックス・タイトル、チェックボックス・オプション、およびダイアログ・ボックス・オプションは、太字かつ文頭が大文字で表記されています。 例:Save As ダイアログ・ボックス。

太字 外部タイミング・パラメータ、ディレクトリ名、プロジェクト名、ディスク・ドライブ名、ファイル名、ファイルの拡張子、およびソフトウェア・ユーティリティ名は、太字で表記されています。 例:fMAX, \qdesigns ディレクトリ、 d: ドライブ、chiptrip.gdf ファイル。

斜体かつ文頭が大文字

資料のタイトルは、斜体かつ文頭が大文字で表記されています。例:AN 75: High-Speed Board Design。

斜体 内部タイミング・パラメータおよび変数は、斜体で表記されています。 例:tPIA, n + 1。

変数は、山括弧 (< >) で囲み、斜体で表記されています。 例:< ファイル名 >、< プロジェクト名 >.pof ファイル。

文頭が大文字 キーボード・キーおよびメニュー名は、文頭が大文字で表記されています。例: Deleteキー、Options メニュー。

「小見出しタイトル」

資料内の小見出しおよびオンライン・ヘルプ・トピックのタイトルは、鉤括弧で囲んでいます。 例:「表記規則」

Courierフォント 信号およびポート名は、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 矢印は、Enter キーを押すことを示しています。

f 足跡マークは、詳細情報の参照先を示しています。

リード・ソロモン・コンパイラ ユーザーガイド 2011 年 5月 Altera Corporation