66
101 Innovation Drive San Jose, CA 95134 www.altera.com FFT MegaCore ファンクション ユーザーガイド MegaCore 采察沙崎策瑍 22/1 彩紺肴坂策宰刷妻察宰瑍 3122 朮 6 蠻 この資料は英語版を翻訳したもので、 内容に相違が生じる場合には原文を 優先します。こちらの日本語版は参 考用としてご利用ください。設計の 際には、最新の英語版で内容をご確 認ください。

FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

101 Innovation DriveSan Jose, CA 95134www.altera.com

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

MegaCore バージョン: 11.0

ドキュメント・デート: 2011 年 5 月

この資料は英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。こちらの日本語版は参考用としてご利用ください。設計の際には、最新の英語版で内容をご確認ください。

Page 2: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

Copyright © 2011 Altera Corporation. All rights reserved. Altera, The Programmable Solutions Company, the stylized Altera logo, specific device designations, and all otherwords and logos that are identified as trademarks and/or service marks are, unless noted otherwise, the trademarks and service marks of Altera Corporation in the U.S. and othercountries. All other product or service names are the property of their respective holders. Altera products are protected under numerous U.S. and foreign patents and pending ap-plications, maskwork rights, and copyrights. Altera warrants performance of its semiconductor products to current specifications in accordance with Altera's standard warranty,but reserves the right to make changes to any products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use ofany information, product, or service described herein except as expressly agreed to in writing by Altera Corporation. Altera customers are advised to obtain the latest version ofdevice specifications before relying on any published information and before placing orders for products or services.

UG-FFT-11.0

Page 3: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

Altera Corporation2011 年 5 月

目次

第1章 . この MegaCoreファンクションについてリリース情報 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–1サポートされるデバイス・ファミリ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–1特長 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–2概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–3固定変換サイズ・アーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–3可変ストリーミング・アーキテキチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–4

MegaCore 検証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–4パフォーマンスおよびリソース使用率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–4

Cyclone III デバイス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–5Stratix IIIデバイス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–8Stratix IVデバイス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–12

インストールおよびライセンス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–15OpenCore Plus評価機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–16OpenCore Plus タイム・アウト動作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–16

第 2章 . 使用法デザイン・フロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2–1DSP Builder フロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2–1MegaWizard Plug-In Managerフロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2–2

MegaCoreファンクションのパレメータ設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2–3シミュレーションのセットアップ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2–8MegaCoreファンクションの生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2–9

デザインのシミュレーション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2–12MATLABソフトウェアによるシミュレーション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2–12固定変換アーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2–12可変ストリーミング・アーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2–13

IP機能シミュレーション・モデルを使用したシミュレーション . . . . . . . . . . . . . . . . . . . . . . . . 2–14NativeLinkを使用したサードパーティ・シミュレーション・ツールによるシミュレーション . 2–14

デザインのコンパイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2–15固定変換アーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2–15可変ストリーミング・アーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2–16

デバイスのプログラミング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2–16

第 3章 . 機能の説明バッファ、バースト &ストリーミングのアーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–1可変ストリーミング・アーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–2Avalon Streamingインタフェース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–3FFTプロセッサ・エンジン・アーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–4

radix-22 単一遅延フィードバック・アーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–4混合 Radix-4/2アーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–5クワッド出力 FFTエンジン・アーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–5シングル出力 FFT エンジン・アーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–6

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

Page 4: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

iv

I/Oデータ・フロー・アーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–6ストリーミング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–7ストリーミング FFTの動作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–7ストリーミング FFTのイネーブル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–8

可変ストリーミング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–8ブロック・サイズの変換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–9可変ストリーミング FFTのイネーブル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–9FFTサイズをダイナミックに変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–10I/O順序による影響 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–11

バッファバースト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–11バースト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–13

パラメータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–14信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3–17

付録 A. ブロック浮動小数点スケーリングはじめに . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A–1ブロック浮動小数点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A–1可能な指数値の計算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A–2スケーリングの実装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A–2IFFT+FFT ペアでのユニティ・ゲインの達成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A–4

追加情報改訂履歴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Info–1アルテラへのお問い合わせ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Info–1表記規則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Info–2

FFT MegaCore ファンクション ユーザーガイド Altera Corporation2011 年 5月

Page 5: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

Altera Corporation2011 年 5 月

この資料は英語版を翻訳したもので、内容に相違がには、最新の英語版で内容をご確認ください。

1. この MegaCoreファンクションについて

生じる場合には原文を優先します。こちらの日本語版は参考用としてご利用ください。設計の際

リリース情報表 1-1 に、アルテラの FFT MegaCore ファンクションのリリースに関する情報を示

します。

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

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

ションの前のバージョンをコンパイルできることを検証しています。 「MegaCore IP Library Release Notes and Errata」 では、この検証に例外がある場合に報告します。 アルテラは、1 リリースより前の MegaCore ファンクション・バージョンのコンパ

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

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

MegaCore ファンクションは、ターゲットのアルテラ・デバイス・ファミリに対し、

フル・サポートあるいは暫定サポートを提供しています。

表 1-1. FFT MegaCoreファンクションのリリース情報

項目 説明

バージョン 11.0

リリース日付 2011 年 5 月

製品コード IP-FFT

プロダクト ID 0034

ベンダ ID 6AF7

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

FPGA デバイス・ファミリ HardCopy デバイス・ファミリ

暫定サポート — IP コアがデバイス・ファミリに対して暫定的なタイミング・モデルで検証されています。 MegaCore ファンクションがデバイス・ファミリの機能要件をすべて満たしているが、タイミング要件については評価中であるため、生産デザインでの使用は注意が必要です。

HardCopyコンパニオン—IPコアがHardCopyコンパニオン・デバイスに対して暫定的なタイミング・モデルで検証されています。 IP コアが機能要件をすべて満たしているが、タイミング要件については評価中です。生産デザインでの使用は注意が必要です。

最終サポート —IP コアがデバイス・ファミリに対して最終的なタイミング・モデルで検証されています。MegaCore ファンクションがデバイス・ファミリの機能要件およびタイミング要求値をすべて満たしており、生産デザインで使用可能です。

HardCopy コンパイル—IPコアがHardCopyデバイス・ファミリに対して最終的なタイミング・モデルで検証されています。IP コアがデバイス・ファミリの機能要件およびタイミング要求値をすべて満たしており、生産デザインで使用可能です。

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

Page 6: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

1–2 1. この MegaCoreファンクションについて特長

表 1-3 に、FFT MegaCore ファンクションによる各アルテラ・デバイス・ファミリ

へのサポートのレベルを示します。

特長■ ビット・アキュレートな MATLAB モデル

■ 強化された可変ストリーミング FFT

■ 単精度浮動小数点または固定小数点による表現

■ 自然、ビット反転または桁反転、および DC 中心(–N/2 から N/2 まで)などの

出入力順序

■ メモリ要求の低減

■ 8 ビット~ 32 ビットのデータ幅および回転子幅をサポート

■ radix-4 および radix-4/2(ミックス)を実装

表 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 最終サポート

FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5月

Page 7: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

1. この MegaCoreファンクションについて 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 対応

f 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 FFT MegaCore ファンクション・ユーザーガイド 2011 年 5 月

Page 8: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

1–4 1. この MegaCoreファンクションについてMegaCore 検証

固定変換サイズ・アーキテクチャは、入力として長さ N の複素データ・ベクタ(2 の補数形式)を受け入れ、変換領域の複素ベクタを自然順序で出力します(N は所

望の自然順序による変換長);ファンクションは自然順序で変換ドメイン複素ベクタ

を出力します。 精度の維持および内部信号対ノイズ比の最大化のためには、変換時に

発生したデータ・スケーリングを示す累算ブロック指数が出力されます。変換方向

は入力ポートを通して、ブロックごとに特定できます。

