このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
リファレンス設計で複数の AXI Master インターフェイスを定義して DUT AXI4 スレーブ インターフェイスにアクセスする
カスタム リファレンス設計で複数の 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
プロパティも指定します。
IDWidth
は AWID
、WID
、ARID
、および RID
などのすべての ID 信号の幅であり、正の整数として指定します。既定では、IDWidth
は 12
であり、これによって 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 Name
が hdlverifier_axi_manager_0
、Address_Space of Instance Name
が axi4m
です。
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.tcl
は addCustomVivadoDesign
メソッドの 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 Name
が AXI_Manager_0
、Port name
が axm_m0
です。各 AXI Master IP は、HDL IP コアの BaseAddress
と InterfaceConnection
で、文字ベクトルの cell 配列として指定しなければなりません。
AXI Master IP は既に Qsys リファレンス設計プロジェクトに含まれていることを確認しなければなりません。system_soc.qsys
は addCustomQsysDesign
メソッドの 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 のインスタンス名、端子名、および対応するアドレス空間を確認できます。
参考
hdlcoder.Board
| hdlcoder.ReferenceDesign