Comments
Description
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