axi_slv_agent

AXI Slave Agent Class.

This class contains other components that comprise the entire Slave Verification component.

These are the Monitor, Read Driver and Write Driver.

Refer PG267 section about AXI Slave Agent for more details.

Information
class member

axi_monitor  `AXI_PARAM_ORDER monitor;

axi_slv_wr_driver  `AXI_PARAM_ORDER wr_driver;

axi_slv_rd_driver  `AXI_PARAM_ORDER rd_driver;

axi_vif_mem_proxy  `AXI_PARAM_ORDER vif_proxy;

axi_slv_agent includes a monitor, a read driver, a write driver and vif_proxy. Please refer below picture for more details about axi_slv_agent.

Functions
new
function new (
string name "unnamed_axi_slv_agent",
virtual interface axi_vip_if `AXI_PARAM_ORDER vif
);

Constructor to create an AXI Slave Agent. ~name~ is the instance name and axi_vip_if is the interface in the design.  Please see PG267 for how to find the interface in design hierarchy.

set_verbosity
virtual function void set_verbosity(
xil_verbosity updated
);

Sets the verbosity of the axi_slv_agent and all sub classes to determine whether the information will be printed out or not.  refer xil_info for verbosity level setting.

set_agent_tag
virtual function void set_agent_tag(
string updated
);

Sets the tag of the axi_slv_agent and all sub classes. If more than one VIPs(in slave mode) being used in the same testbench, User can use set_agent_tag with different tag to tell where exactly the log message comes from.

set_vif
function void set_vif(
axi_vif_mem_proxy `AXI_PARAM_ORDER vif
);

Sets the Agent's virtual interface. This is the interface that will be monitored and/or driven.

set_wr_transaction_depth
function void set_wr_transaction_depth(
input xil_axi_uint update
);

Sets the maximum number of WRITE transactions that the axi_slv_agent will have in flight at one time.

get_wr_transaction_depth
function xil_axi_uint get_wr_transaction_depth();

Returns the maximum number of WRITE transactions that the axi_slv_agent will have in flight at one time.

set_rd_transaction_depth
function void set_rd_transaction_depth(
input xil_axi_uint update
);

Sets the maximum number of READ transactions that the axi_slv_agent will have in flight at one time.

get_rd_transaction_depth
function xil_axi_uint get_rd_transaction_depth();

Returns the maximum number of READ transactions that the axi_slv_agent will have in flight at one time.

enable_transaction_depth_checks
function void enable_transaction_depth_checks();

Turn on current agent's transaction depth check and its monitor's enable_transaction_depth_checks

disable_transaction_depth_checks
function void disable_transaction_depth_checks();

Turn off current agent's transaction depth check and its monitor's enable_transaction_depth_checks

start_monitor
virtual task start_monitor();

Enables the monitor in this agent to start collecting data.

start_slave
virtual task start_slave();

Enables the READ and WRITE drivers in this agent. Enables monitor to start collecting data.  The drivers will only issue ready  when the send functions are called.

stop_slave
virtual task stop_slave();

Disables the READ and WRITE drivers of the slave. Once disabled, no further action will occur by the drivers.

stop_monitor
virtual task stop_monitor();

Disables the monitor in this agent from start collecting data. Once disabled, no further action will occur by the monitor.

set_nobackpressure_readies
virtual task set_nobackpressure_readies();

Convenience function to set the ARREADY/WREADY/AWREADY of the slave to not apply any backpressure to the simulation.