Information
AXI4STREAM VIP Package

The package is systemverilog package for XILINX AXI4STREAM Verification Component IP, it includes all the classes,enums, typedefs etc. XILINX AXI4STREAM Verification Component IP has been developed to support the simulation of customer designed AXI-based IP.  Please refer PG277 for more details about this IP.

Macros
xil_info(TAG, MSG, LEVEL)

Xilinx VIP macro for information which gives informative message when LEVEL is bigger than 300.  Else, it is silent.

`define xil_info(TAG, MSG, LEVEL) \
if(LEVEL > 300) \
$display("INFO: [%s] (%m) %0t : %s", TAG, $time, MSG);
xil_warning(TAG, MSG)

Xilinx VIP macro for warning which indicates a potential problem.

`define xil_warning(TAG, MSG) \
$warning("[%s] (%m) %0t : %s", TAG, $time, MSG);
xil_error(TAG, MSG)

Xilinx VIP macro for error which indicates a real problem.Simulation continues subject to the configured message action.

`define xil_error(TAG, MSG) \
$error("[%s] (%m) %0t : %s", TAG, $time, MSG);
xil_fatal(TAG, MSG)

Xilinx VIP macro for Fatal which indicates a problem from which simulation can not recover.simulation exits via $finish after a #0 delay.

`define xil_fatal(TAG, MSG) \
$fatal(1,"[%s] (%m) %0t : %s", TAG, $time, MSG);
Types
xil_uint

Xilinx VIP Interger unsigned data type

typedef integer unsigned                   xil_uint;
xil_verbosity

Xilinx VIP verbosity data type. When verbosity is bigger than 300, information will be printed out.

typedef xil_uint                          xil_verbosity;
xil_axi4stream_uint

Xilinx AXI4STREAM VIP Interger unsigned data type

typedef integer unsigned  xil_axi4stream_uint;
xil_axi4stream_ulong

Xilinx AXI4STREAM VIP longint unsigned data type

typedef longint unsigned  xil_axi4stream_ulong;
xil_axi4stream_long

Xilinx AXI4STREAM VIP longint data type

typedef longint           xil_axi4stream_long;
xil_axi4stream_data_byte

Xilinx AXI4STREAM VIP data byte

typedef logic [7:0]       xil_axi4stream_data_byte;
xil_axi4stream_strb

Xilinx AXI4STREAM VIP strobe bit

typedef bit               xil_axi4stream_strb;
xil_axi4stream_user_beat

Xilinx AXI4STREAM VIP  user beat data type

typedef logic [XIL_AXI4STREAM_USER_BEAT_WIDTH-1:0]    xil_axi4stream_user_beat;
xil_axi4stream_data_beat

Xilinx AXI4STREAM VIP data beat data type

typedef logic [XIL_AXI4STREAM_MAX_DATA_WIDTH-1:0]     xil_axi4stream_data_beat;
xil_axi4stream_strb_beat

Xilinx AXI4STREAM VIP  strobe beat data type

typedef bit   [XIL_AXI4STREAM_MAX_DATA_WIDTH/8-1:0]   xil_axi4stream_strb_beat;
xil_axi4stream_user_element

Xilinx AXI4STREAM VIP user element  data type

typedef xil_axi4stream_uint                           xil_axi4stream_user_element;
xil_axi4stream_driver_return_policy_t

Policies of the transaction to inform the driver whether to return the transaction back to the issuer Depending on the policy the driver will return the transaction at different points in the life of the transaction.

XIL_AXI4STREAM_NO_RETURN        - Do not return the transaction back to the user environment
XIL_AXI4STREAM_AT_ASSERT_RETURN - Return the transaction back to the user environment after
it TVALID is asserted, but before it is accepted.
XIL_AXI4STREAM_AT_ACCEPT_RETURN - Return the transaction back to the user environment
when it has been accepted by the slave.
xil_axi4stream_ready_gen_policy_t

Collection of policies that describe how the TREADY signals will behave. These policies can introduce backpressure into the system to find design faults. Refer PG277 section about READY Generation for more details.

 XIL_AXI4STREAM_READY_GEN_NO_BACKPRESSURE   - Ready stays asserted and will not change. The driver
will still check for policy changes.
XIL_AXI4STREAM_READY_GEN_SINGLE - Ready stays 0 for low_time clock cycles and then
drives 1 until one ready/valid handshake occurs,
the policy repeats until the channel is given
different policy.
XIL_AXI4STREAM_READY_GEN_EVENTS - Ready stays 0 for low_time clock cycles and then
drives 1 until event_count ready/valid handshakes
occur,the policy repeats until the channel is given
different policy.
XIL_AXI4STREAM_READY_GEN_OSC - Ready stays 0 for low_time and then goes to 1 and
stays 1 for high_time,the policy repeats until the
channel is given different policy.
XIL_AXI4STREAM_READY_GEN_RANDOM - This policy generate random ready policy and uses
min/max pair of low_time, high_time and event_count to
generate low_time, high_time and event_count.
XIL_AXI4STREAM_READY_GEN_AFTER_VALID_SINGLE - This policy is active when VALID is detected to be
asserted, Ready stays 0 for low_time clock cycles and
then drives 1 until one ready/valid handshake occurs,
the policy repeats until the channel is given
different policy.
XIL_AXI4STREAM_READY_GEN_AFTER_VALID_EVENTS - This policy is active when VALID is detected to be
asserted, Ready stays 0 for low_time clock cycles and
then drives 1 until event_count ready/valid handshake
occurs,the policy repeats until the channel is given
different policy.
XIL_AXI4STREAM_READY_GEN_AFTER_VALID_OSC - This policy is active when VALID is detected to be
asserted, Ready stays 0 for low_time and then goes to
1 and stays 1 for high_time,the policy repeats until
the channel is given different policy.
xil_axi4stream_ready_rand_policy_t

