ダイレクトメモリアクセス (DMA) は、FPGAターゲットとホストコンピュータ間でデータを転送するFIFOベースの方法です。DMAはホストプロセッサに関連しないため、FPGAターゲットとホスト間で大量のデータを転送する場合に利用できる最も高速な転送方法です。

DMA通信の利点

以下のリストは、FPGAターゲットとホストコンピュータ間のデータ転送にDMA通信を使用する利点を明らかにしています。

  • データ転送中に他の演算処理を実行するようにホストプロセッサを解放
  • フロントパネル制御器と表示器の使用を制限
  • データ配列の転送時にFPGAリソースを保存
  • ホストとFPGAターゲット間のデータ転送を自動的に同期

アプリケーションが以下のタスクのいずれかを実行する場合、DMAを使用することをお勧めします。

  • FPGAターゲットとホスト間で波形データを転送する
  • 大量のデータセットを転送する
  • データロギング
  • たとえば、複数の入力チャンネルからの値を平均および合計するなど、FPGAターゲットでホストコンピュータよりも処理を効率的に実行できるアルゴリズムを実行する

DMA通信をアプリケーションで実装する

HIGHレベルでは、FPGAアプリケーションでDMA通信の実装は、以下の手順で行われます。

  1. FPGAターゲットがDMA通信をサポートしているかどうかを確認
  2. アプリケーションでDMAが最適であるかを確認します。FPGAターゲットとホストコンピュータ間でのデータ転送における、DMAの利点とその他のオプションを考慮します。
  3. DMAについて理解します。
  4. ベストプラクティスに注意を払いながら、アプリケーションの設計とプログラムを実行します。
    • 複数チャンネルの必要性を評価します。
    • ホストVIを設計します。
    • バッファエラーを回避します。