FFT MegaCore ファンクション ユーザーガイド この資料は英語版を翻訳したもので、 内容に相違が生じる場合には原文を 優先します。こちらの日本語版は参 考用としてご利用ください。設計の 際には、最新の英語版で内容をご確 認ください。 101 Innovation Drive San Jose, CA 95134 www.altera.com MegaCore バージョン: 11.0 ドキュメント・デート: 2011 年 5 月 Copyright © 2011 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-FFT-11.0 目次 第1章 . この MegaCore ファンクションについて リリース情報 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–1 サポートされるデバイス・ファミリ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–1 特長 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–2 概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–3 固定変換サイズ・アーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–3 可変ストリーミング・アーキテキチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–4 MegaCore 検証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–4 パフォーマンスおよびリソース使用率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–4 Cyclone III デバイス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–5 Stratix III デバイス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–8 Stratix IV デバイス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–12 インストールおよびライセンス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–15 OpenCore Plus 評価機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–16 OpenCore Plus タイム・アウト動作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–16 第 2 章 . 使用法 デザイン・フロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2–1 DSP Builder フロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2–1 MegaWizard Plug-In Manager フロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2–2 MegaCore ファンクションのパレメータ設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2–3 シミュレーションのセットアップ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2–8 MegaCore ファンクションの生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2–9 デザインのシミュレーション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2–12 MATLAB ソフトウェアによるシミュレーション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2–12 固定変換アーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2–12 可変ストリーミング・アーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2–13 IP 機能シミュレーション・モデルを使用したシミュレーション . . . . . . . . . . . . . . . . . . . . . . . . 2–14 NativeLink を使用したサードパーティ・シミュレーション・ツールによるシミュレーション . 2–14 デザインのコンパイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2–15 固定変換アーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2–15 可変ストリーミング・アーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2–16 デバイスのプログラミング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2–16 第 3 章 . 機能の説明 バッファ、バースト & ストリーミングのアーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 可変ストリーミング・アーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Avalon Streaming インタフェース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FFT プロセッサ・エンジン・アーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . radix-22 単一遅延フィードバック・アーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 混合 Radix-4/2 アーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . クワッド出力 FFT エンジン・アーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . シングル出力 FFT エンジン・アーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Altera Corporation 2011 年 5 月 3–1 3–2 3–3 3–4 3–4 3–5 3–5 3–6 FFT MegaCore ファンクション ユーザーガイド iv I/O データ・フロー・アーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–6 ストリーミング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–7 ストリーミング FFT の動作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–7 ストリーミング FFT のイネーブル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–8 可変ストリーミング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–8 ブロック・サイズの変換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–9 可変ストリーミング FFT のイネーブル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–9 FFT サイズをダイナミックに変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–10 I/O 順序による影響 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–11 バッファバースト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–11 バースト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–13 パラメータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–14 信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–17 付録 A. ブロック浮動小数点スケーリング はじめに . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ブロック浮動小数点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 可能な指数値の計算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . スケーリングの実装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IFFT+FFT ペアでのユニティ・ゲインの達成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A–1 A–1 A–2 A–2 A–4 追加情報 改訂履歴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Info–1 アルテラへのお問い合わせ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Info–1 表記規則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Info–2 FFT MegaCore ファンクション ユーザーガイド Altera Corporation 2011 年 5 月 1. この MegaCore ファンクションについて この資料は英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。こちらの日本語版は参考用としてご利用ください。設計の際 には、最新の英語版で内容をご確認ください。 リリース情報 表 1-1 に、アルテラの FFT MegaCore ファンクションのリリースに関する情報を示 します。 表 1-1. FFT MegaCore ファンクションのリリース情報 項目 説明 11.0 バージョン 2011 年 5 月 リリース日付 IP-FFT 製品コード f プロダクト ID 0034 ベンダ ID 6AF7 このリリース情報について詳しくは、「MegaCore IP Library Release Notes and Errata」を参照してください。 アルテラは、Quartus® II ソフトウェアの現行バージョンが、各 MegaCore ® ファンク ションの前のバージョンをコンパイルできることを検証しています。「MegaCore IP Library Release Notes and Errata」では、この検証に例外がある場合に報告します。 アルテラは、1 リリースより前の MegaCore ファンクション・バージョンのコンパ イルは検証していません。 サポートされるデバイス・ファミリ 表 1-2 に、アルテラ IP コアのデバイス・サポート・レベルを定義します。 MegaCore ファンクションは、ターゲットのアルテラ・デバイス・ファミリに対し、 フル・サポートあるいは暫定サポートを提供しています。 表 1-2. アルテラ IP コアのデバイス・サポート・レベル FPGA デバイス・ファミリ HardCopy デバイス・ファミリ 暫定サポート — IP コアがデバイス・ファミリに対し て暫定的なタイミング・モデルで検証されています。 MegaCore ファンクションがデバイス・ファミリの機 能要件をすべて満たしているが、タイミング要件に ついては評価中であるため、生産デザインでの使用 は注意が必要です。 HardCopyコンパニオン —IP コアが HardCopyコンパニ オン・デバイスに対して暫定的なタイミング・モデ ルで検証されています。IP コアが機能要件をすべて 満たしているが、タイミング要件については評価中 です。生産デザインでの使用は注意が必要です。 最終サポート —IP コアがデバイス・ファミリに対し て最終的なタイミング・モデルで検証されています。 MegaCore ファンクションがデバイス・ファミリの機 能要件およびタイミング要求値をすべて満たしてお り、生産デザインで使用可能です。 HardCopy コンパイル —IP コアが HardCopy デバイス・ ファミリに対して最終的なタイミング・モデルで検 証されています。IP コアがデバイス・ファミリの機 能要件およびタイミング要求値をすべて満たしてお り、生産デザインで使用可能です。 Altera Corporation 2011 年 5 月 FFT MegaCore ファンクション・ユーザーガイド 1. この MegaCore ファンクションについて 特長 1–2 表 1-3 に、FFT MegaCore ファンクションによる各アルテラ・デバイス・ファミリ へのサポートのレベルを示します。 表 1-3. サポートされるデバイス・ファミリ デバイス・ファミリ サポートの種類 ™ Arria GX 最終サポート Arria II GX 最終サポート Arria II GZ 最終サポート Cyclone 最終サポート Cyclone II 最終サポート Cyclone III 最終サポート Cyclone III LS 最終サポート Cyclone IV 最終サポート 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 最終サポート 特長 ■ ビット・アキュレートな MATLAB モデル ■ 強化された可変ストリーミング FFT ■ ■ 単精度浮動小数点または固定小数点による表現 ■ 自然、ビット反転または桁反転、および DC 中心(–N/2 から N/2 まで)などの 出入力順序 ■ メモリ要求の低減 ■ 8 ビット~ 32 ビットのデータ幅および回転子幅をサポート radix-4 および radix-4/2(ミックス)を実装 FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5 月 1. この MegaCore ファンクションについて 概要 ■ f 1–3 ブロック浮動小数点アーキテクチャ — 処理中のデータのダイナミック・レンジ を最大化(可変ストリーミングではない場合) ■ 内部メモリを使用 ■ 最大システム・クロック周波数 >300 MHz ■ Stratix シリーズの DSP ブロックおよび TriMatrix™ メモリ・アーキテクチャを使 用するために最適化 ■ 高スループットなクワッド出力 radix-4 FFT エンジン ■ 複数のシングル出力およびクワッド出力エンジンを同時にサポート ■ 複数の I/O データ・フロー・モード:ストリーミング、バッファバーストおよ びバースト ■ ストリーミング、バッファバースト、バースト・モード、およびストリーミング 固定小数点モードに対しては、ユーザーが Stratix V デバイスの DSP ブロックま たは速度の最適化を制御可能 ■ Avalon® Streaming (Avalon-ST) に準拠している出入力インタフェース ■ パラメータ化された特定の VHDL および Verilog HDL のテストベンチを生成可能 ■ ブロックごとに変換方向(FFT/IFFT)が特定可能 ■ 使いやすい IP Toolbench インタフェース ■ アルテラでサポートしている VHDL、Verilog HDL シミュレータ上で使用可能な IP ファンクション・シュミレーション・モデル ■ DSP Builder 対応 Avalon-ST インタフェースについて詳しくは 「Avalon Interface Specifications」を参 照してください。 概要 FFT MegaCore ファンクションは、高性能かつ高度にパラメータ化可能な FFT プロ セッサです。FFT MegaCore ファンクションは高性能アプリケーションに複素 FFT または逆 FFT(IFFT)を実装します。 FFT MegaCore ファンクションは、次のアーキテクチャのいずれかを実装します。 ■ 固定変換サイズ・アーキテクチャ ■ 可変ストリーミング・アーキテクチャ 固定変換サイズ・アーキテクチャ 固定変換サイズ・アーキテクチャは、2m(6 ≤ m ≤ 16)の変換長に対する radix-2/4 DIF (decimation-in-frequency) FFT 固定変換サイズ・アルゴリズムを実装します。こ のアーキテクチャは、ブロック浮動小数点表現を使用して、最大の信号対ノイズ比 (SNR) および最小のサイズ要件の間に最善なトレードオフを実現します。 Altera Corporation 2011 年 5 月 FFT MegaCore ファンクション・ユーザーガイド 1. この MegaCore ファンクションについて MegaCore 検証 1–4 固定変換サイズ・アーキテクチャは、入力として長さ N の複素データ・ベクタ(2 の補数形式)を受け入れ、変換領域の複素ベクタを自然順序で出力します(N は所 望の自然順序による変換長);ファンクションは自然順序で変換ドメイン複素ベクタ を出力します。精度の維持および内部信号対ノイズ比の最大化のためには、変換時に 発生したデータ・スケーリングを示す累算ブロック指数が出力されます。変換方向 は入力ポートを通して、ブロックごとに特定できます。 可変ストリーミング・アーキテキチャ 可変ストリーミング・アーキテクチャは、2 種類のアーキテクチャを実装します。 可変ストリーミング FFT バリエーションは、固定小数点表現を使用する radix-22 単 一遅延フィードバック・アーキテクチャ、または単精度浮動小数点表現を使用する 混合 radix-4/2 アーキテクチャのいずれかを実装します。アーキテクチャ・タイプを 選択した後、実行中に 2m(4 m 18)の変換長に対して FFT アルゴリズムを実行 するように FFT バリエーションをコンフィギュレーションできます。 固定小数点表現は入力から出力にかけて自然にデータ幅を増加させるため、出力に 高い SNR を維持します。単精度浮動小数点表現は出力に高い SNR を維持しながら、 広範囲な値を表現することが可能です。 f 「S. He and radix-22 単一遅延フィードバック・アーキテクチャについて詳しくは、 M. Torkelson, A New Approach to Pipeline FFT Processor, Department of Applied Electronics, Lund University, IPPS 1996」を参照してください。 サイズ N の入力データ・ベクタの順序は、自然、ビット反転 / 桁反転、または –N/2 から N/2 まで(DC 中心)です。固定小数点表現は、自然、ビット反転、または DC 中心の順序をサポートし、浮動小数点表現は自然、桁反転、または DC 中心の順序 をサポートします。このアーキテクチャは変換ドメイン複素ベクタを自然、ビット 反転または桁反転の順序で出力します。変換方向は入力ポートによってブロックごと に特定できます。 MegaCore 検証 MegaCore ファンクションのバージョンをリリースする前に、アルテラは包括的な回 帰テストを実施しています。 さまざまなパラメータ・オプションをテストするために、FFT MegaCore ファンク ションのカスタム・バリエーションが生成され、そして結果するシミュレーション モデルは、検証されたマスタシミュレーションモデルとの結果に対して、徹底的に シミュレートされています。 パフォーマンスおよびリソース使用率 パフォーマンスは FFT エンジン・アーキテクチャおよび I/O データ・フローによっ て異なります。すべてのデータが 3 シードの Quartus II 合成スイープの幾何平均を 表します。 1 Cyclone III デバイスはルックアップ・テーブル(LUT)とロジック・レジスタを使用 し、Stratix III デバイスはアダプティブ・ルックアップ・テーブル(ALUT)とロジッ ク・レジスタを使用しています。 FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5 月 1. この MegaCore ファンクションについて パフォーマンスおよびリソース使用率 1–5 Cyclone III デバイス 表 1-4 に、Cyclone III(EP3C10F256C6) デバイスによって、幅 16 で 4 乗算器 /2 加 算器を使用するストリーミング・データ・フローによるパフォーマンスを示します。 表 1-4. ストリーミング・データ・フロー・エンジン・アーキテクチャによるパフォーマンス —Cyclone III デバイス ポイント 数 組み合わせ ロジック・ LUT 数 レジスタ数 メモリ ( ビット ) メモリ (M9K) 9×9 ブロック fMAX (MHz) クロック・ サイクル・ カウント 変換時間 (s) 256 3437 3906 39168 20 24 231 256 1.11 1024 3857 4650 155904 20 24 244 1024 4.19 4096 (1) 3719 4734 622848 76 24 234 4096 17.52 表 1-4 の注: (1) EP3C40F780C6 デバイス 表 1-5 に、Cyclone III(EP3C16F484C6) デバイス によって、幅 16(浮動小数点の場 合は幅 32)で、順序入力およびビット反転出力を使用する可変ストリーミング・ データ・フローによるパフォーマンスを示します。 1 固定小数点表現による可変ストリーミングは自然なワード増加を使用するため、同 じポイント数を持つ対等なストリーミング FFT に比べて、乗算器要件がもっと厳し いです。 M9K メモリ使用率を大幅に低減したい場合には、より低い fMAX ターゲットを設定しま す。 表 1-5. 可変ストリーミング・データ・フロー・エンジン・アーキテクチャによるパフォーマンス — Cyclone III デバイス ポイント・ タイプ ポイ ント 数 組み合わせ LUT 数 ロジック・ レジスタ メモリ 数 ( ビット ) 固定 256 3859 4373 固定 1024 5243 固定 4096 浮動 (1) 256 浮動 (2) 1024 浮動 (2) 4096 クロック・ サイクル・ 変換時間 (s) カウント メモリ (M9K) 9×9 ブロック fMAX (MHz) 9997 15 40 191 256 1.34 5840 41940 21 56 193 1024 5.29 6725 7369 170335 40 72 198 4096 20.67 20771 14158 34464 62 96 116 256 2.20 26573 17540 140410 93 128 116 1024 8.83 32428 20939 568163 148 160 116 4096 35.3 表 1-5 の注: (1) EP3C40F780C6 デバイス (2) EP3C55F780C6 デバイス Altera Corporation 2011 年 5 月 FFT MegaCore ファンクション・ユーザーガイド 1. この MegaCore ファンクションについて パフォーマンスおよびリソース使用率 1–6 表 1-6 に、Cyclone III(EP3C25F324C6) デバイスによって、16 のデータおよび回転 子の幅で、4 乗算器 /2 加算器の複素数乗算器構造を使用するバッファバースト・ データ・フロー・アーキテクチャによるリソース使用率をリストします。 表 1-6. バッファバースト・データ・フロー・アーキテクチャによるリソース使用率 —Cyclone III デバイス エンジン数 ポイント数 (1) 組み合わせ LUT 数 ロジック・ レジスタ数 メモリ ( ビット ) メモリ (M9K) 9×9 ブロック fMAX (MHz) 256 (2) 1 3129 3778 30,76 16 24 247 1024 (2) 1 3234 3976 123136 16 24 241 4096 1 3291 4160 491776 60 24 227 256 (3) 2 5161 5961 30976 31 48 225 1024 (3) 2 5270 6169 123136 31 48 207 4096 2 5337 6361 491776 60 48 215 256 4 9015 10738 30976 60 96 230 1024 4 9145 10963 123136 60 96 230 4096 4 9241 11169 491776 60 96 215 表 1-6 の注: (1) バッファバースト・アーキテクチャを使用する際、FFT MegaWizard インタフェースで出力 FFT エンジンの数を特定するこ とができます。 (2) EP3C10F256C6 デバイス (3) EP3C16F484C6 デバイス 表 1-7 に、Cyclone III(EP3C25F324C6) デバイスによって、16 のデータおよび回転 子の幅で、4 乗算器 /2 加算器の複素数乗算器構造を使用するバッファバースト・ データ・フロー・アーキテクチャによるパフォーマンスをリストします。 表 1-7. バッファバースト・データ・フロー・アーキテクチャによるパフォーマンス —Cyclone III デバイス (1/2) 変換計算時間 (2) データ・ロード & 変換計算 ブロック・ スループット (3) ポイント 数 エンジン数 (1) fMAX (MHz) サイクル 時間 (s) サイクル 256 (4) 1 247 235 0.95 491 1.99 331 1.34 1024 (4) 1 241 1069 4.44 2093 8.69 1291 5.36 4096 1 227 5167 22.81 9263 40.9 6157 27.18 256 (5) 2 225 162 0.72 397 1.77 299 1.33 1024 (5) 2 207 557 2.69 1581 7.63 1163 5.61 4096 2 215 2,07 12.12 6703 31.17 5133 23.87 時間 (s) サイクル 時間 (s) 256 4 230 118 0.51 347 1.51 283 1.23 1024 4 230 340 1.48 1364 5.93 1099 4.78 FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5 月 1. この MegaCore ファンクションについて パフォーマンスおよびリソース使用率 1–7 表 1-7. バッファバースト・データ・フロー・アーキテクチャによるパフォーマンス —Cyclone III デバイス (2/2) データ・ロード & 変換計算 変換計算時間 (2) ポイント 数 エンジン数 (1) fMAX (MHz) サイクル 時間 (s) サイクル 4096 4 215 1378 6.4 5474 ブロック・ スループット (3) 時間 (s) サイクル 時間 (s) 25.4 4633 21.5 表 1-7 の注: (1) バッファバースト・アーキテクチャを使用する際、FFT MegaWizard インタフェースで出力 FFT エンジンの数を特定するこ とができます。1 つ、2 つ、または 4 つのクワッド出力エンジンをパラレルで選択できます。 (2) バッファバースト・データ・フロー・アーキテクチャでは、変換時間は N サンプル入力クロックがロードされるから 1 番目 の出力サンプルが出力できるようになるまでの時間として定義されます。変換時間には、フル出力データ・ブロックをアン ロードする追加の N-1 クロック・サイクルが含まれていません。 (3) ブロック・スループットとは、連続的な 2 つの Start-Of-Packet(sink_sop)パルス間の最小サイクル数です。 (4) EP3C10F256C6 デバイス。 (5) EP3C16F484C6 デバイス。 表 1-8 に、Cyclone III(EP3C10F256C6) デバイスによって、16 のデータおよび回転 子の幅で、4 乗算器 /2 加算器の複素数乗算器構造を使用するバースト・データ・フ ロー・アーキテクチャによるリソース使用率をリストします。 表 1-8. バースト・データ・フロー・アーキテクチャによるリソース使用率 —Cyclone III デバイス ポイント 数 エンジン・ アーキテク チャ エンジン数 (2) 組み合わせ LUT 数 ロジック・ レジスタ 数 メモリ ( ビット ) メモリ (M9K) 9×9 ブロック 256 クワッド出力 1 3120 3694 14592 8 24 1024 クワッド出力 1 3227 3876 57600 8 24 4096 クワッド出力 1 3277 4044 229632 28 24 256 クワッド出力 2 5141 5872 14592 15 48 1024 クワッド出力 2 5248 6064 57600 15 48 4096 クワッド出力 2 5304 6240 229632 28 48 256 クワッド出力 4 9012 10659 14592 28 96 1024 クワッド出力 4 9144 10868 57600 28 96 4096 クワッド出力 4 9241 11058 229632 28 96 256 シングル出力 1 1449 1499 9472 3 8 1024 シングル出力 1 1518 1545 37120 6 8 4096 シングル出力 1 1598 1591 147712 19 8 256 シングル出力 2 2131 2460 14592 9 16 1024 シングル出力 2 2185 2536 57600 11 16 4096 シングル出力 2 2237 2612 229632 28 16 表 1-8 の注: (1) バースト・データ・フロー・アーキテクチャを使用する際、FFT MegaWizard インタフェースで出力 FFT エンジンの数を特 定することができます。1 ~ 2 つのシングル出力エンジン、あるいは 1 つ、2 つ、または 4 つのクワッド出力エンジンをパラ レルで選択できます。 Altera Corporation 2011 年 5 月 FFT MegaCore ファンクション・ユーザーガイド 1. この MegaCore ファンクションについて パフォーマンスおよびリソース使用率 1–8 表 1-9 に、Cyclone III(EP3C10F256C6) デバイスによって、16 のデータおよび回転 子の幅で、4 乗算器 /2 加算器の複素数乗算器構造を使用するバースト・データ・フ ロー・アーキテクチャによるパフォーマンスをリストします。 表 1-9. バースト・データ・フロー・アーキテクチャによるパフォーマンス —Cyclone III デバイス データ・ロード & 変換計算 変換計算時間 (2) ブロック・スルー プット (3) ポイント 数 エンジン・ アーキテク チャ エンジン 数 (1) fMAX (MHz) サイクル 時間 (s) サイクル 時間 (s) サイクル 時間 (s) 256 クワッド出力 1 232 235 1.01 491 2.12 331 1.43 1024 クワッド出力 1 246 1069 4.35 2093 8.51 1291 5.25 4096 クワッド出力 1 215 5167 24.07 9263 43.15 6157 28.68 256 クワッド出力 2 244 162 0.66 397 1.63 299 1.23 1024 クワッド出力 2 216 557 2.58 1581 7.31 1163 5.38 4096 クワッド出力 2 219 2607 11.9 6703 30.59 5133 23.43 256 クワッド出力 4 225 118 0.52 374 1.66 283 1.26 1024 クワッド出力 4 202 340 1.68 1364 6.75 1099 5.43 4096 クワッド出力 4 204 1378 6.76 5474 26.87 4633 22.74 256 シングル出力 1 250 1115 4.45 1371 5.48 1628 6.5 1024 シングル出力 1 223 5230 23.43 6344 28.42 7279 32.6 4096 シングル出力 1 227 24705 108.7 28801 126.73 32898 144.75 256 シングル出力 2 235 585 2.49 841 3.58 1098 4.67 1024 シングル出力 2 221 2652 12 3676 16.64 4701 21.28 4096 シングル出力 2 219 12329 56.28 16495 75.3 20605 94.06 表 1-9 の注: (1) バースト I/O データ・フロー・アーキテクチャでは、FFT MegaWizard インタフェースで出力 FFT エンジンの数を特定するこ とができます。1 ~ 2 つのシングル出力エンジン、あるいは 1 つ、2 つ、または 4 つのクワッド出力エンジンをパラレルで選択 できます。 (2) バッファバースト・データ・フロー・アーキテクチャでは、変換時間は N サンプル入力クロックがロードされるから 1 番目の 出力サンプル(入力ブロックに応じて)が出力するまでの時間として定義されます。変換時間には、フル出力データ・ブロック をアンロードする時間が含まれていません。 (3) ブロック・スループットとは、連続的な 2 つの Start-Of-Packet(sink_sop)パルス間の最小サイクル数です。 Stratix III デバイス 表 1-10 に、Stratix III (EP3SE50F780C2) デバイスによって、16 のデータおよび回 転子の幅で、4 乗算器 /2 加算器の複素数乗算器構造を使用するストリーミング・ データ・フローによるパフォーマンスを示します。 表 1-10. ストリーミング・データ・フローによるパフォーマンス —Stratix III デバイス ポイン ト数 組み合わせ ALUT 数 ロジッ ク・レジ スタ数 メモリ ( ビット ) メモリ (M9K) 18 × 18 ブロック fMAX (MHz) クロック・ サイクル・ カウント 変換時間 (s) 256 2094 3715 39168 20 12 442 256 0.58 1024 2480 4458 155904 20 12 413 10024 2.48 4096 2357 4545 622848 76 12 388 4096 10.57 FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5 月 1. この MegaCore ファンクションについて パフォーマンスおよびリソース使用率 1–9 表 1-11 に、Stratix III(EP3SE50F780C2) デバイスによって、幅 16(浮動小数点の場 合は幅 32)で順序入力およびビット反転出力を使用する可変ストリーミング・デー タ・フローのパフォーマンスを示します。 1 固定小数点表現による可変ストリーミングは自然なワード増加を使用するため、同 じポイント数を持つ対等なストリーミング FFT に比べて、乗算器要件がもっと厳し いです。 M9K メモリ使用率を大幅に低減したい場合には、より低い fMAX ターゲットを設定しま す。 表 1-11. 可変ストリーミング・データ・フロー・エンジン・アーキテクチャによるパフォーマンス — Stratix III デバイス ポイン ト・タイ プ ポイ ント 数 組み合わせ ALUT 数 ロジック・ レジスタ メモリ 数 ( ビット ) 固定 256 2511 3927 固定 1024 3476 固定 4096 浮動 クロック・ サイクル・ 変換時間 (s) カウント メモリ (M9K) 18 × 18 ブロック fMAX (MHz) 10239 16 20 341 256 0.75 5244 42218 23 28 323 1024 3.17 4480 6628 170639 42 36 320 4096 12.8 256 14059 13424 34728 64 48 303 256 0.84 浮動 1024 18019 16560 140750 95 64 286 1024 3.58 浮動 (1) 4096 22026 19717 568579 150 80 286 4096 14.33 表 1-11 の注: (1) EP3SL70F780C2 デバイス 表 1-12 に、Stratix III (EP3SE50F780C2) デバイスによって、16 のデータおよび回 転子の幅で、4 乗算器 /2 加算器の複素数乗算器構造を使用するバッファ・バース ト・データ・フロー・アーキテクチャによるリソース使用率をリストします。 表 1-12. バッファ・バースト・データ・フロー・アーキテクチャによるリソース使用率 —Stratix III デバイ ス ポイント 数 エンジン数 (1) 組み合わせ ALUT 数 ロジック・ レジスタ数 メモリ ( ビット ) メモリ (M9K) 18 × 18 ブ ロック fMAX (MHz) 256 1 1952 3586 30976 16 12 408 1024 1 1989 3784 123136 16 12 390 4096 1 2031 3968 491776 60 12 382 256 2 3261 5577 30976 31 24 365 1024 2 3306 5785 123136 31 24 369 4096 2 3348 5977 491776 60 24 390 256 4 5712 9971 30976 60 48 341 1024 4 5775 10195 123136 60 48 349 4096 4 5857 10403 491776 60 48 325 表 1-12 の注: (1) バッファバースト・アーキテクチャを使用する際、FFT MegaWizard インタフェースで出力 FFT エンジンの数を特定するこ とができます。 Altera Corporation 2011 年 5 月 FFT MegaCore ファンクション・ユーザーガイド 1. この MegaCore ファンクションについて パフォーマンスおよびリソース使用率 1–10 表 1-13 に、Stratix III (EP3SE50F780C2) デバイスによって、16 のデータおよび回 転子の幅で、4 乗算器 /2 加算器の複素数乗算器構造を使用するバッファ・バース ト・データ・フロー・アーキテクチャによるパフォーマンスをリストします。 表 1-13. バッファ・バースト・データ・フロー・アーキテクチャによるパフォーマンス —Stratix III デバイ ス 変換計算時間 (2) データ・ロード & 変 換計算 ブロック・スルー プット (3) ポイント 数 エンジン数 (1) fMAX (MHz) サイクル 時間 (s) サイクル 256 1 408 235 0.58 491 1.2 331 0.81 1024 1 390 1069 2.74 2093 5..37 1291 3.31 4096 1 382 5167 13.54 9263 24.27 6157 16.13 時間 (s) サイクル 時間 (s) 256 2 365 162 0.44 397 1.09 299 0.82 1024 2 369 557 1.51 1581 4.29 1163 3.15 4096 2 390 2607 6.68 6703 17.17 5133 13.15 256 4 341 118 0.35 347 1.02 283 0.83 1024 4 349 340 0.98 1364 3.91 1099 3.15 4096 4 325 1378 4.25 5474 16.87 4633 14.27 表 1-13 の注: (1) バッファバースト・アーキテクチャを使用する際、FFT MegaWizard インタフェースで出力 FFT エンジンの数を特定するこ とができます。1 つ、2 つ、または 4 つのクワッド出力エンジンをパラレルで選択できます。 (2) バッファバースト・データ・フロー・アーキテクチャでは、変換時間は N サンプル入力クロックがロードされるから 1 番目 の出力サンプルが出力できるようになるまでの時間として定義されます。変換時間には、フル出力データ・ブロックをアン ロードする追加の N-1 クロック・サイクルが含まれていません。 (3) ブロック・スループットとは、連続的な 2 つの Start-Of-Packet(sink_sop)パルス間の最小サイクル数です。 表 1-14 に、Stratix III (EP3SE50F780C2) デバイスによって、16 のデータおよび回 転子の幅で、4 乗算器 /2 加算器の複素数乗算器構造を使用するバースト・データ・ フロー・アーキテクチャによるリソース使用率をリストします。 表 1-14. バースト・データ・フロー・アーキテクチャによるリソース使用率 —Stratix III デバイス ポイン ト数 s エンジン・ アーキテク チャ エンジン数 (2) 組み合わせ ALUT ロジック・ メモリ メモリ 数 レジスタ数 (ビット) (M9K) (1/2) 18 × 18 ブロック 256 クワッド出力 1 1796 3502 14592 8 12 1024 クワッド出力 1 1830 3686 57600 8 12 4096 クワッド出力 1 1882 3852 229632 28 12 256 クワッド出力 2 2968 5489 14592 15 24 1024 クワッド出力 2 3015 5681 57600 15 24 4096 クワッド出力 2 3054 5856 229632 28 24 256 クワッド出力 4 5162 9891 14592 28 48 1024 クワッド出力 4 5213 10100 57600 28 48 4096 クワッド出力 4 5283 10290 229632 28 48 256 シングル出力 1 704 1435 9472 3 4 1024 シングル出力 1 740 1481 37120 6 4 FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5 月 1. この MegaCore ファンクションについて パフォーマンスおよびリソース使用率 1–11 表 1-14. バースト・データ・フロー・アーキテクチャによるリソース使用率 —Stratix III デバイス ポイン ト数 s エンジン・ アーキテク チャ エンジン数 (2) 組み合わせ ALUT ロジック・ メモリ メモリ 数 レジスタ数 (ビット) (M9K) (2/2) 18 × 18 ブロック 4096 シングル出力 1 805 1527 147712 19 4 256 シングル出力 2 1037 2332 14592 9 8 1024 シングル出力 2 1050 2408 57600 11 8 4096 シングル出力 2 1092 2484 229632 28 8 表 1-14 の注: (1) データおよび回転子の係数精度を表します。 (2) バースト・データ・フロー・アーキテクチャを使用する際、FFT MegaWizard インタフェースで出力 FFT エンジンの数を特 定することができます。1 ~ 2 つのシングル出力エンジン、あるいは 1 つ、2 つ、または 4 つのクワッド出力エンジンをパ ラレルで選択できます。 表 1-15 に、Stratix III(EP3SE50F780C2) デバイスによって、16 のデータおよび回転 子の幅で、4 乗算器 /2 加算器の複素数乗算器構造を使用するバースト・データ・フ ロー・アーキテクチャによるパフォーマンスをリストします。 表 1-15. バースト・データ・フロー・アーキテクチャによるパフォーマンス —Stratix III デバイス 変換計算時間 (2) データ・ロード & 変換計算 ブロック・スルー プット (3) ポイン ト数 エンジン・ アーキテク チャ エンジン 数 (1) fMAX (MHz) サイクル 時間 (s) サイクル 時間 (s) サイクル 時間 (s) 256 クワッド出力 1 408 235 0.58 491 1.2 331 0.81 1024 クワッド出力 1 429 1069 2.49 2093 4.87 1291 3.01 4096 クワッド出力 1 410 5167 12.6 9263 22.59 6157 15.02 256 クワッド出力 2 382 162 0.42 397 1.04 299 0.78 1024 クワッド出力 2 388 557 1.43 1581 4.07 1163 3.00 4096 クワッド出力 2 386 2607 6.76 6703 17.39 5133 13.31 256 クワッド出力 4 348 118 0.34 374 1.07 283 0.81 1024 クワッド出力 4 380 340 0.9 1364 3.59 1099 2.9 4096 クワッド出力 4 367 1378 3.76 5474 14.92 4633 12.63 256 シングル出力 1 438 1115 2.54 1371 3.13 1628 3.72 1024 シングル出力 1 414 5230 12.63 6344 15.31 7279 17.57 4096 シングル出力 1 404 24705 61.22 28801 71.37 32898 81.52 256 シングル出力 2 413 585 1.42 841 2.04 1098 2.66 1024 シングル出力 2 402 2652 6.6 3676 9.15 4701 11.71 4096 シングル出力 2 406 12329 30.34 16495 40.59 20605 50.71 表 1-15 の注: (1) バースト I/O データ・フロー・アーキテクチャでは、FFT MegaWizard インタフェースで出力 FFT エンジンの数を特定するこ とができます。1 ~ 2 つのシングル出力エンジン、あるいは 1 つ、2 つ、または 4 つのクワッド出力エンジンをパラレルで選 択できます。 (2) バッファバースト・データ・フロー・アーキテクチャでは、変換時間は N サンプル入力クロックがロードされるから 1 番目の 出力サンプル(入力ブロックに応じて)が出力するまでの時間として定義されます。変換時間には、フル出力データ・ブロッ クをアンロードする時間が含まれていません。 (3) ブロック・スループットとは、連続的な 2 つの Start-Of-Packet(sink_sop)パルス間の最小サイクル数です。 Altera Corporation 2011 年 5 月 FFT MegaCore ファンクション・ユーザーガイド 1. この MegaCore ファンクションについて パフォーマンスおよびリソース使用率 1–12 Stratix IV デバイス 表 1-16 に、Stratix IV (EP4SGX70DF29C2X) デバイスによって、幅 16 で 4 乗算器 /2 加算器を使用するストリーミング・データ・フローによるパフォーマンスを示し ます。 表 1-16. ストリーミング・データ・フローによるパフォーマンス —Stratix IV デバイス 18 × 18 ブロッ ク fMAX (MHz) クロック・ サイクル・ カウント 変換時間 (s) 20 12 436 256 0.59 155904 20 12 437 1024 2.34 622848 76 12 419 4096 9.78 ポイン ト数 組み合わせ ALUT 数 ロジック・ メモリ メモリ レジスタ数 (ビット) (M9K) 256 2092 3714 39168 1024 2480 4458 4096 2356 4545 表 1-17 に、Stratix IV (EP4SGX70DF29C2X) デバイス (EP3C16F484C6) によって、 幅 16(浮動小数点の場合は幅 32)で、順序入力およびビット反転出力を使用する可 変ストリーミング・データ・フローによるパフォーマンスを示します。 1 固定小数点表現による可変ストリーミングは自然なワード増加を使用するため、同 じポイント数を持つ対等なストリーミング FFT に比べて、乗算器要件がもっと厳し いです。 M9K メモリ使用率を大幅に低減したい場合には、より低い fMAX ターゲットを設定しま す。 表 1-17. 可変ストリーミング・データ・フロー・エンジン・アーキテクチャによるパフォーマンス — Stratix IV デバイス ポイン ト・タ イプ ポイ ント 数 組み合わせ ALUT 数 ロジック・ レジスタ 数 メモリ ビット ALUT 固定 256 2517 4096 10239 固定 1024 3489 5433 固定 4096 4503 浮動 256 浮動 浮動 クロック・ サイクル・ 変換時間 (s) カウント M9K 18 × 18 ブロッ ク fMAX (MHz ) 10 20 323 256 0.79 256 42218 15 28 329 1024 3.12 1024 6936 170639 33 36 327 4096 12.52 4096 18024 16714 140750 61 48 320 256 0.8 256 1024 14063 13502 34728 89 64 314 1024 3.26 1024 4096 22030 19806 568579 146 80 310 4096 13.23 4096 表 1-18 に、Stratix IV (EP4SGX70DF29C2X) デバイスによって 16 のデータおよび回 転子の幅で、4 乗算器 /2 加算器の複素数乗算器構造を使用するバッファバースト・ データ・フロー・アーキテクチャによるリソース使用率をリストします。 表 1-18. バッファバースト・データ・フロー・アーキテクチャによるリソース使用率 — Stratix IV デバイス ( 1 / 2 ) ポイント 数 エンジン数 (1) 組み合わせ ALUT 数 ロジック・ レジスタ数 メモリ (ビット) メモリ (M9K) 18 × 18 ブ ロック fMAX (MHz) 256 1 1951 3586 30976 16 12 443 1024 1 1990 3784 123136 16 12 441 4096 1 2034 3968 491776 60 12 421 FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5 月 1. この MegaCore ファンクションについて パフォーマンスおよびリソース使用率 1–13 表 1-18. バッファバースト・データ・フロー・アーキテクチャによるリソース使用率 — Stratix IV デバイス ( 2 / 2 ) ポイント 数 エンジン数 (1) 組み合わせ ALUT 数 ロジック・ レジスタ数 メモリ (ビット) メモリ (M9K) 18 × 18 ブ ロック fMAX (MHz) 256 2 3262 5577 30976 31 24 428 1024 2 3307 5785 123136 31 24 410 4096 2 3348 5977 491776 60 24 393 256 4 5712 9970 30976 60 48 368 1024 4 5774 10195 123136 60 48 362 4096 4 5856 10401 491776 60 48 368 表 1-18 の注: (1) バッファバースト・アーキテクチャを使用する際、FFT MegaWizard インタフェースで出力 FFT エンジンの数を特定するこ とができます。 表 1-19 に、Stratix IV (EP4SGX70DF29C2X) デバイスによって 16 のデータおよび回 転子の幅で、4 乗算器 /2 加算器の複素数乗算器構造を使用するバッファバースト・ データ・フロー・アーキテクチャによるパフォーマンスをリストします。 表 1-19. バッファバースト・データ・フロー・アーキテクチャによるパフォーマンス —Stratix IV デバイス 変換計算時間 (2) データ・ロード & 変 換計算 ブロック・スルー プット (3) ポイント 数 エンジン数 (1) fMAX (MHz) サイクル 時間 (s) サイクル 256 1 443 235 0.53 491 1.11 331 0.75 1024 1 441 1069 2.42 2093 4.75 1291 2.93 4096 1 421 5167 12.26 9263 21.98 6157 14.61 時間 (s) サイクル 時間 (s) 256 2 428 162 0.38 397 0.93 299 0.7 1024 2 410 557 1.36 1581 3.85 1163 2.84 4096 2 393 2607 6.64 6703 17.07 5133 13.07 256 4 368 118 0.32 347 0.94 283 0.77 1024 4 362 340 0.94 1364 3.77 1099 3.04 4096 4 368 1378 3.75 5474 14.89 4633 12.61 表 1-19 の注: (1) バッファバースト・アーキテクチャを使用する際、FFT MegaWizard インタフェースで出力 FFT エンジンの数を特定するこ とができます。1 つ、2 つ、または 4 つのクワッド出力エンジンをパラレルで選択できます。 (2) バッファバースト・データ・フロー・アーキテクチャでは、変換時間は N サンプル入力クロックがロードされるから 1 番目 の出力サンプルが出力できるようになるまでの時間として定義されます。変換時間には、フル出力データ・ブロックをアン ロードする追加の N-1 クロック・サイクルが含まれていません。 (3) ブロック・スループットとは、連続的な 2 つの Start-Of-Packet(sink_sop)パルス間の最小サイクル数です。 表 1-20 に、Stratix IV (EP4SGX70DF29C2X) デバイスによって 16 のデータおよび回 転子の幅で、4 乗算器 /2 加算器の複素数乗算器構造を使用するバースト・データ・ フロー・アーキテクチャによるリソース使用率をリストします。 Altera Corporation 2011 年 5 月 FFT MegaCore ファンクション・ユーザーガイド 1. この MegaCore ファンクションについて パフォーマンスおよびリソース使用率 1–14 表 1-20. バースト・データ・フロー・アーキテクチャによるリソース使用率 —Stratix IV デバイス ポイン ト数 256 エンジン・ アーキテク チャ エンジン数 組み合わせ ALUT ロジック・ メモリ メモリ 数 レジスタ数 (ビット) (M9K) (2) 18 × 18 ブロック クワッド出力 1 1794 3502 14592 8 12 1024 クワッド出力 1 1829 3684 57600 8 12 4096 クワッド出力 1 1881 3852 229632 28 12 256 クワッド出力 2 2968 5489 14592 15 24 1024 クワッド出力 2 3014 5680 57600 15 24 4096 クワッド出力 2 3053 5856 229632 28 24 256 クワッド出力 4 5160 9891 14592 28 48 1024 クワッド出力 4 5218 10101 57600 28 48 4096 クワッド出力 4 5284 10290 229632 28 48 256 シングル出力 1 704 1436 9472 3 4 1024 シングル出力 1 740 1482 37120 6 4 4096 シングル出力 1 801 1528 147712 19 4 256 シングル出力 2 1036 2332 14592 9 8 1024 シングル出力 2 1052 2408 57600 11 8 4096 シングル出力 2 1092 2484 229632 28 8 表 1-20 の注: (1) データおよび回転子の係数精度を表します。 (2) バースト・データ・フロー・アーキテクチャを使用する際、FFT MegaWizard インタフェースで出力 FFT エンジンの数を特 定することができます。1 ~ 2 つのシングル出力エンジン、あるいは 1 つ、2 つ、または 4 つのクワッド出力エンジンをパラ レルで選択できます。 表 1-21 に、Stratix IV (EP4SGX70DF29C2X) デバイスによって 16 のデータおよび回 転子の幅で、4 乗算器 /2 加算器の複素数乗算器構造を使用するバースト・データ・ フロー・アーキテクチャによるパフォーマンスをリストします。 表 1-21. バースト・データ・フロー・アーキテクチャによるパフォーマンス —Stratix IV デバイス ( 1 / 2 ) 変換計算時間 (2) ポイン ト数 エンジン・ アーキテク チャ エンジン 数 (1) fMAX (MHz) 256 サイク ル 時間 (s) データ・ロード & 変換計算 サイクル 時間 (s) ブロック・スルー プット (3) サイク ル 時間 (s) クワッド出力 1 436 235 0.54 491 1.12 331 0.76 1024 クワッド出力 1 446 1069 2.39 2093 4.69 1291 2.89 4096 クワッド出力 1 443 5167 11.66 9263 20.9 6157 13.89 256 クワッド出力 2 418 162 0.39 397 0.95 299 0.71 1024 クワッド出力 2 412 557 1.35 1581 3.83 1163 2.82 4096 クワッド出力 2 366 2607 7.12 6703 18.3 5133 14.01 256 クワッド出力 4 369 118 0.32 374 1.01 283 0.77 1024 クワッド出力 4 385 340 0.88 1364 3.55 1099 2.86 4096 クワッド出力 4 380 1378 3.63 5474 14.42 4633 12.20 シングル出力 1 407 1115 2.74 1371 3.37 1628 4.00 256 FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5 月 1. この MegaCore ファンクションについて インストールおよびライセンス 1–15 表 1-21. バースト・データ・フロー・アーキテクチャによるパフォーマンス —Stratix IV デバイス ( 2 / 2 ) 変換計算時間 (2) データ・ロード & 変換計算 ブロック・スルー プット (3) ポイン ト数 エンジン・ アーキテク チャ エンジン 数 (1) fMAX (MHz) サイク ル 時間 (s) サイクル 時間 (s) サイク ル 時間 (s) 1024 シングル出力 1 413 5230 12.66 6344 15.35 7279 17.62 4096 シングル出力 1 412 24705 59.91 28801 69.84 32898 79.78 256 シングル出力 2 405 585 1.45 841 2.08 1098 2.71 1024 シングル出力 2 431 2652 6.16 3676 8.54 4701 10.92 シングル出力 2 406 12329 30.35 16495 40.61 20605 50.73 4096 表 1-21 の注: (1) バースト I/O データ・フロー・アーキテクチャでは、FFT MegaWizard インタフェースで出力 FFT エンジンの数を特定する ことができます。1 ~ 2 つのシングル出力エンジン、あるいは 1 つ、2 つ、または 4 つのクワッド出力エンジンをパラレルで 選択できます。 (2) バッファバースト・データ・フロー・アーキテクチャでは、変換時間は N サンプル入力クロックがロードされるから 1 番目 の出力サンプル(入力ブロックに応じて)が出力するまでの時間として定義されます。変換時間には、フル出力データ・ブ ロックをアンロードする時間が含まれていません。 (3) ブロック・スループットとは、連続的な 2 つの Start-Of-Packet(sink_sop)パルス間の最小サイクル数です。 インストールおよびライセンス FFT MegaCore ファンクションは、MegaCore IP ライブラリの一部であり、 Quartus II ソフトウェアとともに配布されます。また、アルテラ・ウェブサイト (www.altera.com)からダウンロードすることもできます。 f システム要求およびインストールの手順については、「Altera Software Installation and Licensing」マニュアルを参照してください。 図 1-1 に、FFT 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. fft Contains the FFT MegaCore function files. lib Contains encrypted lower-level files. Altera Corporation 2011 年 5 月 FFT MegaCore ファンクション・ユーザーガイド 1. この MegaCore ファンクションについて インストールおよびライセンス 1–16 OpenCore Plus 評価機能 アルテラの無償 OpenCore Plus 評価機能により、以下の処理を実行できます。 ■ 作成したシステム内のメガファンクション(アルテラ MegaCore ファンクション または AMPPSM メガファンクション)の動作をシミュレーションする。 ■ デザインの機能を検証したり、サイズやスピードを迅速かつ簡単に評価する。 ■ メガファンクションを含むデザインに対し、実行時間に制限のあるデバイス・プ ログラミング・ファイルを生成する。 ■ デバイスをプログラムし、デザインを実機上で検証する。 メガファンクションのライセンスは、お客様が機能と性能に満足し、かつデザイン を製品化する場合にのみ、ご購入いただく必要があります。ライセンス購入後、アル テラ・ウェブサイト(www.altera.co.jp/support/licensing)でライセンス・ファイル を要求して、お使いのコンピュータにインストールできます。ライセンス・ファイル を要求すると、アルテラから電子メールで license.dat ファイルが送信されます。イ ンターネットをご利用いただけないお客様は、アルテラの販売代理店にお問い合わ せください。 f MegaCore ファンクションを使用した OpenCore Plus ハードウェア評価について詳し くは、「AN 320: OpenCore Plus Evaluation of Megafunctions」を参照してください。 OpenCore Plus タイム・アウト動作 OpenCore Plus ハードウェア評価機能は、以下の動作モードでメガファンクション の実機評価をサポートします。 ■ Untethered(アンテザード)— デザインは限定時間のみ実行されます。 ■ Tethered(テザード)— ボードとホスト・コンピュータを接続する必要がありま す。デザイン内のすべてのメガファンクションが Tethered モードをサポートして いる場合、デバイスはより長時間または無制限に動作できます。 OpenCore Plus 評価機能モードで動作中のメガファンクションのうちの 1 つでも評価 時間に達すると、デバイス内のすべてのメガファンクションが同時にタイム・アウ トします。デザイン内に複数のメガファンクションがある場合、特定のメガファンク ションのタイムアウト動作は、他のメガファンクションのタイムアウト動作によっ てマスクされることがあります。 MegaCore ファンクションの場合、アンテザード・タイムアウトは 1 時間、テザー ド・タイムアウト値は無制限です。 評価期限が切れると、信号 source_real、source_imag および source_exp が Low になります。 FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5 月 2. 使用法 デザイン・フロー FFT MegaCore ファンクションは次のデザイン・フローをサポートします。 ■ DSP Builder: FFT MegaCore ファンクション・バリエーションを含む DSP Builder モデルを作成する場合は、このフローを使用します。 ■ MegaWizard™ Plug-In Manager: デザイン内において手動でインスタンス化で きる FFT MegaCore ファンクション・バリエーションを作成する場合は、このフ ローを使用します。 この章では、FFT MegaCore の上記フローのいずれかにおける使用方法について説 明します。3 ページの「MegaCore ファンクションのパレメータ設定」で説明するよ うに、各フローでは、パラメータ設定は同じオプションを提供しています。 デザインをいずれかのフローでパラメータ設定およびシミュレーションを実行した 後、完成したデザインを Quartus II ソフトウェアでコンパイルすることができます。 DSP Builder フロー アルテラの DSP Builder は、アルゴリズム開発向けの環境(MATLAB/Simulink)で 設計された DSP デザインのハードウェアへの実装を容易にし、DSP(デジタル信号 処理)の設計サイクルを短縮します。 DSP Builder は、The MathWorks 社の MATLAB® および Simulink® システム・レベルの デザイン・ツールのアルゴリズム開発、シミュレーション、および検証の機能と、 アルテラの Quartus® II 開発ソフトウェアおよびサードパーティの合成およびシミュ レーション・ツールを組み合わせます。既存の MATLAB/Simulink ブロックをアルテ ラの DSP Builder/MegaCore ブロックと組み合わせて、システム・レベル仕様を検 証し、シミュレーションを実行することができます。 DSP Builder では、MegaCore ファンクションの Simulink シンボルは、Simulink ライブ ラリ・ブラウザにおけるアルテラ DSP Builder ブロックセットの MegaCore ファン クション・ライブラリに表示されます。 次のステップにより、MATLAB/Simulink 環境で FFT MegaCore ファンクションを使 用できます。 1. 新しい Simulink モデルを作成します。 2. Simulink ライブラリ・ブラウザにおける MegaCore ファンクション・ライブラリ から fft_<version> ブロックを選択してモデルに追加し、そのブロックに名前を付 けます。 3. モデルにおける fft_<version> ブロックをダブルクリックすると、MegaWizard イ ンタフェースが表示され、ここで MegaCore ファンクション・バリエーションの パラメータ設定が実行されます。FFT MegaCore ファンクションのパラメータ設 定の例については、3 ページの「MegaCore ファンクションのパレメータ設定」 を参照してください。 Altera Corporation 2011 年 5 月 FFT MegaCore ファンクション・ユーザーガイド 2. 使用法 MegaWizard Plug-In Manager フロー 2–2 4. MegaWizard インタフェースで Finish をクリックして、パラメータ設定を完了 し、FFT MegaCore ファンクション・バリエーションを生成します。生成された ファイルについて詳しくは、10 ページの表 2-1 を参照してください。 5. FFT MegaCore ファンクション・バリエーションをモデル内ほかのブロックに接 続します。 6. DSP Builder モデル内の MegaCore ファンクション・バリエーションをシミュ レートします。 f 1 DSP Builder フローについて詳しくは、「DSP Builder User Guide」の「Using MegaCore Functions」の章を参照してください。 DSP Builder フローを使用する際、デバイス選択、シミュレーション、Quartus II に よるコンパイル作業、およびデバイス・プログラミングはすべて DSP Builder に よってコントロールされます。 Avalon® Memory-Mapped (Avalon-MM) マスタ / スレーブ・インタフェースおよび Avalon Streaming (Avalon-ST) ソース / シンク・インターフェースを介して、DSP Builder は SOPC Builder とのインテグレーションをサポートします。 f これらのインタフェース・タイプについて詳しくは、「Avalon Interface Specifications」を参照してください。 MegaWizard Plug-In Manager フロー MegaWizard™ Plug-in Manager フローでは、FFT MegaCore ファンクションをカス タマイズし、手動で MegaCore ファンクション・バリエーションを Quartus II デザ インに組み込むことができます。 MegaWizard Plug-in Manager フローを使用するには、次のステップに従います。 1. Quartus II ソフトウェアで、File メニューの New Project Wizard を使用して新し いプロジェクトを作成します。 2. Tools メニューの MegaWizard Plug-in Manager を起動し、そして create a new custom megafunction variation オプションを選択します ( 図 2-1)。 図 2-1. MegaWizard Plug-In Manager FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5 月 2. 使用法 MegaWizard Plug-In Manager フロー 2–3 3. Next をクリックし、Installed Plug-Ins タブの DSP>Transforms セクションで FFT <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. MegaCore ファンクションの選択 7. Next をクリックして IP Toolbench を起動します。 MegaCore ファンクションのパレメータ設定 MegaCore ファンクションのパラメータを設定するには、次のステップに従います。 1. IP Toolbench で、Step 1: Parameterize をクリックします (4 ページの図 2-3)。 Altera Corporation 2011 年 5 月 FFT MegaCore ファンクション・ユーザーガイド 2. 使用法 MegaWizard Plug-In Manager フロー 2–4 図 2-3. IP Toolbench— パラメータ設定 2. Target Device Family を変更しないでください。デバイス・ファミリは Quartus II で指定された値に自動的に設定されており、IP Toolbench でこの値を変 更すると、MegaCore ファンクションのバリエーションで生成される HDL が不 適切なものになることがあります ( 図 2-4)。 図 2-4. Parameters のタブ FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5 月 2. 使用法 MegaWizard Plug-In Manager フロー 2–5 3. Transform length(変換長)、Data precision(データ精度)、および Twiddle precision(回転子精度)の値を選択します。 1 回転子の係数精度は、データ精度以下でなければなりません。 4. Architecture タブをクリックします ( 図 2-5)。 図 2-5. Architecture のタブ 5. FFT Engine Architecture(FFT エンジン・アーキテクチャ)、Number of Parallel FFT Engines(パラレル FFT エンジンの数)、および I/O data flow(I/O データ・フロー)を選択します。 Streaming の I/O データ・フローを選択すると、必要なスループットを得るため に FFT MegaCore ファンクションは自動的にクワッド出力 FFT エンジン・アー キテクチャおよび最小のパラレル FFT エンジン数でデザインを生成します。 Altera Corporation 2011 年 5 月 FFT MegaCore ファンクション・ユーザーガイド 2. 使用法 MegaWizard Plug-In Manager フロー 2–6 1 シングル FFT エンジン・アーキテクチャは、最大 1024 ポイントのストリー ミング I/O データ・フロー FFT に十分な性能を提供しています。 Variable Streaming I/O データ・フローを選択すると、(Parameters タブで指定 された)Transform length は実行可能な最大変換長を表します。すべての 2m の 変換は実行中に実行できます。ここで、6 m log2(変換長)です。 1 Architecture タブで Variable Streaming および Floating Point を選択する と、(Parameters タブでの)2 つの精度設定は自動的に 32 に設定されま す。反転 I/O 順序オプション(Architecture タブでの)は Digit Reverse Order となります。 Variable Streaming I/O データ・フローを選択すると、I/O 順序およびデータ表現 を設定するためのオプションが表れます。Input Order オプションでは、サンプ ルが FFT に示される順序を選択することができます。Natural Order を選択する 場合、FFT は、入力サンプルの順序が順次的なもの (1、2 …、n – 1、n) と見込ん でいます。Bit Reverse Order の場合、FFT は入力サンプルの順序がビット反転 したものと見込んでいます。Digit Reverse Order の場合、FFT は入力サンプル の順序が桁反転したものと見込んでいます。–N/2 to N/2 の場合、FFT は入力サ ンプルの順序が –N/2 ~ (N/2) – 1 と見込んでいます(DC 中心とも呼ばれる) 。同 様、Output Order は FFT の出力の生成順序を指定します。Bit Reverse Order または Digit Reverse Order を選択できるかは、Data Representation の選択に よって決まります。Fixed Point または Floating Point データ表現を選択するこ とができます。Fixed Point を選択する場合、FFT バリエーションが radix-22 を 実装し、反転 I/O 順序オプションが Bit Reverse Order となります。Floating Point を選択する場合、FFT バリエーションが混合 radix-4/2 アーキテクチャを実 装し、反転 I/O 順序オプションが Digit Reverse Order となります。 桁反転順序のサンプルの場合、n が 4 のべき乗であれば、順序は radix-4 桁反転 順序となり、サンプルの 2 ビットの桁が反転した順序の単位となります。例え ば、n = 16 の場合、4 番目のサンプルがサンプル・ストリーム内の 2 番目のサン プルになります(サンプル・ストリーム内の位置、0001 の桁が 0100 に反転)。 ただし、混合 radix-4/2 アーキテクチャでは、n が 4 のべき乗である必要はありま せん。n が 4 のべき乗ではない場合、桁反転順序では、2 ビットの桁が LSB から グループされ、そして MSB が LSB になります。例えば、n=512 の場合、ビット 反転サンプル・ストリーム内の [8][76][54][32][10] の位置でのサンプルは、自然順 序での [10][32][54][76][8] サンプル数です。260(100000100)の位置にあるスト リーム内の 261 番目のサンプルは、自然順序での 33 番目(000100001)のサン プルです。 6. Implementation Options タブをクリックします(図 2-6)。 FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5 月 2. 使用法 MegaWizard Plug-In Manager フロー 2–7 図 2-6. Implementation Options タブ 7. 複素数乗算器の実装(Complex MultiPlier Implementation)を選択します。 Structure で、3 個の乗算器および 5 個の加算器、 または 4 個の乗算器および 2 個の 加算器の構造を選択することができます。なお、Implement Multipliers in では、 DSP ブロックのみ、ロジック・セルのみ、または DSP ブロックとロジック・セル 両方に乗算器を実装することを選択できます。FFT バリエーションが Stratix V デ バイスをターゲットにする場合、DSP Resource Optimization をオンにするこ とができます。このオプションは新しい Stratix V DSP ブロックの複素数 18 x 25 および 27 x 27 乗算モードを利用して、速度ではなくエリアに対して最適化を行 います。浮動小数点表現を使用する可変ストリーミング・アーキテクチャでは、 このオプションは DSP ブロックの複素数 27 x 27 乗算モードを利用できますが、 精度が低下する可能性があります。 1 Altera Corporation 2011 年 5 月 複素数乗算器実装オプションの Structure および Implement Multipliers in は、可変ストリーミング・アーキテクチャでは使用できません。複素数乗 算器実装オプションの DSP Resource Optimization は Stratix V デバイス にのみ使用できます。 FFT MegaCore ファンクション・ユーザーガイド 2. 使用法 MegaWizard Plug-In Manager フロー 2–8 DSP Resource Optimization をオンにし、バリエーションのデータ精度が 18 ビット~ 25 ビット、そして回転子(Twiddle)精度は 18 ビット以下の場合、 FFT MegaCore ファンクションは DSP ブロックを複素数 18 x 25 乗算モードに コンフィギュレーションします。DSP Resource Optimization をオンにしたが これらの条件を満たしていない場合、FFT MegaCore ファンクションはこのオプ ションがオフにした時の条件に基づいて DSP ブロックをコンフィギュレーショ ンします。このオプションがオフのとき、あるいは使用できないときに、FFT MegaCore ファンクションは次の条件に基づいて Stratix V デバイスをコンフィ ギュレーションします。 ■ データ精度および回転子精度の両方が 27 ビット以下である場合、3/4 の DSP ブ ロックを複素数 27 x 27 乗算モードにコンフィギュレーションします。このコ ンフィギュレーションは、1 つの DSP ブロック内に、4 列の DSP ロウより 3 列のみ使用します。 ■ データ精度が 27 ビット以上、回転子精度が 18 ビット以下である場合、1 つの DSP ブロックを 2 つの 18 x 36 乗算モードにコンフィギュレーションします。 このコンフィギュレーションは 4 列の DSP ロウを使用します。 ■ それ以外の場合、2 つの DSP ブロックを 36 x 36 乗算モードにコンフィギュ レーションします。このコンフィギュレーションは 2 つの DSP ブロック内に 8 列の DSP ロウを使用します。 f Stratix V DSP ブロック・モードについて詳しくは、「Stratix V デバイス・ ハンドブック」の「Variable Precision DSP Blocks in Stratix V Devices」 の章を参照してください。 8. デザインにグローバル・クロック・イネーブルを追加する場合には、Global Clock Enable をチェックします。 9. メモリ・オプションを指定します。 Twiddle ROM Distribution でメモリ使用量のバランスを設定でき、Use M-RAM Blocks をオンにし、 そして Implement appropriate logic functions in RAM をオ ンにします。FFT バリエーションが適切なデバイス・ファミリをターゲットにす る場合、Use M-RAM Blocks の代わりに Use M144K Blocks が使用されます。 1 可変ストリーミング・アーキテクチャでは、複素数乗算器の実装およびメ モリ・オプションは使用できません。メモリ・オプションの Twiddle ROM Distribution および Use M-RAM Blocks は Cyclone シリーズのデバイス・ ファミリ(Cyclone、Cyclone II、Cyclone III、Cyclone III LS、および Cyclone IV デバイス・ファミリ)に使用できません。 10. 実装オプションを設定した後、Finish をクリックします。 f FFT MegaCore ファンクション・パラメータについて詳しくは、15 ページの表 3-3 を 参照してください。 シミュレーションのセットアップ IP 機能シミュレーション・モデルは、Quartus II ソフトウェアで生成するサイクル精 度の正確な VHDL または Verilog HDL モデルです。このモデルにより、業界標準の VHDL および Verilog HDL シミュレータを使用した IP の高速機能シミュレーションが 可能になります。 FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5 月 2. 使用法 MegaWizard Plug-In Manager フロー 2–9 c これらのシミュレーション・モデル出力ファイルは、シミュレーション目的にのみ 使用することができ、特に合成やその他の目的には使用できません。これらのモデ ルを合成に使用すると、機能しないデザインが作成されます。 MegaCore ファンクション用の IP 機能シミュレーション・モデルを生成するには、以 下のステップに従います。 1. IP Toolbench の Step 2: Set Up Simulation をクリックします(4 ページの図 2-3 を参照)。 2. Generate Simulation Model をオンにします(9 ページの図 2-7 を参照)。 3. Language リストで必要な言語を指定します。 4. 一部のサードパーティ合成ツールでは、詳細なロジックを含まず MegaCore ファ ンクションの構造のみを含むネットリストを使用して、MegaCore ファンクショ ンを含むデザインの性能を最適化することができます。ご使用の合成ツールがこ の機能をサポートする場合、Generate netlist をオンにします。 5. OK をクリックします。 図 2-7. シミュレーション・モデルの生成 MegaCore ファンクションの生成 MegaCore ファンクションを生成するには、以下のステップを実行します。 1. IP Toolbench の Step 3: Generate をクリックします(4 ページの図 2-3 を参照)。 ファイル生成フェーズを完了するには、数分かかる場合があります。生成作業の 進行状況はレポート・ウィンドウに表示されます。 図 2-8 に、生成レポートを示します。 Altera Corporation 2011 年 5 月 FFT MegaCore ファンクション・ユーザーガイド 2. 使用法 MegaWizard Plug-In Manager フロー 2–10 図 2-8. 生成レポート 表 2-1 に、プロジェクト・ディレクトリに生成されるファイルを示します。IP Toolbench レポートに指定されるファイルの名前とタイプは、デザインを VHDL ま たは Verilog HDL のいずれで作成したかによって異なります。 表 2-1. 生成されるファイル ( 1 / 2 ) ( 注 1) & (2) ファイル名 説明 <variation name>_imag_input.txt 虚数部の入力成分のランダム・データを含むテキスト・ファイルです。 このテキスト・ファイルは生成された VHDL または Verilog HDL MATLAB テストベンチによって読み出されます。 <variation name>_real_input.txt 実数部のランダム・データを含むテキスト・ファイルです。このテキス ト・ファイルは生成された VHDL または Verilog HDL MATLAB テスト ベンチに読み出されます。 <variation name>.bsf MegaCore ファンクション・バリエーション用の Quartus II シンボル・ ファイル。Quartus II ブロック図エディタでこのファイルを使用できま す。 <variation name>.cmp MegaCoreファンクション・バリエーション用のVHDLコンポーネント宣 言ファイルです。このファイルの内容を、MegaCore ファンクションを インスタンスする VHDL アーキテクチャの 1 つに追加します。 <variation name>.html HTML フォーマットによる MegaCore ファンクション・レポート・ファ イルです。 <variation name>.qip Quartus II IP ファイル(.qip)には、Quartus II コンパイラで MegaCore ファンクションを処理するのに必要なすべてのアサインメントおよびほ かの情報が含まれます。MegaWizard の終了時に、この .qip ファイルを 現行 Quartus II プロジェクトに追加するよう促されます。 <variation name>.vo、<variation name>.vho VHDL または Verilog HDL の IP 機能シミュレーション・モデルです。 FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5 月 2. 使用法 MegaWizard Plug-In Manager フロー 2–11 表 2-1. 生成されるファイル ( 2 / 2 ) ( 注 1) & (2) ファイル名 説明 <variation name>.vhd、<variation name>.v カスタム MegaCore ファンクションの VHDL または Verilog HDL トッ プレベルの記述を定義する MegaCore ファンクション・バリエーション ・ファイルです。デザイン内部のこのファイルによって定義されたエン ティティをインスタンスします。Quartus II ソフトウェアでのデザイン のコンパイル時にこのファイルがインクルードされます。 <variation name>_bit_reverse_top.vhd ビット反転モジュールを持つトップレベル VHDL デザインの例です (可変ストリーミング FFT エンジンのみモード)。このファイルは、 ビット反転が MegaCore アーキテクチャにも応用できることを示しま す。例えば、ビット反転動作はほかのユーザーの指定動作と組み合わせ ることが可能とも言えます <variation インテル 16 進フォーマットの ROM 初期化ファイルです ( 可変スト name>_1n1024cos.hex, リーミング FFT に対しては生成されていません) 。 <variation name>_2n1024cos.hex, <variation name>_3n1024cos.hex <variation name>_1n1024sin.hex, インテル 16 進フォーマットの ROM 初期化ファイルです ( 可変スト <variation name>_2n1024sin.hex, リーミング FFT に対しては生成されていません) 。 <variation name>_3n1024sin.hex <variation name>_fft.fsi DSP Builder 高速機能シミュレーション・モデル・パラメータ記述ファ イルです。 <variation name>_model.m MATLAB のビット精度のモデルを記述する MATLAB ファイル。 <variation name>_tb.m MATLAB テストベンチ。 <variation name>_syn.v 、 <variation name>_syn.vhd 一部のサードパーティ合成ツールで使用できるタイミングおよびリソー スのネットリストです。 <variation name>_tb.v 、 Verilog HDL または VHDL テストベンチ・ファイル。 <variation name>_tb.vhd <variation name>_nativelink.tcl Quartus II ソフトウェアにおいて NativeLink をセットアップして、デザ インが選択される EDA ツールを使用するようネイティブにシミュレー トする Tcl スクリプトです。14 ページの「NativeLink を使用したサード パーティ・シミュレーション・ツールによるシミュレーション」を参照 してください。 <variation name>_twr1_opt.hex、 インテル 16 進フォーマットの ROM 初期化ファイルです ( 可変スト <variation name>_twi1_opt.hex、 リーミング FFT に対しては生成されていません) 。 <variation name>_twr2_opt.hex、 <variation name>_twi2_opt.hex、 <variation name>_twr3_opt.hex、 <variation name>_twi3_opt.hex、 <variation name>_twr4_opt.hex、 <variation name>_twi4_opt.hex 表 2-1 の注: (1) これらのファイルはバリエーションに依存し、一部のファイルは生成されないか名前が異なる場合があります。 (2) <variation name> は、IP Toolbench によって自動的に供給されるバリエーション名です。 2. 生成レポートを表示した後、Exit をクリックして IP Toolbench を閉じます。 Quartus II IP Files プロンプトで Yes をクリックして、カスタム MegaCore ファン クションを記述する .qip ファイルを現在のプロジェクトに追加します。 Altera Corporation 2011 年 5 月 FFT MegaCore ファンクション・ユーザーガイド 2. 使用法 デザインのシミュレーション 2–12 f MegaWizard Plug-In Manager について詳しくは、Quartus II のヘルプを参照してくだ さい。 これにより、カスタム MegaCore ファンクション・バリエーションをデザインに組 み込み、シミュレーション、およびコンパイルを実行することができます。 デザインのシミュレーション この項では、以下のシミュレーション手法について説明します。 ■ MATLAB ソフトウェアによるシミュレーション ■ IP 機能シミュレーション・モデルを使用したシミュレーション ■ NativeLink を使用したサードパーティ・シミュレーション・ツールによるシミュ レーション MATLAB ソフトウェアによるシミュレーション この項では、固定変換および可変ストリーミング・アーキテクチャによるシミュ レーションについて説明します。 固定変換アーキテクチャ FFT MegaCore ファンクションは、ビット単位によるモデル、<variation name>_model.m を出力します。 このモデルはカスタム FFT バリエーションの動作を MATLAB ソフトウェアにモデル化できます。このモデルは、複素ベクトルを入力に し、変換ドメイン複素ベクトルおよび対応するブロック指数値を出力します。変換 (FFT/IFFT)の長さおよび方向もモデルへの入力として渡されます。 入力ベクトルの長さが変換長 N の整倍数である場合、出力ベクトルの長さは入力ベ クトルの長さと同じです。ただし、入力ベクトルの長さが N の整倍数ではない場合、 ゼロ詰めを用いて長さを N の整倍数まで延長することになります。 f 指数値について詳しくは、「AN 404: FFT/IFFT Block Floating Point Scaling」を参照 してください。 また、このウィザードは MATLAB テストベンチ・ファイル <variation name>_tb.m も作成します。このファイルは IP Toolbench で生成されたファイルから入力複素数 のランダム・データを読み出し、MATLAB に対してスティミュラスを作成します。 Floating point データ表示を選択する場合、入力データは 16 進形式で生成されます。 MATLAB ソフトウェアにおいて固定変換アーキテクチャ FFT MegaCore ファンク ション・バリエーションをモデル化するには、以下のステップに従います。 1. MATLAB ソフトウェアを起動します。 2. MATLAB コマンド・ウィンドウにおいて、プロジェクトの作業ディレクトリに変 更します。 3. シミュレーションを実行: a. コマンド・プロンプトで、help <variation name>_model を入力して、 MATLAB モデルを単独の M-ファンクションとして実行するのに必要な入力ベ クトルおよび出力ベクトルを表示します。入力ベクトルを作成し、<variation name>_model への関数呼び出しを行います。例えば: FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5 月 2. 使用法 デザインのシミュレーション 2–13 N=2048; INVERSE = 0; % 0 => FFT 1=> IFFT x = (2^12)*rand(1,N) + j*(2^12)*rand(1,N); [y,e] = <variation name>_model(x,N,INVERSE); または b. コマンド・プロンプトでテストベンチの名前、<variation name>_tb を入力し て、付属のテストベンチを実行します。 f MATLAB および Simulink について詳しくは、MathWorks 社のウェブサイト (www.mathworks.com)を参照してください。 可変ストリーミング・アーキテクチャ FFT MegaCore ファンクションは、ビット単位による MATLAB モデル、<variation name>_model.m を出力します。このモデルはカスタム FFT バリエーションの動作を MATLAB ソフトウェアにモデル化できます。このモデルは、複素ベクトルを入力に し、変換ドメイン複素ベクトルを出力します。変換(FFT/IFFT)の長さ(ブロック あたり 1 つのエントリとして指定されている)および方向もモデルへの入力として 渡されます。 モデルを正しく動作させるには、入力ベクトルの長さが少なくても変換サイズの合 計と同じであることを確認してください。 また、このウィザードは MATLAB テストベンチ・ファイル <variation name>_tb.m も作成します。このファイルは IP Toolbench で生成されたファイルから入力複素数 のランダム・データを読み出し、MATLAB に対してスティミュラスを作成します。 MATLAB ソフトウェアにおいて可変ストリーミング・アーキテクチャ FFT MegaCore ファンクション・バリエーションをモデル化するには、以下のステップに 従います。 1. MATLAB ソフトウェアを起動します。 2. MATLAB コマンド・ウィンドウにおいて、プロジェクトの作業ディレクトリに変 更します。 3. シミュレーションを実行: a. コマンド・プロンプトで、help <variation name>_model を入力して、 MATLAB モデルを単独の M-ファンクションとして実行するのに必要な入力ベ クトルおよび出力ベクトルを表示します。入力ベクトルを作成し、<variation name>_model への関数呼び出しを行います。例えば: nps=[256,2048]; inverse = [0,1]; % 0 => FFT 1=> IFFT x = (2^12)*rand(1,sum(nps)) + j*(2^12)*rand(1,sum(nps)); [y] = <variation name>_model(x,nps,inverse); または b. コマンド・プロンプトでテストベンチの名前、<variation name>_tb を入力し て、付属のテストベンチを実行します。 1 ビット反転した出力順序を選択した場合、次の MATLAB コードでデータの 再順序付けを実行することができます。 y = y(bit_reverse(0:(FFTSIZE-1), log2(FFTSIZE)) + 1); where bit_reverse is: Altera Corporation 2011 年 5 月 FFT MegaCore ファンクション・ユーザーガイド 2. 使用法 デザインのシミュレーション 2–14 function y = bit_reverse(x, n_bits) y = bin2dec(fliplr(dec2bin(x, n_bits))); 1 桁反転出力順序を選択した場合、次の MATLAB コードでデータの再順序付 けを実行することができます。 y = y(digit_reverse(0:(FFTSIZE-1), log2(FFTSIZE)) + 1); where digit_reverse is: function y = digit_reverse(x, n_bits) if mod(n_bits,2) z = dec2bin(x, n_bits); for i=1:2:n_bits-1 p(:,i) = z(:,n_bits-i); p(:,i+1) = z(:,n_bits-i+1); end p(:,n_bits) = z(:,1); y=bin2dec(p); else y=digitrevorder(x,4); end IP 機能シミュレーション・モデルを使用したシミュレーション デザインをシミュレーションするには、IP Toolbench で生成した IP 機能シミュレー ション・モデルを使用します。IP 機能シミュレーション・モデルは、8 ページの 「シミュレーションのセットアップ」に述べたように生成された .vo または .vho ファイルです。シミュレーション環境で .vo または .vho ファイルをコンパイルし て、MegaCore ファンクションのカスタム・バリエーションの機能シミュレーショ ンを実行します。 f IP 機能シミュレーション・モデルについて詳しくは、「Quartus II ハンドブック Volume 3」の「Simulating Altera Design」の章を参照してください。 NativeLink を使用したサードパーティ・シミュレーション・ツールによるシ ミュレーション シミュレーションは、NativeLink を使用して Quartus II ソフトウェアからサードパー ティ製シミュレーション・ツールを使用して実行できます。 f NativeLink について詳しくは、「Quartus II ハンドブック Volume 3」の「Simulating Altera Design」の章を参照してください。 Tcl スクリプト・ファイル <variation name>_nativelink.tcl を使用して、NativeLink テ ストベンチのデフォルト設定を Quartus II プロジェクトに割り当てることができま す。 Quartus IIソフトウェアで NativeLink を使用してシミュレーションの設定を行うには、 以下のステップを実行します。 1. カスタム・バリエーションを作成します。ただし、Quartus II プロジェクト名に 一致するバリエーション名を指定してください。 FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5 月 2. 使用法 デザインのコンパイル 2–15 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 でシミュレータを選択し、 NativeLink Settings で Test Bench を選択します。 6. Tools メニューで EDA Simulation Tool をポイントして、Run EDA RTL Simulation をクリックします。 デザインのコンパイル Quartus II ソフトウェアを使用してデザインの合成および配置配線を行います。コン パイル実行に関するインストラクションについては、Quartus II ヘルプを参照してく ださい。 固定変換アーキテクチャ 固定変換アーキテクチャのデザインをコンパイルするには、以下のステップを実行 します。 1. QuartusII ソフトウェアを使用してデザインを合成する場合は、ステップ 2 に進 んでください。サードパーティ製の合成ツールを使用してデザインを合成する場 合は、以下のステップを実行します。 a. デザインを合成する前に、FFT MegaCore ファンクションのカスタム・バリ エーションのブラックボックス属性を設定します。合成ツールあたりのブ ラックボックス属性設定のインストラクションについては、Quartus II ヘルプ を参照してください。 b. 合成ツールを実行して、Quartus II ソフトウェアへの入力用 EDIF ネットリス ト・ファイル(.edf)または Verilog Quartus Mapping(VQM)ファイル (.vqm)を生成します。 c. EDIF または VQM ファイルを Quartus II プロジェクトに追加します。 1 以前のバージョンの Quartus II ソフトウェアでは、.qip ファイルはプロジェクトに明 確に追加されたファイルより優先にします。.qip ファイルは Quartus II ソフトウェ アが必要とする MegaCore ファンクションに関する情報を含みます。 2. Processing メニューで、Start Compilation をクリックします。 Altera Corporation 2011 年 5 月 FFT MegaCore ファンクション・ユーザーガイド 2. 使用法 デバイスのプログラミング 2–16 可変ストリーミング・アーキテクチャ 可変ストリーミング・アーキテクチャのデザインをコンパイルするには、以下のス テップを実行します。 1. Quartus II ソフトウェアを使用してデザインを合成する場合は、ステップ 2 に進 んでください。サードパーティ製の合成ツールを使用してデザインを合成する場 合は、以下のステップを実行します。 a. デザインを合成する前に、FFT MegaCore ファンクションのカスタム・バリ エーションのブラックボックス属性を設定します。合成ツールあたりのブ ラックボックス属性設定のインストラクションについては、Quartus II ヘルプ を参照してください b. 合成ツールを実行して、Quartus II ソフトウェアへの入力用 EDIF ネットリス ト・ファイル(.edf)または Verilog Quartus Mapping(VQM)ファイル (.vqm)を生成します。 c. EDIF または VQM ファイルを Quartus II プロジェクトに追加します。 2. Project メニューで、Add/Remove Files in Project をクリックします。 3. プロジェクト内のファイルのリストが表示されます。ファイルがリストされてい ない場合、\lib ディレクトリを参照し、接頭が auk_dspip_r22sdf であるすべて のファイルを選択して追加します。<project> ディレクトリを参照して接頭が auk_dspip であるファイルをすべて選択します。 4. Processing メニューで、Start Compilation をクリックします。 デバイスのプログラミング デザインをコンパイルした後、ターゲットのアルテラ・デバイスをプログラムし、 ハードウェアでデザインを検証します。 アルテラの無償の OpenCore Plus 評価機能では、ライセンスを購入する前に、FFT MegaCore ファンクションを評価できます。OpenCore Plus 評価機能により、IP 機能 シミュレーション・モデルを生成し、期限付きのプログラミング・ファイルを作成 できます。 f 機能シミュレーション・モデルについて詳しくは、 「Quartus II ハンドブック Volume 3」の 「Simulating Altera Design 」の章を参照してください。 FFT をデザインでシミュレートし、ハードウェアでデザインの期限付き評価を実行 することができます。 f FFT を使用した OpenCore Plus ハードウェア評価について詳しくは、16 ページの 「OpenCore Plus 評価機能」および「AN 320: OpenCore Plus Evaluation of Megafunctions」を参照してください。 FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5 月 3. 機能の説明 長さ N の離散フーリエ変換は、N 個の均等に単位円上に分散されるポイントにおけ る離散した時間系列(ωk= 2πk/N )でサンプリングされるフーリエ変換を算出しま す。 次の式には、シーケンス x(n) の長さ N の正 DFT を示します。 N–1 Xk = x n e – j2nk N n=0 k = 0、1、... N – 1 次の式には、長さ N の逆 DFT を示します。 N–1 xn = 1 N X k e j2nk N k=0 n = 0、1、... N – 1 複雑な乗算固有のさまざまな対称性を駆使する以外に、式 1 および式 2 での計算の ネスト化されたコンポジションを使用した高速アルゴリズムにより、DFT 直接計算 の複雑さは大幅に減少します。そんなアルゴリズムの一例は Cooley-Tukey radix-r decimation-in-frequency (DIF) です。このアルゴリズムは入力シーケンスを N/r シーケ ンス(長さが r で、logrN ステージの計算が必要)に再帰的に分割します。 分解の各ステージは通常同一ハードウェアを共用します。データがメモリから読み 出し、FFT プロセッサを経由して、もう一度メモリに書き込みます。FFT プロセッ サを経由する各パスは、logrN 回実行する必要があります。よく使われる radix は r=2、4、16 です。分解の radix を増加することにより、デバイス・リソースを犠牲し て FFT プロセッサを経由するパスの数を低減することができます。 1 MegaCore ファンクションは、長さ N の逆 DFT に必要なスケーリング係数 1/N を適用 しません。この係数を外部で適用しなければなりません。 バッファ、バースト & ストリーミングのアーキテクチャ 入力シーケンスを再帰的に分割して 4 ポイントのシーケンスを形成する radix-4 分解 は、4 ポイント DFT にささいな乗算のみが必要であるというメリットがあり、 Altera® FFT MegaCore® ファンクションでは推奨 radix です。この結果、最高のスルー プット分解が得られながら、ポスト・バタフライ回転子係数循環にのみ相当な複雑 乗算が必要とされます。N が奇数の 2 のべき乗の場合、FFT MegaCore は最終のパ スに radix-2 パスを自動的に実装して変換を完了します。 変換計算を通して高い信号対ノイズ比(SNR)を維持するために、FFT MegaCore ファンクションはブロック浮動小数点(BFP)アーキテクチャを使用します。ブ ロック浮動小数点アーキテクチャは固定小数点アーキテクチャおよび全浮動小数点 アーキテクチャの間の妥協点です。 Altera Corporation 2011 年 5 月 FFT MegaCore ファンクション・ユーザーガイド 3. 機能の説明 可変ストリーミング・アーキテクチャ 3–2 固定小数点アーキテクチャでは、変換計算を通してすべての中間値を的確に表現す るために、データ精度が十分でなければなりません。大きな FFT 変換サイズの場 合、ワードの増加を許容する FFT 固定小数点の実装は、過度のデータ幅または精度 低下を起こす可能性があります。 浮動小数点アーキテクチャでは、各数値は個別の指数を持つ仮数として表示されて います。これで精度が大幅に改善されたが、浮動小数点の演算は増加したデバイス・ リソースを要求します。 ブロック浮動小数点アーキテクチャでは、すべての数値は個別の仮数を持っている が、各データ・ブロック内の共通指数を共用します。データは固定小数点複素数と して FFT ファンクションに入力します(指数は実質上 0 であっても、指数を入力し ません)。 ブロック浮動小数点アーキテクチャは変換を通して FFT ファクション内のデータ幅 が十分に活用されることを確保します。radix-4 FFT を経由するたびに、データ幅は 最大 log2 (42) = 2.5 ビット増加することがあります。データは、前回のパス出力に おけるブロック・ダイナミック・レンジの尺度によってスケーリングされます。シフ トの数は累積されて、ブロック全体用の指数として出力されます。このシフトによ り、乗算後出力の丸めの前に、最少の最下位ビット(LSB)が捨てられます。実際に は、ブロック浮動小数点表現はデジタル自動利得制御として働きます。連続的な出力 ブロックに均一なスケーリングを得るためには、FFT ファンクション出力を最後の 指数によってスケーリングする必要があります。T 1 アルテラFFT MegaCoreファンクションのブロック浮動小数点出力をMATLABのよう なツールからの完全精度 FFT の出力に比較する場合には、変換時に捨てられた LSB を考慮するために、出力は 2 (–exponent_out) によってスケーリングされる必要がありま す。(1 ページの「ブロック浮動小数点」を参照) f 指数値について詳しくは、「AN 404: FFT/IFFT Block Floating Point Scaling」を参照 してください。 可変ストリーミング・アーキテクチャ 可変ストリーミング・アーキテクチャは、固定小数点データ表現または浮動小数点 のいずれかを選択するかに応じて、2 種類のアーキテクチャを使用します。固定小 数点データ表現を選択する場合、FFT バリエーションは完全パイプライン化された アーキテクチャである radix 22 単一遅延フィードバック・アーキテクチャを使用しま す。浮動小数点データ表現を選択する場合、FFT バリエーションは混合 radix-4/2 アーキテクチャを使用します。長さ N の変換の場合、log4(N) ステージが連結されて います。radix 22 アルゴリズムは、完全パイプライン化された radix-4 アーキテク チャと同様な乗算複雑度を持っています。ただし、バタフライ・ユニットは radix-2 アーキテクチャに維持します。radix-4/2 アルゴリズムでは、radix-4 および radix-2 アーキテクチャの組合せが実装されます。これで、radix-4 アーキテクチャの計算速 度を実現する同時に、より大範囲の変換長で FFT 計算をサポートします。バタフラ イ・ユニットは DIF 分解を使用しています。 固定小数点表現では、パイプラインを通して自然なワード増加が可能です。各ス テージの最大成長は 2 ビットです。複素乗算の後、データは収束丸めによって拡張 したデータ・サイズに四捨五入されます。全体的なビット成長は、log2(N)+1 です。 FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5 月 3. 機能の説明 Avalon Streaming インタフェース 3–3 浮動小数点の内部データ表示は単一浮動小数点(32 ビット、IEEE 754)です。浮動 小数点演算はより正確な計算結果を提供しますが、相当なハードウェア・リソース を占用します。浮動小数点の演算に必要なロジック量を低減するために、可変スト リーミング FFT は「融合した」カーネルを使用します。ロジックの減少は、複数の 浮動小数点演算を融合して必要な規格化の回数を低減することによって実現されま す。 FFT が生成した入力および出力の順序を選択することができます。表 3-1 に、入力お よび出力順序のオプションを示します。 表 3-1. 入力 & 出力順序のオプション 入力順序 出力順序 モード 備考 自然 ビット反転 自然 エンジンの み 必要なメモリおよびレイテンシは最少です。 ビット反転 DC 中心 ビット反転 自然 自然 ビット反転 ビット反転 DC 中心 自然 エンジンお よびビット 反転したエ ンジン 出力において、追加の N 複素メモリ・ワー ドおよび追加の N クロック・サイクル・レ イテンシが必要です(N は変換のサイズ)。 一部のアプリケーションには、FFT >ユーザー操作> IFFT のチェインが必要です。 この場合、入力順序および出力順序を慎重に選択することで、大幅なメモリおよび レイテンシの節約が実現できます。1 番目の FFT への入力が自然順序で、その出力 がビット反転した順序である例を考えてみましょう(FFT はエンジンのみモードで 動作する)。この例では、IFFT 動作がビット反転した入力を受け入れ、自然順序の出 力を生成するようにコンフィギュレーションされる場合(IFFT はエンジンのみモー ドで動作する)、最少量のメモリのみが必要です。これで、N の複素メモリ・ワード および N のクロック・サイクルのレイテンシが節約できます(N は現在の変換のサ イズ)。 Avalon Streaming インタフェース Avalon-ST インタフェースは、ソース・インタフェースからシンク・インタフェース へのデータ転送に対して標準的な柔軟性の高いモジュラ式プロトコルを定義してお り、データパスにおけるデータ・フローのコントロール・プロセスを簡略化します。 Avalon-ST インタフェース信号は、チャネルやパケット境界の概念のない従来の単一 データ・ストリームをサポートします。このようなインタフェースは通常、data、 ready、および valid 信号から構成されます。Avalon-ST インタフェースはより複雑 なプロトコルに対してバーストおよびパケット転送をサポートします。 Avalon-ST インタフェース信号はマルチ・チャネルのデザインを本質的に同期させ て、複雑なロジック・コントロールを実装せずに、効率的かつ時分割の実装を実現 します。 Altera Corporation 2011 年 5 月 FFT MegaCore ファンクション・ユーザーガイド 3. 機能の説明 FFT プロセッサ・エンジン・アーキテクチャ 3–4 Avalon-ST インタフェース信号は、シンクがソースに信号を送ってデータ転送を中断 することができる、バックプレッシャーというフロー制御メカニズムをサポートし ます。シンクの FIFO バッファがフルになったとき、または出力に混雑が発生すると きに、シンクは通常バックプレッシャーを用いてデータのフローを中断します。 FFT MegaCore ファンクションが含まれるデータ・パスを設計する際、下流のコン ポーネントが常にデータを受信できる場合に、バックプレッシャーは必要ありませ ん。FFT の source_ready 信号を High にドライブして、sink_ready を接続し ないようにすることで、より高いクロック・レートが得られます。 FFT MegaCore ファンクションの READY_LATENCY 値は 0 です。 f Avalon-ST インタフェースについて詳しくは、「Avalon Interface Specification」を参 照してください。 FFT プロセッサ・エンジン・アーキテクチャ FFT MegaCore ファンクションは、クワッド出力またはシングル出力エンジン・アー キテクチャを使用するようにパラメータ化できます。バリエーションの複数のパラ レル・エンジンを使用して、FFT MegaCore ファンクションの全体的なスループッ トを向上させることもできます。この項では、次の内容について説明します。 ■ 固定小数点可変ストリーミング・バリエーション用の radix 22 単一遅延フィード バック・アーキテクチャ ■ 浮動小数点可変ストリーミング・バリエーション用の混合 radix-4/2 アーキテク チャ ■ ストリーミング・バッファバースト、およびバースト・バリエーションのための クワッド出力 FFT エンジン・アーキテクチャ ■ バッファバーストおよびバースト・バリエーションのためのシングル出力 FFT エ ンジン・アーキテクチャ radix-22 単一遅延フィードバック・アーキテクチャ radix 22 単一遅延フィードバック・アーキテクチャは、受信データの計算用の完全パ イプライン・アーキテクチャです。radix 22 単一遅延フィードバック・アーキテク チャは、radix-2 単一遅延フィードバック・アーキテクチャに似ています。ただし、 回転子係数は、乗算複雑度が radix-4 単一遅延フィードバック・アーキテクチャに等 しいように再配列されます。 log2(N) ステージがあります。各ステージには、ステージごとに受信データを特定の サイクル数で半減して遅延するフィードバック遅延ユニットおよびバタフライ・ユ ニットが含まれています。これらの遅延は、バタフライ・ユニットの入力における バタフライ計算のための正しいサンプルを有効的に揃えます。ステージおきに、 radix-2バタフライ演算の前に-jによる乗算が行われた修正されたradix-2バタフライが 含まれています。パイプラインの出力はビット反転した順序になります。 次の長さ N = 16 の FFT のパイプラインにおける予定動作が起こります。 1. 最初の 8 クロック・サイクルでは、フィードバック・ユニットを遅延するため に、サンプルは修正されないままでバタフライ・ユニットに供給します。 2. 次の 8 クロック・サイクルは、遅延フィードバック・ユニットおよび受信データ からのデータを使用してバタフライ計算を実行します。高次計算は遅延フィード バック・ユニットに送られ、低位計算は次のステージに送られます。 FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5 月 3. 機能の説明 FFT プロセッサ・エンジン・アーキテクチャ 3–5 3. 次の 8 クロック・サイクルでは、遅延フィードバック・ユニットに格納される高 位計算はそのままでバタフライ・ユニットを通して次のステージに送られます。 その後のデータ・ステージにも同じ原則を使用します。ただし、フィードバック・ パスでの遅延は状況によって調整されます。 混合 Radix-4/2 アーキテクチャ 混合 radix-4/2 アーキテクチャは、radix-2 および radix-4 バタフライの利点を兼ね備 えています。 このアーキテクチャには、ceiling(log4(N)) ステージがあります。変換長が整 数の 4 のべき乗である場合、すべての log4(N) ステージが radix-4 アーキテクチャ によって実装されます。変換長が整数の 4 のべき乗ではない場合、このアーキテク チャは ceiling(log4(N)) – 1 のステージを radix-4 アーキテクチャで実装し、 そして残りのステージを radix-2 アーキテクチャで実装します。 ステージごとには 1 つのバタフライ・ユニットおよび 1 つのフィードバック遅延ユ ニットが含まれています。フィードバック遅延ユニットは、受信データを特定のサ イクル数遅延させます。ステージごとに、遅延のサイクル数は前ステージの遅延の サイクル数の 4 分の 1 となります。遅延は、バタフライ計算のためにバタフライ入 力サンプルを正確に調整します。パイプラインの出力は、ビット反転した順序にな ります。 クワッド出力 FFT エンジン・アーキテクチャ 変換時間が最少にしたいアプリケーションにとって、クワッド出力 FFT エンジン・ アーキテクチャは最適です。クワッド出力という用語は、内部 FFT バタフライ・プ ロセッサのスループットを指します。このエンジン実装は、4 つの radix-4 バタフラ イ複素出力を 1 クロック・サイクルにおいて算出します。 図 3-1 に、クワッド出力 FFT エンジンの図を示します。 図 3-1. クワッド FFT エンジン SW SW RAM A0 x[k,0] RAM A1 x[k,1] RAM A2 RAM A3 -j -1 G[k,1] H[k,1] G[k,2] H[k,2] G[k,3] H[k,3] -1 j -1 -j ROM 0 Altera Corporation 2011 年 5 月 H[k,0] BFPU RAM A0 BFPU RAM A1 BFPU RAM A2 BFPU RAM A3 j -1 x[k,2] x[k,3] FFT Engine G[k,0] ROM 1 ROM 2 FFT MegaCore ファンクション・ユーザーガイド 3. 機能の説明 I/O データ・フロー・アーキテクチャ 3–6 複素データ・サンプル x[k,m] は、メモリからパラレルに読み出され、スイッチに再 配列されます。次に、順序付けられたサンプルは radix-4 バタフライ・プロセッサに 処理されて複素出力 G[k,m] を形成します。radix-4 DIF 分解の固有の計算により、バ タフライ・プロセッサの出力における 3 つの重要な回転子係数乗算を実行するには、 3 個の複素数乗算器のみが必要です。サンプルの最大ダイナミック・レンジを判別す るために、4 つの出力はブロック浮動小数点ユニット(BFPU)にパラレルに評価さ れます。内部メモリに書き込まれる前に、適当な LSB は捨てられ、複素値は四捨五 入されて再配列されます。 シングル出力 FFT エンジン・アーキテクチャ 最小サイズの FFT ファクションを求めるアプリケーションにとって、シングル出力 エンジンは最適です。再び、シングル割出力という用語は、内部 FFT バタフライ・ プロセッサのスループットを指します。エンジン・アーキテクチャでは、シングル・ バタフライ出力はクロック・サイクルごとに計算され、1 つのシングル複素数乗算器 を必用とします(6 ページの図 3-2) 図 3-2. シングル出力 FFT エンジン・アーキテクチャ G[k,0] x[k,0] x[k,1] -j -1 RAM FFT Engine G[k,1] H[k,m] j BFPU -1 x[k,2] x[k,3] RAM G[k,2] -1 j -1 G[k,3] -j ROM I/O データ・フロー・アーキテクチャ この項では、FFT MegaCore ファンクションにサポートされる次の I/O データ・フ ロー・アーキテクチャのオプションについて説明します。 f ■ ストリーミング ■ 可変ストリーミング ■ バッファバースト ■ バースト IP Toolbench におけるアーキテクチャのパラメータの設定について詳しくは、3 ペー ジの「MegaCore ファンクションのパレメータ設定」を参照してください。 FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5 月 3. 機能の説明 I/O データ・フロー・アーキテクチャ 3–7 ストリーミング ストリーミング I/O データ・フロー FFT アーキテクチャは、入力データの連続処理、 および FFT ファンクションにおけるデータ・フローの出入りを中断する必要がな く、連続的な複素データ・ストリームを出力することができます。 ストリーミング FFT の動作 7 ページの図 3-3 に、シミュレーション波形の例を示します。 システム・リセットのディアサーションの後、データ・ソースは sink_valid をア サートして、有効データが入力に使用できることを FFT ファンクションに示しま す。sink_valid および sink_ready がアサートされると、データが正常に転送さ れます。 データ転送が完了したとき、sink_sop がディアサートされ、データ・サンプルが 自然順序でロードされます。 信号について詳しくは、18 ページの表 3-4 を参照してください。 f Avalon-ST インタフェースについて詳しくは、「Avalon Interface Specification」を参 照してください。 図 3-3. FFT ストリーミング・データ・フロー・アーキテクチャのシミュレーション波形 clk reset_n sink_valid sink_ready sink_sop sink_eop inverse sink_real sink_imag source_real source_imag source_exp source_ready source_valid source_sop source_eop EXP0 EXP1 EXP2 EXP3 図 3-4 に、入力フロー・コントロールを示します。最後のサンプルがロードされた とき、ソースは最後のデータ転送に対して sink_eop および sink_valid をアサー トします。 Altera Corporation 2011 年 5 月 FFT MegaCore ファンクション・ユーザーガイド 3. 機能の説明 I/O データ・フロー・アーキテクチャ 3–8 図 3-4. FFT ストリーミング・データ・フロー・アーキテクチャの入力・フロー・コント ロール clk reset_n sink_valid sink_ready sink_sop inverse sink_real sink_imag xr(0) xi(0) xr(1) xr(2) xr(3) xr(4) xr(5) xr(6) xr(7) xi(1) xi(2) xi(3) xi(4) xi(5) xi(6) xi(7) ブロックごとに方向を変換するには、sink_sop パルス(ブロックの最初の入力と 同時に)の使用と共に inverse をアサートまたはディアサートします(適切に)。 FFT が入力ブロックの変換を完了したとき、FFT は source_valid をアサートして複素 変換ドメイン・データ・ブロックを自然順序で出力します。FFT ファンクションは source_sop をアサートして最初の出力サンプルを示します。図 3-5 に、出力フ ロー・コントロールを示します。 図 3-5. FFT ストリーミング・データ・フロー・アーキテクチャの出力フロー・コントロール clk source_real source_imag exponent_out source_ready source_valid source_sop source_eop Xr[0] Xr[1] Xr[2] Xr[3] Xr[4] Xr[5] Xr[6] Xr[7] Xr[8] Xr[9] Xr[10] Xr[11] Xr[12] Xi[0] Xi[1] Xi[2] Xi[3] Xi[4] Xi[5] Xi[6] Xi[7] Xi[8] Xi[9] Xi[10] Xi[11] Xi[12] EXP0 N データ転送の後、source_eop がアサートされて出力データ・ブロックの末端を 示します(7 ページの図 3-3) 。 ストリーミング FFT のイネーブル source_valid のアサート(および有効なデータ出力)のために、sink_valid 信 号はアサートされる必要があります。データの最後のフレームを FFT から抽出する には、sink_valid 信号がアサートされるいくつかのフレームを提供し、 Avalon-ST 仕様に従って sink_sop および sink_eop 信号を適用する必要がありま す。 可変ストリーミング 可変ストリーミング・アーキテクチャは、入力データの連続ストリーミングおよび ストリーミング・アーキテクチャに似てる出力データの連続的なストリームの生成 を可能にします。 FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5 月 3. 機能の説明 I/O データ・フロー・アーキテクチャ 3–9 ブロック・サイズの変換 sink_sop パルス(ブロックの最初の入力データ・サンプルと同時に)の使用と共に fftpts の値を変えることで、ブロックごと FFT のサイズを変更することができま す。fftpts は 2 進法表示使用して変換のサイズを表示するため、ブロックの最大 の変換サイズは 1,024 です。表 3-2 に、fftpts 信号および対等の変換サイズを示し ます。 表 3-2. fftpts および変換サイズ fftpts 変換サイズ 10000000000 1,024 01000000000 512 00100000000 256 00010000000 128 00001000000 64 ブロックごとに方向を変換するには、sink_sop パルス(ブロックの最初の入力と 同時に)の使用と共に inverse をアサートまたはディアサートします(適切に)。 FFT が入力ブロックの変換を完了したとき、FFT は source_valid をアサートして複素 変換ドメイン・データ・ブロックを自然順序で出力します。FFT ファンクションは source_sop をアサートして最初の出力サンプルを示します。出力データの順序は IP Toolbench で選択された出力順序に応じて異なります。FFT の出力は自然順序また はビット反転した順序である可能性があります。図 3-6 に、出力順序がビット反転 したときの出力フロー・コントロールを示します。出力順序が自然順序の場合、 データ・フロー・コントロールは変更しないが、出力におけるサンプルの順序は 1..N という順序になります。 図 3-6. 出力フロー・コントロール — ビット反転した順序 clock source_sop source_eop source_valid source_ready source_real x0 x512 x256 x768 x128 x640 x384 x896 x1023 source_imag x0 x512 x256 x768 x128 x640 x384 x896 x1023 可変ストリーミング FFT のイネーブル FFT は、有効データがモジュールに転送される(sink_valid がアサートされる) ときにデータを処理します。図 3-7 に、sink_valid がディアサートされるとき、 FFT の動作を示します。 Altera Corporation 2011 年 5 月 FFT MegaCore ファンクション・ユーザーガイド 3. 機能の説明 I/O データ・フロー・アーキテクチャ 3–10 図 3-7. sink_valid がアサートされるときの FFT の動作 Clock sink_valid Frame 1 Frame 2 Input Data The input data stops, but the output continues When the FFT is stopped within a frame, the output pauses Output Data source_valid sink_valid がフレームにおいてディアサートされる時、FFT は停止し、 sink_valid が再アサートされるないとデータを処理しません。これは、FFT 内に あるその前のフレームも停止になることを意味します。 sink_valid がフレーム間でディアサートされる場合、FFT は現在 FFT にあるデー タを処理し続けて出力に転送します。図 3-7 に、sink_valid がフレーム間または フレーム内でディアサートされる時の FFT 動作を示します。 clk_en 信号をディアサートすることで、FFT を随意にディセーブルすることができ ます。 FFT サイズをダイナミックに変更 受信 FFT のサイズが変わると、FFT は前の FFT サイズの前の FFT フレームがすべ て処理されて出力に転送されるまで、受信データを停止にします(sink_ready 信 号をディアサートする)。図 3-8 に、エンジンのみモードにおける FFT サイズのダイ ナミックな変換を示します。 図 3-8. FFT サイズのダイナミックな変換 clock reset_n sink_valid sink_ready sink_sop sink_eop fftps inverse sink_real sink_imag source_real source_imag source_ready source_valid source_sop source_eop FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5 月 3. 機能の説明 I/O データ・フロー・アーキテクチャ 3–11 I/O 順序による影響 サンプルが FFT に出入りする順序はウィザードの I/O order パネルの下の Architecture タブでの選択によって決められます。また、この選択は FFT がエンジ ンのみモードまたはビット反転 / 桁反転したエンジン・モードのどちらで動作するか も決定します。 FFT がエンジンのみモードで動作する場合、出力データは最初のサンプルが FFT に入 力した後の約 N + のレイテンシ・クロック・サイクルの後で使用できます。レイテ ンシは、FFT コア全体における小さなレイテンシを表示し、変換サイズに依存しま す。ビット反転したモードの場合、出力は約 2N + のレイテンシ・サイクルの後で使 用できます。 図 3-9 に、FFT がエンジンのみモードで動作する時のデータ・フロー出力を示しま す。 図 3-9. データ・フロー — エンジンのみモード clk reset_n sink_valid sink_ready sink_sop sink_eop sink_real sink_imag source_real source_imag source_valid source_sop source_eop 図 3-10 に、ビット反転モードまたは桁反転モードで動作するエンジンのデータ・フ ロー出力を示します。 図 3-10. データ・フロー — ビット反転 / 桁反転したエンジン・モード clk reset_n sink_valid sink_ready sink_sop sink_eop sink_real sink_imag source_real source_imag source_valid source_sop source_eop バッファバースト バッファバースト I/O データ・フロー・アーキテクチャ FFT は、ストリーミング I/O データ・フロー・アーキテクチャより少ないメモリ・リソースを必要としますが、 その代償は平均ブロック・スループットの減少です。 Altera Corporation 2011 年 5 月 FFT MegaCore ファンクション・ユーザーガイド 3. 機能の説明 I/O データ・フロー・アーキテクチャ 3–12 12 ページの図 3-11 に、シミュレーション波形の例を示します。 図 3-11. FFT バッファバースト・データ・フロー・アーキテクチャのシミュレーション波形 clk reset_n sink_vaild sink_ready sink_sop sink_eop inverse sink_real sink_imag source_real source_imag source_exp source_ready source_valid source_sop source_eop -13609 -47729 271 31221 -21224 -13609 -47729 271 31221 -21224 EXP0 EXP2 EXP1 EXP3 システム・リセットのディアサーションの後、データ・ソースは sink_valid をア サートして、有効データが入力に使用できることを FFT ファンクションに示しま す。sink_valid および sink_ready がアサートされると、データが正常に転送さ れます。 データ・ソースは、入力ブロックの開始を示すために、最初の複素データ・サンプ ルを FFT ファンクションにロードする同時に、sink_sop をアサートします。次のク ロック・サイクルでは、sink_sop がディアサートされ、次の N – 1 複素入力デー タ・サンプルが自然順序でロードされます。最後の複素データ・サンプルでは、 sink_eop がディアサートされます。 入力ブロックがロードされるとき、FFT ファンクションは格納された入力ブロック における変換を計算し始めます。入力で、次のフレームの最初数個のサンプルを小 容量 FIFO に転送できる際、sink_ready 信号は High に保持されます。この FIFO が充填されたとき、コアは sink_ready 信号をディアサートします。sink_ready サイクルでサンプルを転送することは強制ではありません。 図 3-12. FFT バッファバースト・データ・フロー・アーキテクチャの入力フロー・コントロール clk reset_n sink_valid sink_ready sink_sop inverse sink_real sink_imag xr(0) xr(1) xr(2) xr(3) xr(4) xr(5) xr(6) xr(7) xr(8) xr(9) xi(0) xi(1) xi(2) xi(3) xi(4) xi(5) xi(6) xi(7) xi(8) xi(9) FFT プロセッサが内部入力バッファから入力サンプルを読み出す時間が進むと、 sink_ready を再びアサートして、次の入力ブロックを読み出せること示します。 次の入力ブロックの開始は、次のブロックの最初の入力サンプルに同調する sink_sop パルスによって区切られるべきです。 FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5 月 3. 機能の説明 I/O データ・フロー・アーキテクチャ 3–13 すべてのデータ・フロー・アーキテクチャと同様、特定のブロックの反転のロジッ ク・レベルは sink_sop(start-of-packet)信号のアサーション時に FFT ファンク ションに登録されます。 FFT が入力ブロックの変換を完了した時、source_valid をアサートして、複素変 換ドメイン・データ・ブロックを自然順序で出力します(図 3-13) 。 図 3-13. FFT バッファバースト・データ・フロー・アーキテクチャの出力フロー・コントロール clk source_realt source_imag source_exp source_ready master_source_valid source_sop source_eop Xr[0] Xr[1] Xr[2] Xr[3] Xr[4] Xr[5] Xr[6] Xr[7] Xr[8] Xr[9] Xr[10] Xi[0] Xi[1] Xi[2] Xi[3] Xi[4] Xi[5] Xi[6] Xi[7] Xi[8] Xi[9] Xi[10] EXP0 信号 source_sop および source_eop は、出力ブロック・データのパケットの開 始およびパケットの終了をそれぞれ示します ( 図 3-11)。 1 source_valid のアサート(および有効なデータ出力)のために、sink_valid 信 号はアサートされる必要があります。そのため、データの最後のフレームを FFT か ら抽出するには、データ転送の最後で sink_valid 信号をアサートされるままにす る必要があります。 f バッファバースト FFT のイネーブルについて詳しくは、8 ページの「ストリーミング FFT のイネーブル」を参照してください。 バースト バースト I/O データ・フロー・アーキテクチャの動作は、バッファバースト・アー キテクチャによく似ています。ただし、バースト・アーキテクチャは減少した平均 スループットの代償で、より低いメモリ・リソースを必要とします。図 3-14 に、 バースト・アーキテクチャのシミュレーション結果を示します。再び、信号 source_valid および sink_ready は、FFT が新しいデータ・ブロックを受信でき るおよび FFT 出力で有効出力ブロックが使用できることをシステム・データ・ソー スおよび FFT の両側のスレーブ・シンクに示します。 Altera Corporation 2011 年 5 月 FFT MegaCore ファンクション・ユーザーガイド 3. 機能の説明 パラメータ 3–14 図 3-14. FFT バースト・データ・フロー・アーキテクチャのシミュレーション波形 clk reset_n sink_valid sink_ready sink_sop sink_eop inverse sink_real sink_imag source_real source_imag source_exp source_ready source_valid source_sop source_eop EXP0 EXP1 -47729 271 -47729 271 EXP2 バースト I/O データ・フロー・アーキテクチャでは、コアが 1 入力のブロックのみ を処理できます。ブロックのシンクでは小容量 FIFO バッファがあり、このバッファ がいっぱいになるまで sink_ready はディアサートされません。その故、次の入力 ブロックと関連している少量の追加入力サンプルを提供することができます。 sink_readyサイクルにおいてFFTにデータを提供することは強制ではありません。 バースト・アーキテクチャは、その前の変換が完全にアンロードされた時にのみ次 の FFT フレームをロードできます。 f ブッファ付バースト FFT のイネーブルについて詳しくは、8 ページの「ストリーミン グ FFT のイネーブル」を参照してください。 パラメータ 表 3-3 に、FFT MegaCore ファンクションのパラメータを示します。 FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5 月 3. 機能の説明 パラメータ 3–15 表 3-3. パラメータ ( 1 / 3 ) パラメータ Target Device Family (ターゲット・デバイス・ ファミリ) 値 <device family> 説明 ターゲット・デバイス・ファミリを表示します。ター ゲット・デバイス・ファミリは普通 Quartus II ソフト ウェアで指定されるプロジェクトにより事前に選択さ れています。 この値が Quartus II プロジェクトで指定される値に一 致しない場合、MegaCore ファンクション・バリエー ションに対して生成される HDL は不正確であることが あります。 デバイス・ファミリは Quartus II プロジェクトのデバ イス・ファミリと同じでなければなりません。 Transform Length (変換長) 64、128、256、 変換の長さです。可変ストリーミングの場合、この値 512、1024、2048、 は最大 FFT 長です。 4096、8192、 16384、32786 または 65536。可変スト リーミングでは 16、 32、131072 および 262144 も使用可能 Data Precision (データ精度) 8、10、12、14、16、 18、20、24、28、32 データの精度です。28 および 32 の値は可変ストリー ミングにのみ使用できます。 Twiddle Precision (回転子精度) 8、10、12、14、16、 18、20、24、28、32 回転子の精度です。28 および 32 の値は可変ストリー ミングにのみ使用できます。回転子係数精度はデータ 精度以下でなければなりません。 FFT Engine Architecture (FFT エンジン・アーキテ クチャ) クワッド出力、 シングル出力 Number of Parallel FFT Engines (パラレル FFT エンジンの 数) 1、2、4 バッファバーストおよびバースト I/O データ・フロー・ アーキテクチャでは、1 つ、2 つまたは 4 つのパラレル に動作するクワッド出力エンジンのいずれかを選択す ることができます。あるいは、シングル出力エンジ ン・アーキテクチャを選択した場合、1 つまたは 2 つ のパラレル・エンジンを実装することを選択できます。 複数のパラレル・エンジンはデバイス・リソースを犠 牲にして FFT MegaCore ファンクションの変換時間を 短縮することができます。これで、希望のエリアおよ びスループットのトレードオフ・ポイントの選択が可 能になります。 デバイス・リソースおよび変換時間のトレードオフに ついて詳しくは、14 ページの「パラメータ」を参照し てください。可変ストリーミングまたはストリーミン グ・アーキテクチャでは使用できません。 I/O Data Flow (I/O データ・フロー) ストリーミング 可変ストリーミング バッファバースト バースト FFT アーキテクチャを選択します。 I/O Order (I/O 順序) ビット反転した順序、 桁反転した順序、 自然順序、 –N/2 ~ N/2 データが FFT に出入りする入力順序および出力順序で す(可変ストリーミング・アーキテクチャのみ)。スト リーミング浮動小数点バリエーションでは、Digit Reverse Order オプションが Bit Reverse Order に置 き換えます。 Altera Corporation 2011 年 5 月 FFT MegaCore ファンクション・ユーザーガイド 3. 機能の説明 パラメータ 3–16 表 3-3. パラメータ ( 2 / 3 ) パラメータ 値 説明 Data Representation (データ表現) 固定小数点 または 浮動小数点 内部データ表示の形式(可変ストリーミング・アーキ テクチャのみ)です。自然なビット成長を持つ固定小 数点または単精度浮動小数点です。 Structure (構造) 3 乗算器 /5 加算器 4 乗算器 /2 加算器 4 つの実数乗算器および 2 つの加算器 / 減算器、あるいは 3 つの乗算器、5 つの加算器、およびいくつかの追加の 遅延要素によって複素数乗算器構造を実装できます。4 乗算器 /2 加算器の構造は DSP ブロック構造を使用し てロジックの使用を最小に抑え、DSP ブロックの使用 を最大にします。また、このオプションはプッシュ・ ボタン fMAX を向上させます。3 乗算器 /5 加算器の構造 は、より少ない DSP ブロックを必要としますが、実装 するにはより多くの LE が必要です。また、より低い fMA を持つデザインが生成されます。可変ストリーミン グ・アーキテクチャまたは Stratix V デバイスでは使用 できません。 Implement Multipliers in (乗算器の実装位置) DSPブロック /ロジッ ク・セル ロジック・セルのみ DSP ブロックのみ 各実数乗算は DSP ブロックのみ、LE のみ、またはそ の両方に実装可能です。DSP ブロックおよび LE の組 み合わせを使用する場合、必要に応じて、FFT MegaCoreファンクションは自動的にDSPブロック18 × 18 乗算器リソースを LE によって拡張します。可変スト リーミングでは使用できません。 DSP Resource Optimization On または Off (Stratix V) (DSP リソースの最適化) (Stratix V) このオプションはすべてのアーキテクチャおよび表現 に対して、Straitx V デバイスで使用できます。このオ プションをオンにして、Stratix V DSP ブロックの複素 数 18 x 25 乗算モードまたは複素数 27 x 27 乗算モード によって複素数乗算器構造を実装することで、DSP リ ソースの利用率を向上させます。 ただし、速度が低下する可能性があります。浮動小数 点表現を使用する可変ストリーミング・アーキテク チャでは、このオプションは Stratix V DSP ブロック複 素数 27 x 27 蒸散モードによって複素数乗算器構造を実 装します。ただし、精度が低下する可能性があります。 Global clock enable (グローバル・クロック・ イネーブル) オンまたはオフ FFT MegaCore ファンクション・ユーザーガイド デザインにグローバル・クロック・イネーブルを追加 する場合にはオンにします。 Altera Corporation 2011 年 5 月 3. 機能の説明 信号 3–17 表 3-3. パラメータ ( 3 / 3 ) パラメータ Twiddle ROM Distribution (回転子 ROM の分配) 値 説明 100% M4K ~ 100% M512 または 100% M9K ~ 100% MLAB 回転子係数の格納のために、高スループット FFT のパ ラメータ化は複数の浅い ROM を必要とすることがあ ります。ターゲットのデバイス・ファミリが M512 RAM ブロック(または Stratix III、Stratix IV および Stratix V デバイスにおける MLAB ブロック)をサポー トする場合、スライドバーを調整することで ROM ス トレージ要求の分配を M4K (Stratix III および Stratix IV デバイスにおける M9K) RAM ブロックおよび M512 (MLAB) RAM ブロックの間に調整できます。スライド バーを左端に設定するこどで ROM ストレージをすべ て M4K (M9K) RAM ブロックに実装します;スライド バーを右端に設定するこどで ROM ストレージをすべ て M512 (MLAB) RAM ブロックに実装します。 Stratix V デバイスでは、M4K(M9K) を M20K に置き 換えます。 回転子 ROM を M512 (MLAB) RAM ブロックに実装す ると、より効率的なデバイス内部メモリ・ビットの使 用が実現できます。また、このオプションにより、 FFT データの格納またはシステム内ほかのストレージ 要求に使用される M4K (M9K) RAM ブロックを節約す ることができます。 可変ストリーミング・アーキテクチャまたは Cyclone シリーズのデバイス・ファミリでは使用できません。 Use M-RAM or M144K blocks (M-RAM または M144K ブ ロックの使用) オンまたはオフ M-RAM ブロックをサポートするデバイスでは、FFT MegaCore ファンクションにある適切なデータ RAM ブ ロックを M-RAM (Stratix III および Stratix IV デバイス では M144K )に実装して、M4K (M9K) RAM の使用を 低減します。 可変ストリーミング・アーキテクチャ、または Cyclone シリーズのデバイス・ファミリ、あるいは Stratix V デバイスでは使用できません。 Implement appropriate logic functions in RAM (RAM に適切なロジック・ ファンクションを実装) オンまたはオフ エンベデッド RAM ブロックを使用して内部ロジック・ ファクション(例えば、FFT MegaCore ファンクショ ン内のタップされた遅延ライン)を実装します。この オプションはロジック・エレメントの総数を低減しま す。 可変ストリーミング・アーキテクチャでは使用できま せん。 信号 表 3-4 に、Avalon-ST インタフェースの信号を示します。 f Altera Corporation 2011 年 5 月 Avalon-ST インタフェースについて詳しくは、「Avalon Interface Specification」を参 照してください。 FFT MegaCore ファンクション・ユーザーガイド 3. 機能の説明 信号 3–18 表 3-4. Avalon-ST 信号 ( 1 / 2 ) 信号名 方向 Avalon-ST タイ プ サイズ 説明 clk 入力 clk 1 すべての内部 FFT エンジン・コンポーネン トにクロックを提供するクロック信号です。 reset_n 入力 reset_n 1 アクティブ Low 非同期リセット信号です。 この信号は非同期でアサートできますが、 最低 1 clk サイクルにアサートされたまま に維持する必要があり、clk に同期して ディアサートする必要があります。 アクティブ Low リセット信号が同期でディ アサートされる回路の例については、 「Quartus II ハンドブック Volume 1」の 「Recommended Design Practices」の章を 参照してください。 sink_eop 入力 endofpacket 1 受信 FFT フレームの終了を示します。 sink_error 入力 error 2 Avalon-STプロトコルの不適切な使用によっ て上流モジュールで発生するエラーを示し ます。次のエラーが定義されます(表 3-6 を参照) 。 ■ 00 = エラーなし ■ 01 = パケットの開始(SOP)が欠落 ■ 10 = パケットの終了(EOP)が欠落 ■ 11 = 予想外の EOP この信号を上流モジュールに使用しない場 合には 0 に設定します。 sink_imag 入力 data データ精度の 幅 データ精度ビットの符号付き数値を示す虚 数の入力データです。 sink_ready 出力 ready 1 FFT エンジンがデータを受信できるときに アサートされます。ready サイクルで FFT にデータを提供するには、この信号は必須 ではありません。 sink_real 入力 data データ精度の 幅 データ精度ビットの符号付き数値を示す実 数の入力データです。 sink_sop 入力 startofpacket 1 sink_valid 入力 valid 1 データ・バスにおけるデータが有効になる ときにアサートされます。sink_valid お よび sink_ready がアサートされると、 データ転送が行われます。9 ページの「可 変ストリーミング FFT のイネーブル」を参 照してください。 source_eop 出力 endofpacket 1 発信 FFT フレームの終了を示します。 source_valid がアサートされるときにの み有効です。 error 2 上流モジュールまたは FFT モジュール内 (FFT で生成されるエラーを持つ sink_error の論理和)にエラーが発生することを示し ます。エラー・コードについては表 3-6 を 参照してください。 source_error 出力 FFT MegaCore ファンクション・ユーザーガイド 受信 FFT フレームの開始を示します。 Altera Corporation 2011 年 5 月 3. 機能の説明 信号 3–19 表 3-4. Avalon-ST 信号 ( 2 / 2 ) 信号名 Avalon-ST タイ プ 方向 source_exp 出力 data source_imag 出力 data サイズ 6 (データ精度 の幅+成長) (1) source_ready 入力 出力 source_real 1 ready data (データ精度 の幅+成長) (1) startofpacket 1 出力 source_sop source_valid 出力 1 valid 説明 ストリーミング、バースト、およびバッ ファバーストアーキテクチャのみです。符 号付きブロック指数:FFT の計算時に内部 信号の値をスケーリングするアカウントで す。 虚数の出力データです。バースト、バッ ファバースト、ストリーミング、および可 変ストリーミング浮動小数点 FFT の場合、 出力データ幅は入力データ幅と同じです。 可変ストリーミング固定小数点 FFT の場 合、出力データのサイズは FFT に対して定 義されるステージの数に依存し、radix 22 ス テージにつき 2 ビットです。 下流モジュールがデータを受信できるとき にアサートされます。 実数の出力データです。バースト、バッ ファバースト、ストリーミング、および可 変ストリーミング浮動少数点数 FFT の場 合、出力データ幅は入力データ幅と同じで す。可変ストリーミング固定小数点 FFT の 場合、出力データのサイズは FFT に対して 定義されるステージの数に依存し、radix 22 ステージにつき 2 ビットです。 発信 FFT フレームの開始を示します。 source_valid がアサートされるときにの み有効です。 出力への有効データが存在するときに FFT によりアサートされます。 表 3-4 の注: (1) 可変ストリーミング固定小数点 FFT のみです。成長率は 2.5 × ( ステージの数 ) = 2.5 × (log4(MAX(fftpts)) です。 表 3-5 に、コンポーネント特有の信号を示します。 表 3-5. コンポーネント特有の信号 信号名 方向 サイズ 説明 入力 log 2( ポイントの この FFT フレーム内のポイントの数です。この値が特定されな いと、FFT は可変長になっていません。デフォルトの動作は、 最大数 ) FFT を最大ポイント数の長さに固定することです。 SOP にのみサ ンプルされます。 fftpts_out 出力 log 2( ポイントの Avalon-ST ソース・インタフェースに同期されたこの FFT フレー ム内のポイントの数です。可変ストリーミング・データのみで 最大数 ) fftpts_in す。 inverse 入力 1 アサートされると、算出されたを反転します。SOP にのみサン プルされます。 clk_ena 入力 1 アクティブ High グローバル・クロック・イネーブル入力です。 ディアサートされると、FFT はディセーブルされます。 Altera Corporation 2011 年 5 月 FFT MegaCore ファンクション・ユーザーガイド 3. 機能の説明 信号 3–20 シンク・インタフェースにおいて Avalon-ST インタフェース・プロトコルの不適切 な使用は source_error にエラーを起こします。表 3-6 に、Avalon-ST 転送の不正 確な使用が検出される際の FFT の動作を定義します。エラーが発生して、FFT の動 作が定義されていない場合、reset_n によって FFT をリセットする必要がありま す。 表 3-6. エラー処理動作 エラー source_err or 説明 SOP が欠落 01 valid が High になりますが、フレームの開始がない場合にアサートされま す。 EOP が欠落 10 FFT が N の FFT フレームの有効サンプルを受信しますが、EOP 信号がない場 合にアサートされます。 予想外の EOP 11 EOP が N の有効サンプルを受信する前にアサートされる場合にアサートされ ます。 FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5 月 A. ブロック浮動小数点スケーリング はじめに FFT MegaCore ファンクションは、内部でブロック浮動小数点(BFP)演算を使用 して計算を実行します。BFP アーキテクチャは、固定小数点とフル浮動小数点アー キテクチャ間のトレードオフです。 浮動小数点演算を使用する FFT 演算器と異なり、ブロック浮動小数点 FFT 演算器に はデータの指数部入力はありません。共通のスケーリング係数を持った整数として データを表現しています。共通のスケーリング係数を持った整数としてデータを表 現しています。FFT の各ステージの後、最大出力値が検出され、精度を向上させる ために中間結果がスケーリングされます。指数(exponent)は、スケーリングの実 行に使用された右シフトまたは左シフト量を記録します。よって、コアの出力に以下 のスケーリングを行うことにより、最終的な FFT 演算結果が得られます。 output*2-exponent 例えば、exponent = –3 の場合、入力サンプルが右に 3 ビット シフトされ、そのた め出力の大きさは output*2 3 です。 ブロック浮動小数点 FFT コアにある radix-2 または radix-4 エンジンを経由するパスごとに、加算および乗 算の演算により、データ・ビット幅が成長していきます。つまり、FFT 演算による データ・ビット幅はパスの数に比例して増加します。FFT/IFFT 計算のパス数はポイ ント数の対数に依存します。ページ 2 の表 A-1 に、対応するビット増加の可能な指数 を示します。 固定小数点アーキテクチャ FFT は、高いダイナミック・レンジを表示する大きな ビット幅を対応するために、膨大な乗算器およびメモリ・ブロックを必要とします。 浮動小数点は算数演算に強いですが、その代わりに、デザインは浮動小数点乗算器 および浮動小数点加算器などより複雑なデザインになります。BFP 演算は浮動小数 点演算および固定小数点演算の長所を兼ね備えます。BFP 演算は、ハードウェア実 装において同数のビットを持つ浮動小数点演算および固定小数点演算に比べて、よ り良い信号対ノイズ比(SNR)およびダイナミック・レンジを提供します。 ブロック浮動小数点アーキテクチャ FFT において、各パスの radix-2 または radix-4 計算は同じハードウェアを共用し、データがメモリから読み出され、コア・エンジ ンを経由して、そしてメモリに書き込まれます。次のパスに入る前に、加算および 乗算の作業からのキャリー・アウト・ビットがある場合、各データ・サンプルは右 にシフトされます(スケーリングと呼ばれる動作)。シフトされるビットの数は、 データ・サンプルおよび前のステージから検出された最大データ・サンプルの間の データ増加の差に基づきます。最大ビット増加は指数レジスタに記録されます。こ れにより、各データ・サンプルはすべて同じ指数値およびデータ・ビット幅を持ち、 次のコア・エンジンに入ります。ビット増加に対応するためにより大きなエンジンを 必要とせず、同じコア・エンジンを再利用できます。 出力 SNR は、発生する右シフトのビット数および基数コア計算のステージに応じて 異なります。つまり、信号対ノイズ比は入力データに依存し、SNR を計算するには 入力信号が分かっている必要があります。 Altera Corporation 2011 年 5 月 FFT MegaCore ファンクション・ユーザーガイド 付録 A. :ブロック浮動小数点スケーリング 可能な指数値の計算 A–2 可能な指数値の計算 FFT/IFFT の長さに応じて、基数エンジンを通過するパス数が計算でき、それによっ て指数の範囲も計算できます。可能な指数の範囲は、以下の式によって算出されま す。 P = ceil{log4N}、ここで N は変換長 log2N が偶数のとき R = 0、それ以外の場合 R = 1 シングル出力の出力範囲 = (–3P+R、P+R–4) クワッド出力の出力範囲 = (–3P+R+1、P+R–7) これらの式は、表 A-1 に示す値に変換されます。 表 A-1. FFT / IFFT の指数スケーリング値 ( 注 1) シングル出力エンジン クワッド出力エンジン N P Max (2) Min (2) Max (2) Min (2) 64 3 –9 –1 –8 –4 128 4 –11 1 –10 –2 256 4 –12 0 –11 –3 512 5 –14 2 –13 –1 1,024 5 –15 1 –14 –2 2,048 6 –17 3 –16 0 4,096 6 –18 2 –17 –1 8,192 7 –20 4 –19 1 16,384 7 –21 3 –20 0 表 A-1 の注: (1) この表は、内部で発生する可能性のあるビット・シフト量である指数の範囲を示しています。IFFT の場合、出力を外部で N で除算する必要があります。このステップの後でさらに演算処理を実行 する場合は、精度の低下を防ぐために、最後に N による除算を実行する方法が良いです。 (2) MAX および MIN の値は、データがシフトされるべき回数を示します。負の値は左シフト、正の値 は右シフトを示します。 スケーリングの実装 スケーリング・アルゴリズムを実装するには、次のステップに従ってください。 1. フル・スケール・ダイナミック・レンジ・ストレージ・レジスタの長さを決定し ます。長さを得るには、データがシフトされる回数にデータ幅を加算します(表 A-1 に示す MAX 値)。例えば、16 ビット・データ、256 ポイント・クワッド出力 FFT/IFFT の場合、MAX = –11 および MIN = –3 です。この MAX 値は 11 ビットの左 シフトを示します。したがって、フル・スケールのデータ幅は 16 + 11 = 27 ビッ トです。 2. 指数出力に基づき、データ出力をビット幅に拡張したレジスタ内の適切な位置に マップします。上記の例では、FFT/IFFT からの 16 ビット出力データ [15..0] を、 指数が –11 の場合は [26..11]、指数が –10 の場合は [25..10]、–9 の場合は [24..9] というようにマップします。 3. フル・スケール・レジスタ内で符号拡張を行います。 FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5 月 付録 A. :ブロック浮動小数点スケーリング スケーリングの実装 A–3 符号拡張付き出力データ(指数 –11 ~ –9)のスケーリングを示す、Verilog コードの サンプルを以下の例に示します。 case (exp) 6'b110101 : //-11 Set data equal to MSBs begin full_range_real_out[26:0] <= {real_in[15:0],11'b0}; full_range_imag_out[26:0] <= {imag_in[15:0],11'b0}; end 6'b110110 : //-10 Equals left shift by 10 with sign extension begin full_range_real_out[26] <= {real_in[15]}; full_range_real_out[25:0] <= {real_in[15:0],10'b0}; full_range_imag_out[26] <= {imag_in[15]}; full_range_imag_out[25:0] <= {imag_in[15:0],10'b0}; end 6'b110111 : //-9 Equals left shift by 9 with sign extension begin full_range_real_out[26:25] <= {real_in[15],real_in[15]}; full_range_real_out[24:0] <= {real_in[15:0],9'b0}; full_range_imag_out[26:25] <= {imag_in[15],imag_in[15]}; full_range_imag_out[24:0] <= {imag_in[15:0],9'b0}; end . . . endcase この例では、出力はフル・スケールの 27 ビット・ワードです。後段の処理部に転送 するデータのビット位置およびビット数は、ユーザーが決定する必要があります。 ビット位置の選択により、入力サンプル・レベルに対する絶対ゲインが決まります。 ページ 4 の図 A-1 では、0x5000 の入力信号レベル、256 ポイントを持つクワッド出 力 FFT のスケーリングに対して、すべての可能な値について説明しています。指数 が 5 のとき、FFT の出力は 0x280 です。この図は、フル・スケール・ストレージ・ レジスタ [26..0] に対するスケーリングのすべての有効な指数値を示しています。指 数は –5 なので、該当するカラムのレジスタ値を参照します。このデータは図の一番 右の 2 列に示してあります。一番右の列では、スケーリング(0x0005000)後のゲイ ン補正されたデータを示します。このデータは期待される入力データと一致します。 以降の処理で 16 ビットデータ幅を維持する場合、0x5000 になる下位 16 ビットを選 択することができます。しかし、異なるビット範囲、例えば上位 16 ビットを選択し た場合、結果は 0x000A になります。したがって、ビットの選択は処理チェインの 相対ゲインに影響を与えます。 この例は、27 ビットのフル・スケール分解能と 16 ビットの出力分解能を有してい るため、入力信号に対するユニティ・ゲインを維持するために下位 16 ビットを選択 します。すべてのケースにおいて、下位 16 ビットを選択することが唯一のソリュー ション、または正しい選択肢であるとは限りません。この選択はどの信号レベルが 重要であるかによって決めます。実験的に適切な範囲を選択する方法の 1 つは、期 待されるシステム・データをテスト・ケースとし、シミュレーションすることです。 シミュレーションの出力から、出力レジスタとして使用するビットの範囲を知るこ とができます。フル・スケール・データを使用しない場合(または MSB のみ使用す る場合)は、ワードラップの問題に対して、飽和処理を行う必要があります。 Altera Corporation 2011 年 5 月 FFT MegaCore ファンクション・ユーザーガイド 付録 A. :ブロック浮動小数点スケーリング IFFT+FFT ペアでのユニティ・ゲインの達成 A–4 図 A-1. 入力データ・サンプル =0x5000 のスケーリング IFFT+FFT ペアでのユニティ・ゲインの達成 浮動小数点演算など、精度が十分高い場合には、IFFT と FFT をカスケード接続した 場合、理論的にはユニティ・ゲイン(ゲイン 1)となります。ただし、BFP 演算で は、ユニティ・ゲインを達成するために、IFFT/FFT ブロックの exponent 値に特に 注意する必要があります。この項では、BFP 演算を使用してアルテラの IFFT/FFT MegaCore ペアからユニティ・ゲイン出力を得るために必要な手順を説明します。 BFP 演算部は exponent 入力を持たないため、直後に FFT ブロックに出力を供給して いる場合、IFFT ブロックからの exponent 値を追跡し、補正した後、最後に N で除 算して元の信号を復元します。 ページ 5 の図 A-2 に、IFFT および FFT の動作とユニティ・ゲインを達成するための 式を導出します。 FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5 月 付録 A. :ブロック浮動小数点スケーリング IFFT+FFT ペアでのユニティ・ゲインの達成 A–5 図 A-2. IFFT/FFT ペアのユニティ・ゲインの達成 IFFT x0 FFT X0 = IFFT(x0) 1 × IFFTa (x0) = N 1 –exp1 = × data1 × 2 N x0 = FFT(X0) 1 –exp1 × data1 × 2 ) = FFT( N 1 –exp1 = ×2 × FFTa (data1) N 1 –exp1 –exp2 ×2 × data2 × 2 = N 1 –exp1–exp2 = ×2 × data2 N 説明 x0 = IFFT への入力データ X0 = IFFT からの出力データ N = ポイントの数 data1 = IFFT 出力データおよび FFT 入力データ data2 = FFT 出力データ exp1 = IFFT 出力指数 exp2 = FFT 出力指数 IFFTa = IFFT FFTa = FFT 切り捨てを伴う X0 のスケーリング操作では、データ精度が失われ、x0 ではユニ ティ・ゲインは達成されません。X0 が最終結果となる場合にのみ X0 でスケーリン グ操作を実行しなければなりません。中間結果 X0 が exp1 のゼロでパディングされ て切断された場合、または X0 のデータ・ビットが切断された場合には、スケーリン グ情報が失われます。 ユニティ・ゲインを維持する方法の 1 つは、exp1 値を FFT ブロックの出力に渡す ことです。また、data1*2–exp1 の完全精度を保持し、この値を FFT ブロックの入力 として使用する方法もあります。2 番目の方法の欠点は、IFFT 動作からのビット幅 の増加により、FFT ブロックの入力ビット幅が非常に大きくなることです。多くの 場合に、このビット幅に対応するのに必要な分解能はコアがサポートされる最大 データ幅を超えています。 f Altera Corporation 2011 年 5 月 詳しくは、www.altera.co.jp の「DSP Design Examples」での「Achieving Unity Gain in Block Floating Point IFFT+FFT Pair」のデザイン例を参照してください。 FFT MegaCore ファンクション・ユーザーガイド A–6 FFT MegaCore ファンクション・ユーザーガイド 付録 A. :ブロック浮動小数点スケーリング IFFT+FFT ペアでのユニティ・ゲインの達成 Altera Corporation 2011 年 5 月 追加情報 改訂履歴 以下の表に、このユーザーガイドの改訂履歴を示します。 日付 2011 年 5 月 2010 年 12 月 2010 年 7 月 2009 年 11 月 バージョン 11.0 10.1 10.0 9.1 変更内容 ■ Stratix V デバイスにおける DSP リソースの最適化のためのユーザー制御の パラメータを追加 ■ Arria II GX、Arria II GZ、Cyclone III LS、および Cyclone IV デバイスに対し て最終サポートにアップグレード ■ HardCopy III、HardCopy IV E、および HardCopy IV GX デバイスに対して Hardcopy コンパイル・サポートにアップグレード ■ Arria II GZ デバイスに対して暫定サポートを追加 ■ Stratix IV FT デバイスのサポート・レベルを最終サポートに更新 ■ Stratix V デバイスに対して暫定サポートを追加 ■ 新しい変換長の値を追加 ■ メンテナンス更新 ■ Cyclone III LS、Cyclone IV、および HardCopy IV GX デバイスに対して暫 定サポートを追加 2009 年 3 月 9.0 Arria II GX デバイス・サポートを追加 2008 年 11 月 8.1 変更なし 2008 年 5 月 8.0 ■ Stratix IV デバイス・サポートを追加 ■ sink_valid および sink_ready の動作の説明を変更 ■ タイミング図を修正 ■ 単精度浮動小数点データ表示の情報を追加 ■ Arria GX デバイスのサポートを追加 ■ 新たに生成されたファイルを追加 2007 年 10 月 7.2 2007 年 5 月 7.1 2006 年 12 月 7.0 Cyclone III デバイスのサポートを追加 2006 年 12 月 6.1 ■ インタフェースの情報を変更 ■ 可変ストリーミングの情報を追加 Altera Corporation 2009 年 11 月 FFT MegaCore ファンクション・ユーザーガイド 追加情報 アルテラへのお問い合わせ Info–2 アルテラへのお問い合わせ アルテラの製品に関する最新の情報については、次の表を参照してください。 お問い合わせ先 (Note 1) お問い合わせ 方法 アドレス 技術的なご質問 ウェブサイト www.altera.com/support 技術トレーニング ウェブサイト www.altera.com/training 電子メール [email protected] アルテラの資料に関するお問い合 わせ ウェブサイト www.altera.com/literature 一般的なお問い合わせ 電子メール [email protected] ソフトウェア・ライセンスに関す るお問い合わせ 電子メール [email protected] 注: (1) 詳しくは、日本アルテラまたは販売代理店にお問い合わせください。 FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2009 年 11 月 追加情報 表記規則 Info–3 表記規則 本書では、以下の表に示す表記規則を使用しています。 書体 意味 太字かつ文頭が大文字 コマンド名、ダイアログ・ボックス・タイトル、ダイアログ・ボックス・ オプション、およびその他の GUI ラベルを表します。 例:Save As ダイアログ・ボックス 太字 ディレクトリ名、プロジェクト名、ディスク・ドライブ名、ファイル名、 ファイルの拡張子、およびソフトウェア・ユーティリティ名を表します。 例:\qdesigns ディレクトリ、d: ドライブ、および chiptrip.gdf ファイル 斜体かつ文頭が大文字 資料のタイトルを表します。例: AN 519: StratixIII デザイン・ガイドライ ン 斜体 変数を表します。例:n + 1 変数名は、山括弧(< >)で囲んでいます。例:<file name> および <project name>.pof ファイル 文頭が大文字 キーボード・キーおよびメニュー名を表します。 例:Delete キー、Options メニュー 「小見出しタイトル」 かぎ括弧は、資料内の小見出しおよび Quartus II Help トピックのタイトル を表します。例:「表記規則」 Courier フォント 信号、ポート、レジスタ、ビット、ブロック、およびプリミティブ名を表 します。例:data1、tdi、および input。 アクティブ Low 信号は、サフィックス n で表されています。例:resetn コマンドライン・コマンド、および表示されているとおりに入力する必要 があるものを表します。例:c:\qdesigns\tutorial\chiptrip.gdf また、Report ファイルのような実際のファイル、ファイルの構成要素 (例:AHDL キーワードの SUBDESIGN)、ロジック・ファンクション名 (例:TRI)も表します。 1.、2.、3.、および a.、b.、c.、など。 順など項目の順序が重要なものは、番号が付けられリスト形式で表記され ています。 ■ ■ 箇条書きの黒点などは、項目の順序が重要ではないものに付いています。 1 指差しマークは、要注意箇所を表しています。 c 注意は、製品または作業中のデータに損傷を与えたり、破壊したりするお それのある条件や状況に対して注意を促します。 w 警告は、ユーザーに危害を与えるおそれのある条件や状況に対して注意を 促します。 r 矢印は、Enter キーを押すことを示しています。 f 足跡マークは、詳細情報の参照先を示しています。 Altera Corporation 2009 年 11 月 FFT MegaCore ファンクション・ユーザーガイド Info–4 FFT MegaCore ファンクション・ユーザーガイド 追加情報 表記規則 Altera Corporation 2009 年 11 月