MATLAB/Simulinkはモデルベースデザイン手法により開発を行うことができるプラットフォームです。抽象度の高い関数を使って行列演算を効率的にプログラミングできるMATLABと、ブロック線図で記述したモデルを使ってシミュレーションを行うSimulinkがあります。MATLABではMATLAB言語によるプログラム記述しかできませんが、Simulink上では、あらかじめ用意されたSimulinkブロックだけでなく、MATLABのコード、System Object(=記事末のコラム「MATLABとSimulinkとSystem Object」参照)、ステートマシンをグラフィカルに記述するStateflowなどさまざまなものを取り込んで利用することができます。
今回は実装段階におけるプロセッサとFPGAの機能配分、アルゴリズムの処理内容、FPGAで必要となるパイプライン処理などが視覚的にも分かりやすく、より多くの機能が提供されているSimulinkを使用します。Simulinkで機能をモデリングしシミュレーションを行ったら、オプション*3)Embedded Coderを使ってCコード生成、HDL Coder*4)を使ってHDLコード生成を行い実装します。実装を行うプロセスと、実機デモの動作の様子はこちらのビデオでご覧になれます。
*3)MATLABプロダクトファミリーでは、目的やアプリケーション分野別に、ToolboxやCoderといった名前でさまざまなオプション製品が提供されています。Toolboxでは、そのアプリケーション分野で使用される関数やブロックライブラリを提供しており、これを使用することで、アルゴリズムを記述する工数を削減することができます。
*4)Programmable SoCやFPGA実装用の製品紹介ビデオはこちらのWebサイトでご覧いただけます【関連リンク:Video and Webinar Series 「FPGA/ASIC実装」】
Copyright © ITmedia, Inc. All Rights Reserved.