FPGA VIとホストVI間でプログラム的にデータを転送するには、以下の方法のいずれかを使用できます。

  • プログラムフロントパネル通信
  • ダイレクトメモリアクセス (DMA)
  • ユーザ定義I/O変数

以下の表は、これらの方法の概要と比較を示しています。

データの転送方法 ホストOS スループットレート 呼び出しオーバーヘッド ホストCPU使用率 タイミングモデル 同期
プログラムフロントパネル通信 Windows、RT ユーザ定義 ユーザ定義
ダイレクトメモリアクセス Windows、RT ユーザ定義 自動
ユーザ定義I/O変数 NI スキャンエンジン機能を装備したRT NI スキャンエンジン 自動

通常、小規模の頻繁なデータ転送の場合はプログラムフロントパネル通信、一度に大量のデータのストリームを行う場合はDMAを使用します。コヒーレントなFPGA I/OデータセットをRTホストVIとの間で転送するには、ユーザ定義I/O変数を使用します。以下の表は、各転送方法を使用する一般的な理由を比較しています。

データの転送方法 一般的用途
プログラムフロントパネル通信
  • ホストからFPGAに構成パラメータまたはデータを送信する
  • FPGAからホストにステータスをレポートする
  • ホストおよびFPGA間でコマンドを送信する
  • ホストおよびFPGA間でシングルポイントデータを転送する
  • FPGA VIにテストベンチを作成する
ダイレクトメモリアクセス
  • ホストおよびFPGA間で大容量のデータを転送する
  • ホストおよびFPGA間で波形データを転送する
ユーザ定義I/O変数
  • フロントパネル通信を使用するのと同じ関数をNI スキャンエンジンのタイミングと同期で実行する
  • コヒーレントなデータセットを転送する