RapidIO Intel FPGA IP User Guide

ID 683884
Date 9/15/2021
Public
Document Table of Contents

4.5.3.3. Input/Output Avalon® -MM Slave Module

The I/O Avalon® -MM slave Logical layer module transforms Avalon® -MM transactions to RapidIO read and write request packets that are sent through the Transport and Physical layer modules to a remote RapidIO processing element where the actual read or write transactions occur and from which response packets are sent back when required. Avalon® -MM read transactions complete when the corresponding response packet is received.
Figure 28. Input/Output Avalon® -MM Slave Logical Layer Block Diagram
Note:
  • The I/O Avalon® -MM slave module is referred to as a slave module because it is an Avalon® -MM interface slave.
  • The maximum number of outstanding transactions (I/O Requests) supported is 26 (14 read requests + 12 write requests).

To maintain full-duplex bandwidth, two independent Avalon® -MM interfaces are used in the I/O slave module—one for read transactions and one for write transactions.

When the read Avalon® -MM slave creates a read request packet, the request is sent to both the Pending Reads buffer to wait for the corresponding response packet, and to the read request transmit buffer to be sent to the remote processing element through the Transport layer. When the read response is received, the packet’s payload is used to complete the read transaction on the read Avalon® -MM slave.

For a read operation, one of the following responses occurs:

  • The read was successful. After a response packet is received, the read response and data are passed from the Pending Reads buffer back through the read Avalon® -MM slave interface.
  • The remote processing element is busy and the request packet is resent.
  • An error or time-out occurs, which causes io_s_rd_readerror to be asserted on the read Avalon® -MM slave interface and some information to be captured in the Error Management Extension registers.

How the write request is handled depends on the type of write request sent. For example, unlike a read request, not all write requests send tracking information to the Pending Writes buffer. NWRITE and SWRITE requests do not send write tracking information to the Pending Writes buffer. Only write requests such as NWRITE_R, that require a response, are sent to both the Pending Writes and Transmit buffers. Write requests are sent through the Transport and Physical layers to the remote processing element.

An outbound request that requires a response—an NWRITE_R or an NREAD transaction—is assigned a time-out value that is the sum of the VALUE field of the Port Response Time-Out Control register and the current value of a free-running counter. When the counter reaches the time-out value, if the transaction has not yet received a response, the transaction times out.

If you turn off the I/O read and write order preservation option in the RapidIO parameter editor, if a read and a write request arrive simultaneously or one clock cycle apart on the Avalon® -MM interfaces, the order of transaction completion is undefined. However, if you turn on the I/O read and write order preservation option, the read requests buffer and the write requests buffer shown in the figure are combined, to preserve the relative order of read and write requests that appear on the Avalon® -MM interface. In Intel® Arria® 10 and Intel® Cyclone® 10 GX variations, the read and write request buffers are combined.