RapidIO II Intel® FPGA IP User Guide

ID 683444
Date 9/28/2020
Document Table of Contents
Give Feedback

4.5.2. Low-Level Interface Transmitter

The transmitter in the low-level interface transmits output to the RapidIO interface. This module performs the following tasks:
  • Assembles packets and control symbols into a proper output format.
  • Generates the 13-bit CRC to cover the 35-bit symbol and appends the CRC at the end of the symbol.
  • Transmits an IDLE2 sequence during port initialization and when no packets or control symbols are available to transmit.
  • Transmits outgoing multicast-event control symbols in response to user requests.
  • Transmits status control symbols and the rate compensation sequence periodically as required by the RapidIO specification.
The low-level transmitter block creates and transmits outgoing multicast-event control symbols. Each time the multicast_event_tx input signal changes value, this block inserts a multicast-event control symbol in the outgoing bit stream as soon as possible.

The internal transmitters are turned off while the initialization state machine is in the SILENT state. This behavior causes the link partner to detect the need to reinitialize the RapidIO link.

The transmitter transceiver is an embedded Native PHY IP core.

The Physical layer ensures that a maximum of 63 unacknowledged packets are transmitted, and that the ackIDs are used and acknowledged in sequential order. To support retransmission of unacknowledged packets, the Physical layer maintains a copy of each transmitted packet until the packet is acknowledged with a packet-accepted control symbol.

The RapidIO II IP core supports receiver-controlled flow control in both directions.

If the receiver detects that an incoming packet or control symbol is corrupted or a link protocol violation has occurred, the Physical layer enters an error recovery process. In the case of a corrupted incoming packet or control symbol, and some link protocol violations, the transmitter sends a packet-not-accepted symbol to the sender. A link-request link-response control symbol pair is then exchanged between the link partners and the sender then retransmits all packets starting from the ackID specified in the link-response control symbol. The transmitter attempts the link-request link-response control symbol pair exchange seven times. If the protocol and control block times out awaiting the response to the seventh link-request control symbol, it declares a fatal error. When a time-out occurs for an outgoing packet, the Physical layer starts the recovery process. If a packet is retransmitted, the time-out counter is reset. To meet the RapidIO specification requirements for packet priority handling and deadlock avoidance, the Physical layer transmitter includes four transmit queues and four retransmit queues, one for each priority level.

The transmit buffer is the main memory in which the packets are stored before they are transmitted. The buffer is partitioned into 64-byte blocks to be used on a first-come, first-served basis by the transmit and retransmit queues.

The following events cause any stored packets to be lost:
  • Fatal error caused by receiving a link-response control symbol with the port_status set to OK but the ackid_status set to an ackID that is not pending (transmitted but not acknowledged yet).
  • Fatal error caused by transmitter timing out while waiting for link-response.
  • Fatal error caused by receiver timing out while waiting for link-request.
  • Receive four consecutive link-request control symbols with the cmd set to reset-device.