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

Page 718

Advertising
background image

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

698

SystemVerilog AXI3 and AXI4 Test Programs
SystemVerilog AXI3 Master BFM Test Program

September 2013

// Write data burst length of 7 to start address 16.
trans = bfm.create_write_transaction(16, 7);

trans.set_data_words('hACE0ACE1, 0);
trans.set_data_words('hACE2ACE3, 1);
trans.set_data_words('hACE4ACE5, 2);
trans.set_data_words('hACE6ACE7, 3);
trans.set_data_words('hACE8ACE9, 4);
trans.set_data_words('hACEAACEB, 5);
trans.set_data_words('hACECACED, 6);
trans.set_data_words('hACEEACEF, 7);
for(int i=0; i<8; i++)
trans.set_write_strobes(4'b1111, i);

trans.set_write_data_mode(AXI_DATA_WITH_ADDRESS);
$display ( "@ %t, master_test_program: Writing data burst of length 7
to start address 16", $time);

bfm.execute_transaction(trans);

// Write data burst of length 7 to start address 128 with LSB write
strobe inactive.
trans = bfm.create_write_transaction(128, 7);

trans.set_data_words('hACE0ACE1, 0);
trans.set_data_words('hACE2ACE3, 1);
trans.set_data_words('hACE4ACE5, 2);
trans.set_data_words('hACE6ACE7, 3);
trans.set_data_words('hACE8ACE9, 4);
trans.set_data_words('hACEAACEB, 5);
trans.set_data_words('hACECACED, 6);
trans.set_data_words('hACEEACEF, 7);

trans.set_write_strobes(4'b1110, 0);
for(int i=1; i<8; i++)
trans.set_write_strobes(4'b1111, i);
$display ( "@ %t, master_test_program: Writing data burst of length 7
to start address 128", $time);

bfm.execute_transaction(trans);

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

bfm.execute_transaction(trans);
if (trans.get_data_words(0) == 'hACE0ACE1)
$display ( "@ %t, master_test_program: Read correct data (hACE0ACE1)
at address (16)", $time);
else
$display ( "@ %t, master_test_program: Error: Expected data
(hACE0ACE1) at address (16), 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 (20)", $time);
else
$display ( "@ %t, master_test_program: Error: Expected data
(hACE2ACE3) at address (20), but got %h", $time, trans.get_data_words(1));

Advertising