FPGAターゲットとの通信にホストVIを使用する
- 更新日2025-03-06
- 3分で読める
ホストコンピュータで実行する別のVIを使用して、FPGA VIとプログラム的に対話することができます。このプログラムFPGAインタフェース通信は、FPGA VIの他にホストVIを作成する必要がある点で対話式フロントパネル通信と異なります。
プログラムFPGAインタフェース通信を使用する場合、以下の図に示すように、FPGA VIはFPGAターゲット、ホストVIはホストコンピュータで実行されます。
ホストVIによるホストコンピュータとFPGAターゲット間の情報送信は、次のような場合に使用できます。
- FPGAで処理可能な量より多くのデータを処理する場合。
- 倍精度または拡張精度浮動小数点演算など、FPGAターゲットで利用できない操作を実行する場合。
- 多層アプリケーションといった大きなシステムの1コンポーネントとしてFPGAターゲットを使用する場合。
- データをログする場合。
- データ転送のタイミングおよびシーケンスを制御する場合。
- FPGA VIのテストベンチを作成する場合。
WindowsベースのコンピュータまたはRTターゲットをホストコンピュータとして使用できます。Windows OSとRT OSの両方が「FPGAインタフェース」関数をサポートしています。さらに、RTターゲット上の「FPGAインタフェース」関数を使用してFPGAターゲットと通信し、次にWindowsベースのコンピュータを使用してRTターゲットと通信することもできます。
メモ Linux OS上で「FPGAインタフェース」関数を使用することはできません。その代わりに、FPGAインタフェースC APIを使用してください。
以下の手順は、ホストVIの一般的なプログラミングシーケンスを示しています。
- FPGA VI、ビルド仕様、またはビットファイルのリファレンスを開く
- 「制御器を読み取る/書き込む」および「メソッドをインボーク」関数など、「FPGAインタフェース」関数を使用してデータの送受信を行います。
- 「FPGA VIリファレンスを閉じる」関数でFPGAリファレンスを閉じます。
以下のブロックダイアグラムは、このアーキテクチャを示す簡単なホストVIを表示しています。このホストVIでは、アプリケーションはFPGA上でブール制御器のDIO1に値を書き込み、ブール表示器DIO0から値を読み取ります。
Whileループのコードは、アプリケーションとFPGA/ホスト間でデータを転送する方法によって変化します。