Execute_read_data_phase(), Axi3 example, Task for each p – Altera Mentor Verification IP Altera Edition AMBA AXI3/4TM User Manual

Page 102: Task for each beat of the data

Advertising
background image

Mentor VIP AE AXI3/4 User Guide, V10.2b

84

SystemVerilog AXI3 and AXI4 Slave BFMs
execute_read_data_phase()

September 2013

execute_read_data_phase()

This task executes a read data phase (beat) previously created by the

create_slave_transaction()

task. This phase can be blocking (default), or non-blocking, defined by the transaction record
operation_mode field.

The execute_read_data_phase() sets the RVALID protocol signal at the appropriate time
defined by the transaction record data_valid_delay field and sets the data_beat_done array
index element field to 1 on completion of the phase. If this is the last phase (beat) of the burst
then this task sets the transaction_done field to 1 to indicate the whole read transaction has
completed.

AXI3 Example

// Declare a local variable to hold the transaction record.
axi_transaction read_trans;

// Create a slave transaction and assign it to the local
// read_trans variable.
read_trans = bfm.create_slave_transaction();

....

// Execute the read data phase for the first beat of the
// read_trans transaction.
bfm.execute_read_data_phase(read_trans, 0);

// Execute the read data phase for the second beat of the
// read_trans transaction.
bfm.execute_read_data_phase(read_trans, 1);

Prototype

// * = axi | axi4
task automatic execute_read_data_phase
(

*_transaction trans,

int index = 0 // Optional

);

Arguments

trans

The *_transaction record.

index

Data phase (beat) number.

Returns

None

Advertising