50G Signaling - 2.3 English

Versal Devices Integrated 100G Multirate Ethernet MAC Subsystem Product Guide (PG314)

Document ID
PG314
Release Date
2024-05-30
Version
2.3 English

50G operation requires either a 128/256-bit interface. Up to two 50G clients can be active.

Table 1. 50G Non-Segmented Signaling for 128 Bits
Client Direction Function Signaling
0 RX valid

last

data[63:0]

data[127:64]

tkeep[7:0]

tkeep[15:8]

err

preempt

resume

preamble_out

rx_axis_tvalid_0

rx_axis_tlast_0

rx_axis_tdata0[63:0]

rx_axis_tdata1[63:0]

rx_axis_tkeep_user_0[7:0]

rx_axis_tkeep_user_1[7:0]

rx_axis_tkeep_user_0[8]

rx_axis_tkeep_user_0[9]

rx_axis_tkeep_user_0[10]

rx_preambleout_0[55:0]

TX ready

valid

last

data[63:0]

data[127:64]

tkeep[7:0]

tkeep[15:8]

err

preempt

resume

preamble_in

tx_axis_tready_0

tx_axis_tvalid_0

tx_axis_tlast_0

tx_axis_tdata0[63:0]

tx_axis_tdata1[63:0]

tx_axis_tkeep_user_0[7:0]

tx_axis_tkeep_user_1[7:0]

tx_axis_tkeep_user_0[8]

tx_axis_tkeep_user_0[9]

tx_axis_tkeep_user_0[10]

tx_axis_preamblein_0[55:0]

2 RX valid

last

data[63:0]

data[127:64]

tkeep[7:0]

tkeep[15:8]

err

preempt

resume

preamble_out

rx_axis_tvalid_2

rx_axis_tlast_2

rx_axis_tdata4[63:0]

rx_axis_tdata5[63:0]

rx_axis_tkeep_user_4[7:0]

rx_axis_tkeep_user_5[7:0]

rx_axis_tkeep_user_4[8]

rx_axis_tkeep_user_4[9]

rx_axis_tkeep_user_4[10]

rx_preambleout_2[55:0]

TX ready

valid

last

data[63:0]

data[127:64]

tkeep[7:0]

tkeep[15:8]

err

preempt

resume

preamble_in

tx_axis_tready_2

tx_axis_tvalid_2

tx_axis_tlast_2

tx_axis_tdata4[63:0]

tx_axis_tdata5[63:0]

tx_axis_tkeep_user_4[7:0]

tx_axis_tkeep_user_5[7:0]

tx_axis_tkeep_user_4[8]

tx_axis_tkeep_user_4[9]

tx_axis_tkeep_user_4[10]

tx_axis_preamblein_2[55:0]

Table 2. 50G Non-Segmented Signaling for 256 Bits
Client Direction Function Signaling
0 RX valid

last

data[63:0]

data[127:64]

data[191:128]

data[255:192]

tkeep[7:0]

tkeep[15:8]

tkeep[23:16]

tkeep[31:24]

err

preempt

resume

preamble_out

rx_axis_tvalid_0

rx_axis_tlast_0

rx_axis_tdata0[63:0]

rx_axis_tdata1[63:0]

rx_axis_tdata2[63:0]

rx_axis_tdata3[63:0]

rx_axis_tkeep_user_0[7:0]

rx_axis_tkeep_user_1[7:0]

rx_axis_tkeep_user_2[7:0]

rx_axis_tkeep_user_3[7:0]

rx_axis_tkeep_user_0[8]

rx_axis_tkeep_user_0[9]

rx_axis_tkeep_user_0[10]

rx_preambleout_0[55:0]

TX ready

valid

last

data[63:0]

data[127:64]

data[191:128]

data[255:192]

tkeep[7:0]

tkeep[15:8]

tkeep[23:16]

tkeep[31:24]

err

preempt

resume

preamble_in

tx_axis_tready_0

tx_axis_tvalid_0

tx_axis_tlast_0

tx_axis_tdata0[63:0]

tx_axis_tdata1[63:0]

tx_axis_tdata2[63:0]

tx_axis_tdata3[63:0]

tx_axis_tkeep_user_0[7:0]

tx_axis_tkeep_user_1[7:0]

tx_axis_tkeep_user_2[7:0]

tx_axis_tkeep_user_3[7:0]

tx_axis_tkeep_user_0[8]

tx_axis_tkeep_user_0[9]

tx_axis_tkeep_user_0[10]

tx_axis_preamblein_0[55:0]

2 RX valid

last

data[63:0]

data[127:64]

data[191:128]

data[255:192]

tkeep[7:0]

tkeep[15:8]

tkeep[23:16]

tkeep[31:24]

err

preempt

resume

preamble_out

rx_axis_tvalid_2

rx_axis_tlast_2

rx_axis_tdata4[63:0]

rx_axis_tdata5[63:0]

rx_axis_tdata6[63:0]

rx_axis_tdata7[63:0]

rx_axis_tkeep_user_4[7:0]

rx_axis_tkeep_user_5[7:0]

rx_axis_tkeep_user_6[7:0]

rx_axis_tkeep_user_7[7:0]

rx_axis_tkeep_user_4[8]

rx_axis_tkeep_user_4[9]

rx_axis_tkeep_user_4[10]

rx_preambleout_2[55:0]

TX ready

valid

last

data[63:0]

data[127:64]

data[191:128]

data[255:192]

tkeep[7:0]

tkeep[15:8]

tkeep[23:16]

tkeep[31:24]

err

preempt

resume

preamble_in

tx_axis_tready_2

tx_axis_tvalid_2

tx_axis_tlast_2

tx_axis_tdata4[63:0]

tx_axis_tdata5[63:0]

tx_axis_tdata6[63:0]

tx_axis_tdata7[63:0]

tx_axis_tkeep_user_4[7:0]

tx_axis_tkeep_user_5[7:0]

tx_axis_tkeep_user_6[7:0]

tx_axis_tkeep_user_7[7:0]

tx_axis_tkeep_user_4[8]

tx_axis_tkeep_user_4[9]

tx_axis_tkeep_user_4[10]

tx_axis_preamblein_2[55:0]