Matlab FPGA: モデルベースのソリューション

MATLAB 環境での FPGA 検証

System in the Loop ツールを使用すると、MATLAB 環境からリアルタイムで FPGA デザインを実行できます。処理速度が高速なアルゴリズムでは、リアルタイム動作能力が非常に重要となる場合があります。このようなアルゴリズムの従来の MATLAB シミュレーションでは、計算による長い遅延が発生する場合がありました。DSP Builder for インテル® FPGA ツールにパッケージ化されている System in the Loop を使用すると、複雑で高速な固定または浮動小数点デジタル信号処理 (DSP) を FPGA ハードウェアで高速化できます。また、すべて MATLAB 環境内で FPGA デザインを制御、デバッグ、可視化、および検証することも可能です。

コンピューターで実行される MATLAB ソフトウェアが FPGA ボードと通信するために使用するアプリケーション・プログラミング・インターフェイス (API) では、MATLAB ソフトウェアではなく FPGA ハードウェアによりデータをリアルタイムに処理することができます。パラメータとスティミュラス・データが MATLAB ワークスペースから FPGA に渡され、MATLAB ソフトウェアがさらなる解析と表示のために FPGA ハードウェアの処理結果を読み戻します。

図 1 はレーダーとビームフォーシング処理における MATLAB の可視化の例を示しています。

図 1.レーダーとビームフォーシング処理における MATLAB の可視化

インテルのシステム・レベルのデバッグ・ツールによる MATLAB 内での FPGA の検証

System in the Loop は、システムコンソールやプラットフォーム・デザイナー (旧 Qsys) などの、より一般的なツールに加え、トランシーバー・ツールキット、外部メモリー・インターフェイス・ツールキットを含む、インテルのシステムレベルのデバッグ・ツール・ポートフォリオの一部です。プラットフォーム・デザイナー (旧 Qsys) は Avalon メモリーマップド (Avalon-MM) または Avalon ストリーミング (Avalon-ST) インターフェイスを使用して、さまざまなトポロジーと階層でネットワークを構築します。

システム・コンソールは、FPGA デザインの監視と機器への接続に使用できるツールです。クロッキング動作の確認やネットワークのリセットに使用することもできます。ドライブ固有のメモリー・マップド・アクセス・パターンなどのより高度なタスクの実行や、応答の確認も可能です。システム・コンソールは、ボードの立ち上げとプロダクション・テストの自動化の両方に役立ちます。図 2 に示されているような特定のタスクのインタラクティブ・ダッシュボードも作成できます。

図 2.システムコンソールのダッシュボード

システムコンソールは、すべてのプラットフォーム・デザイナー (旧 Qsys) で下位レベル・ハードウェアのデバッグも実行できます。MATLAB API により、FPGA ハードウェアへのアクセスを提供するシステムコンソールを使用した関数呼び出しにアクセスできます。MATLAB デザインと FPGA ハードウェア間の通信チャネルのリフレッシュ、オープン、リード、ライト、クローズには、5 つの単純な MATLAB コマンドを使用します。

FPGA へのハードウェア・インターフェイスは、図 3 に示すように、レガシーの JTAG インターフェイスまたは USB 2.0 インターフェイスを経由して接続できます。USB デバッグマスター は最大 480Mbps の高速化を実現し、FPGA ハードウェアでの高速アクセラレート処理を可能にします。図 4 は、プラットフォーム・デザイナー (旧 Qsys) を使用すると、JTAG または USB 信号をテスト対象デバイス (DUT) に簡単に接続できることを示しています。

図 3.MATLAB と FPGA 間のハードウェア・プロトコル・スタック

図 4.JTAG および USB デバッグマスターへのアクセス

図 5 では、DSP Builder for インテル® FPGA (アドバンスト・ブロックセット) を使用して FPGA デザインを作成しています。このツールは、高度に最適化されたハンドコードで書かれたハードウェア記述言語 (HDL) と同等の fMAX およびリソース使用量で、高品質な固定および浮動小数点 RTL (register transfer level) コードを作成します。従来からある Verilog または VHDL でデザインした後、Avalon インターフェイス・ポートをインターフェイスに追加し、プラットフォーム・デザイナー (旧 Qsys) によりデザインを接続することもできます。

図 5.JTAG または USB デバッグマスターへの FPGA デザインの接続

すべての FPGA リソースはプラットフォーム・デザイナー (旧 Qsys) を使用して接続することができます。FPGA デザインは、プラットフォーム・デザイナー (旧 Qsys) コンポーネントとして追加されます。図 6 を参照してください。

図6. デザイン・プラットフォーム図

入力データと出力データは両方チップ上にバッファされるため、FPGA ハードウェアは最大システム速度でバッファしたデータを処理できます。図 7 のインターフェイスは、Avalon-ST インターフェイスです。

図7.トップレベルの FPGA DUT

図 8 に入力バッファーシステムを示します。なお、このレジスターは、MATLAB の書き込みコマンドを使ってデータが読み込まれると、トリガーを使ってアドレスを書き込みます。出力バッファーシステムは、入力バッファーシステムに類似しています。

図8.System in the Loop の入力データバッファー

その後、図 9 に示されているように、デザイン・プラットフォームがインテル® Quartus® Prime 開発ソフトウェア・プロジェクトに追加され、デザインがコンパイルされます

図9.インテル® Quartus® Prime 開発ソフトウェア・プロジェクトへのプラットフォーム・デザイナーの追加

最後に、コンパイルしたデザインで FPGA がプログラミングされます。これで、図 10 に示されているように、MATLAB コマンドを使用してシステム全体を制御できるようになります。

図 10.MATLAB による FPGA システムの制御

FPGA デザインの検証をさらに容易にするために、インテル® Stratix® IV、Stratix® V、Cyclone® V FPGA を含むものなど、各種開発ボード向けの、すぐ使える System in the Loop デザイン・テンプレートも提供されています。