2010年8月動画や静止画の用途の増大や、ソフトウェア定義無線機(Software Defined Radio、SDR)など再コンフィグレーションの自由度の高いシステムの需要の増加といったトレンドによって、デジタル信号処理(DSP)用のアプリケーションは拡大を続けています。こうしたアプリケーションの多くでは、大量のDSP処理の必要性とコストへのこだわりから、高性能で低コストなDSPソリューションが求められています。このような条件を満たすには、処理エレメントとそれをサポートするハードウェア・プラットフォームが、処理遅延を犠牲にすることなく、高い演算スループットを提供できるものでなければなりません。
LatticeECP3 FPGAではデュアルスライス・アーキテクチャが採用され、DSPスライスをカスケード/チェーン接続でき、命令セットが拡張されているため、FIRフィルタやFFT/iFFT実装など、さまざまなデジタル信号処理アプリケーションに対する魅力的なソリューションとなります。
LatticeECP3のsysDSPスライスは、FPGAデバイス全体で列状に並んでいます。次の図は、2つのsysDSPスライスの簡単なブロック図を示しています。それぞれのスライスには、乗算器、ALU、マルチプレクサ、パイプラインレジスタ、シフトレジスタチェーン、およびカスケードチェーンが含まれています。ALUは、加算器、減算器、またはアキュムレータとしてコンフィグレーション可能です。

LatticeECP3のsysDSPブロック図
設計者は、MULT(Multiplier)、MAC(Multiplier Accumulate)、MMAC(Multiplier Multiplier Accumulate)、MULTADDSUB(Multiplier Add/Subtract)、MULTADDSUBSUM(Multiply Add/Subtract and Sum)、加算器ツリー、ワイドマルチプレクサ、バレルシフタ、スライス(高度な機能用)など各種の高性能モードをグラフィカルに指定できます。
フィルタとは、信号から不要な成分を除去するデバイスまたはプロセスです(通常は、信号の一部の周波数のみを通過させます)。FIR(Finite Impulse Response)フィルタは最も一般的なフィルタの1種であり、通常は一連の遅延装置、乗算器、加算器を使用してフィルタ出力を生成します。フィルタ設計は、フィルタの長さと係数を選択するプロセスです。フィルタの長さまたはタップ数が増すほど、応答を微調整できます。
FIRフィルタ生成器 [EN] IPコアは、幅広いコンフィグレーションが可能なマルチチャネルFIRフィルタで、ラティスのデバイスが持つ高性能なDSPを使用して実装されています。このIPコアは単一レートフィルタだけでなく、各種のポリフェーズ間引きおよび補間フィルタをサポートしています。使用率とスループットのトレードオフは、フィルタの実装に使用される乗算器の数を指定することで制御できます。たとえば、乗算器を1つ使用するとリソース使用率が最高となり、タップ数と同じ数の乗算器を使用すると最高のスループットが得られます。FIRフィルタIPコアは最大256チャネルをサポートし、それぞれ最大2048タップが可能です。
LatticeECP3 FPGAのsysDSPブロックを使用して作成可能な、長いフィルタの設計のいくつかの例を次に示します。
直接型64タップFIRフィルタ: 直接型FIRフィルタでは、入力サンプルがシフトレジスタキューにシフトされ、各シフトレジスタが乗算器に接続されています。各乗算器の演算結果を加算することで、FIRフィルタの出力サンプルが得られます。この例は、LatticeECP3 FPGAの16のsysDSPブロックと約512スライスを使用した、64タップFIRフィルタを示しています。

LatticeECP3のDSPスライスをMULTADDSUBモードで使用した典型的なFIRフィルタ
ラダー構造を使用した128タップ非対称フィルタ: ラダー構造を使用すると、それぞれが同一の係数を持つセクションにFIRフィルタが分割され、単一の連続フィルタチェーンであるかのように動作します。シフトされたデータと結果出力を、第1セクションから次のセクションの対応する入力に接続するのではなく、ラダーネットワークで遅延された第1ステージの入力データを、第2ステージの入力データに接続し、遅延された第1ステージの加算出力と、第2ステージの加算出力とが加算されます。

LatticeECP3のラダー構造を使用した128タップ非対称フィルタの実装
ラダー構造を使用した256タップ対称フィルタ: ほとんどのFIRフィルタのインパルス応答は対称型です。一般的には、この対称性を利用すると算術要件を緩和し、面積効率の高いフィルタを実現できます。対称係数の場合、非対称係数の同様のフィルタと比べて、使用する乗算器の数を半分にすることができます。対称係数の実装を次の図に示します。この256タップ長対称フィルタの例では、わずか32個のsysDSPスライス、2個のEBR、および3.5Kスライスのみが使用されています。

ラダー構造を使用した256タップ対称フィルタの実装
ポリフェーズ補間FIRフィルタ: ポリフェーズ補間フィルタは、計算効率の高い1対P補間フィルタを実装します(Pは1よりも大きい整数)。次の例は128タップを使用した補間係数16の設計を示しています。これにはそれぞれが16の係数を持つ8つのポリフェーズフィルタ(サブフィルタ)が必要です。

Polyphase Interpolator FIR Filter
上記の参照設計をダウンロードし、LatticeECP3 FPGAの強力なDSP機能を評価してください。