Hello,
I’m using Xilinx VIP (AXI4lite master) to test a DUT. I had an error message:
** Fatal: (vsim-8451) D:/app/iao/Xilinx/Vivado/2018.1/data/xilinx_vip/hdl/axi_vip_pkg.sv(6655): Virtual interface resolution cannot find a matching instance for ‘virtual axi_vip_if #(.C_AXI_PROTOCOL(0), .C_AXI_ADDR_WIDTH(32), .C_AXI_WDATA_WIDTH(64), .C_AXI_RDATA_WIDTH(64), .C_AXI_WID_WIDTH(16), .C_AXI_RID_WIDTH(16), .C_AXI_AWUSER_WIDTH(0), .C_AXI_WUSER_WIDTH(0), .C_AXI_BUSER_WIDTH(0), .C_AXI_ARUSER_WIDTH(0), .C_AXI_RUSER_WIDTH(0), .C_AXI_SUPPORTS_NARROW(1), .C_AXI_HAS_BURST(1), .C_AXI_HAS_LOCK(1), .C_AXI_HAS_CACHE(1), .C_AXI_HAS_REGION(1), .C_AXI_HAS_PROT(1), .C_AXI_HAS_QOS(1), .C_AXI_HAS_WSTRB(1), .C_AXI_HAS_BRESP(1), .C_AXI_HAS_RRESP(1), .C_AXI_HAS_ARESETN(1))’.
Error loading design
And I discover that the source of message was the presence of this unused piece of code :
typedef axi_mst_agent #(
.C_AXI_PROTOCOL (AXI4_MASTER_VIP_PROTOCOL),
.C_AXI_ADDR_WIDTH (AXI4_MASTER_VIP_ADDR_WIDTH),
.C_AXI_WDATA_WIDTH (AXI4_MASTER_VIP_DATA_WIDTH),
.C_AXI_RDATA_WIDTH (AXI4_MASTER_VIP_DATA_WIDTH),
.C_AXI_WID_WIDTH (AXI4_MASTER_VIP_ID_WIDTH),
.C_AXI_RID_WIDTH (AXI4_MASTER_VIP_ID_WIDTH),
.C_AXI_AWUSER_WIDTH (AXI4_MASTER_VIP_AWUSER_WIDTH),
.C_AXI_WUSER_WIDTH (AXI4_MASTER_VIP_WUSER_WIDTH),
.C_AXI_BUSER_WIDTH (AXI4_MASTER_VIP_BUSER_WIDTH),
.C_AXI_ARUSER_WIDTH (AXI4_MASTER_VIP_ARUSER_WIDTH),
.C_AXI_RUSER_WIDTH (AXI4_MASTER_VIP_RUSER_WIDTH),
.C_AXI_SUPPORTS_NARROW (AXI4_MASTER_VIP_SUPPORTS_NARROW),
.C_AXI_HAS_BURST (AXI4_MASTER_VIP_HAS_BURST),
.C_AXI_HAS_LOCK (AXI4_MASTER_VIP_HAS_LOCK),
.C_AXI_HAS_CACHE (AXI4_MASTER_VIP_HAS_CACHE),
.C_AXI_HAS_REGION (AXI4_MASTER_VIP_HAS_REGION),
.C_AXI_HAS_PROT (AXI4_MASTER_VIP_HAS_PROT),
.C_AXI_HAS_QOS (AXI4_MASTER_VIP_HAS_QOS),
.C_AXI_HAS_WSTRB (AXI4_MASTER_VIP_HAS_WSTRB),
.C_AXI_HAS_BRESP (AXI4_MASTER_VIP_HAS_BRESP),
.C_AXI_HAS_RRESP (AXI4_MASTER_VIP_HAS_RRESP),
.C_AXI_HAS_ARESETN (AXI4_MASTER_VIP_HAS_ARESETN)
) T_AGENT_AXI4_MASTER_VIP;
please note that “T_AGENT_AXI4_MASTER_VIP” is unused. When this piece of code is removed,simulation is fine.
to my comprehension, this typedef does nothing as axi_mst_agent is a class and there is no “new” about it. But it seems that I’m wrong as it generates an error.
Does anyone can explain what can do this “typedef” ?