101 Innovation Drive San Jose, CA 95134 www.altera.com
ユーザーガイド
ソフトウェア・バージョン: 11.0 ドキュメント・デート: 2011 年 5 月第 1 章 . FIR コンパイラについて
機能 . . . 1‒4 リリース情報 . . . 1‒5 デバイス・ファミリのサポート . . . 1‒6 MegaCore 検証 . . . 1‒7 パフォーマンスおよびリソース使用率 . . . 1‒7 インストールおよびライセンス . . . 1‒9 OpenCore Plus 評価機能 . . . 1‒9 OpenCore Plus タイム・アウト動作 . . . 1‒10第 2 章 . 使用法
デザイン・フロー . . . 2‒1 DSP Builder フロー . . . 2‒1 MegaWizard Plug-In Manager フロー . . . 2‒2 MegaCore ファンクションのパラメータ化 . . . 2‒4 MegaCore ファンクションの生成 . . . 2‒7 デザインのシミュレーション . . . 2‒10 ModelSim でのシミュレーション . . . 2‒10 MATLAB でのシミュレーション . . . 2‒10 NativeLink を使用したサード・パーティ・シミュレーション・ツールのシミュレーション 2‒10 デザインのコンパイルおよびデバイスのプログラム . . . 2‒11第 3 章 . パラメータの設定
係数の指定 . . . 3‒1 FIR コンパイラを使用した係数生成機能 . . . 3‒3 ファイルから係数のロード . . . 3‒7 係数の解析 . . . 3‒8 入力および出力仕様の指定 . . . 3‒10 アーキテクチャ仕様の指定 . . . 3‒11 推定リソース . . . 3‒18 フィルタ・デザインのヒント . . . 3‒18第 4 章 . 機能の説明
FIR コンパイラ . . . 4‒1 数のシステムと固定小数点精度 . . . 4‒1 係数の生成またはインポート . . . 4‒1 係数のスケーリング . . . 4‒2 シンメトリカル・アーキテクチャの選択 . . . 4‒3 対称的なシリアル . . . 4‒3 係数リロードおよびリオーダリング . . . 4‒4 構造の種類 . . . 4‒6 マルチサイクル構造 . . . 4‒6 パラレル構造 . . . 4‒6 シリアル構造 . . . 4‒7 マルチビット・シリアル構造 . . . 4‒7 マルチ・チャネル構造 . . . 4‒8 補間およびデシメーション . . . 4‒9 補間およびデシメーション構造のための実装の詳細 . . . 4‒10補間およびデシメーション・フィルタの可能性 . . . 4‒11 ハーフ・バンドのディシメーション・フィルタ . . . 4‒12 対称補間のフィルタ . . . 4‒12 Pipelining . . . 4‒13 シミュレーション出力 . . . 4‒13 Avalon Streaming インタフェース . . . 4‒13 Avalon-ST データ転送のタイミング . . . 4‒15 パケット・データ転送 . . . 4‒16 信号 . . . 4‒16 タイミング図 . . . 4‒18 リセットおよびグローバル・ クロック・イネーブル動作 . . . 4‒19 シングル・レート・ フィルタのタイミング図 . . . 4‒19 補間フィルタのタイミング図 . . . 4‒22 デシメーション・フィルタのタイミング図 . . . 4‒23 係数リロードのタイミング図 . . . 4‒24 参考資料 . . . 4‒27
付録 A. FIR コンパイラでサポートされるデバイスの構造
サポートされるデバイスの構造 . . . A‒1 HardCopy シリーズ・デバイスのサポート . . . A‒4 HardCopy デザインのコンパイル . . . A‒5追加情報
改訂履歴 . . . Info‒1 アルテラへのお問い合わせ . . . Info‒2 表記規則 . . . Info‒3本書では、Altera® FIR コンパイラについて説明します。 FIR コンパイラは、完全に統 合された有限インパルス応答(FIR)フィルタ開発環境を提供し、アルテラの FPGA デバイスに最適化されます。 アルテラの IP Toolbench インタフェースは FIR コンパイラと使用可能であり、完全な パラレル、シリアル、または汎用ロジックを使用したマルチビット・シリアル演算、 およびマルチサイクルの固定 / 可変フィルタなどの、さまざまなフィルタ・アーキテ クチャを実装できます。 FIR コンパイラには係数生成機能を内蔵しています。 従来より、設計者は DSP プロセッサの柔軟性と ASIC および ASSP
(Application-Specific Standard Product) デジタル信号処理ソリューションの性能間でト レードオフを図るよう強いられてきました。アルテラの DSP ソリューションは、 FPGA の柔軟性と卓越した性能により、これらを両立させることが可能です。 図 1–1 に、FIR コンパイラおよび他の DSP IP コアを含むアルテラの IP コアを使用し た標準的な DSP システムを示します。 図 1‒1. 標準的なモジュレータ・システム FEC Reed Solomon Encoder Convolutional Encoder (Viterbi) Constellation Mapper Outer Encoding Layer
Output Data Input Data NCO Compiler DAC FIR Compiler N LPF FIR Compiler N LPF Convolutional Interleaver
Inner Coding Layer I
多くの複雑なシステムでは、不要な電圧を除去するか、スペクトル整形を提供する か、または信号の検出か解析を実行するために信号フィルタリングを使用します。 こ れらの機能を提供する 2 つのタイプのフィルタは、有限インパルス応答(FIR)フィ ルタと無限インパルス応答(IIR)フィルタです。標準的なフィルタ・アプリケー ションには信号プリコンディショニング、バンド選択、およびロー・パス・フィル タリングが含まれます。 IIR フィルタと対照的に、FIR フィルタはリニア位相および固有安定性を持っていま す。この利点は、多数のシステムに設計されるために十分魅力的な FIR フィルタに なります。しかし、与えられた周波数応答のために、FIR フィルタは、IIR フィルタ よりも高い注文で、より多くの計算コストとなっています。 図 1–2に示すように、FIR フィルタの構造は、加重されたタップド・ディレイ・ライ ンです。 図 1‒2. 基本的な FIR フィルタ xin yout Z-1 Z-1 Z-1 Z-1 C0 C1 C2 C3 Tapped Delay Line Coefficient Multipliers Adder Tree
フィルタのデザイン・プロセスで、システムに指定された周波数応答に合致する係 数を決定します。 これらの係数によってフィルタの応答が決まります。係数の値を変 更することまたは係数を追加することにより、フィルタを通過する信号の周波数が 変更できます。 DSP プロセッサは乗算累積器(MAC)の数に制約があり、サイクル数がフィルタの 次数に直接関係するので、各出力値を計算するのに多くのクロック・サイクルを必 要とします。 専用ハードウェア・ソリューションは、クロック・サイクルあたり 1 出力を達成で きます。 FPGA に実装された完全パラレル、パイプライン化された FIR フィルタは、 高速フィルタリング・アプリケーション用の FPGA は理想的にして、非常に高いデー タ・レートで動作することができます。 表 1–1 に、12 ビットのデータ入力バスを持つ 120 タップ FIR フィルタの実装が異な る場合のリソースの使用状況とパフォーマンスを比較します。 アルテラ FIR コンパイラは、以下の方法によってデザイン・サイクルを短縮します。 ■ カスタム FIR フィルタをデザインするために係数を発生する必要がある。 ■ ビット単位およびクロック・サイクル単位でシミュレーション可能な FIR フィル タ・モデル(bit-true モデルとも呼ばれる)を Verilog HDL および VHDL 言語、 MATLAB 環境用に生成する。 ■ 各種アーキテクチャの高速で面積効率の高い FIR フィルタを合成するために、 Quartus II ソフトウェアに必要なコードを自動生成する。 ■ すべてのアーキテクチャ用の VHDL テストベンチを生成する。 表 1‒1. FIR フィルタ実装の比較 ( 注 1) デバイス 実装 結果を計算するための クロック・サイクル数 DSP プロセッサ 1 MAC 120 FPGA 1 シリアル・フィルタ 12 1 パラレル・フィルタ 1 表 1‒1の注: (1) フィルタを作成するために FIR コンパイラを使用する場合、1 から 120 までの MAC および 120~1 のクロック・サイクルを使用する FPGA に可変フィルタを実現することができます。
図 1–3 は、従来の実装と FIR コンパイラを使用して、デザイン・サイクルを比較し ます。
機能
Altera® FIR コンパイラは有限インパルス応答 (FIR) フィルタ MegaCore ファンクショ
ンを実装して、以下のような機能もサポートしています。 ■ ロジック、メモリ、DSP ブロック、およびパフォーマンス間の最適なトレードオ フを有効にするために以下のハードウェア・アーキテクチャをサポートされてい ます。 ■ 汎用ロジックを使用した完全パラレル演算 ■ 汎用ロジックを使用した完全シリアル演算 ■ 汎用ロジックを使用したマルチビット・シリアル演算 ■ マルチサイクル構造 ■ このようなインターポレーション、デシメーション、対称性、デシメーション・ ハーフ・バンド、およびタイム・シェアリングなどの FIR コンパイラ・ハード ウェアの最適化の結果として、最大効率設計を利用します。 ■ Avalon® Streaming(Avalon-ST)インタフェースを使用する簡単なシステムの統合。 図 1‒3. デザイン・サイクルの比較
Define & Design Architectural Blocks
Determine Behavioral Characteristics of FIR Filter
Calculate Filter Coefficients (MATLAB)
Determine Hardware Filter Architecture
Design Structural or Synthesizable FIR Filter
Simulate
Synthesize & Place & Route
Area/Speed Tradeoff FIR Filter
Design 6 Weeks
Define & Design Architectural Blocks
Simulate
Synthesize & Place & Route FIR Filter Design
1 Day
Specify Filter Characteristics to FIR Compiler Megafunction (FIR Compiler Assists in Area/
Speed Tradeoff)
■ チップ上のリソース使用を的確に制御。 ■ ロジック・セル、M512、 M4K、 M-RAM、 MLAB、 M9K、 または M144K をデータの 保存に使用 ■ M512、M4K、M9K、 M20K、 MLAB またはロジック・セルを係数の保存に使用 ■ リソース使用量推定機能を内蔵 ■ ランタイムの係数リロード機能と、複数の係数セットをサポート。 ■ 効率的なデザイン・スペース・エクスプロレーションを有効にするために、係数 の生成機能を内蔵。 ■ 丸め処理および飽和処理を適用したユーザー選択可能な出力精度。 ■ DSP Builder Ready。
リリース情報
表 1–2 に、Altera® FIR コンパイラのリリースに関する情報を示します。f このリリースの情報について詳しくは、「MegaCore IP Library Release Notes and Errata」
を参照してください。 表 1‒2. FIR コンパイラのリリース情報 項目 説明 バージョン 11.0 リリース月 2011 年 5 月 製品コード IP-FIR プロダクト ID 0012 ベンダ ID 6AF7
アルテラは、Quartus® II ソフトウェアの現行バージョンが、各 MegaCore® ファンク
ションの前のバージョンをコンパイルできることを検証しています。MegaCore IP
Library Release Notes and Errata では、この検証に例外がある場合に報告します。アル テラは、1 リリースより前の MegaCore ファンクション・バージョンのコンパイルは 検証していません。
デバイス・ファミリのサポート
表 1–3 に、アルテラの IP コアのデバイス・サポートのレベルを定義します。 表 1–4に、FIR コンパイラによる各アルテラ・デバイス・ファミリへのサポートのレ ベルを示します。 表 1‒3. アルテラの IP コアのデバイス・サポート・レベル FPGA デバイス・ファミリ HardCopy デバイス・ファミリ 暫定サポート —IP コアはこのデバイスファミリのた めの暫定タイミング・モデルと検証されます。 IP コ アがデバイス・ファミリの機能要件はすべて満たし ているが、タイミング要件については評価中してい ます。製造デザインでの使用は注意が必要なことを 意味します。HardCopy コンパニオン —IP コアは HardCopy コンパ
ニオン・デバイスのための暫定タイミング・モデル と検証されます。IP コアが HardCopy デバイス・ファ ミリの機能要件はすべて満たしているが、タイミン グ要件については評価中しています。製造デザイン での使用は注意が必要なことを意味します。 最終的なサポート —IP コアはこのデバイスファミリ のための最終的なタイミング・モデルと検証されま す。 IP コアがデバイス・ファミリの機能要求および タイミング要求をすべて満たしており、製造デザイ ンとして使用可能であることを意味します。
HardCopy コンパイル —IP コアは HardCopy デバイス
ファミリのための最終的なタイミング・モデルと検 証されます。IP コアがデバイス・ファミリの機能要 求およびタイミング要求をすべて満たしており、製 造デザインとして使用可能であることを意味します。 表 1‒4. サポートされるデバイス・ファミリ ( その1 ) デバイス・ファミリ サポートの種類 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 最終的 StratixIII 最終的
MegaCore 検証
FIR コンパイラの更新バージョンをリリースする前に、アルテラは品質や正確性を検 証するための包括的な回帰テストを実施します。 すべての機能とアーキテクチャは、すべてのパラメータのオプションをスイープし、 シミュレーションがマスタ機能モデルと一致していることを検証することでテスト されます。パフォーマンスおよびリソース使用率
ここでは、 Cyclone III および Stratix IV デバイスと FIR コンパイラ MegaCore ファンク ションの標準的な期待パフォーマンスを示します。すべての図は 97 タップ、8 ビッ
トの入力データ、14 ビットの係数、および 1 GHz に設定したターゲット fMAXのはを
持つ FIR フィルタに提供されます。
1 Cyclone III デバイスはルックアップ・テーブル(LUT)とロジック・レジスタを使用
し、 Stratix IV デバイスはアダプティブ・ルックアップ・テーブル(ALUT)とロジッ ク・レジスタを使用しています。 リソースとパフォーマンス・データは、 4–13 ページの「Avalon Streaming インタ フェース」で説明されたように、常に High にドライブされたソースの ready 信号 (ast_source_ready)で生成されます。 表 1–5に、Cyclone III デバイスのパフォーマンスを示します。 Stratix IV GX/E 最終的 Stratix V 暫定サポート Stratix GX 最終的 その他のデバイス・ファミリ サポートなし 表 1‒4. サポートされるデバイス・ファミリ ( その2 ) デバイス・ファミリ サポートの種類
表 1‒5. FIR コンパイラ・パフォーマンス ̶Cyclone III デバイス ( その1 ) 組み合わせ LUTs ロジック レジスタ メモリ (6) マルチプラ イヤ (9x9) fmax (MHz) スループッ ト (MSPS) 等価の処理 (GMACs) (1) ビット M9K マルチビット・シリアル、パイプライン・レベル 1 (2), (3) 899 1,331 55,148 31 — 310 62 6 4 によるマルチサイクル(1 サイクル)のデシメーション、パイプライン・レベル 1 (2), (3) 857 1,336 1,158 12 26 281 281 27 4 によるマルチサイクル(1 サイクル)のインターポレーション、パイプライン・レベル 1 (4) 1,528 2,657 66 1 50 290 290 28 マルチサイクル (1 サイクル)、パイプライン・レベル 2 (2), (4) 2,543 4,837 92 1 98 280 280 27 マルチサイクル (4 サイクル)、パイプライン・レベル 2 (2), (3) 1,182 1,715 578 9 26 283 71 7
表 1–6 に、Stratix IV デバイスのパフォーマンスを示します。 パラレル(LE)、パイプライン・レベル 1(2), (3) 3,416 3,715 208 3 — 288 288 28 パラレル(M9K)、パイプライン・レベル 1 (2), (5) 1,948 2,155 120,030 48 — 283 283 27 シリアル(M9K)、パイプライン・レベル 1 (2), (3) 327 462 14,167 8 — 323 36 3 表 1‒5の注: (1) GMAC = 秒あたりギガ乗算の蓄積(1 ギガ = 10 億)。 (2) この FIR フィルタは、対称係数を利用しています。 (3) EP3C10F256C6 デバイスを使用します。 (4) EP3C16F484C6 デバイスを使用します。 (5) EP3C40F780C6 デバイスを使用します。 (6) ターゲット fMAXをより低く設定することで、メモリ使用率を大幅に低減できる場合があります。
表 1‒5. FIR コンパイラ・パフォーマンス ̶Cyclone III デバイス ( その2 ) 組み合わせ LUTs ロジック レジスタ メモリ (6) マルチプラ イヤ (9x9) fmax (MHz) スループッ ト (MSPS) 等価の処理 (GMACs) (1) ビット M9K 表 1‒6. FIR コンパイラ・パフォーマンス ̶Stratix IV デバイス 組み合わせ ALUTs ロジック レジスタ メモリ マルチプラ イヤ (18x18) fmax (MHz) スループッ (MSPS) 等価の処理 (GMACS) (1) ビット (M9K) ALUTs マルチビット・シリアル、パイプライン・レベル 1 (2), (3), (4) 766 1,166 55,276 42 16 — 503 101 10 4 によるマルチサイクル(1 サイクル)のデシメーション、パイプライン・レベル 1 (2), (3) 336 844 1,400 16 28 14 443 443 43 4 によるマルチサイクル(1 サイクル)のインターポレーション、パイプライン・レベル 2(3) 200 1,274 64 — 8 24 372 372 36 マルチサイクル (1 サイクル)、パイプライン・レベル 2 (2), (3) 741 1,936 148 1 8 48 443 443 43 マルチサイクル (1 サイクル)、パイプライン・レベル 2 (2), (3) 717 1,398 796 6 36 14 323 81 8 パラレル(LE)、パイプライン・レベル 1 (2), (3) 2,153 2,672 157 1 8 — 421 421 41 パラレル(M9K)、パイプライン・レベル 1 (3) 821 1,730 119,872 45 8 — 457 457 44 シリアル(M9K)、パイプライン・レベル 1 (2), (3) 245 415 14,231 11 8 — 523 58 6 表 1‒6の注: (1) GMAC = 秒あたりギガ乗算の蓄積(1 ギガ = 10 億)。 (2) この FIR フィルタは、対称係数を利用しています。 (3) EP4SGX70DF29C2X デバイスを使用します。
インストールおよびライセンス
FIR コンパイラ MegaCore ファンクションは、MegaCore® IP ライブラリの一部であり、
Quartus® II ソフトウェアとともに配布されます。また、Altera®ウェブサイト (www.altera.co.jp)からダウンロードすることもできます。 f システム要件とインストール手順については、「アルテラ・ソフトウェアのインス トールおよびライセンス」のマニュアルを参照してください。 図 1–4 に、FIR コンパイラをインストールした後のディレクトリ構造を示します。こ こで、、<path> が Quartus II ソフトウェアのインストール・ディレクトリです。 Windows でのデフォルトのインストール・ディレクトリは、 c:\altera\<version> です。 Linux では、 /opt/altera<version> です。
OpenCore Plus 評価機能
アルテラの無償 OpenCore Plus 評価機能により、以下の処理を実行できます。 ■ 作成したシステム内のメガファンクション(アルテラ MegaCore ファンクションま たは AMPPSM メガファンクション)の動作をシミュレーションする。 ■ デザインの機能を検証したり、サイズやスピードを迅速かつ簡単に評価したりす る。 ■ メガファンクションを含むデザインに対し、時間制限つきのデバイス・プログラ ミング・ファイルを生成する。 ■ デバイスをプログラムし、デザインを実機上で検証する。 図 1‒4. ディレクトリ構造 miscContains the coef_seq program which calculates and re-orders coefficients for reloading. lib
Contains encrypted lower-level design files. ip
Contains the Altera MegaCore IP Library and third-party IP cores.
<path>
Installation directory.
altera
Contains the Altera MegaCore IP Library. common
Contains shared components. fir_compiler
機能および性能が十分満足できて、FIR コンパイラを製品に組み込む場合にのみ、ラ イセンスを購入していただく必要があります。 ライセンス購入後は、アルテラ・ウェブサイト(www.altera.com/licensing)からライ センス・ファイルを要求して、コンピュータにインストールできます。ライセンス・ ファイルを要求すると、アルテラから電子メールで license.dat ファイルが送信され ます。インターネットをご利用いただけないお客様は、アルテラの販売代理店にお 問い合わせください。
f OpenCore Plus ハードウェア評価について詳しくは、「AN320: OpenCore 評価機能による
メガファンクションの評価」を参照してください。
OpenCore Plus タイム・アウト動作
OpenCore Plus ハードウェア評価機能は、以下の動作モードでメガファンクションの 実機評価をサポートします。 ■ Untethered(アンテザード)— デザインは限定時間のみ実行されます。 ■ Tethered(テザード)— ボードとホスト・コンピュータ間に接続が必要です。デ ザイン内のすべてのメガファンクションが Tethered モードをサポートしている場 合、デバイスはより長時間または無制限に動作できます。 OpenCore Plus 評価機能モードで動作中のメガファンクションのうちの 1 つでも評価 時間に達すると、デバイス内のすべてのメガファンクションが同時にタイム・アウ トします。デザイン内に複数のメガファンクションがある場合、特定のメガファン クションのタイム・アウト動作は、他のメガファンクションのタイム・アウト動作 によってマスクされることがあります。 MegaCore ファンクションの場合、アンテザード・タイム・アウトは 1 時間、テザー ド・タイム・アウト値は無制限です。 データ出力信号はハードウェア評価が期限切れになると、0 に強制されます。デザイン・フロー
FIR コンパイラ MegaCore® ファンクションは、以下のデザイン・フローをサポートし
ています。
■ DSP Builder:FIR コンパイラ MegaCore ファンクションのバリエーションを含む DSP
Builder モデルを作成する場合、このフローを使用してください。
■ MegaWizard™ Plug-In Manager:ユーザーのデザインで、手動でインスタンス化で
きる FIR コンパイラ MegaCore ファンクションのバリエーションを作成する場合、 このフローを使用してください。 この章では、これらのフローのいずれかの FIR コンパイラ MegaCore ファンクション を使用する方法について説明します。パラメータ化は、各フローに同じであり、 3 章 のパラメータの設定で説明されています。 これらのフローのいずれかのデザインをパラメータ化およびシミュレートした後、 Quartus II ソフトウェアで完成したデザインをコンパイルすることができます。
DSP Builder フロー
アルテラの DSP Builder 製品は、設計者がアルゴリズム開発の環境下で行った DSP デ ザインをハードウェアで実現するための支援を行い、デジタル信号処理 (DSP) のデ ザイン・サイクルを短縮します。DSP Builder は、MathWorks 社の MATLAB® および Simulink® システム・レベルのデザイ
ン・ツールのアルゴリズム開発、シミュレーション、および検証の機能と、アルテ ラの Quartus II 開発ソフトウェアおよびサード・パーティの合成およびシミュレー ション・ツールを組み合わせます。既存の Simulink ブロックをアルテラの DSP Builder ブロックおよび MegaCore ファンクションのバリエーション・ブロックと組み 合わせて、システム・レベル仕様を検証し、シミュレーションを実行することがで きます。
DSP Builder の中で、FIR コンパイラの Simulink シンボルが、Altera DSP Builder Blockset から MegaCore Functions ライブラリの Simulink ライブラリ・ブラウザに表示されま す。
次の手順を実行して、MATLAB/ Simulink の環境で FIR コンパイラを使用することがで きます。
1. 新規 Simulink モデルを作成します。
2. Simulink ライブラリ・ブラウザで、MegaCore Functions ライブラリから FIR Compiler ブロックを選択し、ユーザーのモデルに追加し、ブロックに一意の名前 を付けます。
3. IP Toolbench を表示するには、モデル内の FIR Compiler ブロックをダブル・ク リックします。FIR コンパイラ MegaCore ファンクションのバリエーションをパラ メータ化するには、Step 1: Parameterize をクリックします。FIR Compiler ブ
ロックのパラメータをセットする方法の例について、 3 章のパラメータの設定を
4. FIR コンパイラ MegaCore ファンクションのバリエーションを生成するには、IP Toolbench の Step 2: Generate をクリックします。生成されたファイルについ
て、2–7 ページの表 2–1を参照してください。
5. FIR Compiler MegaCore ファンクションのバリエーションはモデル内の他のブ ロックに接続します。
6. DSP Builder モデルの FIR コンパイラ 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 ストリーミング(Avalon-ST)ソースまたはシンク・インタフェースを使用し て、SOPC Builder での統合をサポートします。
f これらのインタフェース・タイプについて詳しくは、 Avalon Interface Specificationsを参
照してください。
MegaWizard Plug-In Manager フロー
MegaWizard Plug-In Manager フローでは、FIR コンパイラ MegaCore ファンクションを カスタマイズし、手動で MegaCore ファンクションのバリエーションを Quartus II デ ザインに組み込むことができます。
MegaWizard Plug-in Manager を起動するには、以下のステップを実行します。 1. Quartus II ソフトウェアの File メニューから New Project Wizard を選択して、新規
のプロジェクトを作成します。
2. Tools メニューから MegaWizard Plug-in Manager を起動し、カスタム・メガファン
クション・バリエーションを作成するには、オプションを選択します(図 2–1)。
3. Next をクリックして、Installed Plug-Ins タブでの DSP>Filters セクションから FIR
Compiler <version> を選択します(図 2–2)。
4. デバイス・ファミリが New Project Wizard で指定したものと同じであることを確 認します。
5. デザインのトップ・レベル出力ファイル・タイプを選択します。ウィザードでは VHDL と Verilog HDL をサポートしています。
6. MegaCore ファンクション・バリエーションのトップ・レベルの出力ファイル名を
指定し、 Next をクリックして、IP Toolbench を起動します( 2–4 ページの図 2–3)。
MegaCore ファンクションのパラメータ化
MegaCore ファンクション・バリエーションをパラメータ化するには、以下のステッ プを実行します。
1. Parameterize - FIR Compiler ウィンドウを表示するには、IP Toolbench の Step 1:
Parameterize をクリックします。 MegaCore ファンクション・バリエーションに必 要なパラメータを指定するには、このインタフェースを使用します。FIR コンパ
イラ MegaCore ファンクションのパラメータをセットする方法の例について、3 章
のパラメータの設定を参照してください。
2. Set Up Simulation - FIR Compiler のページを表示するには、IP Toolbench の Step 2:
Setup Simulation をクリックします(図 2–4)。
3. Generate Simulation Model をオンにして、IP 機能シミュレーション・モデルを生 成します。 1 IP 機能シミュレーション・モデルは、QuartusII ソフトウェアで生成するサ イクル精度の正確な VHDL または Verilog HDL モデルです。 c これらのシミュレーション・モデルは、シミュレーションの目的にのみ使 用し、合成やその他の目的には使用しないでください。これらのモデルを 合成に使用すると、動作しないデザインが作成されます。 4. Language リストから必要な言語を選択します。
5. Set Up Simulation ページの MATLAB M-File タブをクリックします(図 2–5)。
6. Generate MathWorks MATLAB M-File オプションをオンにします。
このオプションは、MATLAB 環境での FIR コンパイラ・デザインを分析するため に使用できる関数が含まれている MATLAB m ファイルのスクリプトを生成しま す。テストベンチも生成されます。
7. Finish をクリックします。
1 Quartus II Testbench タブは FIR コンパイラのバージョンで使用されないで、無視され
るべきであるオプションを含んでいます。
MegaCore ファンクションの生成
MegaCore ファンクション・バリエーションを生成するには、以下のステップを実行 します。
1. Step 3: Generate をクリックし、MegaCore ファンクション・バリエーションとサ ポートするファイルを生成します。ファイル生成フェーズを完了するには、数分 かかる場合があります。生成の進捗状況とステータスはレポート・ウィンドウに 表示されます。 図 2–6 に、生成レポートを示します。 表 2–1 に、プロジェクト・ディレクトリに IP Toolbench で生成されたファイルを 示します。 レポートで指定されるファイルの名前とタイプは、デザインを VHDL または Verilog HDL のいずれで作成したかによって異なります。 図 2‒6. 生成レポート - FIR コンパイラ MegaCore ファンクション 表 2‒1. 生成されるファイル ( その1 ) ( 注 1) ,(2) ファイル名 説明
<entity name>.vhd Avalon-ST インタフェースの VHDL ラッパー・ファイル。
<variation name>.bsf MegaCore ファンクション・バリエーションの Quartus II ブロック・シンボ ル・ファイルです。Quartus II ブロック図エディタでこのファイルを使用で きます。
<variation name>.cmp MegaCore ファンクション・バリエーション用の VHDL コンポーネント宣言 ファイルです。このファイルの内容を、MegaCore ファンクションをインス タンスする VHDL アーキテクチャの 1 つに追加します。
<variation name>.html MegaCore ファンクションは、ハイパーテキスト・マークアップ言語 (HTML) (Hypertext markup language) でレポートします。
<variation name>.qip Quartus II コンパイラの MegaCore ファンクション・バリエーションの処理に 必要なすべてのアサインメントおよび他の情報が含まれる Quartus II IP ファイルを生成されます。IP Toolbench から脱出すると、このファイルを 現行の Quartus II プロジェクトに追加するように促されます。
<variation name>.vec Quartus II ベクタ・ファイル。 このファイルは、Quartus II ソフトウェアでカ スタマイズされた FIR のカスタム MegaCore ファンクションをシミュレー トするために使用するシミュレーション・テスト・ベクタを提供します。
<variation name>.vhd または .v カスタム MegaCore ファンクションの VHDL または Verilog HDL トップレベ ルの記述を定義する VHDL または Verilog HDL ファイルです。デザイン内部 のこのファイルによって定義されたエンティティをインスタンスします。 QuartusII ソフトウェアでのデザインのコンパイル時にこのファイルがイン クルードされます。
<variation name>.vho または .vo IP 機能シミュレーション・モデルの記述を定義する VHDL または Verilog HDL の出力です。
<variation name>_bb.v MegaCore ファンクション・バリエーションの Verilog HDL ブラック・ボック ス・ファイルです。サード・パーティ製 EDA ツールを使用してデザインを 合成するときにこのファイルを使用します。 <variation name>_coef_in_mlab.txt <variation name>_coef_int.txt MATLAB テストベンチに係数入力ファイルを提供するテキスト・ファイル。 <variation name>_coef_n_inv.hex <variation name>_coef_n.hex <variation name>_zero.hex 16 進(インテル・フォーマット)ファイル(.hex)のメモリ初期化ファイ ル。これらのファイルは、IP 機能シミュレーション・モデルのシミュレー ションおよび Quartus II ソフトウェア用の合成が必要です。
<variation name>_constraints.tcl Quartus II 合成の制約の設定 Tcl ファイル。このファイルは、FIR フィルタ のサイズとスピードを実現するには必要な制約を内蔵しています。
<variation name>_input.txt このテキスト・ファイルは、MATLAB モデルおよびシミュレーション・テ
ストベンチのためのシミュレーション・データを提供します。
<variation name>_mlab.m この MATLAB M ファイルは、カスタマイズされた MegaCore ファンクショ ン・バリエーションのために、MATLAB シミュレーション・モデルのカーネ ルを提供します。
<variation name>_model.m この MATLAB M ファイルは、カスタマイズされた MegaCore ファンクショ
ン・バリエーションのために、MATLAB シミュレーション・モデルを提供し ます。
<variation name>_msim.tcl この Tcl スクリプトは、カスタマイズされた FIR の MegaCore ファンクショ ン・バリエーションのシミュレーション・モデルと一緒に VHDL テストベ ンチをシミュレートするために使用することができます。
<variation name>_nativelink.tcl NativeLink シミュレーション・テストベンチ設定を Quartus II プロジェクト に割り当てるために使用する Tcl スクリプトです。
<variation name>_param.txt このテキスト・ファイルは、カスタマイズされた FIR MegaCore ファンク
ション・バリエーションのためにすべての出力パラメータを記録します。
<variation name>_silent_param.txt このテキスト・ファイルは、カスタマイズされた FIR MegaCore ファンク ション・バリエーションのためにすべての入力パラメータを記録します。 表 2‒1. 生成されるファイル ( その2 ) ( 注 1) ,(2)
生成レポートには、MegaCore ファンクション・バリエーションに定義されたポー
トも表示されます(図 2–7)。 MegaCore ファンクション・バリエーションの外部
ポートでサポートされるすべての信号については、 4–16 ページの表 4–3を参照し
てください。
2. 生成レポートを表示した後、Exit をクリックして IP Toolbench を閉じます。次に、
Quartus II IP Files プロンプトで Yes をクリックして、現在の Quartus II プロジェク
トにカスタム MegaCore ファンクションのバリエーションを説明する .qip ファイ ルを追加します。 <variation name>_core.vhd <variation name>_st.v <variation name>_st_s.v <variation name>_st_u.v <variation name>_st_wr.v 生成された FIR フィルタ・ネットリスト。これらのファイルは、Quartus II 合成に必要であり、現在の Quartus II プロジェクトを追加されます。
tb_<variation name>.vhd この VHDL ファイルは、カスタマイズされた FIR MegaCore ファンクショ ン・バリエーションのためにテストベンチを提供します。
表 2‒1の注:
(1) <variation name> は、IP Toolbench によって自動的に供給されるバリエーション名です。
(2) <entity name> プリフィックスが自動的に追加されます。 各 MegaCore インスタンスの VHDL コードは、Finish をクリックしたと
き動的に生成され、 <entity name> はインスタンスごとに異なります。 それは、 <variation name> に _ast. を追加して生成されます。
表 2‒1. 生成されるファイル ( その3 ) ( 注 1) ,(2)
ファイル名 説明
デザインのシミュレーション
Verilog HDL または VHDL にデザインをシミュレーションするには、IP Toolbench で生 成した IP 機能シミュレーション・モデルを使用します。
IP 機能シミュレーション・モデルは、2–4 ページのステップ 1で指定したように、生
成された .vo または .vho ファイルです(デザイン・ディレクトリにあるファイル)。
f IP 機能シミュレーション・モデルについて詳しくは、「Quartus II Handbook Volume 3」
の「Simulating Altera Designs」の章を参照してください。
ModelSim でのシミュレーション
Tcl スクリプト (<variation name>_msim.tcl) も生成され、ModelSim シミュレータに
VHDL のテストベンチをロードするために使用することができます。 このスクリプトでは、FIR フィルタに入力データを提供するために、ファイル <variation name>_input.txt を使用しています。シミュレーションからの出力は、ファ イル <variation name>_output.txt に格納されています。
MATLAB でのシミュレーション
MATLAB 環境でシミュレートするには、デザイン・ディレクトリにあるテストベンチ m-script の <variation_name>_model.m を実行します。このスクリプトは、<variation name>_input.txt ファイルを使用して入力データを提供します。MATLAB シミュレー ションからの出力は、ファイル <variation name>_model_output.txt に格納されていま す。 MCV のデシメーションフィルタの場合、 <variation name>_model_output_full.txt ファイ ルは、フィルタのすべての位相を表示するために生成されます。出力が属する位相 を理解するために、このファイルは、<variation name>_output.txt ファイルを比較する ことができます。他のすべてのアーキテクチャでは、デシメーション・フィルタは N 番目の位相を提供します。N 番目はデシメーション係数としています。NativeLink を使用したサード・パーティ・シミュレーション・ツール
のシミュレーション
シミュレーションは、NativeLink を使用して Quartus II ソフトウェアからサード・パー ティ製シミュレーション・ツールを使用して実行できます。 Tcl スクリプト・ファイル <variation name>_nativelink.tcl を使用して、デフォルトの NativeLink テストベンチ設定を Quartus II プロジェクトに割り当てることができます。 Quartus II ソフトウェアで NativeLink を使用してシミュレーションを実行するには、以 下のステップを実行します。 1. この章で前述した手順に従って、カスタム MegaCore ファンクションのバリエー ションを作成します。バリエーション名が Quartus II プロジェクト名と一致して いるか確認します。2. Quartus II ソフトウェアの Tools メニューの Options ページに、サード・パーティ 製 EDA ツールへの絶対パスが設定されているかチェックします。
3. Processing メニューから Start を選択し、Start Analysis & Elaboration をクリックし ます。
4. Tools メニューの Tcl scripts をクリックします。Tcl Scripts ダイアログ・ボックス で <variation name>_nativelink.tcl を選択して、Run をクリックします。 Tcl スクリプ トが正常にロードされたことを確認するメッセージをチェックします。
5. Assignments メニューの Settings をクリックして、EDA Tool Settings を展開し、
Simulation を選択します。 Tool Name でシミュレータを選択し、NativeLink Settings で Compile Test Bench を選択して、Test Benches をクリックします。
6. Tools メニューで EDA Simulation Tool をポイントして、Run EDA RTL Simulation を クリックします。
Quartus II ソフトウェアは、シミュレータを選択し、アルテラのライブラリ、デザ イン・ファイル、およびテストベンチをコンパイルします。テストベンチが実行 して、波形ウィンドウには、分析のためのデザイン・シグナルを示します。
f 詳細は、「Quartus II HandbookVolume 3」の「Simulating Altera Designs」の章を参照して
ください。
デザインのコンパイルおよびデバイスのプログラム
Quartus II ソフトウェアを使用して、デザインをコンパイルすることができます。 デザインをコンパイルした後、ターゲットのアルテラ・デバイスをプログラムし、 ハードウェアでデザインを検証します。 f デザインのコンパイルとプログラミングのインストラクションおよび MegaWizardこの章では、FIR コンパイラ MegaCore ファンクションをパラメータ化する方法の例 を提供して、使用可能なパラメータについて説明します。
Parameterize - FIR Compiler のページでは、DSP Builder または MegaWizard Plug-In
Manager のフローから開いているかどうか、同じオプションを提供します。 パラメータ化の開く方法について詳しくは、2–1 ページの「デザイン・フロー」を参 照してください。 1 ユーザー・インタフェースは、パラメータの適正な組み合わせのみの選択を可能に し、無効なパラメータの組み合わせに対しては警告を出します。
係数の指定
FIR フィルタは係数で定義されます。FIR コンパイラの係数設定方法には、以下のオ プションがあります。 ■ FIR コンパイラを使用して、係数を生成することができます。係数生成機能は、 シングル・レート、補間、およびデシメーション・レート仕様のフィルタ・タイ プをサポートしています。これらのフィルタ・タイプの係数を生成する方法につ いて詳しくは、 3–3 ページの「FIR コンパイラを使用した係数生成機能」を参照し てください。 ■ ファイルから係数をロードすることができます。例えば、MATLAB、SPW、また はユーザーが作成したプログラムなどの別のアプリケーションで係数を作成し、 ファイルに保存して FIR コンパイラにインポートすることができます。詳細は、 3–7 ページの「ファイルから係数のロード」を参照してください。このページでは、New Coefficient Set をクリックして新しい係数を定義するまたは ロードすることができます。 あるいは、Edit Coefficient Set をクリックしてデフォルト の係数セットを編集し、または Remove Coefficient Set をクリックして現在のロード されている係数を削除することができます。
FIR コンパイラを使用した係数生成機能
1. Parameterize - FIR Compiler ページでは、New Coefficient Set をクリックして、
Coefficients Generator Dialog ボックスを開きます。
このダイアログ・ボックスを使用して、フィルタ・タイプ、ウィンドウ・タイ プ、サンプル・レート、Excess Bandwidth(コサイン・フィルタで使用)などの多 くのパラメータを指定することができます。 3–3 ページの図 3–2 に、ロー・パス・フィルタのデフォルト値を示します。 2. シンプルなパラレル・フィルタの係数を生成するには、Coefficients Generator Dialog ボックスを使用して、表 3–1に示す設定のリストを作成します。
図 3‒2. デフォルトのロー・パス・フィルタのパラメータが表示された Coeffic ients Generator Dialog ボック ス
表 3‒1. シンプルなパラレル・フィルタに対する係数生成機能のパラメータ設定
パラメータ 値
レートの仕様 シングル・レート e
3. 設定を作成した後、 Apply をクリックしてください。 ダイアログボックスには、青 色のフィルタの周波数応答を表示し、また実際の係数値のリストが表示されます
(図 3–3)。
係数 77
Cutoff Freq. 1 5e+006
ウィンドウ・タイプ Hamming
Sample Rate: 50e+006
Cutoff Freq. 2 10e+006
表 3‒1. シンプルなパラレル・フィルタに対する係数生成機能のパラメータ設定
パラメータ 値
4. 補間またはデシメーションの浮動小数点の係数を生成するには、Output
Specification ドロップダウン・ボックスで、Interpolation または Decimation、およ
び必要な Factor を選択します。
Auto Generate をクリックすると、IP Toolbench は、指定されたレートに基づいて、
遮断周波数を持つロー・パス・フィルタの係数を生成します。 3–5 ページの図 3–4 に、デシメーション・フィルタを示します。遮断周波数はサ ンプリング・レートとハーフ・バンドの係数セットの結果の 4 分の 1 です。 補間およびデシメーションについて詳しくは、4–9 ページの「補間およびデシ メーション」を参照してください。 5. パラメータ設定の作成が終了したら、OK をクリックします。
Parameterize - FIR Compiler のページ ( 3–2 ページの図 3–1)が更新されて、浮動 係数での周波数応答を青色で表示し、固定係数での周波数応答を緑色で表示しま す。
Time Response & Coefficient Values タブをクリックして、3–6 ページの図 3–5に示 すように、係数を表示します。
ファイルから係数のロード
ファイルから係数セットをロードするには、以下のステップに従います。
1. Parameterize - FIR Compiler のページ ( 3–2 ページの図 3–1)で、New Coefficient
Set をクリックして、Coefficients Generator Dialog ボックス( 3–7 ページの図 3–6) の Imported Coefficient Set を選択します。
2. ファイル・システム内に、使用するファイルに移動し、 Open をクリックします。 係数ファイルが個別回線上に各係数が必要であり、ファイルの終わりに改行が必 要ではありません。 科学的な表記法として、浮動小数点または固定小数点数を使 用することができます。 図 3‒6. 係数セットのインポート 図 3‒6の注:
(1) Floating Coefficient Set および Imported Coefficient Set のパラメータのラジオ・ボタンが相互にリンクしているため、1 つを選択す
1 ファイルの終わりに追加の改行を挿入しないでください。FIR コンパイラ は、最近の過去の係数値を持つ追加の係数として各キャリッジ・リターン を解釈します。ファイルには、5 つの 0 でない係数の最小値を持つ必要が あります。 3. OK をクリックして係数セットをインポートします。
係数の解析
FIR コンパイラでは、係数の解析ツールが含まれています。係数のセットを作成し、 各セットに処理を実行するにはそれをできます。 スケーリングなどのいくつかの動作は、すべてのセットに適用されます。再作成、 リロード、または削除などの他の動作は、現在表示しているセットに適用されます。 FIR コンパイラは最大 16 セットの係数をサポートします。Parameterize - FIR Compiler のページには、係数タブを使用して、セットを切り替えることができます。 (係数 セットは番号が付けられます。例えば、 Low Pass Set 1、 Low Pass Set 2 など。) 係数セットを選択すると、浮動小数点係数での周波数応答を青色で表示し、固定小 数点係数での周波数応答を緑色で表示します。また、Time Response & CoefficientValues をクリックして、実際の係数値も表示できます。
FIR コンパイラは、フィルタリング時に、どのビットが保持されるか、およびどの ビットが削除されるかをモニタするために、符号付きバイナリ小数表記法の 2 の補 数をサポートします。符号付きバイナリ小数は次のフォーマットをしています。
<sign> <integer bits>.<fractional bits>
符号付きバイナリ小数は以下に示すとおり、解釈されます。
<sign> <x1 integer bits>.<y1 fractional bits> オリジナルの入力データ <sign> <x2 integer bits>.<y2 fractional bits> オリジナルの係数データ
<sign> <i integer bits>.<y1 + y2 fractional bits> FIR 計算後のフル精度
<sign> <x3 integer bits>.<y3 fractional bits> 精度を制限した後の出力データ
ここで、i = ceil(log2(number of coefficients)) + x1 + x2
例えば、3 分数ビットと 4 の整数ビット + 符号ビットを持っている数の場合は、全体 の 8 ビットの整数は 8 によって分割されて、バイナリ小数部を持つ数値が得られま す。
1 DSP Builder は符号ビットを整数ビットの一部として取り込みます。したがって、DSP
Builder デザインで FIR フィルタを使用している場合は、DSP Builder は、追加の整数 のビットとして符号ビットを認識します。 10 進数に変換すると、特定の小数部分は、バイナリビットの無限の数を持っていま す。例えば、10 進数に 1 /3 を変換することで、0.333n(n は 3 秒の無限の数を表す) が得られます。同様に、完全な精度で有限数のバイナリー・ディジットで 1/10 など の数を表すことができません。符号付きバイナリ小数表記法を使用する場合、FIR コ ンパイラは選択された精度のビット数を持つオリジナルの数字に最も近い数を使用 します。
1 Auto スケーリングは、最大の信号対ノイズ比を提供します。Signal Binary Fractional な ど他のすべてのスケーリングでは、有効ビットが失われることがあります。 図 3–7 に、選択した後の結果を示します。ビット幅を 8(デフォルト)から 12 に変 更すると、固定小数点周波数応答のサイド・ローブが減少することに注意してくだ さい。 図 3‒7. 係数の解析
入力および出力仕様の指定
Parameterize - FIR Compiler ページで、Number of Input Channels(すなわち、各スト
リームに出力を生成するデータ・ストリーム数)および Input Number System を指定
できます(図 3–7)。
FIR コンパイラは、実際の係数または係数ビット幅の 2 つの手法を使用したフル解像 度に対してフィルタが必要とするビット数を計算します。これらのパラメータは正 および負の最大出力値を定義します。Output Specification ドロップダウン・ボックス で、Bit Width Only または Actual Coefficients を選択します。 FIR コンパイラは、演算結 果を表わすのに必要なビット数を推定します。完全精度(Full Precision)を実現する には、推定されたビット数をシステムで使用する必要があります。
1 フィルタに係数のリロードまたは複数の係数セットが存在する場合、Bit Widths Only
を選択する必要があります。
フィルタされた出力(out)に対して完全または制限付き精度を使用することができ ます。完全な精度を使用するには、Output Number System を Full Resolution(デフォル ト)に設定します。精度を制限するには、ドロップ・ダウン・ボックスで、Custom
Resolution または Signed Binary Fractional を選択します。
Output Number System が Custom Resolution に設定されているときは、最上位ビット
(MSB)を切り捨てまたは飽和処理するオプション、および最下位ビット(LSB)を 丸め処理または切り捨て処理するオプションを選択できます。飽和、切捨て、およ び丸め処理は非線形操作です。 表 3–2 にフィルタの精度を制限するオプションを示します。 表 3‒2. 精度を制限するオプション ビット範 囲 オプショ ン 結果 MSB 切り捨て 切り捨て処理では、フィルタは指定されたビットを無視します (図 3–8)。 飽和 飽和処理では、フィルタされた出力が表示可能な正または負の最 大値より大きい場合、出力は正または負の最大値に強制(すなわ ち、飽和処理)されます。 LSB 切り捨て MSB の場合と同じ処理です。 丸め 出力は丸められます。
図 3–8に MSB および LSB からのビットの削除例を示します。
あるいは、Signed Binary Fractional 表記を選択し、保存するビット数を指定すること ができます。FIR コンパイラは削除するビット数を表示します。
入力および出力仕様を調整するには、以下のステップを実行します。
■ MSB から切り捨てると、飽和以上にロジック・リソースが減少します。
■ Number of Input Channels オプションは、I および Q チャネルを持つモジュレータおよ
びデモジュレータなどのデザインに役立ちます。このタイプのアプリケーション をデザインする場合は、2 を選択してください。このチュートリアルではデフォ ルトの設定を使用します。
アーキテクチャ仕様の指定
これで、Parameterize - FIR Compiler ページの下半分からアーキテクチャ・パラメー タを選択できます。 FIR コンパイラは、以下を含むフィルタ構造をサポートします。 ■ 固定 / 可変係数:マルチサイクル ■ 汎用ロジックを使用した演算器:完全パラレル・フィルタ ■ 汎用ロジックを使用した演算器: 完全シリアル・フィルタ ■ 汎用ロジックを使用した演算器:マルチ・ビット・シリアル・フィルタ 1 最大クロック速度は、汎用ロジックを使用した演算器: 完全シリアル・フィルタ構
造を選択します。(Stratix、Stratix II、Stratix III、または Stratix IV デバイスに関しては、 係数とデータ保存により小さいメモリ・リソースを使用するのは、より大きいメモ リ・リソースを使用するより速いです。)最大のスループットを得るには、汎用ロ ジックを使用した演算器:完全パラレル・フィルタ構造を選択します。 係数をリロードするときに、マルチサイクル FIR フィルタの構造は、固定 FIR フィル タに比べて短いリロード時間を持っています。さらに、より小さいメモリ・ブロッ クは、大きなメモリ・ブロックよりも短いリロード時間を持っています。 図 3‒8. MSB および LSB からのビットの削除 D15 D14 D13 D12 D11 D10 D9 D8 . . D0 D9 D8 . . D0
Bits Removed from MSB
Full Precision Limited Precision D15 D14 . . . . D4 D3 D2 D1 D0 D11 D10 . . . D1 D0
Bits Removed from LSB
Full Precision Limited Precision D15 D14 D13 D12 . . . D3 D2 D1 D0 D10 D9 . . . D1 D0
Bits Removed from both MSB & LSB
Full Precision
Limited Precision
表 3–3に、異なるアーキテクチャのオプションのためのトレードオフの相対を説明 します。 フィルタのアーキテクチャの動作方法について詳しくは、 4–1 ページの「FIR コンパ イラ」を参照してください。 表 3‒3. アーキテクチャのトレードオフ テクノロジ オプション 領域 スピード (データ・スループット) 汎用ロジッ クを使用し た演算器 完全パラレ ル 面積(大) 高速フィルタの作成:Stratix II デバイスでパイプラ イン化により 140 から 300 超の MSPS スループット。 汎用ロジッ クを使用し た演算器 完全シリア ル 面積(小) 1 回の演算に複数のクロック・サイクルが必要です。 汎用ロジッ クを使用し た演算器 マルチ・ ビット・シ リアル 面積(中) 複数のシリアル・ユニットを使用してスループット を向上させます。これによりスループットは完全シ リアルより高く、完全パラレルより低くなります。 DSP ブロッ クのマルチ プライヤ マルチサイ クル 面積は選択した計算サイク ル数に依存します(計算サ イクル数が増加すると面積 も増加します) 計算サイクル数が減少するとデータ・スループット は向上します。このアーキテクチャでは、Stratix、 Stratix II、 Stratix III、 または Stratix IV DSP ブロック、お よび CycloneII 乗算器を活用しています。 すべての アーキテク チャで使用 可能なオプ ション パイプライ ニング 面積の増加とより高い性能 のフィルタを作成します。 追加のレイテンシとサイズの増加に伴ってスルー プットを向上させます。
表 3–4、表 3–5、表 3–6、および表 3–7に、各アーキテクチャに使用可能な FIR コン パイラのオプションを説明します。 表 3‒4. マルチサイクル・フィルタ・アーキテクチャ ( 注 1) パラメータ 説明 計算するクロック 結果を計算するために必要なクロックサイクル数を指定します。結果を計算するため に多くのクロック・サイクルを使用すると、フィルタのリソース使用量を減らすこと ができます。フィルタが使用する乗算器の数は、結果を計算するために、クロック・ サイクル数で割ったタップ数に等しくなります。 データ・ストレー ジ データ・ストレージで使用されるデバイス・リソースを指定します。Logic Cells、
M512、 M4K、 M-RAM、 MLAB、 M9K、 M144K、または Auto を選択できます。Auto を選択す ると、選択したデバイスのリソース、データ・ストレージのサイズ、および入力チャ ネル数に応じて、Quartus Ⅱソフトウェアがデータをロジック・セルまたはメモリに保 存することができます。 オプション・リストは、選択するデバイスおよび結果の計算に使用するクロック・サ イクル数に応じて変化します。エンベデッド・メモリを選択すると、ロジック・セル の利用率が低下し、フィルタの速度を向上させることができます。 係数の保存 係数の保存で使用されるデバイス・リソースを指定します。Logic Cells、 M512、 M4K、
M-RAM、 MLAB、 M9K、または Auto を選択できます。Auto を選択すると、Quartus II ソフ
トウェアは自動的に選択したデバイスのための最も適切なメモリ・ブロックのサイズ を選択します。
オプション・リストは、選択するデバイスおよび結果の計算に使用するクロック・サ イクル数に応じて変化します。エンベデッド・メモリを選択すると、ロジック・セル の利用率が低下し、フィルタの速度を向上させることができます。
乗算器の実装 乗算器の実装を使用されるデバイス・リソースを指定します。Logic Cells、 DSP Blocks、
または Auto を選択できます。Auto を選択すると、Quartus II ソフトウェアは DSP Block
Balancing ロジック・オプションをオンにします。 エンベデッド DSP ブロックを使用すると、DSP ブロックを活用した小型で高速なデザ インを実現します。DSP ブロックの最も効率的な使用は、9 × 9(8 つのグループで)ま たは 18×18(4 のグループで)乗算のためです。 Force Non-Symmetric Structure(アシン メトリック構造の 強制) シンメトリック係数およびアシンメトリック係数の両方を使用するデザインを作成す る場合は、このオプションをオンにします。 シンメトリック・アーキテクチャでは、リソース使用を低減させることが可能です。 係数のリロード 係数をリロードできるようにするには、このオプションをオンにします。 パイプライン・レ ベル このオプションをオンにすると、FIR コンパイラはより多くのデバイス・リソースを使 用してより高い性能のフィルタを作成します。 シングル・クロッ ク DSP Builder でデザインを作成するときに、このオプションを使用します。Coefficients
Reload がオンであるときに、そして、M512、M4K、MLAB または M9K が Coefficient Storage で指定されるときにだけ、このオプションは利用可能です。
このオプションは、coef_clk_in と clk 信号を結び付けます。 表 3‒4の注:
(1) 入力データが符号なしの場合、入力データのビット幅は 1 以上でなければなりません。入力データが符号付きの場合、入力
表 3‒5. 完全シリアル・フィルタ・アーキテクチャ ( 注 1)
パラメータ 説明
データ・ストレー ジ
データ・ストレージで使用されるデバイス・リソースを指定します。 Logic Cells、 M512、
M4K、 M-RAM、 MLAB、 M9K、 M144K、または Auto を選択できます。Auto を選択すると、
選択したデバイスのリソース、データ・ストレージのサイズ、および入力チャネル数 に応じて、Quartus II ソフトウェアがデータをロジック・セルまたはメモリに保存する ことができます。
係数の保存 係数の保存で使用されるデバイス・リソースを指定します。Logic Cells、 M512、 M4K、
M-RAM、 MLAB、 M9K、または Auto を選択できます。Auto を選択すると、Quartus II ソフ トウェアは自動的に選択したデバイスのための最も適切なメモリ・ブロックのサイズ を選択します。 オプション・リストは、選択するデバイスに応じて変化します。エンベデッド・メモ リを選択すると、ロジック・セルの利用率が低下し、フィルタの速度を向上させるこ とができます。 Force Non-Symmetric Structure(アシン メトリック構造の 強制) シンメトリック係数およびアシンメトリック係数の両方を使用するデザインを作成す る場合は、このオプションをオンにします。 シンメトリック・アルゴリズムは計算サイクルごとに追加クロック・サイクルを必要 とし、それによりスループットが低下します。 係数のリロード 係数を変化する場合、このオプションをオンにします。係数を変化する場合、このオ プションをオンにします。データ・ストレージで使用されるデバイス・リソースを指 定します。 このオプションを選択するとリソース使用量が増加し、複数の最適化手法がオフにな り、フィルタに入力ポートが追加されます。 パイプライン・レ ベル リソース使用量の増加とより高い性能のフィルタを作成します。 シングル・クロッ ク DSP Builder でデザインを作成するときに、このオプションを使用します。Coefficients
Reload を選択するとき、そして、M512、M4K、MLAB または M9K が Coefficient Storage
で指定されるときにだけ、このオプションは利用可能です。 このオプションは、coef_clk_in と clk 信号を結び付けます。 表 3‒5の注: (1) 入力データのビット幅は 4 以上でなければなりません。 表 3‒6. マルチビット・シリアル・フィルタ・アーキテクチャ ( その1 ) ( 注 1) パラメータ s 説明 シリアル・ユニッ ト数 フィルタを行うために必要なシリアルユニット数を指定します。2、 3、 または 4 を選択 できます。各結果の計算サイクルは、対応するシリアル・フィルタの一つの n 番目に 減少しています。ここで、n はシリアル・ユニット数です。これに対応し、リソース使 用量の増加があります。 データ・ストレー ジ データ・ストレージを使用されるデバイス・リソースを指定します。 Logic Cells、 M512、
M4K、 M-RAM、 MLAB、 M9K、 M144K、または Auto を選択できます。 Auto を選択すると、
選択したデバイスのリソース、データ・ストレージのサイズ、および入力チャネル数 に応じて、Quartus Ⅱソフトウェアがデータをロジック・セルまたはメモリに保存する ことができます。 マルチレート(補間またはデシメーション)を選択するかどうか、および選択するデ バイスに応じてオプションのリストを変更します。エンベデッド・メモリを選択する と、ロジック・セルの利用率が低下し、フィルタの速度を向上させることができます。