Collection of policies that describe how the TREADY signals will behave when xil_axi4stream_ready_gen_policy is XIL_AXI4STREAM_READY_GEN_RANDOM. Refer PG277 section about READY Generation for more details.

XIL_AXI4STREAM_READY_RAND_SINGLE             - Ready stays 0 for low_time clock cycles and then
drives 1 until one ready/valid handshake occurs,
the policy repeats until the channel is given
different policy.
XIL_AXI4STREAM_READY_RAND_EVENTS - Ready stays 0 for low_time clock cycles and then
drives 1 until event_count ready/valid handshakes
occur,the policy repeats until the channel is given
different policy.
XIL_AXI4STREAM_READY_RAND_OSC - Ready stays 0 for low_time and then goes to 1 and
stays 1 for high_time,the policy repeats until the
channel is given different policy.
XIL_AXI4STREAM_READY_RAND_AFTER_VALID_SINGLE - This policy is active when VALID is detected to be
asserted, Ready stays 0 for low_time clock cycles and
then drives 1 until one ready/valid handshake occurs,
the policy repeats until the channel is given
different policy.
XIL_AXI4STREAM_READY_RAND_AFTER_VALID_EVENTS - This policy is active when VALID is detected to be
asserted, Ready stays 0 for low_time clock cycles and
then drives 1 until event_count ready/valid handshake
occurs,the policy repeats until the channel is given
different policy.
XIL_AXI4STREAM_READY_RAND_AFTER_VALID_OSC - This policy is active when VALID is detected to be
asserted, Ready stays 0 for low_time and then goes to
1 and stays 1 for high_time,the policy repeats until
the channel is given different policy.
xil_axi4stream_boolean_t

AXI4STREAM Boolean data type

XIL_AXI4STREAM_TRUE  - Boolean TRUE
XIL_AXI4STREAM_FALSE - Boolean FALSE
xil_axi4stream_vif_dummy_drive_t

When VIF driver is in idle mode, possible signals that can be driven on VIF

XIL_AXI4STREAM_VIF_DRIVE_NONE  - VIF drive zero in dummy mode
XIL_AXI4STREAM_VIF_DRIVE_X - VIF drive X in dummy mode
XIL_AXI4STREAM_VIF_DRIVE_NOISE - VIF drive noise in dummy mode
XIL_AXI4STREAM_VIF_DRIVE_Z - VIF drive Z in dummy mode
xil_axi4stream_xfer_alignment_t

Transaction data pattern which can be all valid bytes, all null bytes, all position bytes or a combination  of these three.

XIL_AXI4STREAM_XFER_ALL_SET       -  All bytes are valid bytes
XIL_AXI4STREAM_XFER_ALL_NULLBYTE - All bytes are null Bytes
XIL_AXI4STREAM_XFER_ALL_POSBYTE - All bytes are position bytes
XIL_AXI4STREAM_XFER_RANDOM - Bytes are combination of valid, null and position bytes
xil_axi4stream_xfer_delay_insertion_policy_t

In axi4stream master driver, the time difference between the driver get the transaction and it starts to drive the data onto data bus is the delay. Depending on the delay policy, when it is XIL_AXI4STREAM_DELAY_INSERTION_FROM_IDLE,the driver can adjust the transfer delay to compensate for any backpressure observed for the prior transfer. Else it always using the delay in the transaction which the driver gets as the delay.

XIL_AXI4STREAM_DELAY_INSERTION_ALWAYS         - Always insert data delay into master driver
XIL_AXI4STREAM_DELAY_INSERTION_FROM_IDLE - Insert data delay only when the driver is from idle state
xil_void

The xil_void class is the base class for all Xilinx Verification Component classes.  It is an abstract class with no data memebers or functions.

xil_object

The xil_object class is the base class for all Xilinx Verification Component data and hierarchical classes. Its primary role is to define a set of methods for common operations such as set name, verbosity, tag etc.

Functions
new
function new (
input string name "unnamed_xil_object"
);

Constructor to create a new xil_object.~name~ is the name of the instance.

get_name
function string get_name();

Returns the name of xil_object.

get_full_name
function string get_full_name();

Returns the name of xil_object.

set_name
function void set_name(
input string n
);

Set the name of xil_object to be n.

get_inst_id
function int get_inst_id();

Returns m_inst_id of xil_object.

set_verbosity
virtual function void set_verbosity(
xil_verbosity updated
);

Sets the verbosity of debug information which will be printed in <xil_object>.If updated is bigger than 300, it will print out necessary log message. Refer xil_info for verbosity information.

get_verbosity
virtual function xil_verbosity get_verbosity();

Returns the current value of verbosity of xil_object.

set_tag
virtual function void set_tag(
input string value
);

Sets the name/TAG of the xil_object.

get_tag
virtual function string get_tag();

Gets the name/TAG of the xil_object.

set_is_active
virtual function void set_is_active();

Sets is_active to be 1 and xil_object is in active state.

clr_is_active
virtual function void clr_is_active();

Sets is_active to be 0 and xil_object is in not active state.

get_is_active
virtual function bit get_is_active();

Returns the is_active value of xil_object. A value of 1 is considered active.

wait_enabled
task wait_enabled();

Wait until is_active is high of xil_object.

xil_reporter

The xil_reporter class is a class which extends from xil_object and add its own get_type_name function

Functions
new
function new (
input string name "unnamed_xil_reporter"
);

Constructor to create a new xil_reporter. ~name~ is the name of the instance.

get_type_name
virtual function string get_type_name();

Returns name of xil_reporter.

xil_component

The xil_componennt class is a class which extends from xil_reporter and added its own new and get_type_name function

Functions
new
function new(
input string name"unnamed_xil_component"
);

Constructor to create a new xil_component and assign its name to type_name. ~name~ is the name of the instance.

get_type_name
virtual function string get_type_name();

Returns type_name of xil_component.

xil_agent

