在参考设计中定义多个AXI主接口以访问DUT AXI4从接口
您可以在自定义参考设计中定义多个AXI Master接口,并在生成的高密度脂蛋白DUT IP核中为DUT访问AXI4从接口。这种能力使您能够同时将HDL DUT IP核连接到参考设计中的两个或多个AXI主IP,例如HDL Verifier™JTAG AXI Manager IP和ARM®Zynq的处理器®处理系统。
Vivado基于参考设计
要定义多个AXI Master接口,需要指定BaseAddressSpace
而且MasterAddressSpace
的IDWidth
财产。
IDWidth
是所有ID信号的宽度,例如AWID
,WID
,干旱
,掉
,指定为正整数。默认情况下,IDWidth
是12
,它允许您指定一个到DUT IP核的AXI Master接口连接。要将DUT IP核连接到多个AXI Master接口,您可能必须增加IDWidth
.的IDWidth
值与工具相关。要查看指定多个AXI Master接口时必须使用的值,请参阅该工具的文档。如果使用不正确的ID宽度,合成工具将生成一个错误,并报告正确的ID宽度IDWidth
你必须使用它。
的语法MasterAddressSpace
在Vivado中指定多个AXI Master接口时®基于参考设计:
“MasterAddressSpace”,…{'AXI主实例Name1/实例Name1的地址空间',…'AXI Master实例Name2/实例Name2的Address_Space ',…};
例如,这段代码说明了如何修改plugin_rd
文件定义两个AXI Master接口。
%……添加自定义设计文件%添加自定义Vivado设计hRD.addCustomVivadoDesign (...“CustomBlockDesignTcl”,“system_top.tcl”,...“VivadoBoardPart”,“xilinx.com: zc706: part0:1.0”);%……%……本参考设计中的DUT IP核已连接%到Zynq Processing System和AXI Manager IP。由于2 AXI Master, ID宽度必须增加%从12到13。hRD.addAXI4SlaveInterface (...“InterfaceConnection”,“axi_interconnect_0 / M00_AXI”,...“BaseAddress”, {“0 x40010000”,“0 x40010000”},...“MasterAddressSpace”, {“processing_system7_0 /数据”,“hdlverifier_axi_manager_0 / axi4m”},...“IDWidth”13);%……
在本例中,两个AXI主IP是HDL验证器、AXI管理器IP和ARM处理器。的语法MasterAddressSpace
,对于HDL验证器AXI管理器IPAXI主实例名
是hdlverifier_axi_manager_0
和实例名称的Address_Space
是axi4m
.
HDL DUT IP核中的AXI4从接口连接到Xilinx®接口定义的AXI互连IPInterfaceConnection
的属性addAXI4SlaveInterface
方法。AXI4从接口有一个BaseAddress
.这BaseAddress
必须映射到MasterAddressSpace
为两个AXI主IP,指定为字符向量的单元格数组。
您必须确保在Vivado参考设计项目中已经包含了AXI Master ip。system_top.tcl
定义的TCL文件是CustomBlockDesignTcl
的属性addCustomVivadoDesign
方法。在这个TCL文件中,必须确保两个AXI主IP连接到相同的Xilinx AXI Interconnect IP。然后,这些互连将AXI主IP连接到HDL IP核中的AXI4从接口。
在运行IP核生成
创建Vivado项目,打开项目。在Vivado项目中,如果打开块设计,可以看到两个连接到HDL DUT IP核的AXI Master IP。如果您选择地址编辑器选项卡中,可以看到AXI Master实例名和相应的地址空间。
转换频率基于参考设计
要定义多个AXI Master接口,需要指定InterfaceConnection
而且BaseAddressSpace
的IDWidth
财产。的语法InterfaceConnection
在基于Qsys™的参考设计中指定多个AXI Master接口时:
“InterfaceConnection”,…{'AXI主实例Name1/实例Name1的端口名',…'AXI主实例Name2/实例Name1的端口名',…};
例如,这段代码说明了如何修改plugin_rd
文件定义三个AXI Master接口。
%……添加自定义设计文件%添加自定义Qsys设计hRD.addCustomQsysDesign (“CustomQsysPrjFile”,“system_soc.qsys”);hRD。CustomConstraints = {“system_soc.sdc”,“system_setup.tcl”};%……添加AXI4从接口hRD.addAXI4SlaveInterface (...“InterfaceConnection”, {“hps_0.h2f_axi_master”,“master_0.master”,“AXI_Manager_0.axm_m0”},...“BaseAddress”, {“0 x0000_0000”,“0 x0000_0000”,“0 x0000_0000”},...“InterfaceType”,“AXI4”...“IDWidth”14);%……
的语法InterfaceConnection
选项,对于HDL验证器AXI管理器IP,则为AXI主实例名
是AXI_Manager_0
和端口名称
是axm_m0
.对于每个AXI主IP,BaseAddress
的高密度脂蛋白IP核和InterfaceConnection
必须指定为字符向量的单元格数组。
您必须确保AXI Master ip已经包含在Qsys参考设计项目中。system_soc.qsys
方法定义的文件是否为CustomQsysPrjFile
的属性addCustomQsysDesign
方法。在此文件中,必须确保两个AXI主IP连接到相同的Qsys AXI Interconnect IP。
然后,这些互连将AXI主IP连接到HDL IP核中的AXI4从接口。
在运行IP核生成
工作流并创建Quartus®项目,打开项目。在Quartus项目中,您可以看到三个AXI主IP和连接到DUT的HDL IP核的AXI主接口。如果您选择地址映射选项卡中,可以看到AXI Master实例名、端口名和相应的地址空间。
另请参阅
hdlcoder。董事会
|hdlcoder。ReferenceDesign