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.
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);
Xilinx VIP macro for warning which indicates a potential problem.
`define xil_warning(TAG, MSG) \
$warning("[%s] (%m) %0t : %s", TAG, $time, 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);
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);
Xilinx VIP Interger unsigned data type
typedef integer unsigned xil_uint;
Xilinx VIP verbosity data type. When verbosity is bigger than 300, information will be printed out.
typedef xil_uint xil_verbosity;
Xilinx AXI4STREAM Interger unsigned data type
typedef integer unsigned xil_axi4stream_uint;
Xilinx AXI4STREAM longint unsigned data type
typedef longint unsigned xil_axi4stream_ulong;
Xilinx AXI4STREAM longint data type
typedef longint xil_axi4stream_long;
Xilinx AXI4STREAM data byte
typedef logic [7:0] xil_axi4stream_data_byte;
Xilinx AXI4STREAM strobe bit
typedef bit xil_axi4stream_strb;
Xilinx AXI4STREAM VIP user beat data type
typedef logic [XIL_AXI4STREAM_USER_BEAT_WIDTH-1:0] xil_axi4stream_user_beat;
Xilinx AXI4STREAM VIP data beat data type
typedef logic [XIL_AXI4STREAM_MAX_DATA_WIDTH-1:0] xil_axi4stream_data_beat;
Xilinx AXI4STREAM VIP strobe beat data type
typedef bit [XIL_AXI4STREAM_MAX_DATA_WIDTH/8-1:0] xil_axi4stream_strb_beat;
Xilinx AXI4STREAM VIP user element data type
typedef xil_axi4stream_uint xil_axi4stream_user_element;
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.
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.
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.
AXI4STREAM Boolean data type
XIL_AXI4STREAM_TRUE - Boolean TRUE
XIL_AXI4STREAM_FALSE - Boolean FALSE
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
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
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_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_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
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.
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.
function new ( |
| ); |
Constructor to create a new xil_object.~name~ is the name of the instance.
virtual function void set_verbosity( |
| ); |
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.
Returns the current value of verbosity of xil_object.
Sets is_active to be 1 and xil_object is in active state.
Sets is_active to be 0 and xil_object is in not active state.
Returns the is_active value of xil_object. A value of 1 is considered active.
The xil_reporter class is a class which extends from xil_object and add its own get_type_name function
function new ( |
| ); |
Constructor to create a new xil_reporter. ~name~ is the name of the instance.
The xil_componennt class is a class which extends from xil_reporter and added its own new and get_type_name function
function new( |
| ); |
Constructor to create a new xil_component and assign its name to type_name. ~name~ is the name of the instance.
The xil_agent class is a class which extends from xil_component.
function new( |
| ); |
Constructor to create a new xil_agent. ~name~ is the name of the instance.
The xil_sequence_item is a class which extends from xil_object.
Returns string of "xil_sequence_item".It is virtual function which will be overwritten later in its extended classes.
Returns empty string. It is virtual function which will be overwritten later in its extended classes.
The xil_analysis_port is a parameterized class which extends from xil_component
function new( |
| ); |
Constructor to create a new xil_analysis_port. ~name~ is the name of the instance.
virtual task write( |
| ); |
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.
virtual task get( |
| ); |
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 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)
function void set_max_item_cnt( |
| ); |
Set the maximum number of concurrent connections to the same inbound/output sequence port.
Return the maximum number of concurrent connections to the same inbound/output sequence port.
virtual task get_next_item( |
| ); |
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.
virtual function void try_next_item( |
| ); |
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
virtual task wait_for_item_done( |
| ); |
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.
virtual function xil_uint item_done( |
| ); |
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.
virtual function xil_uint put_item( |
| ); |
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.
virtual task get_next_rsp( |
| ); |
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.
virtual function void try_next_rsp( |
| ); |
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.
virtual task wait_for_rsp_done( |
| ); |
When rsp_done_cnt of xil_sqr_if_base is not zero, rsp_done_cnt decrements. it is a block task.
virtual function xil_uint rsp_done( |
| ); |
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.
virtual function xil_uint put_rsp( |
| ); |
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.
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.
function new( |
| ); |
Constructor to create a new instance of xil_seq_item_pull_port,~name~ is the name of the instance.
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
xil_seq_item_pull_port #(REQ, RSP) seq_item_port; provides the method to send transactions to the driver.
function new ( |
| ); |
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.
The xil_monitor extends from xil_component, It is the base class of all xilinx VIP's monitor class
function new( |
| ); |
Constructor to create a new <xil_monitor>.~name~ is the name of the instance.
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.
function new( |
| ); |
Constructor to create a new axi4stream_transaction. ~name~ is the name of the instance.
function void copy( |
| ); |
Copies the contents of the input transaction to the current transaction
Returns a clones of the contents of the transaction.
virtual function void set_id ( |
| ); |
Sets the value of TID of the transaction.
virtual function void set_dest ( |
| ); |
Sets the value of TDEST of the transaction.
Returns the value of TLAST of the transaction. This transaction will return 1 when the TLAST signal is not enabled.
virtual function void set_last ( |
| ); |
Sets the value of TLAST of the transaction.
function void get_strb( |
| ); |
Returns the unpacked version of TSTRB of the transaction.
virtual function void set_strb ( |
| ); |
Sets the value of TSTRB of the transaction using an unpacked array.
Returns the beat type version of TSTRB of the transaction.
virtual function void set_strb_beat ( |
| ); |
Sets the value of TSTRB of the transaction using a beat type.
function void get_keep( |
| ); |
Returns the unpacked version of TKEEP of the transaction.
virtual function void set_keep ( |
| ); |
Sets the value of TKEEP of the transaction using an unpacked array.
Returns the beat type version of TKEEP of the transaction. It is different from get_keep since get_keep returns unpacked version of TKEEP.
virtual function void set_keep_beat ( |
| ); |
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.
virtual function void get_data( |
| ); |
Returns the unpacked version of TDATA of the transaction.
virtual function void set_data( |
| ); |
Sets the value of TDATA of the transaction using an unpacked array.
Returns the beat type version of TDATA of the transaction.
function void set_data_beat( |
| ); |
Sets the value of TDATA of the transaction using a beat type.
virtual function void set_user_beat( |
| ); |
Sets the value of TUSER of the transaction using a beat type.
Returns the beat type version of TUSER of the transaction.
Returns the current settings of the interface.
virtual function void set_signal_set( |
| ); |
Sets the value of signal set. This value MUST match the interface properties.
Returns the DATA width of the transaction.
Creates/Adjusts the different internal data structures.
virtual function void set_data_width( |
| ); |
Sets the value of DATA width for the transaction.
Returns the DEST width of the transaction.
virtual function void set_dest_width( |
| ); |
Sets the value of DEST width for the transaction.
Returns the ID width of the transaction.
virtual function void set_id_width( |
| ); |
Sets the value of ID width for the transaction.
Returns the USER width of the transaction.
virtual function void set_user_width( |
| ); |
Sets the value of USER width for the transaction.
virtual function void set_user_bits_per_byte( |
| ); |
Sets the value of the user bits per byte for the transaction.
Returns the value of the user bits per byte of the transaction.
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.
virtual function void set_driver_return_item_policy ( |
| ); |
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.
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.
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.
virtual function void set_xfer_alignment ( |
| ); |
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.
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.
Returns a form of string for axi4stream transaction which includes SIGNAL_SET, DEST, ID, USER, LAST,PAYLOAD(data, strb, keep) user bits.
virtual function bit do_compare ( |
| ); |
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 .
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.
virtual function void set_delay( |
| ); |
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.
Returns delay_policy of the transaction
virtual function void set_delay_policy( |
| ); |
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.
function void get_delay_range( |
| ); |
Returns min_delay and max_delay of the transaction
virtual function void set_delay_range( |
| ); |
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.
Sets all strobe bits to 0 when HAS_STRB is on
Sets all strobe bits to 1 when HAS_STRB is on
Sets all keep bits to 0 when HAS_KEEP is on
Sets all keep bits to 1 when HAS_KEEP is on
Sets final value of strobe of the transaction
AXI4STREAM Monitor Transaction Object. It is an extension of axi4stream_transaction.
function new( |
| ); |
Constructor to create a new monitor transaction.
Sets monitor_print_times to be TRUE
Sets monitor_print_times to be FALSE
Returns monitor_print_times
function void copy( |
| ); |
Copies the contents of the input monitor transaction to the current monitor transaction
Clones the current transaction and returns a handle to the new transaction.
Returns string XIL_AXI4STREAM_MONITOR_TRANSACTION
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 Object. It is extension of axi4stream_monitor_transaction.
function new( |
| ); |
Constructor to create a new scoreboard transaction.
Returns type name "AXI4STREAM_SCOREBOARD_TRANSACTION"
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.
virtual task wait_aclks( |
| ); |
Waits specified amount of posedge aclk occur
Waits posedge of ACLK of m_vif
Waits posedge of ACLK of m_vif and then wait hold_time
Waits negedge of ACLK of m_vif
Waits areset to be deasserted
Returns 1 if dummy_drive_type is XIL_AXI4STREAM_VIF_DRIVE_X, else returns 0
Generate simplified randomization of xid,xdest and xlast of VIF when user define XIL_DO_NOT_USE_ADV_RANDOMIZATION
Get Dummy Drive Type of m_vif
Waits TVALID of m_vif asserted
function new( |
| ); |
Constructor to create a new axi4stream vif proxy
Starts control processes for operation
Returns clk_edge_counter
Returns clk_edge_time
Sets Dummy Drive type to be XIL_AXI4STREAM_VIF_DRIVE_X
virtual function void set_dummy_drive_type( |
| ); |
Sets Dummy Drive Type
function void assign_vi ( |
| ) ; |
Assigns m_vif
Puts noise on bus
Sets TVALID to be 0 and puts noise onto bus
virtual function void put_transaction( |
| ); |
Puts transaction information onto bus
Collects m_vif information and returns it to transaction class
Sets valid of m_vif to be 1
Sets valid of m_vif to be 0
Sets ready of m_vif to be 1
Sets ready of m_vif to be 0
Returns 1 if TVALID of m_vif is 1, else returns 0
Wait TVALID of m_vif is 1
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.
Returns 1 if TVALID of clock block in m_vif is 1, else returns 0
Returns 1 if ARESET_N of clock block in m_vif is 0, else returns 0
Waits negedge of ARSET_N of m_vif
Waits till TVALID is sampled
Waits till TREADY/TAVLID handshake occurs
Returns 1 if TREADY/TVALID handshake occurs, otherwise returns 0
When active the AXI4STREAM Monitor will record transactions that are presented on the the virtual interface.
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.
function new ( |
| ); |
Constructor to create a new axi4stream monitor object
function void set_vif( |
| ); |
Assigns the virtual interface of the driver.
Start control processes for operation
Stops all control processes.
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.
function new( |
| ); |
Constructor to create an new axi4stream ready gen object
Reset all variables in ready generation to default value
function void copy( |
| ); |
Copies the contents of the input ready generation to the current ready generation
Clones the current ready generation and returns a handle to the new generation
Returns a form of string of ready object
Sets the use of the variable ranges when the policy of ready generation is not RANDOM
Clears the use of the variable ranges when the policy of ready generation is not RANDOM
Returns the current state of the variable range use feature.
virtual function void set_ready_policy( |
| ); |
Sets the policy of ready generation
Returns the current ready generation policy
virtual function void set_event_cycle_count_reset( |
| ); |
Set event_cycle_count_reset value of ready generation
Returns the current event_cycle_count_reset
virtual function void get_low_time_range( |
| ); |
Returns min_low_time and max_low_time of the current ready generation
virtual function void set_low_time_range( |
| ); |
Sets min_low_time and max_low_time of the current ready generation
virtual function void set_low_time( |
| ); |
Sets low_time of the current ready generation
Returns low time of the current ready generation
virtual function void get_high_time_range( |
| ); |
Returns min_high_time and max_high_time of the current ready generation
virtual function void set_high_time_range( |
| ); |
Sets min_high_time and max_high_time of the current ready generation
virtual function void set_high_time( |
| ); |
Sets high_time of the current ready generation
Returns high time of the current ready generation
virtual function void get_event_count_range( |
| ); |
Returns min_event_count and max_event_count of the current ready generation
virtual function void set_event_count_range( |
| ); |
Sets min_event_count and max_event_count of the current ready generation
Returns event_count of the current ready generation
virtual function void set_event_count( |
| ); |
Sets the number of events that ready stays at high
Returns ready_rand_policy of the ready generation
Generate simplified randomization of ready class when user defines XIL_DO_NOT_USE_ADV_RANDOMIZATION
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.
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.
function new( |
| ); |
Constructor to create a new axi4stream master driver
function void set_vif( |
| ); |
Assigns the virtual interface of the driver.
function void set_forward_progress_timeout_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.
Returns the current value of the forward_progress_timeout_value.
When the driver is actively processing a transaction this function will return FALSE.
Start control processes for operation
Stops all control processes.
virtual function axi4stream_transaction create_transaction ( |
| ); |
Returns an axi4stream transaction that has been "newed"
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.
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.
function new( |
| ); |
Constructor to create a new axi4stream slave driver object
function void set_vif( |
| ); |
Assigns the virtual interface of the driver.
Start control processes for operation
Stops all control processes.
task send_tready( |
| ); |
Send ready object to the driver when HAS_TREADY is on
virtual function axi4stream_ready_gen create_ready ( |
| ); |
Returns Ready class that has been "newed"
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.
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.
function new ( |
| ); |
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.
virtual function void set_verbosity( |
| ); |
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.
virtual function void set_agent_tag( |
| ); |
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.
function void set_vif( |
| ); |
Sets the Agent's virtual interface. This is the interface that will be monitored and/or driven.
Enables the monitor in this agent to start collecting data.
Enables the monitor, driver in this agent to start collecting data. The driver will only issue transactions when the send functions are called.
Disables the driver. Once disabled, no further action will occur by the driver.
Disables the monitor in this agent from start collecting data. Once disabled, no further action will occur by the monitor.
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.
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.
function new ( |
| ); |
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.
virtual function void set_verbosity( |
| ); |
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.
function void set_vif( |
| ); |
Sets the Agent's virtual interface. This is the interface that will be monitored and/or driven.
virtual function void set_agent_tag( |
| ); |
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.
Enables the monitor in this agent to start collecting data.
Enables the monitor,driver in this agent to start collecting data. The driver will only issue ready generation when the send functions are called.
Disables the driver. Once disabled, no further action will occur by the drivers.
Disables the monitor in this agent from start collecting data. . Once disabled, no further action will occur by the monitor.
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.
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.
function new ( |
| ); |
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.
virtual function void set_verbosity( |
| ); |
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.
function void set_vif( |
| ); |
Sets the Agent's virtual interface. This is the interface that will be monitored and/or driven.
virtual function void set_agent_tag( |
| ); |
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.
Enables the monitor in this agent to start collecting data.
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.
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.
Disables the driver of the master. Once disabled, no further action will occur by the drivers.
Disables the driver of the slave. Once disabled, no further action will occur by the drivers.
Disables the monitor in this agent from start collecting data. . Once disabled, no further action will occur by the monitor.