3)  Ordered Sets:

Notation

The notation used for ordered sets is similar to that used for code groups.  Code groups are written as either /Dx.y/ or /Kx.y/.  Ordered sets are written in the form of /XY/ where X is a letter and Y is sometimes used and contains a number.  The defined ordered sets are: /C/, /C1/, /C2/, /I/, /I1/, /I2/, /R/, /S/, /T/ and /V/.

Definition

  • Consist of either one, two or four code groups
  • The first code group must be a special code group
  • The second code group must be a data code group.
Defined ordered sets

/C/ = Configuration (/C1/ or /C2/)

  • /C1/ = /K28.5/D21.5/config_reg[7:0]/config_reg[15:8]/
  • /C2/ = /K28.5/D2.2/config_reg[7:0]/config_reg[15:8]/
  • /K28.5/ is used as the first code group because it contains a comma which is a unique data pattern that was defined previously.  The reception of this code group will not happen during a data packet unless there is a data error.  This makes it very useful for use with very specific ordered sets such as Idle and Configuration.
  • Continuous repetition of ordered sets /C1/ alternating with /C2/.  It is used to convey the 16-bit Configuration Register to the link partner.
  • /C1/ will flip the current running disparity after the transmission of /D21.5/.  This is because /K28.5/ will flip the running disparity and /D21.5/ will maintain the current running disparity.
  • /C2/ will sustain the current running disparity after the transmission of /D2.2/.  This is because both /K28.5/ and /D2.2/ flip the current running disparity.
  • /D21.5/ and /D2.2/ were chosen for their high bit transition density.
/I/ = IDLE (/I1/ or /I2/)
  • /I1/ = /K28.5/D5.6/
  • /I2/ = /K28.5/D16.2/
  • Transmitted continuously and repetitively whenever the GMII interface is idle   (TX_EN and TX_ER are both inactive).  It provides a continuous fill pattern to establish and maintain clock synchronization.
  • /I1/ is transmitted only if the current running disparity value is positive.  In which case it is used to correct to the RD- state.
  • /I2/ is transmitted when the current running disparity value is negative.  It is used to maintain the RD- state.
  • /D5.6/ and /D16.2/ were chosen for their high bit transition density.
/S/ = Start_of_Packet delimiter
  • /S/ = /K27.7/
  • Used to delineate the starting boundary of a data sequence.
/T/ = End_of_Packet delimiter
  • /T/ = /K29.7/
  • Used to delineate the ending boundary of a packet.  The EPD is transmitted by the PCS following each de-assertion of TX_EN on the GMII, which follows the last data octet composing the FCS of the MAC packet.
  • The EPD consists of either /T/R/I/ or /T/R/R/.
/R/ = Carrier_Extend
  • /R/ = /K23.7/
  • Used to extend the duration of a carrier event.
  • Used to separate packets within a burst of packets.
  • Used to pad the last or only packet of a burst of packets so that the subsequent /I/ is aligned on an even-numbered code group boundary.
  • Used in the EPD.
  • /R/ is required within the EPD to meet the Hamming distance requirement for ending delimiters.
/V/ = Error_Propagation
  • /V/ = /K30.7/
  • The presence of Error_Propagation (or an invalid code group) on the medium denotes a collision artifact or an error condition.  Transmitted upon the assertion of TX_EN and TX_ER from the GMII, or the assertion of TX_ER with the de-assertion of TX_EN while TXD<7:0> is not equal to 0F.
Testing Programs