Step1. Create a slave AXI VIP interface
interface axi_if ();
//-----------------------------------------------------------------------
// AXI Interface setup and hold parameters
//-----------------------------------------------------------------------
parameter setup_time = 1;
parameter hold_time = 1;
bit aclk ;
bit aresetn ;
//-----------------------------------------------------------------------
// AXI Interface Write Address Channel Signals
//-----------------------------------------------------------------------
wire awvalid ;
wire [`DW_VIP_AXI_ADDR_PORT_WIDTH-1:0] awaddr ;
wire [`DW_VIP_AXI_ALEN_PORT_WIDTH-1:0] awlen ;
wire [`DW_VIP_AXI_ASIZE_PORT_WIDTH-1:0] awsize ;
wire [`DW_VIP_AXI_ABURST_PORT_WIDTH-1:0] awburst ;
wire [`DW_VIP_AXI_ALOCK_PORT_WIDTH-1:0] awlock ;
wire [`DW_VIP_AXI_ACACHE_PORT_WIDTH-1:0] awcache ;
wire [`DW_VIP_AXI_APROT_PORT_WIDTH-1:0] awprot ;
wire [`DW_VIP_AXI_AID_PORT_WIDTH-1:0] awid ;
wire [`DW_VIP_AXI_AWSIDEBAND_PORT_WIDTH-1:0] awsideband ;
wire awready ;
clocking slave_clocking_block @(posedge aclk);
default input #setup_time output #hold_time ;
input aresetn ;
input awvalid ;
input awaddr ;
input awlen ;
input awsize ;
input awburst ;
input awlock ;
input awcache ;
input awprot ;
input awid ;
output awready ;
input awsideband ;
endclocking : slave_clocking_block
//------------------------------------------------------------------------
/** Modport used to connect the VIP AXI Slave to AXI interface signals. */
modport axi_slave_modport(import clk_block.*, import slave_clocking_block.*);
endinterface: axi_if
Step2. Create Slave AXI VIP Configuration (axiCfg)
class axiCfg extends vmm_data;