論理回路デザイン
ArchiTek home page
目的

実装方式の比較と選択

制御のポイント

回路デザイン > 設計例 [FFT] > 目的・考え方    次のページ(実装にあたって)   このページのTOP ▲

[1]
CPUと専用ハードウェアの性能が同じでも低消費電力のためにハードウェア化と言う理由もあるかと思います。
[2]
画像をFFTする場合、縦横の1D画素にFFTを施す必要があります。1024x1024だと1024x2=2048回の複素FFTを行います。

ここらあたりから流石に専用ハードウェアの出番です。
[3]
FAddとFMulのコストはえいやで同じとします。ちなみに、半精度では意外にもFAddの方が大きかったりします(ビット位置合わせのバレルシフタが効いています)。
[4]
Radix-2/4ともに係数WN0は(1,0)なのでここの計算は通常省略可能です。しかし、DCTの高速版であるFCT(Fast Cosine Transform)[5]をオプションに加えるなら、位相シフト処理のため演算器は省略できません。
[5]
DCTは計算式でみるとFFTに前後処理を挟むだけです。前後処理は複素乗算による位相シフトと、データ配置になります。

位相シフトはRadix-4の演算器をうまく利用すれば実現できそうに思えますよね。しかし、SRAM Bankが排他的になるようなデータ配置を考えるがかなり辛いのです。

回路規模増加はほとんどないので、是非組み込みたいところです。
[6]
Radix-4をそのまま使うと、N=4n点しか扱えません。Radix-2を組み合わせれば(特殊なことをすれば3の倍数も可能)制限を緩和することができます。実際そう実装するかは、かなりのメリットが生じないと考えないと思います。
[7]
性能優先で話を進めましたが、場合によってはリソースシェアリングによるコスト削減の検討も必要になるかと思われます。

単純な手法でよいのであれば、Radix-4の処理を4並列ではなく1つづつシリアライズすることで演算器の個数は1/4にまで削減できます。

それ以上は、DSPに近いアーキテクチャが必要になるかもしれません。そこまでコスト重視だと、DSPで実行した方が有益かもしれません。