このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
AXI Manager を使用した FPGA 外部メモリへのアクセス
この例では、AXI マネージャーを使用して、FPGA に接続された外部 DDR メモリにアクセスする方法を示します。FPGA デザインは、DDR メモリにアクセスするためのインテル® DDR メモリ コントローラーをインスタンス化します。このメモリ コントローラは、FPGA からの読み取りおよび書き込み操作のためのメモリ マップされた従属インターフェイスを提供します。AXI マネージャー機能は、 MATLAB® がFPGA 内のメモリ マップされた下位 IP にアクセスできるようにする AXI マネージャー IP を提供します。この例では、JTAG AXI マネージャー IP またはイーサネット AXI マネージャー IP を Qsys デザインに統合し、 MATLABから DDR メモリを読み書きする方法を示します。
要件
サポートされている EDA ツールとハードウェアにリストされているサポート対象バージョンのインテル Quartus® Prime ソフトウェア
インテル Arrow® DECA MAX® 10 FPGA 開発キット
インテル FPGA ボード用HDL Verifier™サポート パッケージ
USB-Blaster II™ ダウンロード ケーブル
イーサネットケーブル
JTAG AXI Manager を使用するためのセットアップ
手順 1: FPGAボードをセットアップします。DECA ボードが USB JTAG ケーブルを介してホスト コンピュータに接続されていることを確認します。
手順 2: MATLABでサンプルを準備する
インテル Quartus Prime ツールパスを設定します。コマンドを実行するときは、独自の インテル Quartus Prime インストール・パスを使用してください。
hdlsetuptoolpath('ToolName','Altera Quartus II', ... 'ToolPath','C:\intelFPGA\18.0\quartus\bin64\quartus.exe');
この例では Quartus プロジェクトを作成します。この tcl スクリプトは Quartus プロジェクトを作成し、デザイン ファイルをプロジェクトに追加します。
system('quartus_sh -t create_project_deca.tcl')
このコマンドが完了するまでに数秒かかります。完了すると、「aximaster_deca.qpf」という名前の Quartus プロジェクトが現在のディレクトリに作成されます。
手順 3: AXI マネージャーを使用するように Quartus Prime プロジェクトを設定する
次のコマンドを使用して、IP をプロジェクト ディレクトリにコピーします。
setupAXIManagerForQuartus('aximaster_deca.qpf')
生成された Quartus プロジェクトを GUI モードで開きます。ファイル ブラウザーでプロジェクトをダブルクリックするか、 MATLABでこのコマンドを実行できます。
system('quartus aximaster_deca.qpf &')
手順 4: Qsys デザインでの JTAG AXI マネージャー IP の検査 (オプション)
Quartus GUI で Qsys デザイン ファイル system.qsys を開き、AXI Manager IP が DDR コントローラーにどのように接続されているかを検査します。
手順 5: FPGAプログラミングファイルの生成とFPGAのプログラム
FPGA プログラミング ファイルを生成するには、Quartus Prime の「Start Compilation」ボタンをクリックします。
プログラミング ファイルを生成した後、次のコマンドを使用してMATLABで FPGA をプログラムします。
filProgramFPGA('Altera','output_files/aximaster_deca.sof',1)
Ethernet AXI Manager を使用するためのセットアップ
手順 1: FPGAボードをセットアップします。DECA ボードが USB Blaster II ダウンロード ケーブルとイーサネット ケーブルの両方を介してホスト コンピュータに接続されていることを確認してください。
手順 2: MATLABでサンプルを準備する
インテル Quartus Prime ツールパスを設定します。コマンドを実行するときは、独自の インテル Quartus Prime インストール・パスを使用してください。
hdlsetuptoolpath('ToolName','Altera Quartus II', ... 'ToolPath','C:\intelFPGA\18.0\quartus\bin64\quartus.exe');
この例では Quartus プロジェクトを作成します。この tcl スクリプトは Quartus プロジェクトを作成し、作成したデザイン ファイルをプロジェクトに追加します。
system('quartus_sh -t create_project_eth_deca.tcl')
完了すると、「eth_aximaster_deca.qpf」という名前の Quartus プロジェクトが現在のディレクトリに作成されます。
手順 3: Ethernet AXI マネージャーを使用するように Quartus Prime プロジェクトを設定する
次のコマンドを使用して、IP をプロジェクト ディレクトリにコピーします。
setupAXIManagerForQuartus('eth_aximaster_deca.qpf')
生成された Quartus プロジェクトを GUI モードで開きます。ファイル ブラウザーでプロジェクトをダブルクリックするか、 MATLABでこのコマンドを実行します。
system('quartus eth_aximaster_deca.qpf &')
手順 4: Qsys デザインでのイーサネット AXI マネージャー IP の検査 (オプション)
Quartus GUI で、Qsys デザイン ファイル aximaster.qsys を開き、UDP AXI Manager IP が DDR コントローラーにどのように接続されているかを検査します。
イーサネット ベースの AXI マネージャー IP には、ターゲット IP アドレス 192.168.1.2 と UDP ポート値 50101 が割り当てられています。これらの値は、Qsys の ethernet_mac_hub_IP をダブルクリックすることで変更できます。
手順 5: FPGAプログラミングファイルの生成とFPGAのプログラム
FPGA プログラミング ファイルを生成するには、Quartus Prime の「Start Compilation」ボタンをクリックします。
プログラミング ファイルを生成した後、次のコマンドを使用してMATLABで FPGA をプログラムします。
filProgramFPGA('Altera','output_files/eth_aximaster_deca.sof',1)
FPGA への読み取りおよび書き込み操作
FPGA をプログラミングした後、AXI マネージャー IP に接続された AXI 下位への読み取りと書き込みが可能になります。この例では、データは FPGA に接続された DDR メモリに書き込まれ、 MATLABに取得されます。
MATLABで AXI マネージャー オブジェクトを作成します。
JTAG AXI マネージャーを使用する場合:
h = aximanager('Intel')
イーサネット AXI マネージャーを使用する場合:
h = aximanager('Intel','interface','Ethernet','deviceAddress','192.168.1.2','port','50101');
これら 2 つのコマンドを実行して、値 100 の単一ワードをアドレス 0 の DDR メモリに書き込み、AXI マネージャー オブジェクトを使用してそれを読み取ります。
writememory(h,0,100) readmemory(h,0,1)
MATLABの 1 つの読み取り/書き込みコマンドを使用して、大きなデータ ベクトルを DDR メモリに読み書きすることもできます。これらのコマンドは、大量のデータを自動的に小さなバーストに分割し、AXI4 プロトコル経由で転送できるようにします。この関数は、スループット パフォーマンスを最大化するために、各バーストに可能な最大のバースト サイズを使用します。次のコマンドは、100000 ワードを DDR メモリに書き込み、それらを読み取ります。また、リードバックデータが正しいかどうかをチェックし、実行時間を報告します。
address = 0; data = 1:100000; writememory(h,address,data); r = readmemory(h,address,100000); assert(all(r==data));
参考
aximanager
| writememory
| readmemory