The xil_agent class is a class which extends from xil_component.

Functions
new
function new(
input string name"unnamed_xil_agent"
);

Constructor to create a new xil_agent. ~name~ is the name of the instance.

xil_sequence_item

The xil_sequence_item is a class which extends from xil_object.

Functions
get_type_name
virtual function string get_type_name();

Returns string of "xil_sequence_item".It is virtual function which will be overwritten later in its extended classes.

convert2string
virtual function string convert2string();

Returns empty string. It is virtual function which will be overwritten later in its extended classes.

xil_analysis_port

The xil_analysis_port is a parameterized class which extends from xil_component

Functions
new
function new(
input string name"unnamed_xil_analysis_port"
);

Constructor to create a new xil_analysis_port. ~name~ is the name of the instance.

set_enabled
function void set_enabled();

Set enabled value to 1, xil_analysis_port is on.

clr_enabled
function void clr_enabled();

Set enabled to be 0, xil_analysis_port is off.

get_enabled
function logic get_enabled();

Returns enabled value of xil_analysis_port.

get_item_cnt
function integer unsigned get_item_cnt();

Returns item_cnt of xil_analysis_port.

write
virtual task write(
input trans
);

When xil_analysis_port is enabled,this function will push input argument into the queue of xil_analysis_port, increment item_cnt. User needs to make sure that enabled is on to write transaction into xil_analysis_port. if not.  use set_enabled to turn on.

get
virtual task get(
output trans
);

When xil_analysis_port is enabled,this function will get its output from the queue of xil_analysis_port, decrement item_cnt.Else, it will get fatal error message about attempting to get from disabled anaylysis port.

xil_sqr_if_base

xil_sqr_if_base is a base class which provides the interfaces necessary in order to receive or send sequence items and/or other sequences. xil_sqr_if_base #(T1, T2)

Functions
set_name
function void set_name(
input string in
);

Set the name of the xil_sqr_if_base.

get_name
function string get_name();

Return the name of the xil_sqr_if_base .

set_max_item_cnt
function void set_max_item_cnt(
input integer unsigned in
);

Set the maximum number of concurrent connections to the same inbound/output sequence port.

get_max_item_cnt
function integer unsigned get_max_item_cnt();

Return the maximum number of concurrent connections to the same inbound/output sequence port.

get_next_item
virtual task get_next_item(
output T1 t
);

Pop out sequence item from item queue of xil_sqr_if_base when item queue is not empty. It is a block task and will wait until there is item in the queue.

try_next_item
virtual function void try_next_item(
output T1 t
);

Pop out sequence item from item queue of xil_sqr_if_base when item queue is not empty,othewise it returns a null object.It is a non-block task

wait_for_item_done
virtual task wait_for_item_done(
int transaction_id -1
);

When item_done_cnt of xil_sqr_if_base is not zero, item_done_cnt decrements. it is a block task till there is a done_item_cnt_event occurs.

item_done
virtual function xil_uint item_done(
input T1 null
);

While item_inflight_cnt of xil_sqr_if_base is zero, it gives error message about attempting to double pop the item_done queue,and returns 1.Else it increments item_done_cnt of xil_sqr_if_base and return 0.

put_item
virtual function xil_uint put_item(
input T1 null
);

When item_cnt is bigger than max_item_cnt of xil_sqr_if_base and returns 1. it gives error message about FIFO is overfilled,else it push the item into item queue, increment item_cnt and returns 0.

get_next_rsp
virtual task get_next_rsp(
output T2 t
);

Pop out response item from resonse item queue of xil_sqr_if_base when response queue is not empty. It is a block task until there is response item in the queue.

try_next_rsp
virtual function void try_next_rsp(
output T2 t
);

Pop out response item from item queue of xil_sqr_if_base when response queue is not empty,othewise it returns a null object.It is a non-block task.

wait_for_rsp_done
virtual task wait_for_rsp_done(
int transaction_id -1
);

When rsp_done_cnt of xil_sqr_if_base is not zero, rsp_done_cnt decrements. it is a block task.

rsp_done
virtual function xil_uint rsp_done(
input T2 null
);

When rsp_inflight_cnt is zero, it gives error message about attempting to double pop the rsp_done queue and returns 1 Else, it will increment rsp_done_cnt, decrement rsp_inflight_cnt and returns 0.

put_rsp
virtual function xil_uint put_rsp(
input T2 null
);

When rsp_cnt is bigger than max_item_cnt, it gives error message about response FIFO has overfilled and returns 1 Else, it will put response item into rsp_q of xil_sqr_if_base, increment rsp_cnt and return 0.

xil_seq_item_pull_port

The xil_seq_item_pull_port#(REQ,RSP) class is extends from xil_sqr_if_base. It inherits all these variables and functions of xil_sqr_if_base.

Functions
new
function new(
input string name"unnamed_xil_seq_item_pull_port"
);

Constructor to create a new instance of xil_seq_item_pull_port,~name~ is the name of the instance.

xil_driver

The xil_driver#(REQ, RSP) class is parameterized class which extends from xil_component.It is the base class of all xilinx VIP's driver class. It has one port which is seq_item_port

Information
class member

xil_seq_item_pull_port #(REQ, RSP) seq_item_port;  provides the method to send transactions to the driver.

Functions
new
function new (
string name "unnamed_xil_driver"
);

Creates and initializes an instance of this class using the normal constructor arguments for xil_component, ~name~ is the name of the instance, create an instance of seq_item_port.

get_type_name
virtual function string get_type_name ();

Returns type_name of xil_driver.

xil_monitor

The xil_monitor extends from xil_component, It is the base class of all xilinx VIP's monitor class

Functions
new
function new(
input string name"unnamed_xil_monitor"
);

Constructor to create a new <xil_monitor>.~name~ is the name of the instance.

axi4stream_transaction

