このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
PCI Express AXI マネージャー
メモ
PCI Express® AXI マスターは PCI Express AXI マネージャーに名前が変更され、AXI マスター IP としての PCIe MATLAB® は PCIe AXI マネージャー IP に名前が変更されました。ソフトウェアとドキュメントでは、「マスター」と「スレーブ」という用語がそれぞれ「マネージャー」と「従属」に置き換えられます。
PCI Express AXI マネージャーを使用する場合は、まず Quartus® Qsys プロジェクトに次の 2 つの知的財産 (IP) ブロックを含める必要があります。
PCIe AXI マネージャー IP
PCIe AXI Manager は、MathWorks® が提供する HDL IP です。この IP は、PCI Express (PCIe) コアをアプリケーション コードに接続します。また、構成レジスタにアクセスするための構成ポートも備えています。このブロック図は、HDL IP へのインターフェースを示しています。

インターフェースには次の部分が含まれます。
clockとresetnはクロックとリセット入力です。これらを AXI クロックに接続してリセットします。axs_soは 32 ビットの従属インターフェイスであり、PCIe 構成レジスタにアクセスするために使用されます。このインターフェースを Avalon Memory Mapped マスター インターフェースに接続します。axm_pcieは 128 ビットの AXI マネージャー インターフェイスです。このインターフェースを PCIe コアの TX 従属ポートに接続します。axm_appは 128 ビットの AXI マネージャー インターフェイスです。このインターフェースをアプリケーション ロジックに接続します。
デザインでこの IP をインスタンス化した後、構成用のブロック パラメータを開きます。

次のパラメータを設定します。
ID_WIDTH – このパラメータはビット単位の ID 幅です。その値は、AXI 従属の ID 幅と一致する必要があります。
AXI_DATA_WIDTH – このパラメータはデータバス幅です。IP は 128 ビット データのみをサポートします。このパラメータは、
aximanagerオブジェクトまたは AXI Manager Read または AXI Manager Write ブロックのデータ幅と同じではありません。データ幅が 32 ビットに設定され、IP の AXI_DATA_WIDTH が 128 ビットに設定されている場合、HDL Verifier™ は 4 つの 32 ビット ワードをパックして 128 ビット バスで転送します。AXI_ADDR_WIDTH – このパラメータはアドレスバス幅です。IP は 32 ビット アドレスをサポートします。
PCI Express コア
PCI Express Core 用のハード IP は、Intel® によって提供されるボード固有の IP です。この IP を使用して、PCI Express ポートを構成および統合します。
Quartus Qsys プロジェクトで PCIe コア HDL IP をインスタンス化した後、次の手順に従って PCIe コアを構成します (この例は Arria® 10 ボード用です)。
Physical Function 0 IDs タブで、この図に示すようにパラメータを設定します。

Avalon-MM Settings タブで、この図に示すようにパラメータを設定します。

System Settings タブで、PCIe AXI Manager IP ブロック パラメータで以前に設定した AXI_DATA_WIDTH パラメータと一致するバス幅を持つ Hard IP mode を選択します。(IP は現在 128 ビット モードをサポートしています)。

PCIe AXI マネージャー IP を PCIe コアに接続します (この例では、PCI Express 用の Arria 10 ハード IP を示しています)。

FPGA プロジェクトをコンパイルしてビルドします。
FPGA ボードをホスト コンピューターのマザーボード上の PCI Express スロットに挿入します。
コンパイルされたデザインを使用して FPGA をプログラムします。
ホストマシンを再起動します。
プログラムが FPGA ボード上で実行されると、AXI マネージャー オブジェクトを作成できます。詳細については、aximanagerを参照してください。ボード上の下位メモリ位置にアクセスするには、このオブジェクトの readmemory および writememory 関数を使用します。