Using the axi3 basic slave test program api, Advanced axi3 slave api definition – Altera Mentor Verification IP Altera Edition AMBA AXI3/4TM User Manual
Page 179

SystemVerilog Tutorials
Verifying a Master DUT
Mentor VIP AE AXI3/4 User Guide, V10.2b
161
September 2013
Using the AXI3 Basic Slave Test Program API
As described in the
AXI3 Basic Slave API Definition
section, there are a set of tasks and
functions that you can use to create stimulus scenarios based on a memory-model slave with a
minimal amount of editing. However, consider the following configurations when using the
Slave Test Program.
•
- The read and write channel interaction can cause simultaneous read and
write transactions to occur at the same address. With the default slave_mode setting the
read transaction data burst is buffered at the start of the burst and the write data burst is
buffered at the end of the burst. This can result in the read data being stale at the time it
is transmitted over the protocol signals. If this is an undesirable feature, then set the
Slave_mode to be AXI_PHASE_SLAVE.
•
- By default the handshake *READY signal will always
follow, or be simultaneous with, the *VALID signal. By configuring the delay_mode to
be AXI_TRANS2READY *READY before *VALID scenarios can be achieved.
•
m_max_outstanding_read_trans - The maximum number of outstanding (incomplete)
read transactions that can be initiated by a master test program before the slave test
program applies back-pressure to the master by deasserting the ARREADY signal. When
subsequent read transactions complete, then the slave test program asserts ARREADY.
•
m_max_outstanding_write_trans - The maximum number of outstanding (incomplete)
write transactions that can be initiated by a master test program before the slave test
program applies back-pressure to the master by deasserting the AWREADY signal. When
subsequent read transactions complete, then the slave test program asserts AWREADY.
Advanced AXI3 Slave API Definition
Note
You are not required to edit the following Advance Slave API unless you require a
different response than the default (OKAY) response.
The remaining section of this tutorial presents a walk-through of the Advanced Slave API in the
slave test program. It consists of four main tasks,
,
,
and
in the slave test program, as shown in
The Advanced Slave API is capable of handling pipelined transactions. Pipelining can occur
when a transaction starts before a previous transaction has completed. Therefore, a write
transaction that starts before a previous write transaction has completed can be pipelined.
shows the write channel having three concurrent write_trans transactions, whereby
the write_addr_phase[2], write_data_burst[1] and write_response_phase[0] are concurrently
active on the write address, data and response channels, respectively.