可変ストリーミング・アーキテキチャ可変ストリーミング・アーキテクチャは、2 種類のアーキテクチャを実装します。

可変ストリーミング FFT バリエーションは、固定小数点表現を使用する radix-22 単一遅延フィードバック・アーキテクチャ、または単精度浮動小数点表現を使用する

混合 radix-4/2アーキテクチャのいずれかを実装します。アーキテクチャ・タイプを

選択した後、実行中に 2m(4 m 18)の変換長に対して FFT アルゴリズムを実行

するように FFT バリエーションをコンフィギュレーションできます。

固定小数点表現は入力から出力にかけて自然にデータ幅を増加させるため、出力に

高い SNR を維持します。 単精度浮動小数点表現は出力に高い SNR を維持しながら、

広範囲な値を表現することが可能です。

f radix-22 単一遅延フィードバック・アーキテクチャについて詳しくは、「S. He and 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月

Page 9: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

1. この MegaCoreファンクションについて 1–5パフォーマンスおよびリソース使用率

Cyclone III デバイス表 1-4 に、Cyclone III(EP3C10F256C6) デバイスによって、幅 16 で 4 乗算器 /2 加

算器を使用するストリーミング・データ・フローによるパフォーマンスを示します。

表 1-5 に、Cyclone III(EP3C16F484C6) デバイス によって、幅 16(浮動小数点の場

合は幅 32)で、順序入力およびビット反転出力を使用する可変ストリーミング・

データ・フローによるパフォーマンスを示します。

1 固定小数点表現による可変ストリーミングは自然なワード増加を使用するため、同

じポイント数を持つ対等なストリーミング FFT に比べて、乗算器要件がもっと厳し

いです。

M9K メモリ使用率を大幅に低減したい場合には、より低い fMAX ターゲットを設定しま

す。

表 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デバイス

ポイント・タイプ

ポイント数

組み合わせLUT数

ロジック・レジスタ数

メモリ(ビット )

メモリ(M9K)

9 × 9 ブロック

fMAX (MHz)

クロック・サイクル・カウント

変換時間 (s)

固定 256 3859 4373 9997 15 40 191 256 1.34

固定 1024 5243 5840 41940 21 56 193 1024 5.29

固定 4096 6725 7369 170335 40 72 198 4096 20.67

浮動 (1) 256 20771 14158 34464 62 96 116 256 2.20

浮動 (2) 1024 26573 17540 140410 93 128 116 1024 8.83

浮動 (2) 4096 32428 20939 568163 148 160 116 4096 35.3

表 1-5の注:(1) EP3C40F780C6 デバイス

(2) EP3C55F780C6 デバイス

Altera Corporation FFT MegaCore ファンクション・ユーザーガイド 2011 年 5 月

Page 10: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

1–6 1. この MegaCoreファンクションについてパフォーマンスおよびリソース使用率

表 1-6 に、Cyclone III(EP3C25F324C6) デバイスによって、16 のデータおよび回転

子の幅で、4 乗算器 /2 加算器の複素数乗算器構造を使用するバッファバースト・

データ・フロー・アーキテクチャによるリソース使用率をリストします。

表 1-7 に、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デバイス (1 / 2 )

ポイント数

エンジン数 (1)

fMAX (MHz)

変換計算時間 (2)データ・ロード &

変換計算ブロック・

スループット (3)

