FFT MegaCore ファンクション・ユーザーガイド

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
Xk =

x  n e
 – j2nk   N
n=0
k = 0、1、... N – 1
次の式には、長さ N の逆 DFT を示します。
N–1
xn =  1  N 

X  k e
 j2nk   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 (42) = 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 月