axi4stream_passthrough_agent

AXI4STREAM Passthrough Agent. The AXI4STREAM passthrough agent is comprised of other classes which are monitor,runtime master driver,  runtime slave driver. By default, passthrough agent is in monitor mode. In order to issue transaction as master, it has to be switched to runtime master mode, in order to receive transaction, it has to be switched into runtime slave mode. Please refer PG 277 section about "Useful Coding Guidelines and Examples" for more details.

Information
class member

axi4stream_mst_driver `XIL_AXI4STREAM_PARAM_ORDER mst_driver;

axi4stream_slv_driver `XIL_AXI4STREAM_PARAM_ORDER slv_driver;

axi4stream_monitor `XIL_AXI4STREAM_PARAM_ORDER monitor;

axi4stream_vif_proxy `XIL_AXI4STREAM_PARAM_ORDER vif_proxy;

axi4stream_passthrough_agent includes a monitor, a master driver, a slave driver and vif_proxy.  Please refer below picture for more details about axi4stream_passthrough_agent.

axi4stream_passthrough_agent
Functions
new
function new (
input string name = "unnamed_axi4stream_passthrough_agent",
virtual interface axi4stream_vip_if `XIL_AXI4STREAM_PARAM_ORDER vif
);

Constructor to create an AXI4STREAM Passthrough Agent. ~name~ is the instance name and axi4stream_vip_if is the interface in the design.  Please see PG277 for how to find the interface in design hierarchy.

set_verbosity
virtual function void set_verbosity(
xil_verbosity updated
);

Sets the verbosity of the Agent and all sub classes. If updated is bigger than 300, it will print out necessary log message. Refer xil_info for verbosity information.

set_vif
function void set_vif(
axi4stream_vif_proxy `XIL_AXI4STREAM_PARAM_ORDER vif
);

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

set_agent_tag
virtual function void set_agent_tag(
string updated
);

Sets the tag of the Agent and all sub classes. If more than one VIPs(in master 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.

start_monitor
virtual task start_monitor();

Enables the monitor in this agent to start collecting data.

start_slave
virtual task start_slave();

Enables the monitor and slave driver in this agent to start collecting data.  The slave driver will only issue ready generation when the send functions are called.

start_master
virtual task start_master();

Enables the monitor and master driver in this agent to start collecting data.  The master driver will only issue transactions when the send functions are called.

stop_master
virtual task stop_master();

Disables the driver of the master. Once disabled, no further action will occur by the drivers.

stop_slave
virtual task stop_slave();

Disables the driver 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.