Waiting events, Wait_on() – Altera Mentor Verification IP Altera Edition AMBA AXI3/4TM User Manual

Page 213

Advertising
background image

VHDL API Overview

Waiting Events

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

195

September 2013

execute_transaction(), execute*_burst(), execute*_phase()

If the DUT is a slave then the execute_transaction() procedure is called in the master BFM test
program. If the DUT is a master then the execute*_burst() and execute*_phase() procedures are
called in the slave BFM test program.

For example, to execute a master write transaction the master BFM test program would contain
the following code:

-- * = axi| axi4
-- By default the execution of a transaction will block
execute_transaction(tr_id, bfm_index, *_tr_if_2(bfm_index));

For example, to execute a slave write response phase, the slave BFM test program would
contain the following code:

-- * = axi| axi4
-- By default the execution of a phase will block
execute_write_response_phase(write_trans, bfm_index,
*_tr_if_2(bfm_index));

In the above example, the bfm_index specifies the BFM.

Waiting Events

Each BFM API has procedures that block the test program code execution until an event has
occurred.

The

wait_on()

procedure blocks the test program until an ACLK or ARESETn signal event has

occurred before proceeding.

The

get*_transaction(), get*_burst(), get*_phase(), get*_cycle()

procedures block the test

program code execution until a complete transaction, burst, phase or cycle has occurred,
respectively.

wait_on()

For example, a BFM test program can wait for the positive edge of the ARESETn signal using
the following code:

-- * = axi| axi4
-- ** = AXI | AXI4
-- Block test program execution until the positive edge of the clock
wait_on(**_RESET_POSEDGE, bfm_index, *_tr_if_0(bfm_index));

In the above example, the bfm_index specifies the BFM.

Advertising