Main Content

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

イーサネット ベースの AXI Manager を使用した IP コア生成ワークフロー

この例では、 HDL Verifier™イーサネット AXI マネージャー IP を使用して、 HDL Coder™製品が生成したレジスターにアクセスします。AXI マネージャーは、 MATLAB®から FPGA レジスタへの直接アクセスを提供します。

要件

  • インテル® Quartus® Prime (サポートされているバージョンはサポートされている EDA ツールとハードウェアにリストされています)

  • Arrow® DECA MAX® 10 FPGA 評価キット

  • HDL Coder Support Package for Intel FPGA Boards

  • HDL Verifier Support Package for Intel FPGA Boards

  • USB-JTAGケーブル

  • クロスオーバーイーサネットケーブル

Arrow DECA MAX 10 FPGA 評価キット

この図は、Arrow DECA MAX 10 FPGA 評価キットを示しています。

リファレンス設計例

リファレンス デザインの AXI Manager - Ethernet は、読み取りおよび書き込み操作の発行にMathWorks® IP とMATLABコマンド ライン インターフェイスを使用します。このデザインを使用するには、 HDL Verifier製品が必要です。このリファレンス デザインのplugin_rd.mを以下に示します。

function hRD = plugin_rd()
% Reference design definition
% Construct reference design object
hRD = hdlcoder.ReferenceDesign('SynthesisTool', 'Altera QUARTUS II');
hRD.ReferenceDesignName = 'AXI Manager - Ethernet (requires HDL Verifier)';
hRD.BoardName = 'Arrow DECA MAX 10 FPGA evaluation kit';
% Tool information
hRD.SupportedToolVersion = {'17.1','18.1','19.1','20.1'};
%% Add custom design files
% add custom Qsys design
hRD.addCustomQsysDesign('CustomQsysPrjFile', 'system_soc.qsys');
hRD.CustomConstraints = {'system_soc.sdc','create_project_eth_deca.tcl'};
hRD.CustomFiles = {'phy_to_gmii'}; % Adding other files for custom IP core
% Add ip from support package
msg = message('hdlcommon:plugin:IPRepositoryHDLVerifierAlteraNotFound',...
 '<a href="matlab:matlab.addons.supportpackage.internal.explorer.showSupportPackages({''HDLVALTERA''}, {''tripwire''});">download</a>').getString;
hRD.addIPRepository('IPListFunction','hdlverifier.fpga.quartus.iplist','NotExistMessage', msg);
%% Add interfaces
% add clock interface
hRD.addClockInterface( ...
    'ClockConnection',     'altpll_0.c0', ...
    'ResetConnection',     'clk_0.clk_reset', ...
    'DefaultFrequencyMHz', 50);
% add AXI4 slave interfaces
hRD.addAXI4SlaveInterface( ...
    'InterfaceConnection', 'udp_axi_manager_0.axi4_udp', ...
    'BaseAddress',         '0x0000_0000', ...
    'InterfaceType',       'AXI4');       % [ 'AXI4-Lite'| 'AXI4' ]
% Specify Embedded Coder Support Package to use for Software Interface
hRD.EmbeddedCoderSupportPackage = hdlcoder.EmbeddedCoderSupportPackage.None;
                                          % [ None | Zynq | AlteraSoC ]

AXI マネージャー リファレンス デザインの対応するplugin_rd.mファイルは、 plugin_rd.mにあります。

IPコアワークフローの実行

リファレンス デザインは、DECA ボード上の LED を点滅させる HDL IP コアを生成します。このパスで、次のデモで使用されるファイルを見つけます。

matlab/toolbox/hdlcoder/supportpackages/altera/+hdlipcore/+board/ArrowDECA

イーサネット AXI マネージャー IP を使用する AXI Manager - イーサネット リファレンス デザインの IP コア ワークフローを実行するには、次の手順に従います。このリファレンス デザインを使用すると、DECA ボード上の LED を点滅させる HDL IP コアを生成できます。HDL IP コアを生成するには、次の手順に従います。

1. インテル Quartus ツールパスを設定します。コマンドを実行するときに独自の Intel Quartus インストール パスを使用します。

hdlsetuptoolpath('ToolName','Altera QUARTUS II','ToolPath', ...
 'C:\intelFPGA\20.1\quartus\bin64\quartus.exe');

2.MATLABでこのコマンドを実行して、LED 点滅を実装するSimulinkモデルを開きます。

open_system('hdlcoder_led_blinking')

3.hdlcoder_led_blinking/led_counterサブシステムを右クリックし、HDL コード、続いて HDL ワークフロー アドバイザー を選択して、 led_counterサブシステムから HDL ワークフロー アドバイザーを起動します。

4.ステップ 1.1 で、ターゲット ワークフロー としてIP Core Generationを選択し、ターゲット プラットフォーム としてArrow DECA MAX 10 FPGA evaluation kit を選択します。「このタスクを実行」をクリックします。

5.ステップ 1.2 で、Reference designAXI Manager - Ethernet (requires HDL Verifier)として選択します。

6.手順 1.3 で、 Blink_frequencyBlink_direction、およびRead_backポートを AXI4 インターフェイスに割り当てます。LEDポートをLEDs General Purpose [0:7]に割り当てます。

7.ワークフローの残りの手順を実行して、ビットストリームを生成し、ターゲット デバイスをプログラムします。

このデザインのイーサネット AXI マネージャー IP のデフォルトのターゲット IP アドレスは 192.168.1.2 で、デフォルトの UDP ポート値は 50101 です。ホスト マシンのネットワーク インターフェイス カード (NIC) をそれに応じて設定します。

IPコアレポートからアドレスを決定する

HDL Coder IP コアのベース アドレスは、リファレンス デザインplugin_rd.mで定義されています。このデザインのベース アドレスは 0x0000_0000 です。IP コア レポートのレジスタ アドレス マッピング テーブルにオフセットが示されています。

HDL Verifier AXI Manager - イーサネット コマンド ライン インターフェイス

Intel FPGA ボード用のHDL Verifierサポート パッケージがあり、AXI Manager - Ethernet リファレンス デザインを選択している場合は、 MATLABコマンド ライン インターフェイスを使用して、 HDL Coder製品によって生成された IP コアにアクセスできます。

DDR メモリへの書き込みと読み取りを行うには、次の手順に従います。

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

h = aximanager('Intel','interface','Ethernet','DeviceAddress','192.168.1.2')

2.書き込みコマンドを発行します。たとえば、DUT を無効にします。

h.writememory('4',0)

3.DUTを再度有効にします。

h.writememory('4',1)

4.現在のカウンター値を読み取ります。

h.readmemory('108',1)

参考

| |

関連するトピック