PCI Expressのマルチチャネル DMA インテル® FPGA IPユーザー ガイド

ID 683821
日付 4/20/2022
Public
ドキュメント目次

3.2. バーストAvalon Master (BAM) BAR

BAM は、PCI Express 用のマルチチャネル DMA IP をバイパスし、ホストがユーザーロジックに対してバースト PIO 読み出し/書き込みを実行する方法を提供します。 BAM は、リモート・リンク・パートナーによって開始され、PCIe リンクを介して受信されたメモリー読み出しおよび書き込み TLP を Avalon-MM バースト読み出しおよび書き込みトランザクションに変換し、受信した読み出し要求に対して CplD TLP を送り返します。 BAM ユーザー・インターフェイスは Avalon-MM であるため、完了は常にユーザーロジック/Qsys ファブリックから順に期待されます。 BAM は、最大 512 バイトのバーストと最大 32 の未処理の読み出し要求をサポートします。

BAMのアドレス・マッピング

物理機能の BAR0 以外の任意の BAR レジスターを、ユーザー・アプリケーションの BAM 側にマップするように選択できます。 BAM インターフェイスのアドレス マッピングは次のとおりです。
BAM アドレス = {vf_active, pf, vf, bar_num, bam_addr} 
  1. vf_active: これは、SRIOV が有効になっていることを示します。
  2. pf [PF_NUM-1:0]: HIP から受信した PCIe ヘッダーからデコードされた物理機能番号。 ($clog2(PFの数)) である PF_NUM は、マルチチャネル DMA が Avalon-MM 側で必要な数のビットのみを割り当ててユーザー・インターフェイスのワイヤ数を制限するようにユーザーが選択した RTL デザイン・パラメーターです。例: ユーザーが選択した PF の数が 4 の場合、PF_NUM は 2 です。
  3. vf [VF_NUM-1:0]: HIP から受信した PCIe ヘッダーからデコードされた仮想機能番号。 ($clog2(VFの数)) である VF_NUM は、マルチチャネル DMA が Avalon-MM 側で必要な数のビットのみを割り当ててユーザー・インターフェイスのワイヤ数を制限するようにユーザーが選択した RTL デザイン・パラメーターです。例: ユーザーが選択したすべての PF の VF の総数が 32 の場合、VF_NUM は 5 です。
  4. bar_num [2:0]: これは、Avalon-ST トランザクションが受信された BAR 番号を示します。
  5. bam_addr [ADDR_SIZE-1:0]: すべての BAR の中で最大のアパーチャ サイズに基づく下位アドレス。例: BAR3 が 16 MB として選択され、BAR2 が 4 GB である場合、BAR2 に対応するADDR_SIZEは32です。

例: トランザクションが PF2/VF1 の BAR3 (最大アパーチャ 4GB) に対して受信された場合、ユーザーによって 3 つの PF のみが有効にされ、ユーザーによって 25 の VF が有効にされている場合、BAM アドレスは{1'b1, 2'b10, 5'b00001, 3'b011, bam_addr[31:0]}です。

注: ルート ポートの場合: ルート・ポート・モードでは、BAM から出力される AVMM アドレスは、ハード IP AVST で受信したものと同じです。