このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
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)
参考
aximanager
| writememory
| readmemory
| release