DMAチャンネルは、ホストコンピュータのバッファとFPGAターゲットのバッファの2つのFIFOバッファから構成されています。DMA FIFOを作成した後に、適切なバッファへデータの書き込みと読み取りを実行するようにブロックダイアグラムにプログラムします。たとえば、FPGAからホストにデータを転送する場合は、データをバッファに書き込むFPGAにプログラムします。バッファからデータを読み取るホストにもプログラムします。

メモ DMA通信は単方向です。ホストコンピュータからFPGAターゲットにデータを転送するには、追加のFIFOを作成して別のDMAチャンネルを使用する必要があります。

DMA通信はFIFOに基づいているため、データ転送は一度に1つの要素ずつ実行されます。バッファの最初の要素は他のバッファに転送された最初の要素です。以下の図は、このデータ転送の例を示します。

前の図では、FPGA VIはデータを集録し、データの1つの要素をDMA FIFOのFPGAバッファに書き込みます。ホストVIはホストバッファから一度に4つの要素を読み取ります。

メモ バッファサイズを適切に設定することは、DMA通信を使用するアプリケーションを設計する際に従うベストプラクティスの1つです。