The axi4stream_transaction class is the base class of AXI4STREAM Verification Component.It inherits all the methods of xil_sequence_item.In this transaction, it has cmd_id,dest,id,data,user,strb,keep,last, signal_set etc which can be accessed by set/get_x APIs.

Functions
new
function new(
input string name"unnamed_axi4stream_transaction",
xil_axi4stream_sigset_t set XIL_AXI4STREAM_SIGSET_READY | XIL_AXI4STREAM_SIGSET_DATA,
xil_axi4stream_uint dw 32,
xil_axi4stream_uint uw 32,
xil_axi4stream_uint bpb 8,
xil_axi4stream_uint idw 2,
xil_axi4stream_uint destw 4
);

Constructor to create a new axi4stream_transaction. ~name~ is the name of the instance,

copy
function void copy(
axi4stream_transaction rhs
);

Copies the contents of the input transaction to the current transaction

my_clone
virtual function axi4stream_transaction my_clone ();

Returns a clones of the contents of the transaction.

get_id
virtual function xil_axi4stream_uint get_id ();

Returns the value of TID of the axi4stream_transaction.

set_id
virtual function void set_id (
input xil_axi4stream_uint new_id
);

Sets the value of TID of the axi4stream_transaction.

get_dest
function xil_axi4stream_uint get_dest ();

Returns the value of TDEST of the axi4stream_transaction.

set_dest
virtual function void set_dest (
input xil_axi4stream_uint new_dest
);

Sets the value of TDEST of the axi4stream_transaction.

get_last
function bit get_last ();

Returns the value of TLAST of the axi4stream_transaction. This transaction will return 1 when the TLAST signal is not enabled.

set_last
virtual function void set_last (
input bit new_last
);

Sets the value of TLAST of the axi4stream_transaction.

get_strb
function void get_strb(
output xil_axi4stream_strb ext_strb []
);

Returns the unpacked version of TSTRB of the axi4stream_transaction.

set_strb
virtual function void set_strb (
input xil_axi4stream_strb updated []
);

Sets the value of TSTRB of the axi4stream_transaction using an unpacked array.

get_strb_beat
function xil_axi4stream_strb_beat get_strb_beat();

Returns the beat type version of TSTRB of the axi4stream_transaction.

set_strb_beat
virtual function void set_strb_beat (
input xil_axi4stream_strb_beat updated
);

Sets the value of TSTRB of the axi4stream_transaction using a beat type.

get_keep
function void get_keep(
output xil_axi4stream_strb ext_keep []
);

Returns the unpacked version of TKEEP of the axi4stream_transaction.

set_keep
virtual function void set_keep (
input xil_axi4stream_strb updated []
);

Sets the value of TKEEP of the axi4stream_transaction using an unpacked array.

get_keep_beat
function xil_axi4stream_strb_beat get_keep_beat();

Returns the beat type version of TKEEP of the <axi4stream_transaction>.It is different from get_keep since get_keep returns unpacked version of TKEEP.

set_keep_beat
virtual function void set_keep_beat (
input xil_axi4stream_strb_beat updated
);

Sets the value of TKEEP of the axi4stream_transaction using a beat type.It is different from set_keep since set_keep using unpacked version of array.

get_data
virtual function void get_data(
output xil_axi4stream_data_byte ext_data []
);

Returns the unpacked version of TDATA of the axi4stream_transaction.

set_data
virtual function void set_data(
input xil_axi4stream_data_byte updated[]
);

Sets the value of TDATA of the axi4stream_transaction using an unpacked array.

get_data_beat
function xil_axi4stream_data_beat get_data_beat();

Returns the beat type version of TDATA of the axi4stream_transaction.

set_data_beat
function void set_data_beat(
input xil_axi4stream_data_beat updated
);

Sets the value of TDATA of the axi4stream_transaction using a beat type.

set_user_beat
virtual function void set_user_beat(
input xil_axi4stream_user_beat updated
);

Sets the value of TUSER of the axi4stream_transaction using a beat type.

get_user_beat
virtual function xil_axi4stream_user_beat get_user_beat();

Returns the beat type version of TUSER of the axi4stream_transaction.

get_signal_set
virtual function xil_axi4stream_sigset_t get_signal_set();

Returns the current settings of the interface.

set_signal_set
virtual function void set_signal_set(
input xil_axi4stream_sigset_t updated
);

Sets the value of signal set. This value MUST match the interface properties.

get_data_width
virtual function xil_axi4stream_uint get_data_width();

Returns the DATA width of the axi4stream_transaction.

resize_payload_arrays
virtual function void resize_payload_arrays();

Creates/Adjusts the different internal data structures to match correct data,strb.keep and user size when they are available.

set_data_width
virtual function void set_data_width(
input xil_axi4stream_uint updated
);

Sets the value of DATA width for the axi4stream_transaction.

get_dest_width
virtual function xil_axi4stream_uint get_dest_width();

Returns the DEST width of the axi4stream_transaction.

set_dest_width
virtual function void set_dest_width(
input xil_axi4stream_uint updated
);

Sets the value of DEST width for the axi4stream_transaction.

get_id_width
virtual function xil_axi4stream_uint get_id_width();

Returns the ID width of the axi4stream_transaction.

set_id_width
virtual function void set_id_width(
input xil_axi4stream_uint updated
);

Sets the value of ID width for the axi4stream_transaction.

get_user_width
virtual function xil_axi4stream_uint get_user_width();

Returns the USER width of the axi4stream_transaction.

set_user_width
virtual function void set_user_width(
input xil_axi4stream_uint updated
);

Sets the value of USER width for the axi4stream_transaction.

set_user_bits_per_byte
virtual function void set_user_bits_per_byte(
input xil_axi4stream_uint updated
);

Sets the value of the user bits per byte for the axi4stream_transaction.

get_user_bits_per_byte
virtual function xil_axi4stream_uint get_user_bits_per_byte();

