2097 - LatticeECP3/SGMII: Does the different number of preambles (5 or 6) on the Lattice SGMII IP (Serial Gigabit Media Independent Interface) receive side match the SGMII protocol?

2097 - LatticeECP3/SGMII: Does the different number of preambles (5 or 6) on the Lattice SGMII IP (Serial Gigabit Media Independent Interface) receive side match the SGMII protocol?

Yes, the SGMII IP (Serial Gigabit Media Independent Interface) of Lattice matches the SGMII 802.3 protocol.

According to the description of the Start_of_Packet delimiter (SPD), the PCS (Physical Coding Sublayer) will replace the first octet of the MAC preamble with an SPD.

According to the description of the End_of_Packet delimiter (EPD), the /I/ should be aligned on an even-numbered code-group.

If last data octet is on odd-numbered code-group, /T/R/ is inserted, otherwise, /T/R/R/ is inserted.

The following examples are provided for additional clarification:

If the following sequences are transmitted:

20*payload + 13*IFG + 7*preamble + SFD +
20*payload + 13*IFG + 7*preamble + SFD +
20*payload + 13*IFG + 7*preamble + SFD +
20*payload + 13*IFG + 7*preamble + SFD +

Either of the following two cases will be received:

case 1: 20th payload is on odd-numbered code-group,
20*payload + /T/R/ + 6*/I/ + SPD + 5*preamble + SFD + -- odd
20*payload + /T/R/R/ + 5*/I/ + SPD + 6*preamble + SFD + -- even
20*payload + /T/R/ + 6*/I/ + SPD + 5*preamble + SFD + -- odd
20*payload + /T/R/R/ + 5*/I/ + SPD + 6*preamble + SFD + -- even
20*payload + /T/R/ + 6*/I/ + SPD + 5*preamble + SFD + -- odd
20*payload + /T/R/R/ + 5*/I/ + SPD + 6*preamble + SFD + -- even

case 2: 20th payload is on even-numbered code-group,
20*payload + /T/R/R/ + 5*/I/ + SPD + 6*preamble + SFD + -- even
20*payload + /T/R/ + 6*/I/ + SPD + 5*preamble + SFD + -- odd
20*payload + /T/R/R/ + 5*/I/ + SPD + 6*preamble + SFD + -- even
20*payload + /T/R/ + 6*/I/ + SPD + 5*preamble + SFD + -- odd
20*payload + /T/R/R/ + 5*/I/ + SPD + 6*preamble + SFD + -- even

If the following sequences are transmitted:

20*payload + 12*IFG + 7*preamble + SFD +
20*payload + 12*IFG + 7*preamble + SFD +
20*payload + 12*IFG + 7*preamble + SFD +
20*payload + 12*IFG + 7*preamble + SFD +

Either of the following two cases will be received:

20*payload + /T/R/ + 5*/I/ + SPD + 6*preamble + SFD + -- odd
20*payload + /T/R/ + 5*/I/ + SPD + 6*preamble + SFD + -- odd
20*payload + /T/R/ + 5*/I/ + SPD + 6*preamble + SFD + -- odd
20*payload + /T/R/ + 5*/I/ + SPD + 6*preamble + SFD + -- odd
20*payload + /T/R/ + 5*/I/ + SPD + 6*preamble + SFD + -- odd
20*payload + /T/R/ + 5*/I/ + SPD + 6*preamble + SFD + -- odd

case 2: 20th payload is on even-numbered code-group,
20*payload + /T/R/R/ + 5*/I/ + SPD + 5*preamble + SFD + -- even
20*payload + /T/R/R/ + 5*/I/ + SPD + 5*preamble + SFD + -- even
20*payload + /T/R/R/ + 5*/I/ + SPD + 5*preamble + SFD + -- even
20*payload + /T/R/R/ + 5*/I/ + SPD + 5*preamble + SFD + -- even
20*payload + /T/R/R/ + 5*/I/ + SPD + 5*preamble + SFD + -- even