XDMA PCIe IP

PCI Express を使用する高速パーシャル リコンフィギュレーション PCI Express を使用する高速パーシャル リコンフィギュレーション (XAPP1338)

Document ID
XAPP1338
Release Date
2019-03-11
Revision
1.0 Japanese
図 1. XDMA PCIe IP のカスタマイズ (基本機能). PCIe カスタマイズを確認するには、ブロック図を表示して、xdma_0 をダブルクリックします。

このサンプル デザインは、Gen3 x8 IP コアを使用するように設定されていますが、ほかの PCIe 幅と速度も使用できます。Gen1 x1 システムは概して、ICAP インターフェイスを飽和させない 400MB/s の転送レートとなる可能性がありますが、それでも使用可能で、MCAP パスよりははるかに高速です。その他すべてのリンクの幅と速度は ICAP インターフェイスを飽和させ、コンフィギュレーションのパフォーマンスを最大にします。

[DMA Interface option] で、[AXI Stream] がオンになっていることを確認します。

ターゲット デバイス上の任意の PCIe サイトを使用できますが、配線の遅延が短くなる、ICAP サイトの隣りに位置するサイトが最も効率的です。

上記の [Basic] タブでは、[Tandem Configuration or Partial Reconfiguration] が [None] に設定されています。このデザインは、最初のデバイス コンフィギュレーション時、120 ミリ秒のエニュメレーションを満たすためにタンデム コンフィギュレーションを利用していません。ただし、この機能は、PCIe を介する高速パーシャル リコンフィギュレーションの要件と無関係であるため、使用できます。

[PCIe : DMA] タブをクリックします。

注記: [Tandem Configuration or Partial Reconfiguration] で [PR over PCIe] を選択しないでください。これを選択すると、このアプリケーションでは使用されない MCAP インターフェイスがビットストリーム送信用に有効になります。
図 2. XDMA PCIe IP のカスタマイズ (DMA 機能)

このタブで、[Number of DMA Read Channel (H2C)] の値が 2 に増加していることを確認します。このタブの H2C とはホストからカード (Host to Card) を意味します。つまり、ビットストリームはホストから PCIe ブロックへ、最終的には ICAP に送信されます。このデザインでは、チャネルは ICAP 専用ですが、追加されたその他のユーザー アプリケーション ロジックと組み合わせて使用することもできます。

重要: 開発者は、PCIe を介した DMA を使用する際の短所の 1 つとして、このホストのすべてのユーザーが FPGA の構成を見ることができる点に留意しておく必要があります。

ほとんどのシステムにおいて、(MCAP およびコンフィギュレーション トランザクションを介した) プログラムに使用される PCIe コンフィギュレーション パケットは通常、ルート アクセスを使用して送信する必要があります。セキュリティ チェックを実装することはこのアプリケーション ノートの目的の範囲を超えていますが、いくつかのオプションを利用できます。

まず、ICAP 自体に、正しいデバイス情報で適切にフォーマットされたビットストリームのみを受信するためのチェック機能が内蔵されています。また、このデザインではリードバック機能が実装されていないため、ビットストリームを PCIe リンクを介してリードバックできません。

意図しないビットストリームで FPGA がダウンロードされないように、次の対策を講じることができます。

  • データを ICAP に送信する前に設定する必要があるシークレット値を持つ制御レジスタを追加します。
  • 内蔵されているデバイス暗号化手法を使用します。

このデザインのパーシャル ビットストリーム送信パスは、PCIe IP コアから始まり、FIFO およびデータ幅コンバーターを通過してから、32 ビット AXI4-Stream データとしてブロック図の外部へと続きます。

M_AXIS_0_tdata が ICAP の入力ポート (パスの終端) に接続されているのを確認するには、design_1_wrapper.v を開きます。