Returns the value of the user bits per byte of the axi4stream_transaction.

set_driver_return_item
virtual function void set_driver_return_item ();

Sets the driver_return_item property to XIL_AXI4STREAM_AT_ACCEPT_RETURN. driver_return_item can be XIL_AXI4STREAM_NO_RETURN,XIL_AXI4STREAM_AT_ASSERT_RETURN,XIL_AXI4STREAM_AT_ACCEPT_RETURN. please refer xil_axi4stream_driver_return_policy_t for more details.

set_driver_return_item_policy
virtual function void set_driver_return_item_policy (
input xil_axi4stream_driver_return_policy_t set
);

Sets the driver_return_item property of the axi4stream_transaction.  Driver return item policy can be XIL_AXI4STREAM_NO_RETURN,XIL_AXI4STREAM_AT_ASSERT_RETURN, XIL_AXI4STREAM_AT_ACCEPT_RETURN. please refer xil_axi4stream_driver_return_policy_t for more details.

get_driver_return_item_policy
virtual function xil_axi4stream_driver_return_policy_t get_driver_return_item_policy ();

Returns the value of driver_return_item property of the axi4stream_transaction.  Driver return item policy can be XIL_AXI4STREAM_NO_RETURN,XIL_AXI4STREAM_AT_ASSERT_RETURN, XIL_AXI4STREAM_AT_ACCEPT_RETURN. please refer xil_axi4stream_driver_return_policy_t for more details.

clr_driver_return_item
virtual function void clr_driver_return_item ();

Set driver return item policy to be XIL_AXI4STREAM_NO_RETURN. Driver return item policy can be XIL_AXI4STREAM_NO_RETURN,XIL_AXI4STREAM_AT_ASSERT_RETURN,XIL_AXI4STREAM_AT_ACCEPT_RETURN. please refer xil_axi4stream_driver_return_policy_t for more details.

get_cmd_id
virtual function xil_axi4stream_uint get_cmd_id();

Returns cmd_id of the axi4stream_transaction. This id is the symbol of axi4stream_transaction which is useful for debug

set_xfer_alignment
virtual function void set_xfer_alignment (
input xil_axi4stream_xfer_alignment_t set
);

Sets xfer_alignment of the <axi4stream_transaction>.axi4stream transaction has four types of transfer alignment XIL_AXI4STREAM_XFER_ALL_SET, XIL_AXI4STREAM_XFER_ALL_NULLBYTE,XIL_AXI4STREAM_XFER_ALL_POSBYTE, XIL_AXI4STREAM_XFER_RANDOM. please refer xil_axi4stream_xfer_alignment_t for more details.

get_xfer_alignment
virtual function xil_axi4stream_xfer_alignment_t get_xfer_alignment ();

Returns xfer_alignment of the axi4stream_transaction. axi4stream transaction has four types of transfer alignment XIL_AXI4STREAM_XFER_ALL_SET, XIL_AXI4STREAM_XFER_ALL_NULLBYTE,XIL_AXI4STREAM_XFER_ALL_POSBYTE, XIL_AXI4STREAM_XFER_RANDOM. please refer xil_axi4stream_xfer_alignment_t for more details.

convert2string
virtual function string convert2string();

Returns a form of string for axi4stream transaction which includes SIGNAL_SET, DEST, ID, USER, LAST,PAYLOAD(data, strb, keep) user bits.

do_compare
virtual function bit do_compare (
xil_object rhs 
);

Compare current transaction with rhs, it includes comparison of signal_set and all the information of a transaction which are keep,strb,data, user,last,id,dest etc .

get_delay
virtual function xil_axi4stream_uint get_delay();

Returns delay of the axi4stream_transaction. This delay is from when the driver get the transaction item till it starts to drive data onto the data bus.

set_delay
virtual function void set_delay(
input xil_axi4stream_uint updated
);

Sets delay of the <axi4stream_transaction>.This delay is from when the driver get the transaction item till it starts to drive data onto the data bus.

get_delay_policy
virtual function xil_axi4stream_xfer_delay_insertion_policy_t get_delay_policy();

Returns delay_policy of the axi4stream_transaction

set_delay_policy
virtual function void set_delay_policy(
input xil_axi4stream_xfer_delay_insertion_policy_t updated
);

This function is to set delay_policy of the axi4stream_transaction. Delay policy can be XIL_AXI4STREAM_DELAY_INSERTION_ALWAYS or XIL_AXI4STREAM_DELAY_INSERTION_FROM_IDLE.  Please refer xil_axi4stream_xfer_delay_insertion_policy_t for delay policy explanation.

get_delay_range
function void get_delay_range(
output xil_axi4stream_uint min,
output xil_axi4stream_uint max
);

Returns min_delay and max_delay of the axi4stream_transaction

set_delay_range
virtual function void set_delay_range(
input xil_axi4stream_uint min,
input xil_axi4stream_uint max
);

There is a delay between the driver get the transaction and it starts to drive the data onto data bus.  This delay is randomized in the range of min_delay and max_delay. set_delay_range is to set min_delay and max_delay of the axi4stream_transaction which late is used to generate delay when randomization of axi4stream_transaction is being called.

set_strb_array_all_disabled
virtual function void set_strb_array_all_disabled();

When HAS_STRB is on, this function sets all strobe bits to 0. Else, it does nothing.

set_strb_array_all_enabled
virtual function void set_strb_array_all_enabled();

When HAS_STRB is on, this function sets all strobe bits to 1. Else, it does nothing.

set_keep_array_all_disabled
virtual function void set_keep_array_all_disabled();

When HAS_KEEP is on, it sets all keep bits to 0. Else, it does nothing.

set_keep_array_all_enabled
virtual function void set_keep_array_all_enabled();

When HAS_KEEP is on, it sets all keep bits to 1 . Else, it does nothing.

post_randomize
function void post_randomize();

Sets final value of strobe of the axi4stream_transaction