サイクル 時間 (s) サイクル 時間 (s) サイクル 時間 (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

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月

Page 11: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

1. この MegaCoreファンクションについて 1–7パフォーマンスおよびリソース使用率

表 1-8 に、Cyclone III(EP3C10F256C6) デバイスによって、16 のデータおよび回転

子の幅で、4 乗算器 /2 加算器の複素数乗算器構造を使用するバースト・データ・フ

ロー・アーキテクチャによるリソース使用率をリストします。

4096 4 215 1378 6.4 5474 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-7. バッファバースト・データ・フロー・アーキテクチャによるパフォーマンス—Cyclone IIIデバイス (2 / 2 )

ポイント数

エンジン数 (1)

fMAX (MHz)

変換計算時間 (2)データ・ロード &

変換計算ブロック・

スループット (3)

サイクル 時間 (s) サイクル 時間 (s) サイクル 時間 (s)

表 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 FFT MegaCore ファンクション・ユーザーガイド 2011 年 5 月

Page 12: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

1–8 1. この MegaCoreファンクションについてパフォーマンスおよびリソース使用率

表 1-9 に、Cyclone III(EP3C10F256C6) デバイスによって、16 のデータおよび回転

子の幅で、4 乗算器 /2 加算器の複素数乗算器構造を使用するバースト・データ・フ

ロー・アーキテクチャによるパフォーマンスをリストします。

Stratix IIIデバイス表 1-10 に、Stratix III (EP3SE50F780C2) デバイスによって、16 のデータおよび回

転子の幅で、4 乗算器 /2 加算器の複素数乗算器構造を使用するストリーミング・

データ・フローによるパフォーマンスを示します。

表 1-9. バースト・データ・フロー・アーキテクチャによるパフォーマンス—Cyclone IIIデバイス

ポイント数

エンジン・アーキテクチャ

エンジン数 (1)

fMAX (MHz)

変換計算時間 (2)データ・ロード &

変換計算ブロック・スループット (3)

サイクル時間 (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)パルス間の最小サイクル数です。

表 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月

Page 13: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

1. この MegaCoreファンクションについて 1–9パフォーマンスおよびリソース使用率

表 1-11 に、Stratix III(EP3SE50F780C2) デバイスによって、幅 16(浮動小数点の場

合は幅 32)で順序入力およびビット反転出力を使用する可変ストリーミング・デー

タ・フローのパフォーマンスを示します。

1 固定小数点表現による可変ストリーミングは自然なワード増加を使用するため、同

じポイント数を持つ対等なストリーミング FFT に比べて、乗算器要件がもっと厳し

いです。

M9K メモリ使用率を大幅に低減したい場合には、より低い fMAX ターゲットを設定しま

す。

表 1-12 に、Stratix III (EP3SE50F780C2) デバイスによって、16 のデータおよび回

転子の幅で、4 乗算器 /2 加算器の複素数乗算器構造を使用するバッファ・バース

ト・データ・フロー・アーキテクチャによるリソース使用率をリストします。

表 1-11. 可変ストリーミング・データ・フロー・エンジン・アーキテクチャによるパフォーマンス —Stratix IIIデバイス

ポイント・タイプ

ポイント数

組み合わせ ALUT数

ロジック・レジスタ数

メモリ (ビット )

メモリ (M9K)

18 × 18 ブロック

fMAX (MHz)

クロック・サイクル・カウント

変換時間(s)

固定 256 2511 3927 10239 16 20 341 256 0.75

固定 1024 3476 5244 42218 23 28 323 1024 3.17

固定 4096 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デバイス

ポイント数

エンジン数 (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 FFT MegaCore ファンクション・ユーザーガイド 2011 年 5 月

Page 14: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

1–10 1. この MegaCoreファンクションについてパフォーマンスおよびリソース使用率

表 1-13 に、Stratix III (EP3SE50F780C2) デバイスによって、16 のデータおよび回

転子の幅で、4 乗算器 /2 加算器の複素数乗算器構造を使用するバッファ・バース

ト・データ・フロー・アーキテクチャによるパフォーマンスをリストします。

表 1-14 に、Stratix III (EP3SE50F780C2) デバイスによって、16 のデータおよび回

転子の幅で、4 乗算器 /2 加算器の複素数乗算器構造を使用するバースト・データ・

フロー・アーキテクチャによるリソース使用率をリストします。

表 1-13. バッファ・バースト・データ・フロー・アーキテクチャによるパフォーマンス—Stratix IIIデバイス

ポイント数

エンジン数(1) fMAX (MHz)

変換計算時間 (2)データ・ロード & 変

換計算

ブロック・スループット (3)

サイクル 時間 (s) サイクル 時間 (s) サイクル 時間 (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

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デバイス (1 / 2 )

ポイント数 s

エンジン・アーキテクチャ

エンジン数(2)

組み合わせ ALUT数

ロジック・レジスタ数

メモリ(ビット)

メモリ(M9K)

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月

Page 15: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

1. この MegaCoreファンクションについて 1–11パフォーマンスおよびリソース使用率

表 1-15 に、Stratix III(EP3SE50F780C2) デバイスによって、16 のデータおよび回転

子の幅で、4 乗算器 /2 加算器の複素数乗算器構造を使用するバースト・データ・フ

ロー・アーキテクチャによるパフォーマンスをリストします。

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-14. バースト・データ・フロー・アーキテクチャによるリソース使用率 —Stratix IIIデバイス (2 / 2 )

ポイント数 s

エンジン・アーキテクチャ

エンジン数(2)

組み合わせ ALUT数

ロジック・レジスタ数

メモリ(ビット)

メモリ(M9K)

18 × 18 ブロック

表 1-15. バースト・データ・フロー・アーキテクチャによるパフォーマンス—Stratix IIIデバイス

ポイント数

エンジン・アーキテクチャ

エンジン数 (1)

fMAX (MHz)

変換計算時間 (2)データ・ロード &

変換計算ブロック・スループット (3)

サイクル時間 (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 FFT MegaCore ファンクション・ユーザーガイド 2011 年 5 月

Page 16: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

1–12 1. この MegaCoreファンクションについてパフォーマンスおよびリソース使用率

Stratix IVデバイス表 1-16 に、Stratix IV (EP4SGX70DF29C2X) デバイスによって、幅 16 で 4 乗算器

/2 加算器を使用するストリーミング・データ・フローによるパフォーマンスを示し

ます。

表 1-17 に、Stratix IV (EP4SGX70DF29C2X) デバイス (EP3C16F484C6) によって、

幅 16(浮動小数点の場合は幅 32)で、順序入力およびビット反転出力を使用する可

変ストリーミング・データ・フローによるパフォーマンスを示します。

1 固定小数点表現による可変ストリーミングは自然なワード増加を使用するため、同

じポイント数を持つ対等なストリーミング FFT に比べて、乗算器要件がもっと厳し

いです。

M9K メモリ使用率を大幅に低減したい場合には、より低い fMAX ターゲットを設定しま

す。

表 1-18 に、Stratix IV (EP4SGX70DF29C2X) デバイスによって 16 のデータおよび回

転子の幅で、4 乗算器 /2 加算器の複素数乗算器構造を使用するバッファバースト・

データ・フロー・アーキテクチャによるリソース使用率をリストします。

表 1-16. ストリーミング・データ・フローによるパフォーマンス—Stratix IVデバイス

ポイント数

組み合わせALUT数

ロジック・レジスタ数

メモリ(ビット)

メモリ(M9K)

18 × 18 ブロック

fMAX (MHz)

クロック・サイクル・カウント

変換時間 (s)

256 2092 3714 39168 20 12 436 256 0.59

1024 2480 4458 155904 20 12 437 1024 2.34

4096 2356 4545 622848 76 12 419 4096 9.78

表 1-17. 可変ストリーミング・データ・フロー・エンジン・アーキテクチャによるパフォーマンス—Stratix IVデバイス

ポイント・タイプ

ポイント数

組み合わせALUT数

ロジック・レジスタ数

メモリ 18 × 18 ブロック

fMAX (MHz

)

クロック・サイクル・カウント

変換時間(s)ビット ALUT M9K

固定 256 2517 4096 10239 10 20 323 256 0.79 256

固定 1024 3489 5433 42218 15 28 329 1024 3.12 1024

固定 4096 4503 6936 170639 33 36 327 4096 12.52 4096

浮動 256 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 デバイス (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月

Page 17: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

1. この MegaCoreファンクションについて 1–13パフォーマンスおよびリソース使用率

表 1-19 に、Stratix IV (EP4SGX70DF29C2X) デバイスによって 16 のデータおよび回

転子の幅で、4 乗算器 /2 加算器の複素数乗算器構造を使用するバッファバースト・

データ・フロー・アーキテクチャによるパフォーマンスをリストします。

表 1-20 に、Stratix IV (EP4SGX70DF29C2X) デバイスによって 16 のデータおよび回

転子の幅で、4 乗算器 /2 加算器の複素数乗算器構造を使用するバースト・データ・

フロー・アーキテクチャによるリソース使用率をリストします。

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-18. バッファバースト・データ・フロー・アーキテクチャによるリソース使用率—Stratix IV デバイス (2 / 2 )

ポイント数

エンジン数(1)

組み合わせ ALUT数

ロジック・レジスタ数

メモリ(ビット)

メモリ(M9K)

18 × 18 ブロック

fMAX

(MHz)

表 1-19. バッファバースト・データ・フロー・アーキテクチャによるパフォーマンス—Stratix IVデバイス

ポイント数

エンジン数(1) fMAX (MHz)

変換計算時間 (2)データ・ロード & 変

換計算

ブロック・スループット (3)

サイクル 時間 (s) サイクル 時間 (s) サイクル 時間 (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

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)パルス間の最小サイクル数です。

Altera Corporation FFT MegaCore ファンクション・ユーザーガイド 2011 年 5 月

Page 18: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

1–14 1. この MegaCoreファンクションについてパフォーマンスおよびリソース使用率

表 1-21 に、Stratix IV (EP4SGX70DF29C2X) デバイスによって 16 のデータおよび回

転子の幅で、4 乗算器 /2 加算器の複素数乗算器構造を使用するバースト・データ・

フロー・アーキテクチャによるパフォーマンスをリストします。

表 1-20. バースト・データ・フロー・アーキテクチャによるリソース使用率—Stratix IVデバイス

ポイント数

エンジン・アーキテクチャ

エンジン数(2)

組み合わせ ALUT数

ロジック・レジスタ数

メモリ(ビット)

メモリ(M9K)

18 × 18 ブロック

256 クワッド出力 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 デバイス (1 / 2 )

ポイント数

エンジン・アーキテクチャ

エンジン数 (1)

fMAX (MHz)

変換計算時間 (2)データ・ロード &

変換計算ブロック・スループット (3)

サイクル

時間 (s) サイクル

時間 (s)

サイクル

時間 (s)

256 クワッド出力 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

256 シングル出力 1 407 1115 2.74 1371 3.37 1628 4.00

FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5月

Page 19: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

1. この MegaCoreファンクションについて 1–15インストールおよびライセンス

インストールおよびライセンス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> です。

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

4096 シングル出力 2 406 12329 30.35 16495 40.61 20605 50.73

表 1-21の注:(1) バースト I/O データ・フロー・アーキテクチャでは、FFT MegaWizard インタフェースで出力 FFT エンジンの数を特定する

ことができます。1 ~ 2 つのシングル出力エンジン、あるいは 1 つ、2 つ、または 4 つのクワッド出力エンジンをパラレルで選択できます。

(2) バッファバースト・データ・フロー・アーキテクチャでは、変換時間は N サンプル入力クロックがロードされるから 1 番目の出力サンプル(入力ブロックに応じて)が出力するまでの時間として定義されます。変換時間には、フル出力データ・ブロックをアンロードする時間が含まれていません。

(3) ブロック・スループットとは、連続的な 2 つの Start-Of-Packet(sink_sop)パルス間の最小サイクル数です。

表 1-21. バースト・データ・フロー・アーキテクチャによるパフォーマンス—Stratix IV デバイス (2 / 2 )

ポイント数

エンジン・アーキテクチャ

エンジン数 (1)

fMAX (MHz)

変換計算時間 (2)データ・ロード &

変換計算ブロック・スループット (3)

サイクル

時間 (s) サイクル

時間 (s)

サイクル

時間 (s)

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

libContains encrypted lower-level files.

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

<path>Installation directory.

alteraContains the Altera MegaCore IP Library.

commonContains shared components.fftContains the FFT MegaCore function files.

Altera Corporation FFT MegaCore ファンクション・ユーザーガイド 2011 年 5 月

Page 20: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

1–16 1. この MegaCoreファンクションについてインストールおよびライセンス

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月

Page 21: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

Altera Corporation2011 年 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 ファンクションのパレメータ設定」

を参照してください。

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

Page 22: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

2–2 2. 使用法MegaWizard Plug-In Managerフロー

4. MegaWizard インタフェースで Finish をクリックして、パラメータ設定を完了

し、FFT MegaCore ファンクション・バリエーションを生成します。生成された

ファイルについて詳しくは、10 ページの表 2-1 を参照してください。

5. FFT MegaCore ファンクション・バリエーションをモデル内ほかのブロックに接

続します。

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

レートします。

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

1 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月

Page 23: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

2. 使用法 2–3MegaWizard Plug-In Managerフロー

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 に、設定完了後

のウィザートを示します。

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

MegaCoreファンクションのパレメータ設定MegaCore ファンクションのパラメータを設定するには、次のステップに従います。

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

図 2-2. MegaCoreファンクションの選択

Altera Corporation FFT MegaCore ファンクション・ユーザーガイド 2011 年 5 月

Page 24: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

2–4 2. 使用法MegaWizard Plug-In Managerフロー

2. Target Device Family を変更しないでください。デバイス・ファミリは

Quartus II で指定された値に自動的に設定されており、IP Toolbench でこの値を変

更すると、MegaCore ファンクションのバリエーションで生成される HDL が不

適切なものになることがあります ( 図 2-4)。

図 2-3. IP Toolbench—パラメータ設定

図 2-4. Parametersのタブ

FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5月

Page 25: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

2. 使用法 2–5MegaWizard Plug-In Managerフロー

3. Transform length(変換長)、Data precision(データ精度)、および Twiddle precision(回転子精度)の値を選択します。

1 回転子の係数精度は、データ精度以下でなければなりません。

4. Architecture タブをクリックします ( 図 2-5)。

5. FFT Engine Architecture(FFT エンジン・アーキテクチャ)、 Number of Parallel FFT Engines(パラレル FFT エンジンの数)、 および I/O data flow(I/Oデータ・フロー)を選択します。

Streaming の I/O データ・フローを選択すると、必要なスループットを得るため

に FFT MegaCore ファンクションは自動的にクワッド出力 FFT エンジン・アー

キテクチャおよび最小のパラレル FFT エンジン数でデザインを生成します。

図 2-5. Architectureのタブ

Altera Corporation FFT MegaCore ファンクション・ユーザーガイド 2011 年 5 月

Page 26: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

2–6 2. 使用法MegaWizard Plug-In Managerフロー

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月

Page 27: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

2. 使用法 2–7MegaWizard Plug-In Managerフロー

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 複素数乗算器実装オプションの Structureおよび Implement Multipliers in

は、可変ストリーミング・アーキテクチャでは使用できません。複素数乗

算器実装オプションの DSP Resource Optimization は Stratix V デバイス

にのみ使用できます。

図 2-6. Implementation Options タブ

Altera Corporation FFT MegaCore ファンクション・ユーザーガイド 2011 年 5 月

Page 28: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

2–8 2. 使用法MegaWizard Plug-In Managerフロー

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月

Page 29: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

2. 使用法 2–9MegaWizard Plug-In Managerフロー

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 をクリックします。

MegaCoreファンクションの生成MegaCore ファンクションを生成するには、以下のステップを実行します。

1. IP Toolbench の Step 3: Generate をクリックします(4 ページの図 2-3 を参照)。

ファイル生成フェーズを完了するには、数分かかる場合があります。生成作業の

進行状況はレポート・ウィンドウに表示されます。

図 2-8 に、生成レポートを示します。

図 2-7. シミュレーション・モデルの生成

Altera Corporation FFT MegaCore ファンクション・ユーザーガイド 2011 年 5 月

Page 30: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

2–10 2. 使用法MegaWizard Plug-In Managerフロー

表 2-1 に、プロジェクト・ディレクトリに生成されるファイルを示します。 IP Toolbench レポートに指定されるファイルの名前とタイプは、デザインを VHDL ま

たは Verilog HDL のいずれで作成したかによって異なります。

図 2-8. 生成レポート

表 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月

Page 31: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

2. 使用法 2–11MegaWizard Plug-In Managerフロー

2. 生成レポートを表示した後、Exit をクリックして IP Toolbench を閉じます。 Quartus II IP Files プロンプトで Yes をクリックして、カスタム MegaCore ファン

クションを記述する .qip ファイルを現在のプロジェクトに追加します。

<variation name>.vhd、<variation name>.v

カスタム MegaCore ファンクションの VHDL または Verilog HDL トップレベルの記述を定義する MegaCore ファンクション・バリエーション・ファイルです。 デザイン内部のこのファイルによって定義されたエンティティをインスタンスします。 Quartus II ソフトウェアでのデザインのコンパイル時にこのファイルがインクルードされます。

<variation name>_bit_reverse_top.vhd

ビット反転モジュールを持つトップレベル VHDL デザインの例です(可変ストリーミング FFT エンジンのみモード)。このファイルは、ビット反転が MegaCore アーキテクチャにも応用できることを示します。例えば、ビット反転動作はほかのユーザーの指定動作と組み合わせることが可能とも言えます

<variation name>_1n1024cos.hex,<variation name>_2n1024cos.hex,<variation name>_3n1024cos.hex

インテル 16 進フォーマットの ROM 初期化ファイルです ( 可変ストリーミング FFT に対しては生成されていません)。

<variation name>_1n1024sin.hex,<variation name>_2n1024sin.hex,<variation name>_3n1024sin.hex

インテル 16 進フォーマットの ROM 初期化ファイルです ( 可変ストリーミング FFT に対しては生成されていません)。

<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 、

<variation name>_tb.vhd

Verilog HDL または VHDL テストベンチ・ファイル。

<variation name>_nativelink.tcl Quartus II ソフトウェアにおいて NativeLink をセットアップして、デザインが選択される EDA ツールを使用するようネイティブにシミュレートする Tcl スクリプトです。14ページの「NativeLink を使用したサードパーティ・シミュレーション・ツールによるシミュレーション」を参照してください。

<variation name>_twr1_opt.hex、<variation name>_twi1_opt.hex、 <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

インテル 16 進フォーマットの ROM 初期化ファイルです ( 可変ストリーミング FFT に対しては生成されていません)。

表 2-1の注:(1) これらのファイルはバリエーションに依存し、一部のファイルは生成されないか名前が異なる場合があります。

(2) <variation name> は、IP Toolbench によって自動的に供給されるバリエーション名です。

表 2-1. 生成されるファイル (2 / 2 ) ( 注 1) & (2)

ファイル名 説明

Altera Corporation FFT MegaCore ファンクション・ユーザーガイド 2011 年 5 月

Page 32: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

2–12 2. 使用法デザインのシミュレーション

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月

Page 33: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

2. 使用法 2–13デザインのシミュレーション

N=2048;INVERSE = 0; % 0 => FFT 1=> IFFTx = (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=> IFFTx = (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 FFT MegaCore ファンクション・ユーザーガイド 2011 年 5 月

Page 34: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

2–14 2. 使用法デザインのシミュレーション

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);

elsey=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月

Page 35: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

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 FFT MegaCore ファンクション・ユーザーガイド 2011 年 5 月

Page 36: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

2–16 2. 使用法デバイスのプログラミング

可変ストリーミング・アーキテクチャ可変ストリーミング・アーキテクチャのデザインをコンパイルするには、以下のス

テップを実行します。

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月

Page 37: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

Altera Corporation2011 年 5 月

3. 機能の説明

長さ N の離散フーリエ変換は、N 個の均等に単位円上に分散されるポイントにおけ

る離散した時間系列(ωk= 2πk/N )でサンプリングされるフーリエ変換を算出しま

す。

次の式には、シーケンス x(n) の長さ N の正 DFT を示します。

k = 0、1、 ... N – 1

次の式には、長さ N の逆 DFT を示します。

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)アーキテクチャを使用します。ブ

ロック浮動小数点アーキテクチャは固定小数点アーキテクチャおよび全浮動小数点

アーキテクチャの間の妥協点です。

X k x n ej2nk– N

n 0=

N 1–

=

x n 1 N X k ej2nk N

k 0=

N 1–

=

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

Page 38: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

3–2 3. 機能の説明可変ストリーミング・アーキテクチャ

固定小数点アーキテクチャでは、変換計算を通してすべての中間値を的確に表現す

るために、データ精度が十分でなければなりません。大きな 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月

Page 39: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

3. 機能の説明 3–3Avalon Streamingインタフェース

浮動小数点の内部データ表示は単一浮動小数点(32 ビット、IEEE 754)です。浮動

小数点演算はより正確な計算結果を提供しますが、相当なハードウェア・リソース

を占用します。浮動小数点の演算に必要なロジック量を低減するために、可変スト

リーミング FFT は「融合した」カーネルを使用します。ロジックの減少は、複数の

浮動小数点演算を融合して必要な規格化の回数を低減することによって実現されま

す。

FFT が生成した入力および出力の順序を選択することができます。表 3-1 に、入力お

よび出力順序のオプションを示します。

一部のアプリケーションには、FFT >ユーザー操作> IFFT のチェインが必要です。

この場合、入力順序および出力順序を慎重に選択することで、大幅なメモリおよび

レイテンシの節約が実現できます。1 番目の FFT への入力が自然順序で、その出力

がビット反転した順序である例を考えてみましょう(FFT はエンジンのみモードで

動作する)。 この例では、IFFT 動作がビット反転した入力を受け入れ、自然順序の出

力を生成するようにコンフィギュレーションされる場合(IFFT はエンジンのみモー

ドで動作する)、最少量のメモリのみが必要です。これで、N の複素メモリ・ワード

および N のクロック・サイクルのレイテンシが節約できます(N は現在の変換のサ

イズ)。

Avalon Streamingインタフェース Avalon-ST インタフェースは、ソース・インタフェースからシンク・インタフェース

へのデータ転送に対して標準的な柔軟性の高いモジュラ式プロトコルを定義してお

り、データパスにおけるデータ・フローのコントロール・プロセスを簡略化します。

Avalon-ST インタフェース信号は、チャネルやパケット境界の概念のない従来の単一

データ・ストリームをサポートします。 このようなインタフェースは通常、data、ready、および valid信号から構成されます。Avalon-ST インタフェースはより複雑

なプロトコルに対してバーストおよびパケット転送をサポートします。

Avalon-ST インタフェース信号はマルチ・チャネルのデザインを本質的に同期させ

て、複雑なロジック・コントロールを実装せずに、効率的かつ時分割の実装を実現

します。

表 3-1. 入力 & 出力順序のオプション

入力順序 出力順序 モード 備考

自然 ビット反転 エンジンのみ

必要なメモリおよびレイテンシは最少です。

ビット反転 自然

DC 中心 ビット反転

自然 自然 エンジンおよびビット反転したエンジン

出力において、追加の N 複素メモリ・ワードおよび追加の N クロック・サイクル・レイテンシが必要です(N は変換のサイズ)。

ビット反転 ビット反転

DC 中心 自然

Altera Corporation FFT MegaCore ファンクション・ユーザーガイド 2011 年 5 月

Page 40: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

3–4 3. 機能の説明FFTプロセッサ・エンジン・アーキテクチャ

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月

Page 41: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

3. 機能の説明 3–5FFTプロセッサ・エンジン・アーキテクチャ

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エンジン

ROM0

FFT Engine H[k,0]

H[k,1]

H[k,2]

H[k,3]

G[k,0]

G[k,1]

G[k,2]

G[k,3]

x[k,0]

x[k,1]

x[k,2]

x[k,3]

-j-1

j-1

-1

j-1

-j

RAMA1

RAMA0

RAMA2

RAMA3

BFPU

BFPU

BFPU

BFPU

SW SW

RAMA1

RAMA0

RAMA2

RAMA3

ROM1

ROM2

Altera Corporation FFT MegaCore ファンクション・ユーザーガイド 2011 年 5 月

Page 42: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

3–6 3. 機能の説明I/O データ・フロー・アーキテクチャ

複素データ・サンプル x[k,m] は、メモリからパラレルに読み出され、スイッチに再

配列されます。 次に、順序付けられたサンプルは radix-4 バタフライ・プロセッサに

処理されて複素出力 G[k,m] を形成します。 radix-4 DIF 分解の固有の計算により、バ

タフライ・プロセッサの出力における 3 つの重要な回転子係数乗算を実行するには、

3 個の複素数乗算器のみが必要です。 サンプルの最大ダイナミック・レンジを判別す

るために、4 つの出力はブロック浮動小数点ユニット(BFPU)にパラレルに評価さ

れます。 内部メモリに書き込まれる前に、適当な LSB は捨てられ、複素値は四捨五

入されて再配列されます。

シングル出力 FFT エンジン・アーキテクチャ最小サイズの FFT ファクションを求めるアプリケーションにとって、シングル出力

エンジンは最適です。再び、シングル割出力という用語は、内部 FFT バタフライ・

プロセッサのスループットを指します。エンジン・アーキテクチャでは、シングル・

バタフライ出力はクロック・サイクルごとに計算され、 1 つのシングル複素数乗算器

を必用とします(6 ページの図 3-2)

I/Oデータ・フロー・アーキテクチャこの項では、FFT MegaCore ファンクションにサポートされる次の I/O データ・フ

ロー・アーキテクチャのオプションについて説明します。

■ ストリーミング

■ 可変ストリーミング

■ バッファバースト

■ バースト

f IP Toolbench におけるアーキテクチャのパラメータの設定について詳しくは、3 ペー

ジの「MegaCore ファンクションのパレメータ設定」を参照してください。

図 3-2. シングル出力 FFT エンジン・アーキテクチャ

H[k,m]

G[k,0]

G[k,1]

G[k,2]

G[k,3]

x[k,0]

x[k,1]

x[k,2]

x[k,3]

-j-1

j

-1

-1

j-1

-j

RAM RAM

ROM

FFT Engine

BFPU

FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5月

Page 43: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

3. 機能の説明 3–7I/Oデータ・フロー・アーキテクチャ

ストリーミングストリーミング 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-4 に、入力フロー・コントロールを示します。最後のサンプルがロードされた

とき、ソースは最後のデータ転送に対して sink_eop および sink_validをアサー

トします。

図 3-3. FFT ストリーミング・データ・フロー・アーキテクチャのシミュレーション波形

clkreset_n

sink_validsink_ready

sink_sopsink_eop

inversesink_real

sink_imagsource_real

source_imagsource_exp

source_readysource_validsource_sopsource_eop

EXP0 EXP1 EXP2 EXP3

Altera Corporation FFT MegaCore ファンクション・ユーザーガイド 2011 年 5 月

Page 44: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

3–8 3. 機能の説明I/O データ・フロー・アーキテクチャ

ブロックごとに方向を変換するには、sink_sop パルス(ブロックの最初の入力と

同時に)の使用と共に inverseをアサートまたはディアサートします(適切に)。

FFT が入力ブロックの変換を完了したとき、FFT は source_valid をアサートして複素

変換ドメイン・データ・ブロックを自然順序で出力します。FFT ファンクションは

source_sop をアサートして最初の出力サンプルを示します。図 3-5 に、出力フ

ロー・コントロールを示します。

N データ転送の後、source_eop がアサートされて出力データ・ブロックの末端を

示します(7 ページの図 3-3)。

ストリーミング FFTのイネーブルsource_validのアサート(および有効なデータ出力)のために、sink_valid信

号はアサートされる必要があります。 データの最後のフレームを FFT から抽出する

には、sink_valid信号がアサートされるいくつかのフレームを提供し、

Avalon-ST 仕様に従って sink_sop および sink_eop 信号を適用する必要がありま

す。

可変ストリーミング可変ストリーミング・アーキテクチャは、入力データの連続ストリーミングおよび

ストリーミング・アーキテクチャに似てる出力データの連続的なストリームの生成

を可能にします。

図 3-4. FFTストリーミング・データ・フロー・アーキテクチャの入力・フロー・コントロール

clkreset_n

sink_validsink_ready

sink_sopinverse

sink_realsink_imag

xr(0) xr(1) xr(2) xr(3) xr(4) xr(5) xr(6) xr(7)

xi(0) xi(1) xi(2) xi(3) xi(4) xi(5) xi(6) xi(7)

図 3-5. FFTストリーミング・データ・フロー・アーキテクチャの出力フロー・コントロール

clksource_real

source_imagexponent_outsource_readysource_validsource_sopsource_eop

Xr[0] Xr[1] Xr[2] Xr[3] Xr[5] Xr[6] Xr[7] Xr[8] Xr[10] Xr[11] Xr[12]Xr[9]

Xi[0] Xi[1] Xi[2] Xi[3] Xi[5] Xi[6] Xi[7] Xi[8] Xi[11] Xi[12]

EXP0

Xi[4] Xi[9]

Xr[4]

Xi[10]

FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5月

Page 45: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

3. 機能の説明 3–9I/Oデータ・フロー・アーキテクチャ

ブロック・サイズの変換sink_sopパルス(ブロックの最初の入力データ・サンプルと同時に)の使用と共に fftptsの値を変えることで、ブロックごと FFT のサイズを変更することができま

す。fftpts は 2 進法表示使用して変換のサイズを表示するため、ブロックの最大

の変換サイズは 1,024 です。 表 3-2 に、fftpts 信号および対等の変換サイズを示し

ます。

ブロックごとに方向を変換するには、sink_sop パルス(ブロックの最初の入力と

同時に)の使用と共に inverseをアサートまたはディアサートします(適切に)。

FFT が入力ブロックの変換を完了したとき、FFT は source_valid をアサートして複素

変換ドメイン・データ・ブロックを自然順序で出力します。FFT ファンクションは

source_sop をアサートして最初の出力サンプルを示します。出力データの順序は

IP Toolbench で選択された出力順序に応じて異なります。FFT の出力は自然順序また

はビット反転した順序である可能性があります。図 3-6 に、出力順序がビット反転

したときの出力フロー・コントロールを示します。出力順序が自然順序の場合、

データ・フロー・コントロールは変更しないが、出力におけるサンプルの順序は

1..N という順序になります。

可変ストリーミング FFTのイネーブルFFT は、有効データがモジュールに転送される(sink_validがアサートされる)

ときにデータを処理します。 図 3-7 に、sink_validがディアサートされるとき、

FFT の動作を示します。

表 3-2. fftpts および変換サイズ

fftpts 変換サイズ10000000000 1,024

01000000000 512

00100000000 256

00010000000 128

00001000000 64

図 3-6. 出力フロー・コントロール—ビット反転した順序

clock

source_sop

source_eop

source_valid

source_ready

source_real

source_imag

x0 x512 x256 x768 x128 x640 x384 x896

x0 x512 x256 x768 x128 x640 x384 x896

x1023

x1023

Altera Corporation FFT MegaCore ファンクション・ユーザーガイド 2011 年 5 月

Page 46: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

3–10 3. 機能の説明I/O データ・フロー・アーキテクチャ

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-7. sink_validがアサートされるときの FFTの動作

Clock

Frame 1 Frame 2

Input Data

The input data stops,but the output continues

Output Data

sink_valid

source_valid

When the FFT is stopped withina frame, the output pauses

図 3-8. FFTサイズのダイナミックな変換

clock

reset_n

sink_valid

sink_ready

sink_sop

sink_eop

inverse

sink_real

sink_imag

source_real

source_imag

source_ready

source_valid

source_sop

source_eop

fftps

FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5月

Page 47: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

3. 機能の説明 3–11I/Oデータ・フロー・アーキテクチャ

I/O順序による影響サンプルが FFT に出入りする順序はウィザードの I/O order パネルの下の

Architecture タブでの選択によって決められます。また、この選択は FFT がエンジ

ンのみモードまたはビット反転 / 桁反転したエンジン・モードのどちらで動作するか

も決定します。

FFT がエンジンのみモードで動作する場合、出力データは最初のサンプルが FFT に入

力した後の約 N + のレイテンシ・クロック・サイクルの後で使用できます。レイテ

ンシは、FFT コア全体における小さなレイテンシを表示し、変換サイズに依存しま

す。 ビット反転したモードの場合、出力は約 2N + のレイテンシ・サイクルの後で使

用できます。

図 3-9 に、FFT がエンジンのみモードで動作する時のデータ・フロー出力を示しま

す。

図 3-10 に、ビット反転モードまたは桁反転モードで動作するエンジンのデータ・フ

ロー出力を示します。

バッファバーストバッファバースト I/O データ・フロー・アーキテクチャ FFT は、ストリーミング I/Oデータ・フロー・アーキテクチャより少ないメモリ・リソースを必要としますが、

その代償は平均ブロック・スループットの減少です。

図 3-9. データ・フロー—エンジンのみモード

図 3-10. データ・フロー—ビット反転 /桁反転したエンジン・モード

clkreset_n

sink_validsink_ready

sink_sopsink_eopsink_real

sink_imagsource_real

source_imagsource_validsource_sopsource_eop

clkreset_n

sink_validsink_ready

sink_sopsink_eopsink_real

sink_imagsource_real

source_imagsource_validsource_sopsource_eop

Altera Corporation FFT MegaCore ファンクション・ユーザーガイド 2011 年 5 月

Page 48: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

3–12 3. 機能の説明I/O データ・フロー・アーキテクチャ

12 ページの図 3-11 に、シミュレーション波形の例を示します。

システム・リセットのディアサーションの後、データ・ソースは 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サイクルでサンプルを転送することは強制ではありません。

FFT プロセッサが内部入力バッファから入力サンプルを読み出す時間が進むと、

sink_readyを再びアサートして、次の入力ブロックを読み出せること示します。

次の入力ブロックの開始は、次のブロックの最初の入力サンプルに同調する

sink_sopパルスによって区切られるべきです。

図 3-11. FFTバッファバースト・データ・フロー・アーキテクチャのシミュレーション波形

clkreset_n

sink_vaildsink_ready

sink_sopsink_eop

inversesink_real

sink_imagsource_real

source_imagsource_exp

source_readysource_validsource_sopsource_eop

-13609 -47729 271 31221 -21224

-13609 -47729 271 31221 -21224

EXP3EXP2EXP1EXP0

図 3-12. FFTバッファバースト・データ・フロー・アーキテクチャの入力フロー・コントロール

clkreset_n

sink_validsink_ready

sink_sopinverse

sink_realsink_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 MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5月

Page 49: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

3. 機能の説明 3–13I/Oデータ・フロー・アーキテクチャ

すべてのデータ・フロー・アーキテクチャと同様、特定のブロックの反転のロジッ

ク・レベルは sink_sop(start-of-packet)信号のアサーション時に FFT ファンク

ションに登録されます。

FFT が入力ブロックの変換を完了した時、source_validをアサートして、複素変

換ドメイン・データ・ブロックを自然順序で出力します(図 3-13)。

信号 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 の両側のスレーブ・シンクに示します。

図 3-13. FFTバッファバースト・データ・フロー・アーキテクチャの出力フロー・コントロール

clksource_realtsource_imag

source_expsource_ready

master_source_validsource_sopsource_eop

EXP0

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]

Altera Corporation FFT MegaCore ファンクション・ユーザーガイド 2011 年 5 月

Page 50: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

3–14 3. 機能の説明パラメータ

バースト I/O データ・フロー・アーキテクチャでは、コアが 1 入力のブロックのみ

を処理できます。ブロックのシンクでは小容量 FIFO バッファがあり、このバッファ

がいっぱいになるまで sink_readyはディアサートされません。その故、次の入力

ブロックと関連している少量の追加入力サンプルを提供することができます。

sink_readyサイクルにおいてFFTにデータを提供することは強制ではありません。 バースト・アーキテクチャは、その前の変換が完全にアンロードされた時にのみ次

の FFT フレームをロードできます。

f ブッファ付バースト FFT のイネーブルについて詳しくは、8 ページの「ストリーミン

グ FFT のイネーブル」を参照してください。

パラメータ表 3-3 に、FFT MegaCore ファンクションのパラメータを示します。

図 3-14. FFTバースト・データ・フロー・アーキテクチャのシミュレーション波形

-47729 271

-47729 271

EXP0 EXP1 EXP2

clkreset_n

sink_validsink_ready

sink_sopsink_eop

inversesink_real

sink_imagsource_real

source_imagsource_exp

source_readysource_validsource_sopsource_eop

FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5月

Page 51: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

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、4096、8192、16384、32786 または65536。可変ストリーミングでは 16、32、131072 および262144 も使用可能

変換の長さです。可変ストリーミングの場合、この値は最大 FFT 長です。

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 エンジン・アーキテクチャ)

クワッド出力、シングル出力

バッファバーストおよびバースト I/O データ・フロー・アーキテクチャでは、1 つ、2 つまたは 4 つのパラレルに動作するクワッド出力エンジンのいずれかを選択することができます。あるいは、シングル出力エンジン・アーキテクチャを選択した場合、1 つまたは 2 つのパラレル・エンジンを実装することを選択できます。複数のパラレル・エンジンはデバイス・リソースを犠牲にして FFT MegaCore ファンクションの変換時間を短縮することができます。これで、希望のエリアおよびスループットのトレードオフ・ポイントの選択が可能になります。

デバイス・リソースおよび変換時間のトレードオフについて詳しくは、14 ページの「パラメータ」を参照してください。可変ストリーミングまたはストリーミング・アーキテクチャでは使用できません。

Number of Parallel FFT Engines

(パラレル FFT エンジンの数)

1、2、4

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 FFT MegaCore ファンクション・ユーザーガイド 2011 年 5 月

Page 52: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

3–16 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(Stratix V)(DSP リソースの最適化)(Stratix V)

On または Off このオプションはすべてのアーキテクチャおよび表現に対して、Straitx V デバイスで使用できます。このオプションをオンにして、Stratix V DSP ブロックの複素数 18 x 25 乗算モードまたは複素数 27 x 27 乗算モードによって複素数乗算器構造を実装することで、DSP リソースの利用率を向上させます。

ただし、速度が低下する可能性があります。浮動小数点表現を使用する可変ストリーミング・アーキテクチャでは、このオプションは Stratix V DSP ブロック複素数 27 x 27 蒸散モードによって複素数乗算器構造を実装します。ただし、精度が低下する可能性があります。

Global clock enable(グローバル・クロック・イネーブル)

オンまたはオフ デザインにグローバル・クロック・イネーブルを追加する場合にはオンにします。

表 3-3. パラメータ (2 / 3 )

パラメータ 値 説明

FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5月

Page 53: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

3. 機能の説明 3–17信号

信号表 3-4 に、Avalon-ST インタフェースの信号を示します。

f Avalon-ST インタフェースについて詳しくは、 「Avalon Interface Specification」を参

照してください。

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-3. パラメータ (3 / 3 )

パラメータ 値 説明

Altera Corporation FFT MegaCore ファンクション・ユーザーガイド 2011 年 5 月

Page 54: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

3–18 3. 機能の説明信号

表 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 受信 FFT フレームの開始を示します。

sink_valid 入力 valid 1 データ・バスにおけるデータが有効になるときにアサートされます。 sink_validおよび sink_readyがアサートされると、データ転送が行われます。9ページの「可変ストリーミング FFT のイネーブル」を参照してください。

source_eop 出力 endofpacket 1 発信 FFT フレームの終了を示します。source_validがアサートされるときにのみ有効です。

source_error 出力 error 2 上流モジュールまたは FFT モジュール内(FFT で生成されるエラーを持つ sink_errorの論理和)にエラーが発生することを示します。エラー・コードについては表 3-6 を参照してください。

FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5月

Page 55: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

3. 機能の説明 3–19信号

表 3-5 に、 コンポーネント特有の信号を示します。

source_exp 出力 data 6 ストリーミング、バースト、およびバッファバーストアーキテクチャのみです。符号付きブロック指数:FFT の計算時に内部信号の値をスケーリングするアカウントです。

source_imag 出力 data (データ精度の幅+成長) (1)

虚数の出力データです。バースト、バッファバースト、ストリーミング、および可変ストリーミング浮動小数点 FFT の場合、出力データ幅は入力データ幅と同じです。可変ストリーミング固定小数点 FFT の場合、出力データのサイズは FFT に対して定義されるステージの数に依存し、radix 22 ステージにつき 2 ビットです。

source_ready 入力 ready 1 下流モジュールがデータを受信できるときにアサートされます。

source_real 出力 data (データ精度の幅+成長) (1)

実数の出力データです。バースト、バッファバースト、ストリーミング、および可変ストリーミング浮動少数点数 FFT の場合、出力データ幅は入力データ幅と同じです。可変ストリーミング固定小数点 FFT の場合、出力データのサイズは FFT に対して定義されるステージの数に依存し、radix 22 ステージにつき 2 ビットです。

source_sop 出力 startofpacket 1 発信 FFT フレームの開始を示します。source_validがアサートされるときにのみ有効です。

source_valid 出力 valid 1 出力への有効データが存在するときに FFTによりアサートされます。

表 3-4の注:(1) 可変ストリーミング固定小数点 FFT のみです。成長率は 2.5 × ( ステージの数 ) = 2.5 × (log4(MAX(fftpts)) です。

表 3-4. Avalon-ST 信号 (2 / 2 )

信号名 方向Avalon-ST タイ

プ サイズ 説明

表 3-5. コンポーネント特有の信号

信号名 方向 サイズ 説明fftpts_in 入力 log2(ポイントの

最大数 )この FFT フレーム内のポイントの数です。この値が特定されないと、FFT は可変長になっていません。 デフォルトの動作は、FFT を最大ポイント数の長さに固定することです。SOP にのみサンプルされます。

fftpts_out 出力 log2(ポイントの最大数 )

Avalon-ST ソース・インタフェースに同期されたこの FFT フレーム内のポイントの数です。可変ストリーミング・データのみです。

inverse 入力 1 アサートされると、算出されたを反転します。SOP にのみサンプルされます。

clk_ena 入力 1 アクティブ High グローバル・クロック・イネーブル入力です。ディアサートされると、FFT はディセーブルされます。

Altera Corporation FFT MegaCore ファンクション・ユーザーガイド 2011 年 5 月

Page 56: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

3–20 3. 機能の説明信号

シンク・インタフェースにおいて 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月

Page 57: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

Altera Corporation2011 年 5 月

A. ブロック浮動小数点スケーリング

はじめにFFT MegaCore ファンクションは、内部でブロック浮動小数点(BFP)演算を使用

して計算を実行します。 BFP アーキテクチャは、固定小数点とフル浮動小数点アー

キテクチャ間のトレードオフです。

浮動小数点演算を使用する FFT 演算器と異なり、ブロック浮動小数点 FFT 演算器に

はデータの指数部入力はありません。共通のスケーリング係数を持った整数として

データを表現しています。共通のスケーリング係数を持った整数としてデータを表

現しています。 FFT の各ステージの後、最大出力値が検出され、精度を向上させる

ために中間結果がスケーリングされます。 指数(exponent)は、スケーリングの実

行に使用された右シフトまたは左シフト量を記録します。 よって、コアの出力に以下

のスケーリングを行うことにより、最終的な FFT 演算結果が得られます。

output*2-exponent

例えば、 exponent = –3 の場合、入力サンプルが右に 3 ビット シフトされ、そのた

め出力の大きさは output*23 です。

ブロック浮動小数点FFT コアにある radix-2 または radix-4 エンジンを経由するパスごとに、 加算および乗

算の演算により、データ・ビット幅が成長していきます。 つまり、FFT 演算による

データ・ビット幅はパスの数に比例して増加します。FFT/IFFT 計算のパス数はポイ

ント数の対数に依存します。 ページ 2 の表 A-1 に、対応するビット増加の可能な指数

を示します。

固定小数点アーキテクチャ FFT は、高いダイナミック・レンジを表示する大きな

ビット幅を対応するために、膨大な乗算器およびメモリ・ブロックを必要とします。

浮動小数点は算数演算に強いですが、その代わりに、デザインは浮動小数点乗算器

および浮動小数点加算器などより複雑なデザインになります。 BFP 演算は浮動小数

点演算および固定小数点演算の長所を兼ね備えます。BFP 演算は、 ハードウェア実

装において同数のビットを持つ浮動小数点演算および固定小数点演算に比べて、よ

り良い信号対ノイズ比(SNR)およびダイナミック・レンジを提供します。

ブロック浮動小数点アーキテクチャ FFT において、各パスの radix-2 または radix-4計算は同じハードウェアを共用し、データがメモリから読み出され、コア・エンジ

ンを経由して、そしてメモリに書き込まれます。次のパスに入る前に、加算および

乗算の作業からのキャリー・アウト・ビットがある場合、各データ・サンプルは右

にシフトされます(スケーリングと呼ばれる動作)。シフトされるビットの数は、

データ・サンプルおよび前のステージから検出された最大データ・サンプルの間の

データ増加の差に基づきます。最大ビット増加は指数レジスタに記録されます。こ

れにより、各データ・サンプルはすべて同じ指数値およびデータ・ビット幅を持ち、

次のコア・エンジンに入ります。 ビット増加に対応するためにより大きなエンジンを

必要とせず、同じコア・エンジンを再利用できます。

出力 SNR は、発生する右シフトのビット数および基数コア計算のステージに応じて

異なります。つまり、信号対ノイズ比は入力データに依存し、SNR を計算するには

入力信号が分かっている必要があります。

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

Page 58: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

A–2 付録 A. :ブロック浮動小数点スケーリング可能な指数値の計算

可能な指数値の計算FFT/IFFT の長さに応じて、基数エンジンを通過するパス数が計算でき、それによっ

て指数の範囲も計算できます。可能な指数の範囲は、以下の式によって算出されま

す。

P = ceil{log4N}、 ここで N は変換長

log2N が偶数のとき R = 0、それ以外の場合 R = 1

シングル出力の出力範囲 = (–3P+R、 P+R–4)

クワッド出力の出力範囲 = (–3P+R+1、P+R–7)

これらの式は、表 A-1 に示す値に変換されます。

スケーリングの実装スケーリング・アルゴリズムを実装するには、次のステップに従ってください。

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. フル・スケール・レジスタ内で符号拡張を行います。

表 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 の値は、データがシフトされるべき回数を示します。負の値は左シフト、正の値は右シフトを示します。

FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5月

Page 59: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

付録 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};

end6'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};

end6'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 FFT MegaCore ファンクション・ユーザーガイド 2011 年 5 月

Page 60: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

A–4 付録 A. :ブロック浮動小数点スケーリングIFFT+FFT ペアでのユニティ・ゲインの達成

IFFT+FFT ペアでのユニティ・ゲインの達成浮動小数点演算など、精度が十分高い場合には、IFFT と FFT をカスケード接続した

場合、理論的にはユニティ・ゲイン(ゲイン 1)となります。ただし、BFP 演算で

は、ユニティ・ゲインを達成するために、IFFT/FFT ブロックの exponent 値に特に

注意する必要があります。この項では、BFP 演算を使用してアルテラの IFFT/FFT MegaCore ペアからユニティ・ゲイン出力を得るために必要な手順を説明します。

BFP 演算部は exponent 入力を持たないため、直後に FFT ブロックに出力を供給して

いる場合、IFFT ブロックからの exponent 値を追跡し、補正した後、最後に N で除

算して元の信号を復元します。

ページ 5 の図 A-2 に、IFFT および FFT の動作とユニティ・ゲインを達成するための

式を導出します。

図 A-1. 入力データ・サンプル =0x5000 のスケーリング

FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5月

Page 61: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

付録 A. :ブロック浮動小数点スケーリング A–5IFFT+FFT ペアでのユニティ・ゲインの達成

説明

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 詳しくは、www.altera.co.jp の「DSP Design Examples」での「Achieving Unity Gain in Block Floating Point IFFT+FFT Pair」 のデザイン例を参照してください。

図 A-2. IFFT/FFT ペアのユニティ・ゲインの達成

IFFT

x0 X0 = IFFT(x0)

= N

1× IFFTa(x0)

= N

1× data1 × 2–exp1

FFT

x0 = FFT(X0)

= FFT(N

1 × data1 × 2–exp1)

= N

1× 2–exp1× FFTa(data1)

= N

1× 2–exp1× data2 × 2–exp2

= N

1× 2 –exp2–exp1 × data2

Altera Corporation FFT MegaCore ファンクション・ユーザーガイド 2011 年 5 月

Page 62: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

A–6 付録 A. :ブロック浮動小数点スケーリングIFFT+FFT ペアでのユニティ・ゲインの達成

FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2011 年 5月

Page 63: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

Altera Corporation2009 年 11 月

追加情報

改訂履歴以下の表に、このユーザーガイドの改訂履歴を示します。

日付 バージョン 変更内容

2011 年 5 月 11.0 ■ Stratix V デバイスにおける DSP リソースの最適化のためのユーザー制御のパラメータを追加

■ Arria II GX、Arria II GZ、Cyclone III LS、および Cyclone IV デバイスに対して最終サポートにアップグレード

■ HardCopy III、HardCopy IV E、および HardCopy IV GX デバイスに対してHardcopy コンパイル・サポートにアップグレード

2010 年 12 月 10.1 ■ Arria II GZ デバイスに対して暫定サポートを追加

■ Stratix IV FT デバイスのサポート・レベルを最終サポートに更新

2010 年 7 月 10.0 ■ Stratix V デバイスに対して暫定サポートを追加

■ 新しい変換長の値を追加

2009 年 11 月 9.1 ■ メンテナンス更新

■ 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 の動作の説明を変更

2007 年 10 月 7.2 ■ タイミング図を修正

■ 単精度浮動小数点データ表示の情報を追加

2007 年 5 月 7.1 ■ Arria GX デバイスのサポートを追加

■ 新たに生成されたファイルを追加

2006 年 12 月 7.0 Cyclone III デバイスのサポートを追加

2006 年 12 月 6.1 ■ インタフェースの情報を変更

■ 可変ストリーミングの情報を追加

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

Page 64: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド 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 月

Page 65: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

追加情報 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 FFT MegaCore ファンクション・ユーザーガイド 2009 年 11 月

Page 66: FFT MegaCore ファンクション・ユーザーガイド101 Innovation Drive San Jose, CA 95134 FFT MegaCore ファンクション ユーザーガイド MegaCore バージョン:

Info–4 追加情報表記規則

FFT MegaCore ファンクション・ユーザーガイド Altera Corporation 2009 年 11 月