Access transaction record, Set*(), Example 7-3. slave bfm test program using – Altera Mentor Verification IP Altera Edition AMBA AXI3/4TM User Manual
Page 214: Procedures block the test

Mentor VIP AE AXI3/4 User Guide, V10.2b
196
VHDL API Overview
Access Transaction Record
September 2013
get*_transaction(), get*_burst(), get*_phase(), get*_cycle()
For example, a slave BFM test program can use a received write address phase to form the
response of the write transaction. The test program gets the write address phase for the
transaction by calling the
procedure. This task blocks until it has
received the address phase, allowing the test program to then call the
execute_write_response_phase()
procedure for the transaction, as shown in the slave BFM test
program in
Example 7-3. Slave BFM Test Program Using
-- * = axi| axi4
-- ** = AXI | AXI4
create_slave_transaction(write_trans, bfm_index, *_tr_if_0(
bfm_index
));
get_write_addr_phase(write_trans, bfm_index,
*
_tr_if_0(bfm_index));
...
execute_write_response_phase(write_trans, bfm_index, **_PATH_2,
*
_tr_if_2(bfm_index));
In the above example, the bfm_index specifies the BFM.
Note
Not all BFM APIs support the full complement of
get*_transaction(), get*_burst(),
tasks. Refer to the individual master, slave or monitor BFM
API for details.
Access Transaction Record
Each BFM API has procedures that can access a complete, or partially complete,
procedures are used in a test program to set and get information
from the transaction record.
set*()
For example, to set the WSTRB write strobes signal for the first phase (beat) in the
of a write transaction, the master test program would use the set_write_strobes()
procedure, as shown in the code below.
-- * = axi| axi4
set_write_strobes(2, tr_id, bfm_index, *_tr_if_0(bfm_index));
In the above example, the bfm_index specifies the BFM.