In the transmit direction, the MRMAC supports packet preemption by allowing packets currently in flight across the AXI4-Stream interface to be preempted.
When preemption is enabled, the user logic provides appropriate mPacket
header fields for all outbound frames using the preamble insertion function. The transmit
path does not interpret any of the mPacket header fields but instead places these fields, as
tx_preamblein_<N>, into the outbound
During packet transfer on TX AXI4-Stream,
user logic can preempt any given packet by asserting the preempt signal input (a bit in the
tx_axis_tkeep_user_<N> signal as listed in the port descriptions) along
with EOP/tlast. The user logic can then send its express packet.
If transmit FCS insert is enabled, the TX logic calculates and inserts an mCRC on the preempted packet. The partially calculated frame CRC is stored away so it can be resumed later.
After the express packet has been transmitted, the user logic can resume the
previously preempted frame by asserting the
along with SOP/tvalid. The MRMAC resumes
calculating the CRC for the interrupted packet. As before, the user logic must provide a
suitable mPacket header (with SMD and FRAG_COUNT set appropriately).
Care must be taken by the user logic to ensure that any outbound packet (including fragments) respects the 64B min size for a fragment/packet.
In this example, an in-flight egress frame, Frame A, transmits cycles A0 through A16. However, it is preempted
when the user logic asserts both
tx_axis_tkeep_user0 (preempt). The MRMAC calculates an mCRC for Frame A and sets aside the
partial FCS calculation for later.
The priority frame (Frame B) begins in the very next cycle. It is a minimum
length frame of 64B. Its final data (B7) is signaled normally
tx_axis_tlast_0. The MRMAC transmits this
Finally, Frame A resumes in the next cycle with the user logic asserting
the resume signal (
tx_axis_tkeep_user0). The user logic-provided
tx_preamble_in_0) must provide an appropriate preemption header.
The partially calculated FCS from earlier is retrieved and packet data transmission resumes
with packet data A17.