Axi3 bfm master test program, Configuration and initialization, Write transaction creation and execution – Altera Mentor Verification IP Altera Edition AMBA AXI3/4TM User Manual
Page 156: Example 6-1. configuration and initialization

Mentor VIP AE AXI3/4 User Guide, V10.2b
138
SystemVerilog Tutorials
Verifying a Slave DUT
September 2013
A top-level file instantiates and connects all the components required to test and monitor the
DUT, and controls the system clock (ACLK) and reset (ARESETn) signals.
AXI3 BFM Master Test Program
Using the AXI3 master BFM API, this Master Test Program creates a wide range of stimulus
scenarios that test the slave DUT. This tutorial restricts the stimulus to a write transaction
followed by a read transaction to the same address to compare the read data with the previously
written data. For a complete code example of this Master Test Program, refer to
Configuration and Initialization
The code excerpt in
shows the Master Test Program defining nine transaction
variables, trans, and trans1 to trans8, of type axi_transaction, which hold the transaction record
for each transaction. A timeout transaction field is configured in the AXI3 Master BFM before
waiting for the system reset to be completed. An additional system clock cycle is waited on after
reset to satisfy the AXI3 protocol requirement specified in Section 11.1.2 of the AMBA AXI
Protocol Specification, before executing transactions.
Example 6-1. Configuration and Initialization
initial
begin
axi_transaction trans trans1, trans2, trans3, trans4;
axi_transaction trans5, trans6, trans7, trans8;
/******************
** 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);
Write Transaction Creation and Execution
To generate AXI3 protocol traffic, the Master Test Program must create the transaction trans
before executing it. The code excerpt in
calls the
function, providing only the start address argument of the transaction. The optional burst-length
argument automatically defaults to a value of zero—indicating a burst length of a single beat
(refer to