GTS Transceiver PHY User Guide: Agilex™ 3 FPGAs and SoCs

ID 848344
Date 8/04/2025
Public
Document Table of Contents

3.6. Bit Mapping for PMA, FEC, and PCS Mode PHY TX and RX Datapath

The tx_parallel_data bit and rx_parallel_data bit width depends on the PMA width and Number of PMA lanes IP parameters. Use the following equation to determine the total tx_parallel_data or rx_parallel_data bit width:

Total tx_parallel_data or rx_parallel_data Bit Width Equation:

tx/rx_parallel_data[(80*N)-1:0]

Where:

  • N = Number of PMA lanes value from 1 to 4 .

The tx/rx_parallel_data signals include the valid parallel data bits and other functionality bits, such as the data valid bit, the write enable for TX core interface FIFO in elastic mode bit, the RX deskew bit, and the alignment marker bits (for FEC mode). These signals travel to and from the FPGA fabric to the transceiver block, and are clocked by the same parallel clock. This parallel clock can be a PMA clock or System PLL clock.

Example 1: Total tx/rx_parallel_data Bit Width with 2 PMA Lanes (N=2) and 8-bit PMA Width (X=1)

tx_parallel_data [(80*2)-1:0] = tx_parallel_data [159:0]
rx_parallel_data [(80*2)-1:0] = rx_parallel_data [159:0]

Parallel Data Mapping information for TX and RX

Table 44.  Variable Definitions
Variable Values Description
N 1, 2, 4 Number of lanes
n 0 to N-1 N is the PMA index number
D D = PMA Width D is the data width value to calculate the total parallel data bits
Table 45.  PMA Direct Mode Parallel Data Calculations
PMA Configuration MSB LSB TX Parallel Data RX Parallel Data

PMA Width = 8, 10, 16, 20, 32

Single Width

79 Write Enable for TX Core FIFO in Elastic Mode 21 Data valid for RX Core FIFO in Elastic Mode21
38 + (80*n) TX PMA Interface Data Valid
Note: You must connect this bit to o_tx_cadence if you are using PMA Direct mode with PMA clocking in elastic mode. Elastic mode is only applicable for single lane operation.
RX PMA Interface Data Valid
[D-1] + (80*n) 0 + (80*n) TX Data RX Data

PMA Width = 8, 10, 16, 20, 32

Double Width

79 Write Enable for TX Core FIFO in Elastic Mode21
Note: You must connect this bit to o_tx_cadence if you are using PMA Direct mode with PMA clocking in elastic mode. Elastic mode is only applicable for single lane operation.
Data valid for RX Core FIFO in Elastic Mode21
(40+D-1) + (80*n) 40 + (80*n) TX Data (Upper Data Bits) RX Data (Upper Data Bits)
38 + (80*n) TX PMA Interface Data Valid
Note: PMA Direct with PMA clocking in elastic mode. Elastic mode is only applicable for single lane operation.
RX PMA Interface Data Valid
(D -1) + (80*n) 0 + (80*n) TX Data (Lower Data Bits) RX Data (Lower Data Bits)
Table 46.  FEC Direct Mode Parallel Data Calculations
MSB LSB TX Parallel Data RX Parallel Data
77 Alignment Marker -
72 40 TX Data (Upper Data Bits) RX Data (Upper Data Bits)
38 TX PMA Interface Data Valid Bit RX PMA Interface Data Valid Bit
37 Alignment Marker Alignment Marker
32 2 TX Data (Lower Data Bits) RX Data (Lower Data Bits)
1 0 Sync Head
Table 47.  Example of Bit Mapping of TX Parallel Data Bits for PMA Direct Mode with PMA Width = 32
N (Number of Lanes) 1 2 4 TX Parallel Data
Bits 79    
Write Enable for TX Core FIFO in Elastic Mode.
Note: Bit 79 is only available for PMA Direct with PMA Clocking in Elastic mode and single lane operation.
38 118 278 TX PMA Interface Data Valid
31:0 118:80 271:240 TX Data (Lower Data Bits)
71:40 151:120 311:280 TX Data (Upper Data Bits)
Table 48.  PCS Direct Mode — IEEE MII Interface Parallel Data Calculations
MSB LSB TX Parallel Data RX Parallel Data
74 i_tx_mii_c[7] o_rx_mii_c[7]
73 66 i_tx_mii_d[63:56] o_rx_mii_d[63:56]
65 i_tx_mii_c[6] o_rx_mii_c[6]
64 57 i_tx_mii_d[55:48] o_rx_mii_d[55:48]
56 i_tx_mii_c[5] o_rx_mii_c[5]
55 48 i_tx_mii_d[47:40] o_rx_mii_d[47:40]
47 i_tx_mii_c[4] o_rx_mii_c[4]
46 39 i_tx_mii_d[39:32] o_rx_mii_d[39:32]
38 i_tx_mii_valid o_rx_mii_valid
37 i_tx_mii_am (RSFEC)

