CertusPro-NX SerDes/PCS Usage Guide
Preliminary
Technical Note
FPGA-TN-02245-0.81
© 2020-2021 Lattice Semiconductor
51
All rights reserved. CONFIDENTIAL
6.4.1.1.
Data Bus Description
The bit mapping and transfer order of 40-bit Transmitter/Receiver data bus is described as follows. The data flowing
over the data bus can be either 8b data or 10b data.
8b data: the 8-bit raw data before 8B/10B encoding or after 8B/10B decoding.
10b data: the 10-bit DC-balanced code before 8B/10B decoding or after 8B/10B encoding.
The MPCS uses either 1-byte or 2-byte width internal data path, depending on protocol data rate. Moreover, the
MPCS-Fabric interface width can be configured as 1-byte, 2-byte, or 4-byte mode. Check the
for more information about the relationship between data bus width and data rate.
1-byte mode: receive, transmit or process 1-byte data per clock cycle; in this mode, only bit[9:0] of the data bus
are used to carry valid data; other 30 bits are left unused.
2-byte mode: receive, transmit or process 2-byte data per clock cycle; only bit[19:0] are valid in this mode.
4-byte mode: receive, transmit or process 4-byte data per clock cycle; all 40 bits are used in this mode.
The data flowing to/from fabric can be in 1-byte, 2-byte or 4-byte mode, but data inside MPCS are only in 1-byte,
2-byte mode. There is 2:1 gearing logic in MPCS Tx path to convert 4-byte data flowing from fabric to 2-byte data for
MPCS internal processing. Similarly, a 1:2 gearing exists in Rx path to convert 2-byte data at high speed to 4-byte
before they flow to fabric.
The bit mapping of Tx path data bus is described in
. The bit mapping of Rx path data bus is described in
. Transfer ordering represents the serial order of sending.
Table 6.2. Bit Mapping of Tx Data Bus
8b Data
10b Data
Byte
1-byte Mode
2-byte Mode
4-byte Mode
Transfer Ordering
tx_data[39]
cordisp_3
data_3[9]
byte_3
unused
unused
used
last
^
|
|
|
|
|
|
|
tx_data[38]
ctrl_3
data_3[8]
tx_data[37]
data_3[7]
data_3[7]
tx_data[36]
data_3[6]
data_3[6]
tx_data[35]
data_3[5]
data_3[5]
tx_data[34]
data_3[4]
data_3[4]
tx_data[33]
data_3[3]
data_3[3]
tx_data[32]
data_3[2]
data_3[2]
tx_data[31]
data_3[1]
data_3[1]
tx_data[30]
data_3[0]
data_3[0]
tx_data[29]
cordisp_2
data_2[9]
byte_2
tx_data[28]
ctrl_2
data_2[8]
tx_data[27]
data_2[7]
data_2[7]
tx_data[26]
data_2[6]
data_2[6]
tx_data[25]
data_2[5]
data_2[5]
tx_data[24]
data_2[4]
data_2[4]
tx_data[23]
data_2[3]
data_2[3]
tx_data[22]
data_2[2]
data_2[2]
tx_data[21]
data_2[1]
data_2[1]
tx_data[20]
data_2[0]
data_2[0]
tx_data[19]
cordisp_1
data_1[9]
byte_1
used
tx_data[18]
ctrl_1
data_1[8]
tx_data[17]
data_1[7]
data_1[7]
tx_data[16]
data_1[6]
data_1[6]
tx_data[15]
data_1[5]
data_1[5]
tx_data[14]
data_1[4]
data_1[4]
tx_data[13]
data_1[3]
data_1[3]
tx_data[12]
data_1[2]
data_1[2]
tx_data[11]
data_1[1]
data_1[1]