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 Interger unsigned data type

    typedef integer unsigned  xil_axi4stream_uint;

xil_axi4stream_ulong

Xilinx AXI4STREAM longint unsigned data type

    typedef longint unsigned  xil_axi4stream_ulong;

xil_axi4stream_long

Xilinx AXI4STREAM longint data type

    typedef longint           xil_axi4stream_long;

xil_axi4stream_data_byte

Xilinx AXI4STREAM data byte

    typedef logic [7:0]       xil_axi4stream_data_byte;

xil_axi4stream_strb

Xilinx AXI4STREAM 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 a 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 xREADY 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 xREADY 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 types which can be all valid byte, 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
    XIL_AXI4STREAM_DELAY_INSERTION_FROM_IDLE       - Insert data delay only from idle

xil_axi4stream_trans_state_t

    XIL_AXI4STREAM_TRANS_STATE_NEW               - Transaction state is new
    XIL_AXI4STREAM_TRANS_STATE_ACTIVE            - Transaction state is active
    XIL_AXI4STREAM_TRANS_STATE_COMPLETED         - Transaction state is completed
    XIL_AXI4STREAM_TRANS_STATE_KILLED            - Transaction state is killed
    XIL_AXI4STREAM_TRANS_STATE_COMPLETED_SLAVE   - Transaction state is slave completed
    XIL_AXI4STREAM_TRANS_STATE_COMPLETED_MASTER  - Transaction state is master completed

xil_axi4stream_tkeep_sparse_pattern_t

    XIL_AXI4STREAM_TKEEP_NO_TOGGLE            - TKEEP must be either all 0's or all 1's, no toggle of 1 and 0.
    XIL_AXI4STREAM_TKEEP_ALLOW_HEAD_ZERO      - consective 0's at the head of TKEEP, other bits are 1's. it also includes XIL_AXI4STREAM_TKEEP_NO_TOGGLE
    XIL_AXI4STREAM_TKEEP_ALLOW_TAIL_ZERO      - consective 0's at the tail of TKEEP, other bits are 1's. it also includes XIL_AXI4STREAM_TKEEP_NO_TOGGLE
    XIL_AXI4STREAM_TKEEP_ALLOW_HEAD_TAIL_ZERO - consective 0's at the head or/and consective 0's at the tail of TKEEP,other bits are 1's. it also includes XIL_AXI4STREAM_TKEEP_NO_TOGGLE

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 | T | 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 | T | 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 | t | = | 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 | t | = | 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 | t | = | 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 | t | = | 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 transaction.

set_id

virtual function void set_id ( |
input | xil_axi4stream_uint | new_id
| );

Sets the value of TID of the transaction.

get_dest
function xil_axi4stream_uint get_dest ();

Returns the value of TDEST of the transaction.

set_dest

virtual function void set_dest ( |
input | xil_axi4stream_uint | new_dest
| );

Sets the value of TDEST of the transaction.

get_last
function bit get_last ();

Returns the value of TLAST of the 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 transaction.

get_strb

function void get_strb( |
inout xil_axi4stream_strb | ext_strb | []
| );

Returns the unpacked version of TSTRB of the transaction.

set_strb

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

Sets the value of TSTRB of the 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 transaction.

set_strb_beat

virtual function void set_strb_beat ( |
input | xil_axi4stream_strb_beat | updated
| );

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

get_keep

function void get_keep( |
inout xil_axi4stream_strb | ext_keep | []
| );

Returns the unpacked version of TKEEP of the transaction.

set_keep

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

Sets the value of TKEEP of the 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 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 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( |
inout xil_axi4stream_data_byte | ext_data | []
| );

Returns the unpacked version of TDATA of the transaction.

set_data

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

Sets the value of TDATA of the 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 transaction.

set_data_beat

function void set_data_beat( |
input | xil_axi4stream_data_beat | updated
| );

Sets the value of TDATA of the 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 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 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 transaction.

resize_payload_arrays
virtual function void resize_payload_arrays();

Creates/Adjusts the different internal data structures.

set_data_width

virtual function void set_data_width( |
input | xil_axi4stream_uint | updated
| );

Sets the value of DATA width for the transaction.

get_dest_width
virtual function xil_axi4stream_uint get_dest_width();

Returns the DEST width of the transaction.

