Main Content

DUT AXI4 スレーブ インターフェイスにアクセスするためのリファレンス設計での複数の AXI Master インターフェイスの定義

カスタム リファレンス設計で複数の AXI Master インターフェイスを定義して、DUT 向けに生成された HDL DUT IP コアで AXI4 スレーブ インターフェイスにアクセスできます。この機能により、Zynq® プロセッシング システムの HDL Verifier™ JTAG AXI Manager IP および ARM® プロセッサなどのリファレンス設計で HDL DUT IP コアを 2 つ以上の AXI Master IP に同時に接続できます。

Vivado ベースのリファレンス設計

複数の AXI Master インターフェイスを定義するには、各 AXI Master インスタンスについて BaseAddressSpace および MasterAddressSpace を指定し、IDWidth プロパティも指定します。

IDWidthAWIDWIDARID、および RID などのすべての ID 信号の幅であり、正の整数として指定します。既定では、IDWidth12 であり、これによって 1 つの AXI Master インターフェイスの DUT IP コアへの接続を指定することができます。DUT IP コアを複数の AXI Master インターフェイスに接続するには、IDWidth を増やす必要がある可能性があります。IDWidth の値はツール固有です。1 つを超える AXI Master インターフェイスを指定する場合に使用しなければならない値を確認するには、そのツールのドキュメントを参照します。誤った ID の幅を使用すると、合成ツールはエラーを生成し、使用しなければならない正しい IDWidth を報告します。

このコードは、Vivado® ベースのリファレンス設計で複数の AXI Master インターフェイスを指定する際の MasterAddressSpace フィールドの構文です。

'MasterAddressSpace', ...
   {'AXI Master Instance Name1/Address Space of Instance Name1', ...
    'AXI Master Instance Name2/Address_Space of Instance Name2',...};

たとえば、このコードは plugin_rd ファイルを変更して 2 つの AXI Master インターフェイスを定義する方法を示しています。

% ...

%% Add custom design files
% add custom Vivado design
hRD.addCustomVivadoDesign( ...
    'CustomBlockDesignTcl', 'system_top.tcl', ...
    'VivadoBoardPart',      'xilinx.com:zc706:part0:1.0');


% ...
% ...

% The DUT IP core in this reference design is connected 
% to both Zynq Processing System and the AXI Manager IP. 
% Because of 2 AXI Master, ID width has to be increased
% from 12 to 13. 
hRD.addAXI4SlaveInterface( ...
    'InterfaceConnection', 'axi_interconnect_0/M00_AXI', ...
    'BaseAddress',         {'0x40010000', '0x40010000'}, ...
    'MasterAddressSpace',  {'processing_system7_0/Data', 'hdlverifier_axi_manager_0/axi4m'}, ...
    'IDWidth',             13);

% ...

この例では、2 つの AXI Master IP は、HDL Verifier の AXI Manager IP と ARM プロセッサです。MasterAddressSpace の構文に基づき、HDL Verifier の AXI Manager IP は、AXI Master Instance Namehdlverifier_axi_manager_0Address_Space of Instance Nameaxi4m です。

HDL DUT IP コアの AXI4 スレーブ インターフェイスは addAXI4SlaveInterface メソッドの InterfaceConnection プロパティで定義される Xilinx® AXI Interconnect IP に接続します。AXI4 スレーブ インターフェイスには BaseAddress があります。この BaseAddress は 2 つの AXI Master IP の MasterAddressSpace にマッピングしなければなりません。これは文字ベクトルの cell 配列として指定されます。

AXI Master IP は既に Vivado リファレンス設計プロジェクトに含まれていることを確認しなければなりません。system_top.tcladdCustomVivadoDesign メソッドの CustomBlockDesignTcl プロパティで定義される TCL ファイルです。この TCL ファイルで、2 つの AXI Master IP が同じ Xilinx AXI Interconnect IP に接続されていることを確認しなければなりません。この相互接続で、AXI Master IP が HDL IP コアの AXI4 スレーブ インターフェイスに接続されます。

IP Core Generation ワークフローを実行して Vivado プロジェクトを作成した後、プロジェクトを開きます。Vivado プロジェクトで、ブロック設計を開くと、2 つの AXI Master IP が HDL DUT IP コアに接続されていることが確認できます。[Address Editor] タブを選択すると、AXI Master のインスタンス名と対応するアドレス空間を確認できます。

Qsys ベースのリファレンス設計

複数の AXI Master インターフェイスを定義するには、各 AXI Master インスタンスについて InterfaceConnection および BaseAddressSpace を指定し、IDWidth プロパティも指定します。このコードは、Qsys™ ベースのリファレンス設計で複数の AXI Master インターフェイスを指定する際の InterfaceConnection フィールドの構文です。

'InterfaceConnection', ...
   {'AXI Master Instance Name1/Port name of Instance Name1', ...
    'AXI Master Instance Name2/Port name of Instance Name1', ...};

たとえば、このコードは plugin_rd ファイルを変更して 3 つの AXI Master インターフェイスを定義する方法を示しています。

% ...

%% Add custom design files
% add custom Qsys design
hRD.addCustomQsysDesign('CustomQsysPrjFile', 'system_soc.qsys');
hRD.CustomConstraints = {'system_soc.sdc','system_setup.tcl'};


% ... 

% add AXI4 slave interfaces
hRD.addAXI4SlaveInterface( ...
    'InterfaceConnection', {'hps_0.h2f_axi_master','master_0.master','AXI_Manager_0.axm_m0'}, ... 
    'BaseAddress',         {'0x0000_0000','0x0000_0000','0x0000_0000'},...
    'InterfaceType',       'AXI4'...
    'IDWidth',             14); 

% ...

InterfaceConnection オプションの構文に基づき、HDL Verifier の AXI Manager IP は、AXI Master Instance NameAXI_Manager_0Port nameaxm_m0 です。各 AXI Master IP は、HDL IP コアの BaseAddressInterfaceConnection で、文字ベクトルの cell 配列として指定しなければなりません。

AXI Master IP は既に Qsys リファレンス設計プロジェクトに含まれていることを確認しなければなりません。system_soc.qsysaddCustomQsysDesign メソッドの CustomQsysPrjFile プロパティで定義されるファイルです。このファイルで、2 つの AXI Master IP が同じ Qsys AXI Interconnect IP に接続されていることを確認しなければなりません。

この相互接続で、AXI Master IP が HDL IP コアの AXI4 スレーブ インターフェイスに接続されます。

IP Core Generation ワークフローを実行して Quartus® プロジェクトを作成した後、プロジェクトを開きます。Quartus プロジェクトで、3 つの AXI Master IP と AXI Master インターフェイスが DUT の HDL IP コアに接続されていることが確認できます。[Address Map] タブを選択すると、AXI Master のインスタンス名、端子名、および対応するアドレス空間を確認できます。

参考

|

関連する例

詳細