FPGA VIおよびホストVIは本来、非同期です。FPGA VIとホストVIの実行およびデータ転送を同期する必要がある場合は、割り込みまたはポーリングを使用します。ホストプロセッサの使用を最小に抑える必要がある場合は割り込みベースの同期を、さらに短いレイテンシが必要な場合はポーリングベースの同期を使用します。DMA FIFOは、FPGAおよびホスト間のデータ転送に使用可能な特別な種類のポーリングベース同期です。以下の表には、これらの同期メソッドの特徴の概要が記載されています。

同期メソッド レイテンシ ホストCPU使用率 一般的用途
割り込みベース データロギング
ポーリングベース 制御、シミュレーション
DMA FIFO データロギング

割り込みベース同期

割り込みは、FPGAターゲットがアサートするホストへの物理ハードウェアラインです。割り込みを使用して、データ使用の準備完了、エラー発生、タスク完了などのイベントをホストVIに通知できます。

ポーリングベース通信の代わりに割り込みベース通信を使用する利点は、割り込みを待機中にホストVIがその他の操作を実行できることです。ただし、割り込みの処理にはオーバーヘッドが必要なため、ポーリングによる同期よりも遅延は大きくなります。

「割り込み」VIを使用して生成できるFPGAターゲットで利用可能な論理割り込みは、32個あります。それぞれの論理割り込みは割り込みの原因を指定するため、ソフトウェアで適宜処理することを可能にします。「割り込み」VIのクリアされるまで待機入力にTRUEを配線することで、ホストVIがFPGAターゲットに対して肯定応答を行うまで待機させることができます。この場合、「割り込み」VIは、デバイスを制御するホストVIが割り込みに対する肯定応答を行うまで待機します。

FPGAターゲットで同時割り込みの呼び出しを行う場合は注意が必要です。割り込みラインは、複数使用すると共有リソースとなり、ジッタを引き起こす可能性があります。

ポーリングベースの同期

ポーリングベースの同期では、FPGA VIのステータスを連続的に確認するループを使用し、特定の状態がTRUEになると次の動作を実行します。タイミングVIを使用して、ポーリングループの周波数を決定できます。ポーリングループの周波数を増加することで、同期レイテンシを減少させることができます。ポーリングループの周波数を減少することで、ホストCPUの使用量を減少させることができます。

ダイレクトメモリアクセス (DMA) と同期

DMA FIFOは本質的に同期します。DMAエンジンは自動的にDMA FIFOのステータスをポーリングし、DMA FIFOに指定したデータ数が含まれる場合にデータ転送を開始します。ただし、DMA FIFOからデバイスがデータを取り出す方法を指定することができます。具体的には、ポーリングベースの方法を使用してDMA FIFOからデータを取り出すことができます。