Altera Mentor Verification IP Altera Edition AMBA AXI3/4TM User Manual

Page 719

Advertising
background image

SystemVerilog AXI3 and AXI4 Test Programs

SystemVerilog AXI3 Master BFM Test Program

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

699

September 2013

// Read data burst of length 1 from address 128.
trans = bfm.create_read_transaction(128, 1);

bfm.execute_transaction(trans);
if (trans.get_data_words(0) == 'hACE0AC00)
$display ( "@ %t, master_test_program: Read correct data (hACE0AC00)
at address (128)", $time);
else
$display ( "@ %t, master_test_program: Error: Expected data
(hACE0AC00) at address (128), but got %h", $time,
trans.get_data_words(0));

if (trans.get_data_words(1) == 'hACE2ACE3)
$display ( "@ %t, master_test_program: Read correct data (hACE2ACE3)
at address (132)", $time);
else
$display ( "@ %t, master_test_program: Error: Expected data
(hACE2ACE3) at address (132), but got %h", $time,
trans.get_data_words(1));

/************************************
** Outstanding Traffic generation: **
************************************/

repeat(10)
bfm.wait_on(AXI_CLOCK_POSEDGE);

// 4 Outstanding write transactions
// Write data value to address 0.
trans1 = bfm.create_write_transaction(0,3);
trans1.set_data_words('hACE0ACE1, 0);
trans1.set_data_words('hACE2ACE3, 1);
trans1.set_data_words('hACE4ACE5, 2);
trans1.set_data_words('hACE6ACE7, 3);
for(int i=0; i<4; i++)
trans1.set_write_strobes(4'b1111, i);
$display ( "@ %t, master_test_program: Writing data (1) to address
(0)", $time);

fork
bfm.execute_write_addr_phase(trans1);
bfm.execute_write_data_burst(trans1);
join_any

// Write data value to address 16.
trans2 = bfm.create_write_transaction(16,2);
trans2.set_data_words('hACE0ACE1, 0);
trans2.set_data_words('hACE2ACE3, 1);
trans2.set_data_words('hACE4ACE5, 2);
for(int i=0; i<3; i++)
trans2.set_write_strobes(4'b1111, i);
$display ( "@ %t, master_test_program: Writing data (2) to address
(16)", $time);

Advertising