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.