|
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.
|