In the non-channelized segmented mode, frames span bus segments and the user
logic can start or end a frame in any given segment. In modes with four or more
segments, frames can start and end on the same cycle. For the 400G mode, with eight
segments, two frames can start in a single cycle and two preamblein
buses are consequently available; tx_preamblein_0
is used for frames starting in segments 0 to 3 while
tx_preamblein_2
is used for frames starting in
segments 4 to 7.
The general rule of segmentation is that new SOPs must be aligned to segment 0.
“New” is defined as either the first frame after port startup or the start of a frame
when the last valid cycle ended with an eop
(on any
segment, but correspondingly followed by disabled segments if eop
was not on the last segment of the bus). Start-of-frame indications
can occur on other segments, but only if they immediately follow an eop
on the preceding segment. There can be no gaps (that is
to say, segments with ena
deasserted) between eop
and sop
on a single
cycle.