Type: Answers

Area: Intellectual Property

IP Product: Serial RapidIO MegaCore

Why does the order of Serial Rapid IO link packets differ from the order in the application layer?


Re-ordering of the Serial Rapid IO® link packets may occur in Avalon IO Slave module before the logical layer, while transmitting packets. This could be a problem on the read-after-write transactions on the same address, i.e. NWRITE followed by NREAD on the same address.

This re-ordering is intentionally implemented in Avalon module in order to maximize efficiency, because a read packet usually needs more time to complete than write packets.  Moreover, Rapid IO specification does not require keeping the order of packets within Logical layer, although, it must keep the order of packets out of logical layer to partner's logical layer.

To prevent the problem on read-after-write, use NWRITE_R instead of NWRITE and issue NREAD after receiving done response of NWRITE_R. Future Rapid IO IP versions will provide you an option to choose a switch to keep the order.