はじめに
FPGA に FIR フィルターを実装する場合、浮動小数点データは固定小数点に変換して処理するのが一般的ですが、インテルの DSP 設計ツール、DSP Builder for インテル® FPGA では浮動小数点データをそのまま扱うことができます。そのため、浮動小数点データ FIR フィルターを生成することが可能です。
さらに、使用する浮動小数点のデータ型の選択、浮動小数点と固定小数点との変換もマクロで簡単におこなうことができます。
また生成したフィルターは HDL として出力されるため、トップ・デザインに IP として組み込むことが可能です。
DSP Builder for インテル® FPGA
DSP Builder for インテル® FPGA は、インテルの DSP 設計ツールです。 MathWorks* Simulink* 環境でデザインを作成し、HDL を生成します。また Simulink上でのシミュレーションも可能です。
設計方法はブロックを接続し、各ブロックにパラメータを設定するイメージで、目標の動作周波数を設定することで、必要数の FF が自動で挿入されます。
また、多くの IP、サンプルデザインも準備されています。
参考:7. DSP Builder for Intel FPGAs (Advanced Blockset) Design Examples and Reference Designs
浮動小数点 FIR フィルター実装例
DSP Builder for インテル® FPGA を使用して 浮動小数点 FIRフィルターを作成したサンプルが図 1 です。
【図 1】浮動小数点フィルターデザイン例
DSP Builder for インテル® FPGA では、複数のデータ幅をベクトルとして扱えます。サンプルは 7 tap で作成しているので、図中に (7) と表示されています(図 2)。
【図 2】ベクトル表現
以下の動画コンテンツもご参照ください。
参考:DSP Builder for インテル® FPGA のベクトル表現機能デモンストレーション
データ型変換例
DSP Builder for インテル® FPGA ではデータ型変換マクロ、convert が用意されています。これを使用して出力のデータ型を選択可能です。
また、double, single に加えて、Variable precision floating point を選択すると、より多様なデータ型を選択可能となります。
【図 3】convert マクロ
【図 4】convert マクロ 設定画面
参考:4.3.5. Changing Data Type with Convert Blocks and Specifying Output Types
おわりに
本記事では、浮動小数点データをそのまま扱えるツール、DSP Builder for インテル® FPGAを用いて FIR フィルターを実装する例を紹介いたしました。このツールには多数のデザイン例もございますので、お役立ていただけますと幸いです。