Reserved (Firecode FEC)

o_rx_mii_am (RSFEC)

Reserved (Firecode FEC)

35 i_tx_mii_c[3] o_rx_mii_c[3]
34 27 i_tx_mii_d[31:24] o_rx_mii_d[31:24]
26 i_tx_mii_c[2] o_rx_mii_c[2]
25 18 i_tx_mii_d[23:16] o_rx_mii_d[23:16]
17 i_tx_mii_c[1] o_rx_mii_c[1]
16 9 i_tx_mii_d[15:8] o_rx_mii_d[15:8]
8 i_tx_mii_c[0] o_rx_mii_c[0]
7 0 i_tx_mii_d[7:0] o_rx_mii_d[7:0]
Table 49.  TX and RX Parallel Data to IEEE MII Port Mapping Signals for PCS Direct Mode
     
i_tx_mii_d[63:0] Input Drive MII encoded control bytes on this input data bus. i_tx_mii_d[7:0] holds the first byte the IP core transmits
i_tx_mii_c[7:0] Input For each control byte driven into i_tx_mii_d bus, drive the corresponding bit high. For example, i_tx_mii_c[0] corresponds to i_tx_mii_d[7:0]. If the value of a bit is 1, the corresponding data byte is a control byte. Otherwise it is data.
i_tx_mii_valid Input Drive this signal high to qualify the data or control bytes on the i_tx_mii_d bus.
i_tx_mii_am Input Alignment marker insertion bit (applicable only for RS-FEC). Drive this signal to 0 if Firecode FEC or FEC is not enabled.
o_rx_mii_d[63:0] Output Receive Ethernet frames or MII control bytes, MII encoded, on this input data bus. o_rx_mii_d[7:0] holds the first byte received.
o_rx_mii_c[15:0] Output Sample this bus to determine if o_rx_mii_d[63:0] input bus is carrying control or data bytes. If the value of a bit is 1, the corresponding data byte is a control byte. If the value of a bit is 0, the corresponding data byte is data.
o_rx_mii_valid Output Sample this signal to qualify the RX MII data, RX MII control bits, and the RX valid alignment marker signals.
Table 50.  PCS Direct Mode — IEEE_FLEXE_66/PCS66 Parallel Data Calculations
MSB LSB TX Parallel Data RX Parallel Data
71 39 i_txd[65:33] o_rxd[65:33]
38 i_tx_valid o_rx_valid
37 i_tx_am (RSFEC)

Reserved (Firecode FEC)

o_rx_am (RSFEC)

Reserved (Firecode FEC)

32 0 i_txd[32:0] o_rxd[32:0]
Table 51.  TX and RX Parallel Data to IEEE_FLEXE_66/PCS66 Mapping Signals for PCS Direct Mode
Signal Name Direction Description
i_txd[65:0] Input Drive this data bus with the 66-bit data blocks from the source. The two least significant bits are the header sync bits. In FlexE mode, the TX PCS scrambles the 66-bit data block and stripes the data blocks across the transceiver channels. In PCS66 mode, you must provide scrambled data.
i_tx_valid Input Drive this signal high to qualify the 66-bit data block on the i_txd input data bus.
i_tx_am Input Drive valid 66-bit data blocks when this signal has been asserted. Do not drive valid data blocks when this signal is deasserted.
o_rxd[65:0] Output Output data bus that receives Ethernet frames or MII control bytes, MII encoded. o_rxd[7:0] holds the first byte received.
o_rx_valid Output PCS66 data valid signal. The signal indicates valid data on PCS66 ports.
o_rx_am Output Alignment marker indicator (applicable for RS-FEC). This signal indicates the blocks currently on o_rxd have been identified as alignment markers.
21 Only available for PMA clocking and if TX/RX core FIFO is in elastic mode.