axi4stream_monitor_transaction

AXI4STREAM Monitor Transaction class. It is an extension of axi4stream_transaction.

Functions
new
function new(
input string name"axi4stream_monitor_transaction",
xil_axi4stream_sigset_t setXIL_AXI4STREAM_SIGSET_ALL,
xil_axi4stream_uint dw32,
xil_axi4stream_uint uw32,
xil_axi4stream_uint bpb8,
xil_axi4stream_uint idw2,
xil_axi4stream_uint destw4
);

Constructor to create a new axi4stream_monitor_transaction, ~name~ is the name of the instance.

set_monitor_print_times
virtual function void set_monitor_print_times();

Sets monitor_print_times to be TRUE.

clr_monitor_print_times
virtual function void clr_monitor_print_times();

Sets monitor_print_times to be FALSE.

get_monitor_print_times
virtual function xil_axi4stream_boolean_t get_monitor_print_times();

Returns monitor_print_times.

copy
function void copy(
axi4stream_monitor_transaction rhs
);

Copies the contents of the input monitor transaction to the current monitor transaction.

my_clone
virtual function axi4stream_monitor_transaction my_clone ();

Clones the current transaction and returns a handle to the new transaction.

get_type_name
virtual function string get_type_name();

Returns string  XIL_AXI4STREAM_MONITOR_TRANSACTION

convert2string
virtual function string convert2string();

Returns a form of string of <axi4stream transaction> if get_monitor_print_times is false, else returns a form of string of ready_assert_time,valid_assert_time,accepted_cycles,backpressure

axi4stream_scoreboard_transaction

AXI4STREAM Scoreboard Transaction Class. It is extension of axi4stream_monitor_transaction.

Functions
new
function new(
input string name"axi4stream_monitor_transaction",
xil_axi4stream_sigset_t setXIL_AXI4STREAM_SIGSET_ALL,
xil_axi4stream_uint dw32,
xil_axi4stream_uint uw32,
xil_axi4stream_uint bpb8,
xil_axi4stream_uint idw2,
xil_axi4stream_uint destw4
);

Constructor to create a new <axu4stream_scoreboard_transaction>, ~name~ is the name of the instance.

get_type_name
virtual function string get_type_name();

Returns type name "AXI4STREAM_SCOREBOARD_TRANSACTION"

axi4stream_vif_proxy

AXI4STREAM VIF Proxy Class. It has virtual interface for AXI4STREAM VIP interface. Drivers of AXI4STREAM VIP drive transaction/ready onto AXI4STREAM VIP bus interface through APIs(such as  put_transaction) of this class, monitor of AXI4STREAM VIP collects AXI4STREAM interface information and convert it into transaction through APIs(get_transaction) in this class.

Functions
wait_aclks
virtual task wait_aclks(
input xil_axi4stream_uint cnt
);

Waits specified amount of posedge aclk occur

wait_posedge_aclk
virtual task wait_posedge_aclk();

Waits posedge of ACLK of m_vif

wait_posedge_aclk_with_hold
virtual task wait_posedge_aclk_with_hold();

Waits posedge of ACLK of m_vif and then wait hold_time

wait_negedge_aclk
virtual task wait_negedge_aclk();

Waits negedge of ACLK of m_vif

wait_areset_deassert
virtual task wait_areset_deassert();

Waits areset to be deasserted

get_drive_x
virtual function xil_axi4stream_boolean_t get_drive_x();

Returns 1 if dummy_drive_type is XIL_AXI4STREAM_VIF_DRIVE_X, else returns 0

cheap_random
virtual function void cheap_random();

Generate simplified randomization of xid,xdest and xlast of VIF when user define XIL_DO_NOT_USE_ADV_RANDOMIZATION

get_dummy_drive_type
virtual function xil_axi4stream_vif_dummy_drive_t get_dummy_drive_type();

Get Dummy Drive Type of m_vif

