Main Content

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

PCI Express 経由で AXI Manager を使用して FPGA 外部メモリにアクセス

この例では、PCI Express® (PCIe) 経由で AXI マネージャーを使用して、FPGA に接続された外部メモリにアクセスする方法を示します。FPGA には、DDR メモリにアクセスするためのザイリンクス DDR メモリ コントローラーが含まれています。このメモリ コントローラーは、FPGA 内の他のコンポーネントによる書き込みおよび読み取り操作のための AXI4 スレーブ インターフェイスを提供します。PCIe AXI マネージャー機能は、FPGA 内のメモリ マップされた場所へのアクセスに使用できる AXI マネージャー オブジェクトを提供します。この例では、PCIe AXI マネージャーをザイリンクス Vivado® プロジェクトに統合し、 MATLAB®を使用して DDR メモリにデータを読み書きする方法を示します。

要件

  • Xilinx Vivado Design Suite (サポートされているバージョンはサポートされている EDA ツールとハードウェアにリストされています)

  • ザイリンクス Kintex® UltraScale+ FPGA KCU116 評価キット

  • HDL Verifier™ Support Package for Xilinx FPGA Boards

  • PCIeスロットを備えたホストマシン(PC)

  • USB-JTAGケーブル

設定

1. FPGAボードをセットアップします。PCIe および JTAG ケーブルを介してザイリンクス KCU116 ボードをホスト コンピューターに接続します。JTAG ケーブルはデバイスのプログラミングに使用されます。

2.MATLABで例を準備します。Xilinx Vivado ツール パスを設定します。コマンドを実行するときに独自の Xilinx Vivado インストール パスを使用します。

hdlsetuptoolpath('ToolName','Xilinx Vivado', ...
                 'ToolPath','C:\Xilinx\Vivado\2020.2\bin\vivado.bat');

この例では Vivado プロジェクトを作成します。次のMATLABコマンドは、pcieaximaster.xprという名前の Vivado プロジェクトを作成し、IP インテグレーターのブロック図と制約ファイルを含みます。

system('vivado -mode batch -source pcieAXIMcreateproject.tcl')

3.Vivado IP を使用して Vivado プロジェクトを構成します。Vivado IP インテグレーター内で PCIe を AXI Manager IP として使用するには、IP を含むフォルダーを Vivado プロジェクトの IP リポジトリ パス設定に追加します。MATLABで次のコマンドを実行して、プロジェクトにパスを追加します。

setupAXIManagerForVivado pcieaximaster.xpr

ファイル ブラウザでプロジェクトをダブルクリックするか、 MATLABで次のコマンドを実行して、生成された Vivado プロジェクトを GUI モードで開きます。

system('vivado pcieaximaster.xpr &')

4.PCIe AXI Manager IP を FPGA デザインに追加します。Vivado GUI で、ブロック ダイアグラム デザイン ファイルpcieAXIMdesign_1.bdを開きます。デザインはソース ファイルのサブウィンドウにあります。

この図に示すように、xdma_0 (PCI Express 用 AXI Bridge Subsystem) およびddr4_0 (メモリ コントローラー) のアドレスを設定します。

または、Vivado で Tcl コマンドを実行して、上記のセットアップ手順を完了することもできます。

source ./pcieAXIMmodifydesign.tcl

5.FPGA プログラミング ファイルを生成し、FPGA をプログラムします。Vivado ウィンドウで [Generate Bitstream] をクリックして、FPGA プログラミング ファイルを生成します。Vivado では、次の手順に進む前にプロジェクトの保存を求めるメッセージが表示される場合があります。Vivado によるビットストリーム ファイルの生成には、約 5 ~ 10 分かかります。

Vivado がビットストリームを生成した後、 MATLABでこのコマンドを実行して FPGA をプログラムします。

filProgramFPGA('Xilinx Vivado','pcieaximaster.runs\impl_1\pcieAXIMdesign_1.bit',1)

6.FPGA をプログラミングした後、ホスト マシンを再起動します。

FPGAの書き込みおよび読み取り操作

デザインが FPGA ボード上で実行されると、PCIe AXI Manager IP に接続されている AXI 下位デバイスからの書き込みと読み取りが可能になります。この例では、FPGA に接続された DDR メモリにデータを書き込み、 MATLABにデータを取得します。

MATLABで AXI マネージャー オブジェクトを作成します。

h = aximanager('Xilinx','interface','pcie');

FPGA 上のメモリ位置への書き込みと読み取り。次の 2 行では、AXI マネージャー オブジェクト h を使用して、アドレス 0 に 100 を書き込み、DDR メモリのアドレス 0 から読み取ります。

writememory(h,0,100) readmemory(h,0,1)

参考

| | |

関連するトピック