今回は、DSPとFPGAを比較してみたいと思います。この比較は、言いかえれば、“デジタル信号処理にはソフトウェア処理とハードウェア処理のどちらが向いているか”ということになります。
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をFPGAで作り、市販のDSPの代わりに使うことも可能なはずです。
まずFPGAでDSPを作るためには「部品」として積和演算器(乗算器+加算器)、バレルシフタ、メモリ(RAM)などが必要です。これらはいずれもFPGAメーカーから標準のファンクション・ブロックとして提供されているか、ユーザーがロジック・セル(基本セル)を組み合わせて容易に構成できます。
乗算器、メモリはFPGAの基本セルを組み合わせて作られている場合(ソフトマクロ)もあれば,最近の製品のようにロジック・セルとは別にハードマクロとしてあらかじめFPGAチップ内に組み込まれている場合もあります。これらのファンクション・ブロックを使って、FPGAでDSPを作ったとしたらその性能はどの程度になるでしょうか?
動作クロック周波数では、ミドルレンジの固定小数点DSPと同等の性能をFPGAで作るのは容易だと思われます。しかし以下の4点においてFPGA(で作ったDSP)は市販のDSPに対して不利です。
消費電力
デバイスの構造上、FPGAはDSPよりも消費電力が大きくなってしまいます。
内蔵メモリ容量
最近の高性能DSPは大容量の内部メモリを搭載していますが、FPGAではDSP並みの大容量メモリ搭載は困難です。ですから大量のメモリを必要とする、すなわち1サンプル当たりの演算量の多い処理をFPGAで実現するのは難しくなります(外部メモリを用いたのではメモリ・アクセスのオーバヘッドのために性能が出ません)。
チップサイズ=価格
人手で最適設計されたDSPと比較すると、FPGAで実現したDSPは当然チップサイズが大きくなりますし、コストも高くなります。
設計環境
回路設計やデバイスの性能以外にも、ソフトウェア設計環境サポートの問題があります。ユーザーが独自にFPGAでDSPを作ったとしたら、アセンブラ、コンパイラをはじめとした設計ツール類もすべて自前で用意しなければなりません。
上記をまとめると、FPGAでDSPを作ることはできます。しかし消費電力やコスト、ソフトウェア設計環境を考えると、FPGAでオリジナルのDSPを作るメリットはないということになります。DSPで普通にできる処理をわざわざFPGAで置き換えることはしません。
Copyright © ITmedia, Inc. All Rights Reserved.