wait_valid_asserted(
virtual task wait_valid_asserted();

Waits TVALID of m_vif asserted

new
function new(
input string name"unnamed_axi4stream_vif_proxy"
);

Constructor to create a new axi4stream vif proxy,~name~ is the instance name.

run_phase
task run_phase();

Starts control processes for operation of

get_current_clk_count
function xil_axi4stream_ulong get_current_clk_count();

Returns clk_edge_counter

get_current_edge_time
function time get_current_edge_time();

Returns clk_edge_time

set_drive_x
virtual function void set_drive_x();

Sets Dummy Drive type to be XIL_AXI4STREAM_VIF_DRIVE_X

set_dummy_drive_type
virtual function void set_dummy_drive_type(
input xil_axi4stream_vif_dummy_drive_t inp
);

Sets Dummy Drive Type

assign_vi
function void assign_vi (
virtual interface axi4stream_vip_if `XIL_AXI4STREAM_PARAM_ORDER vif
) ;

Assigns m_vif

put_noise
virtual function void put_noise();

Puts noise on bus

reset
virtual function void reset();

Sets TVALID to be 0 and puts noise onto bus

put_transaction
virtual function void put_transaction(
input axi4stream_transaction trans
);

Puts transaction information onto bus

get_transaction
virtual function axi4stream_monitor_transaction get_transaction();

Collects m_vif information and returns it to axi4stream_transaction

set_valid
virtual function void set_valid();

Sets valid of m_vif to be 1

clr_valid
virtual function void clr_valid();

Sets valid of m_vif to be 0

set_ready
virtual function void set_ready();

Sets ready of m_vif to be 1

clr_ready
virtual function void clr_ready();

Sets ready of m_vif to be 0

is_live_valid_asserted
virtual function bit is_live_valid_asserted();

Returns 1 if TVALID of m_vif is 1, else returns 0

wait_live_valid_asserted
virtual task wait_live_valid_asserted();

Wait TVALID of m_vif is 1

is_ready_asserted
virtual function bit is_ready_asserted();

If HAS_TRAEADY is on, returns 1 if TREADY of clock block in m_vif is 1, else returns 0 If HAS_TRAEADY is off, returns 1.

is_valid_asserted
virtual function bit is_valid_asserted();

Returns 1 if TVALID of clock block in m_vif is 1, else returns 0

is_areset_asserted
virtual function bit is_areset_asserted();

Returns 1 if ARESET_N of clock block in m_vif is 0, else returns 0

wait_areset_asserted
virtual task wait_areset_asserted();

Waits negedge of ARSET_N of m_vif

wait_valid_sampled
virtual task wait_valid_sampled();

Waits till TVALID is sampled

wait_tx_accepted
virtual task wait_tx_accepted();

Waits till TREADY/TAVLID handshake occurs

is_tx_accepted
virtual function bit is_tx_accepted();

Returns 1 if TREADY/TVALID handshake occurs, otherwise returns 0

axi4stream_monitor

Axi4stream monitor Class.

When active the AXI4STREAM Monitor will record transactions that are presented on the the virtual interface.

Information
class member

axi4stream_vif_proxy `XIL_AXI4STREAM_PARAM_ORDER  vif_proxy; AXI4STREAM VIF Proxy Class.

xil_analysis_port #(axi4stream_monitor_transaction)  item_collected_port; provides methods to collect monitor transaction.

Functions
new
function new (
input string name
);

Constructor to create a new axi4stream monitor object, ~name~ is the name of the instance.

set_vif
function void set_vif(
axi4stream_vif_proxy `XIL_AXI4STREAM_PARAM_ORDER vif
);

Assigns the virtual interface of the driver of axi4stream_monitor.

run_phase
virtual task run_phase();

Start control processes for operation of axi4stream_monitor.

stop_phase
virtual task stop_phase();

Stops all control processes of axi4stream_monitor.

axi4stream_ready_gen

AXI4Stream Ready generation class. Ready signal of AXI4STREAM VIP is generated independently from other attributes.  This class is being used to generate all kinds of different patterns of ready signal which user wants. Please refer section READY Generation of PG277 for more details about how to generate ready.

Functions
new
function new(
input string name"unnamed_axi4stream_ready_gen"
);

Constructor to create an new axi4stream_ready_gen, ~name~ is the name of the instance.

reset_to_defaults
virtual function void reset_to_defaults();

Reset all variables in ready generation to default value

copy
function void copy(
axi4stream_ready_gen rhs
);

Copies the contents of the input ready generation to the current ready generation

my_clone
virtual function axi4stream_ready_gen my_clone ();

Clones the current ready generaton and returns a handle to the new generation

convert2string
virtual function string convert2string();

Returns  a form of string of axi4stream_ready_gen.

set_use_variable_ranges
virtual function void set_use_variable_ranges();

Sets the use of the variable ranges when the policy of axi4stream_ready_gen is not RANDOM

set_use_variable_ranges

Clears the use of the variable ranges when the policy of axi4stream_ready_gen is not RANDOM

get_use_variable_ranges
virtual function xil_axi4stream_boolean_t get_use_variable_ranges();

Returns the current state of the variable range use feature.

set_ready_policy
virtual function void set_ready_policy(
input xil_axi4stream_ready_gen_policy_t value
);

Sets the policy of axi4stream_ready_gen

get_ready_policy
virtual function xil_axi4stream_ready_gen_policy_t get_ready_policy();

Returns the current axi4stream_ready_gen policy

set_event_cycle_count_reset
virtual function void set_event_cycle_count_reset(
input xil_axi4stream_uint value
);

Set event_cycle_count_reset value of axi4stream_ready_gen

get_event_cycle_count_reset
virtual function xil_axi4stream_uint get_event_cycle_count_reset();

Returns the current event_cycle_count_reset

get_low_time_range
virtual function void get_low_time_range(
output xil_axi4stream_uint min,
output xil_axi4stream_uint max
);

Returns min_low_time and max_low_time of the current axi4stream_ready_gen

set_low_time_range
virtual function void set_low_time_range(
input xil_axi4stream_uint min,
input xil_axi4stream_uint max
);

Sets min_low_time and max_low_time of the current axi4stream_ready_gen

set_low_time
virtual function void set_low_time(
input xil_axi4stream_uint value
);

Sets low_time of the current axi4stream_ready_gen

get_low_time
virtual function xil_axi4stream_uint get_low_time();

Returns low time of the current axi4stream_ready_gen

get_high_time_range
virtual function void get_high_time_range(
output xil_axi4stream_uint min,
output xil_axi4stream_uint max
);

Returns min_high_time and max_high_time of the current axi4stream_ready_gen

set_high_time_range
virtual function void set_high_time_range(
input xil_axi4stream_uint min,
input xil_axi4stream_uint max
);

Sets min_high_time and max_high_time of the current axi4stream_ready_gen

set_high_time
virtual function void set_high_time(
input xil_axi4stream_uint value
);

Sets high_time of the current axi4stream_ready_gen

get_high_time
virtual function xil_axi4stream_uint get_high_time();

Returns high time of the current axi4stream_ready_gen

get_event_count_range
virtual function void get_event_count_range(
output xil_axi4stream_uint min,
output xil_axi4stream_uint max
);

Returns min_event_count and max_event_count of the current axi4stream_ready_gen

set_event_count_range
virtual function void set_event_count_range(
input xil_axi4stream_uint min,
input xil_axi4stream_uint max
);

Sets min_event_count and max_event_count of the current axi4stream_ready_gen

get_event_count
virtual function xil_axi4stream_uint get_event_count();

Returns event_count of the current axi4stream_ready_gen

set_event_count
virtual function void set_event_count(
input xil_axi4stream_uint in
);

Sets the number of events that ready stays at high

get_ready_rand_policy
virtual function xil_axi4stream_ready_rand_policy_t get_ready_rand_policy();

Returns ready_rand_policy of the axi4stream_ready_gen

cheap_random
virtual function void cheap_random();

Generate simplified randomization of ready class when user defines XIL_DO_NOT_USE_ADV_RANDOMIZATION

axi4stream_mst_driver

AXI4STREAM Master Driver Class. The driver receives transactions from the user environment and drives stream interface. It returns a completed transaction when the transaction is accepted when the transaction's driver_return_item_policy is set to XIL_AXI4STREAM_AT_ACCEPT_RETURN.

Information
class member

axi4stream_vif_proxy `XIL_AXI4STREAM_PARAM_ORDER  vif_proxy; AXI4STREAM VIF Proxy Class.

xil_seq_item_pull_port #(axi4stream_transaction,axi4stream_transaction) seq_item_port; provides method to send transaction to axi4stream_mst_driver.

Functions
new
function new(
input string name "unnamed_axi4stream_mst_driver"
);

Constructor to create a new axi4stream master driver, ~name~ is the name of the instance.

set_vif
function void set_vif(
axi4stream_vif_proxy `XIL_AXI4STREAM_PARAM_ORDER vif
);

Assigns the virtual interface of the driver.

set_forward_progress_timeout_value
function void set_forward_progress_timeout_value(
input xil_axi4stream_uint value
);

Sets the number of cycles that the driver will wait until it will flag a watch dog error.  Setting this to a very large value will cause a hung simulation to continue for a longer time.  Setting this to a very small number may not allow the slave to respond.

get_forward_progress_timeout_value
function xil_axi4stream_uint get_forward_progress_timeout_value();

Returns the current value of the forward_progress_timeout_value.

is_driver_idle
function xil_axi4stream_boolean_t is_driver_idle();

When the driver is actively processing a transaction this function will return FALSE.

run_phase
task run_phase();

Start control processes for operation of axi4stream_mst_driver.

stop_phase
virtual task stop_phase();

Stops all control processes of of axi4stream_mst_driver.

send
task send(
input axi4stream_transaction 
);

Send axi4stream transaction object to the axi4stream_mst_driver.

create_transaction
virtual function axi4stream_transaction create_transaction (
string name "unnamed_transaction"
);

Returns an axi4stream transaction that has been "newed".

axi4stream_slv_driver

AXI4STREAM Slave Driver Class. It receives TREADY transaction from the user enviroment and drives the TREADY signal if HAS_TREADY of the VIP is on, else TREADY is set to high all the time.

Information
class member

axi4stream_vif_proxy `XIL_AXI4STREAM_PARAM_ORDER  vif_proxy; AXI4STREAM VIF Proxy Class.

xil_seq_item_pull_port #(axi4stream_transaction,axi4stream_transaction) seq_item_port; provides method to send transaction to axi4stream_slv_driver.

Functions
new
function new(
input string name "unnamed_axi4stream_slv_driver"
);

Constructor to create a new axi4stream slave driver object,~name~ is the name of the instance.

set_vif
function void set_vif(
axi4stream_vif_proxy `XIL_AXI4STREAM_PARAM_ORDER vif
);

Assigns the virtual interface of the driver.

run_phase
virtual task run_phase();

Start control processes for operation of axi4stream_slv_driver.

stop_phase
virtual task stop_phase();

Stops all control processes of axi4stream_slv_driver.

send_tready
task send_tready(
input axi4stream_ready_gen t
);

Send ready object to the driver when HAS_TREADY is on.

create_ready
virtual function axi4stream_ready_gen create_ready (
string name "unnamed_ready"
);

Returns Ready class that has been "newed".

axi4stream_mst_agent

AXI4STREAM Master Agent.  it contains other components that comprise the entire Master Verification component.  These are the Monitor,Driver -- refer PG277 section about AXI4-Stream Master Agent for more details.

Information
class member

axi4stream_mst_driver `XIL_AXI4STREAM_PARAM_ORDER driver;

axi4stream_monitor `XIL_AXI4STREAM_PARAM_ORDER monitor;

axi4stream_vif_proxy `XIL_AXI4STREAM_PARAM_ORDER vif_proxy;

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

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

Constructor to create an AXI4STREAM Master Agent,~name~ is the name of the instance 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_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 passthrough 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(
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.

start_monitor
virtual task start_monitor();

Enables the monitor in this agent to start collecting data of axi4stream_mst_agent.

start_master
virtual task start_master();

Enables the monitor to start collecting data and drive to issue transaction in axi4stream_mst_agent.  The driver will only issue transactions when the send functions are called.

stop_master
virtual task stop_master();

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

stop_monitor
virtual task stop_monitor();

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

axi4stream_slv_agent

AXI4STREAM Slave agent. This class contains other components that comprise the entire Slave Verification component.These are the Monitor,Driver.Refer PG277 section about AXI4STREAM Slave Agent for more details.

Information
class member

axi4stream_slv_driver `XIL_AXI4STREAM_PARAM_ORDER driver;

axi4stream_monitor `XIL_AXI4STREAM_PARAM_ORDER monitor;

axi4stream_vif_proxy `XIL_AXI4STREAM_PARAM_ORDER vif_proxy;

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

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

Constructor to create an AXI4STREAM Slave 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 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.

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 to start collecting data and driver starts to drive ready signal in axi4stream_slv_agent.  The driver will only issue axi4stream_ready_gen when the send functions are called.

stop_slave
virtual task stop_slave();

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

axi4stream_passthrough_agent

AXI4STREAM Passthrough Agent Class. 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.

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 in axi4stream_passthrough_agent.

start_slave
virtual task start_slave();

Enables the monitor in this agent to start collecting data, enable slave driver to start drive ready signal.  The slave driver will only issue axi4stream_ready_gen when the send functions are called.

start_master
virtual task start_master();

Enables the monitor in this agent to start collecting data, enables master driver to start drive 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.