FLEX I/F 50G FEC-only operation uses a 2 x 80-bit data bus. Up to 12 50G ports can be active.
Port | Interface | Function | Signaling |
---|---|---|---|
0 | RX FLEX I/F | enable for both 50G FEC A and B | rx_flex_ena_0 |
FEC A codeword start at data[0] | rx_flex_start_0 | ||
FEC B codeword start at data[160] | rx_flex_startb_0 | ||
FEC A dout flags for data[159:0] | rx_flex_fec_rx_dout_flags_0[3:0] | ||
FEC B dout flags for data[319:160] | rx_flex_fec_rx_dout_flagsb_0[3:0] | ||
FEC A data[159:0] | rx_flex_data_0[159:0] | ||
FEC B data[159:0] | rx_flex_data_0[319:160] | ||
TX FLEX I/F | enable for both 50G FEC A and B | tx_flex_ena_0 | |
FEC A codeword start at data[0] | tx_flex_start_0 | ||
FEC B codeword start at data[0] | tx_flex_startb_0 | ||
stall for both 50G FEC A and B | tx_flex_stall_0 | ||
FEC A data[159:0] | tx_flex_data_0[159:0] | ||
FEC B data[159:0] | tx_flex_data_0[319:160] | ||
1 | RX FLEX I/F | enable for both 50G FEC A and B | rx_flex_ena_1 |
FEC A codeword start at data[0] | rx_flex_start_1 | ||
FEC B codeword start at data[160] | rx_flex_startb_1 | ||
FEC A dout flags for data[159:0] | rx_flex_fec_rx_dout_flags_1[3:0] | ||
FEC B dout flags for data[319:160] | rx_flex_fec_rx_dout_flagsb_1[3:0] | ||
FEC A data[159:0] | rx_flex_data_1[159:0] | ||
FEC B data[159:0] | rx_flex_data_1[319:160] | ||
TX FLEX I/F | enable for both 50G FEC A and B | tx_flex_ena_1 | |
FEC A codeword start at data[0] | tx_flex_start_1 | ||
FEC B codeword start at data[0] | tx_flex_startb_1 | ||
stall for both 50G FEC A and B | tx_flex_stall_1 | ||
FEC A data[159:0] | tx_flex_data_1[159:0] | ||
FEC B data[159:0] | tx_flex_data_1[319:160] | ||
2 | RX FLEX I/F | enable for both 50G FEC A and B | rx_flex_ena_2 |
FEC A codeword start at data[0] | rx_flex_start_2 | ||
FEC B codeword start at data[160] | rx_flex_startb_2 | ||
FEC A dout flags for data[159:0] | rx_flex_fec_rx_dout_flags_2[3:0] | ||
FEC B dout flags for data[319:160] | rx_flex_fec_rx_dout_flagsb_2[3:0] | ||
FEC A data[159:0] | rx_flex_data_2[159:0] | ||
FEC B data[159:0] | rx_flex_data_2[319:160] | ||
TX FLEX I/F | enable for both 50G FEC A and B | tx_flex_ena_2 | |
FEC A codeword start at data[0] | tx_flex_start_2 | ||
FEC B codeword start at data[0] | tx_flex_startb_2 | ||
stall for both 50G FEC A and B | tx_flex_stall_2 | ||
FEC A data[159:0] | tx_flex_data_2[159:0] | ||
FEC B data[159:0] | tx_flex_data_2[319:160] | ||
3 | RX FLEX I/F | enable for both 50G FEC A and B | rx_flex_ena_3 |
FEC A codeword start at data[0] | rx_flex_start_3 | ||
FEC B codeword start at data[160] | rx_flex_startb_3 | ||
FEC A dout flags for data[159:0] | rx_flex_fec_rx_dout_flags_3[3:0] | ||
FEC B dout flags for data[319:160] | rx_flex_fec_rx_dout_flagsb_3[3:0] | ||
FEC A data[159:0] | rx_flex_data_3[159:0] | ||
FEC B data[159:0] | rx_flex_data_3[319:160] | ||
TX FLEX I/F | enable for both 50G FEC A and B | tx_flex_ena_3 | |
FEC A codeword start at data[0] | tx_flex_start_3 | ||
FEC B codeword start at data[0] | tx_flex_startb_3 | ||
stall for both 50G FEC A and B | tx_flex_stall_3 | ||
FEC A data[159:0] | tx_flex_data_3[159:0] | ||
FEC B data[159:0] | tx_flex_data_3[319:160] | ||
4 | RX FLEX I/F | enable for both 50G FEC A and B | rx_flex_ena_4 |
FEC A codeword start at data[0] | rx_flex_start_4 | ||
FEC B codeword start at data[160] | rx_flex_startb_4 | ||
FEC A dout flags for data[159:0] | rx_flex_fec_rx_dout_flags_4[3:0] | ||
FEC B dout flags for data[319:160] | rx_flex_fec_rx_dout_flagsb_4[3:0] | ||
FEC A data[159:0] | rx_flex_data_4[159:0] | ||
FEC B data[159:0] | rx_flex_data_4[319:160] | ||
TX FLEX I/F | enable for both 50G FEC A and B | tx_flex_ena_4 | |
FEC A codeword start at data[0] | tx_flex_start_4 | ||
FEC B codeword start at data[0] | tx_flex_startb_4 | ||
stall for both 50G FEC A and B | tx_flex_stall_4 | ||
FEC A data[159:0] | tx_flex_data_4[159:0] | ||
FEC B data[159:0] | tx_flex_data_4[319:160] | ||
5 | RX FLEX I/F | enable for both 50G FEC A and B | rx_flex_ena_5 |
FEC A codeword start at data[0] | rx_flex_start_5 | ||
FEC B codeword start at data[160] | rx_flex_startb_5 | ||
FEC A dout flags for data[159:0] | rx_flex_fec_rx_dout_flags_5[3:0] | ||
FEC B dout flags for data[319:160] | rx_flex_fec_rx_dout_flagsb_5[3:0] | ||
FEC A data[159:0] | rx_flex_data_5[159:0] | ||
FEC B data[159:0] | rx_flex_data_5[319:160] | ||
TX FLEX I/F | enable for both 50G FEC A and B | tx_flex_ena_5 | |
FEC A codeword start at data[0] | tx_flex_start_5 | ||
FEC B codeword start at data[0] | tx_flex_startb_5 | ||
stall for both 50G FEC A and B | tx_flex_stall_5 | ||
FEC A data[159:0] | tx_flex_data_5[159:0] | ||
FEC B data[159:0] | tx_flex_data_5[319:160] |