メディア

DSPはFPGAで作れる?イチから学ぶDSP基礎の基礎(5)(1/3 ページ)

今回は、DSPとFPGAを比較してみたいと思います。この比較は、言いかえれば、“デジタル信号処理にはソフトウェア処理とハードウェア処理のどちらが向いているか”ということになります。

» 2012年07月25日 07時00分 公開
[日本テキサス・インスツルメンツ]
photo

@IT MONOistで掲載された記事を転載しています



 DSPとFPGAの比較は、いい換えればデジタル信号処理にはソフトウェア処理とハードウェア処理のどちらが向いているかということになるでしょう。つまり所望の機能をソフトウェアで実現するか、専用の回路(ハードウェア)を設計するかということです。

 しかし、DSPとFPGAのどちらがデジタル信号処理に適しているのかを公平に比較するのは簡単ではありません。大きな理由の1つは、DSPとFPGAにはどちらも幅広いレンジの製品群があり、次々と性能が向上した新製品が発表されているために、公正に比較対象を選ぶことが困難だからです。

(1)FPGAでDSPを作れるか?
(2)DSPでFPGAと同じデジタル信号処理をできるか?

 上記の(1)と(2)の結果を調べればDSPとFPGAの優劣が自ずと明らかになるはずです。

注:DSPはDigital Signal Processorの略です。一部の半導体メーカーはDSPをDigital Signal Processingの略として用いているので、注意してください。英文のデジタル信号処理の専門書ではDSPはDigital Signal Processorの略として用いていて、Digital Signal Processingの意味で用いているものはありません。

FPGAでDSPを作れるか?

photo 図1 DSPチップの一例(MPYADD:積和演算器) 人手で最適設計された積和演算器および大容量メモリ(RAM)を搭載している

 FPGAはユーザーが自由に回路を組むことができるので、やろうと思えばオリジナルのDSPをFPGAで作り、市販のDSPの代わりに使うことも可能なはずです。

 まずFPGAでDSPを作るためには「部品」として積和演算器(乗算器+加算器)、バレルシフタ、メモリ(RAM)などが必要です。これらはいずれもFPGAメーカーから標準のファンクション・ブロックとして提供されているか、ユーザーがロジック・セル(基本セル)を組み合わせて容易に構成できます。

 乗算器、メモリはFPGAの基本セルを組み合わせて作られている場合(ソフトマクロ)もあれば,最近の製品のようにロジック・セルとは別にハードマクロとしてあらかじめFPGAチップ内に組み込まれている場合もあります。これらのファンクション・ブロックを使って、FPGAでDSPを作ったとしたらその性能はどの程度になるでしょうか? 

 動作クロック周波数では、ミドルレンジの固定小数点DSPと同等の性能をFPGAで作るのは容易だと思われます。しかし以下の4点においてFPGA(で作ったDSP)は市販のDSPに対して不利です。

photo 図2 ハードマクロなしのFPGAの例(ソフトマクロで演算器、メモリを構成する) ロジック・セル(基本セル)を組み合わせて作ったソフトマクロで構成した乗算器、メモリ(RAM)は人手で最適設計されたものより面積が大きくなる
photo 図3 ハードマクロ内蔵FPGAの例 ハードマクロのメモリ(RAM)を多数組み合わせて大容量のメモリを構成した場合のメモリ容量、面積などは人手で最適設計されたDSPの内蔵メモリより劣る(注:FPGAは組み合わせて任意のビット幅、WordサイズのRAMを構成するために、容量の小さいRAMを複数搭載している。そのために大容量のRAMを構成した場合には、専用設計されたRAMよりサイズが大きくなる)

消費電力

デバイスの構造上、FPGAはDSPよりも消費電力が大きくなってしまいます。

内蔵メモリ容量

最近の高性能DSPは大容量の内部メモリを搭載していますが、FPGAではDSP並みの大容量メモリ搭載は困難です。ですから大量のメモリを必要とする、すなわち1サンプル当たりの演算量の多い処理をFPGAで実現するのは難しくなります(外部メモリを用いたのではメモリ・アクセスのオーバヘッドのために性能が出ません)。

チップサイズ=価格

人手で最適設計されたDSPと比較すると、FPGAで実現したDSPは当然チップサイズが大きくなりますし、コストも高くなります。

設計環境

回路設計やデバイスの性能以外にも、ソフトウェア設計環境サポートの問題があります。ユーザーが独自にFPGAでDSPを作ったとしたら、アセンブラ、コンパイラをはじめとした設計ツール類もすべて自前で用意しなければなりません。

 上記をまとめると、FPGAでDSPを作ることはできます。しかし消費電力やコスト、ソフトウェア設計環境を考えると、FPGAでオリジナルのDSPを作るメリットはないということになります。DSPで普通にできる処理をわざわざFPGAで置き換えることはしません。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSフィード

公式SNS

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.