set_dest_width

virtual function void set_dest_width( |
input | xil_axi4stream_uint | updated
| );

Sets the value of DEST width for the transaction.

get_id_width
virtual function xil_axi4stream_uint get_id_width();

Returns the ID width of the transaction.

set_id_width

virtual function void set_id_width( |
input | xil_axi4stream_uint | updated
| );

Sets the value of ID width for the transaction.

get_user_width
virtual function xil_axi4stream_uint get_user_width();

Returns the USER width of the transaction.

set_user_width

virtual function void set_user_width( |
input | xil_axi4stream_uint | updated
| );

Sets the value of USER width for the 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 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 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 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 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 transaction

set_xfer_alignment

virtual function void set_xfer_alignment ( |
input | xil_axi4stream_xfer_alignment_t | set
| );

Sets xfer_alignment of the 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 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 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 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 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 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();

Sets all strobe bits to 0 when HAS_STRB is on

set_strb_array_all_enabled
virtual function void set_strb_array_all_enabled();

Sets all strobe bits to 1 when HAS_STRB is on

set_keep_array_all_disabled
virtual function void set_keep_array_all_disabled();

Sets all keep bits to 0 when HAS_KEEP is on

set_keep_array_all_enabled
virtual function void set_keep_array_all_enabled();

Sets all keep bits to 1 when HAS_KEEP is on

post_randomize
function void post_randomize();

Sets final value of strobe of the transaction

axi4stream_monitor_transaction

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

Functions
new

function new( |
input | string | name | = | "axi4stream_monitor_transaction",
| xil_axi4stream_sigset_t | set | = | XIL_AXI4STREAM_SIGSET_ALL,
| 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 monitor transaction.

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 Object. It is extension of axi4stream_monitor_transaction.

Functions
new

function new( |
input | string | name | = | "axi4stream_monitor_transaction",
| xil_axi4stream_sigset_t | set | = | XIL_AXI4STREAM_SIGSET_ALL,
| 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 scoreboard transaction.

get_type_name
virtual function string get_type_name();

Returns type name "AXI4STREAM_SCOREBOARD_TRANSACTION"

axi4stream_vif_proxy

AXI4STREAM VIF Proxy Object. 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_mem_proxy"
| );

Constructor to create a new axi4stream vif proxy

run_phase
task run_phase();

Starts control processes for operation

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 transaction class

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

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

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

stop_phase
virtual task stop_phase();

Stops all control processes.

axi4stream_ready_gen

AXI4Stream Ready generation object. 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 object

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 generation and returns a handle to the new generation

convert2string
virtual function string convert2string();

Returns a form of string of ready object

set_use_variable_ranges
virtual function void set_use_variable_ranges();

Sets the use of the variable ranges when the policy of ready generation is not RANDOM

clr_use_variable_ranges
virtual function void clr_use_variable_ranges();

Clears the use of the variable ranges when the policy of ready generation 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 ready generation

get_ready_policy
virtual function xil_axi4stream_ready_gen_policy_t get_ready_policy();

Returns the current ready generation 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 ready generation

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 ready generation

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 ready generation

set_low_time

virtual function void set_low_time( |
input | xil_axi4stream_uint | value
| );

Sets low_time of the current ready generation

get_low_time
virtual function xil_axi4stream_uint get_low_time();

Returns low time of the current ready generation

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 ready generation

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 ready generation

set_high_time

virtual function void set_high_time( |
input | xil_axi4stream_uint | value
| );

Sets high_time of the current ready generation

get_high_time
virtual function xil_axi4stream_uint get_high_time();

Returns high time of the current ready generation

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 ready generation

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 ready generation

get_event_count
virtual function xil_axi4stream_uint get_event_count();

Returns event_count of the current ready generation

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 ready generation

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 Object. 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

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

stop_phase
virtual task stop_phase();

Stops all control processes.

send

task send( |
input | axi4stream_transaction | t
| );

Send axi4stream transaction object to the 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 Object. 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

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

stop_phase
virtual task stop_phase();

Stops all control processes.

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.

start_master
virtual task start_master();

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

stop_master
virtual task stop_master();

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

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_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,driver in this agent to start collecting data. The driver will only issue ready generation when the send functions are called.

stop_slave
virtual task stop_slave();

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

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.