Altera® AXI4 Bus Functional Model User Guides

ID 838773
Date 5/19/2025
Public
Document Table of Contents

2.2.1.2. Altera® AXI4 Streaming BFM Transfers

A transfer is a complete data transaction that comprises one or more data beats, and ending with the TLAST signal during the final data beat. A transfer is the AXI4 streaming bus basic unit of information interchange between the transmitter and receiver.

The beginning of the data transfer begins when TVALID is asserted. TVALID remains asserted until the transfer completes. During the transfer, data transactions occur between the transmitter and the receiver when both the TVALID and TREADY handshake signals are asserted. The transfer ends when TLAST is asserted during the last data beat.

The next time TVALID goes high after TLAST signifies the beginning of a new transfer. AXI4 Streaming Bus with Four Example Transfers shows an example with four transfers. Note that the TDATA values do not change on the bus until TREADY is asserted, and after a data beat or transaction occurs.

Figure 6. AXI4 Streaming Bus with Four Example Transfers

In the bus beats where TREADY is not asserted, data transmission from the transmitter is effectively backpressured. This means that the receiver requests that the transmitter stop sending data until the receiver is ready to receive more data. When the receiver is ready to receive more data, the receiver asserts the TREADY signal.

The AXI4 streaming transfers are represented in the BFM using the SystemVerilog class Axi4StreamTransfer. The axi4_stream_transfer_class package provides the Axi4StreamTransfer class, as Package axi4_stream_transfer_class_pkg describes.

BFM Transfer Object Basic Operation summarizes the basic operation of the transfer class.

Figure 7. BFM Transfer Object Basic Operation

The delay and gap values in the figure can take any unsigned 32-bit integer value to model delays required by the BFM. This includes setting the delay and gap to zero for tightly packed bursts with no idle periods between consecutive transfers. The following definitions apply:

  • delay—the time delay before the transmission of data.
  • gap—the time delay after the transmission of data before the next transfer can start.

The total space between two consecutive transfers comprises the gap of a preceding transfer, plus the delay from the following transfer, as Total Delay Between Data Transfers shows. Once you set delay and gap to value, the delay and gap remain at that value with each new object until you explicitly change the value. This means that you can set-and-forget the delay and gap values if they are a consistent, repeating value.

Figure 8.  Total Delay Between Data Transfers