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

Page 716

Advertising
background image

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

696

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

September 2013

/******************
** Configuration **
******************/
begin
bfm.set_config(AXI_CONFIG_MAX_TRANSACTION_TIME_FACTOR, 1000);
end

/*******************
** Initialization **
*******************/
bfm.wait_on(AXI_RESET_0_TO_1);
bfm.wait_on(AXI_CLOCK_POSEDGE);

/************************
** Traffic generation: **
************************/
// 4 x Writes
// Write data value 1 on byte lanes 1 to address 1.
trans = bfm.create_write_transaction(1);
trans.set_data_words(32'h0000_0100, 0);
trans.set_write_strobes(4'b0010, 0);
$display ( "@ %t, master_test_program: Writing data (1) to address
(1)", $time);

// By default it will run in Blocking mode
bfm.execute_transaction(trans);

// Write data value 2 on byte lane 2 to address 2.
trans = bfm.create_write_transaction(2);
trans.set_data_words(32'h0002_0000, 0);
trans.set_write_strobes(4'b0100, 0);
trans.set_write_data_mode(AXI_DATA_WITH_ADDRESS);
$display ( "@ %t, master_test_program: Writing data (2) to address
(2)", $time);

bfm.execute_transaction(trans);

// Write data value 3 on byte lane 3 to address 3.
trans = bfm.create_write_transaction(3);
trans.set_data_words(32'h0300_0000, 0);
trans.set_write_strobes(4'b1000, 0);
$display ( "@ %t, master_test_program: Writing data (3) to address
(3)", $time);

bfm.execute_transaction(trans);

// Write data value 4 to address 4 on byte lane 0.
trans = bfm.create_write_transaction(4);
trans.set_data_words(32'h0000_0004, 0);
trans.set_write_strobes(4'b0001, 0);
trans.set_write_data_mode(AXI_DATA_WITH_ADDRESS);
$display ( "@ %t, master_test_program: Writing data (4) to address
(4)", $time);

bfm.execute_transaction(trans);

// 4 x Reads
// Read data from address 1.

Advertising