Preemption leverages the MRMAC
custom preamble features to insert and extract the necessary Preamble, SMD, and FRAG_COUNT
fields. Insertion and extraction of custom preamble is enabled on a per-port basis by
setting the ctl_tx_custom_preamble_enable_<N>
field of
the CONFIGURATION_TX_REG register to 1. This feature must be enabled for preemption to work
properly.
When custom preamble is enabled, the user logic communicates the desired
preamble field for outbound frames on a port-by-port, packet-by-packet basis by means of the
signals tx_preamblein_N[55:0]
. In the receive direction,
the signals rx_preambleout_N[55:0]
are used to communicate
the extracted preamble from the received packets.
Note that the tx_preamblein/rx_preambleout
signals are 7B
wide. The first byte of preamble must always be set to 0x55
, as required by
IEEE 802.3. Consequently, it is not necessary to include this first byte in the in/out
signals, as it is always the same. Byte 0 ([7:0]) of the in/out signals map to byte 1
([15:8]) of the preamble field.