The synchronous RX Local bus interface provides packet-oriented data much like the TX Local bus interface accepts. All signals are synchronous with the rising-edge of the Local bus clock. The following figure shows a sample waveform for two data transactions for 65-byte packets using a 512-bit segmented LBUS.
Data is supplied on segment <N> by the Interlaken core on every LBUS clock cycle when
rx_enaout<N>
is asserted. This signal qualifies the other
outputs of segment <N> of the RX Local bus interface.
The RX is similar to the TX, in that rx_sopout<N>
identifies the
start of a packet on segment <N> and rx_eopout<N>
identifies the
end of a packet on segment <N>. Both rx_sopout<N>
and
rx_eopout<N>
are asserted during the same cycle for packets that
are less than or equal to the segment width.
As in the TX, The first byte of a packet that starts on segment <N> is supplied on
Bits[127:120] of rx_dataout<N>
, the second byte on Bits[119:112],
and so forth.
Portions of packets are written on the bus segments in the full width of the segment (16
bytes) unless for the last segment of the packet. When rx_eopout<N>
is asserted on segment <N>, the rx_mtyout<N>
bus indicates how
many byte lanes in the segment are invalid. The encoding is the same as for
tx_mtyin<N>
.
During the last cycle of a packet, when rx_eopout<N>
is asserted with
rx_enaout<N>
, rx_errout<N>
can also be
asserted to indicate an error in the packet ended on segment <N>.
There is no mechanism to back pressure the RX Local bus interface. The user logic must be
capable of receiving data when rx_enaout0
is asserted. The Interlaken
flow control mechanism can be used to stop the flow of data, either using the in-band or
out-of-band protocol, or both.
The data provided by the RX Local bus interface is in the same sequence as it is received
from the Interlaken bus. Packets can be interleaved and are distinguished using the
channel number presented on rx_chanout<N>
.
The RX segmented LBUS can contain more than one SOP and more than one EOP, in contrast to the way the TX must function. This is because there is no requirement to accommodate Burst Control Words on the receive side LBUS (they have already been processed) and therefore packets can be packed as efficiently as possible when they arrive.