25G Signaling - 1.3 English

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

Document ID
PG314
Release Date
2021-02-05
Version
1.3 English

25G operation can use either a 64/128-bit data bus depending on the clock mode that is in use. Up to four 25G clients can be active.

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

last

data[63:0]

tkeep

err

preempt

resume

preamble_out

rx_axis_tvalid_0

rx_axis_tlast_0

rx_axis_tdata0[63:0]

rx_axis_tkeep_user_0[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]

tkeep

err

preempt

resume

preamble_in

tx_axis_tready_0

tx_axis_tvalid_0

tx_axis_tlast_0

tx_axis_tdata0[63:0]

tx_axis_tkeep_user_0[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]

1 RX valid

last

data[63:0]

tkeep

err

preempt

resume

preamble_out

rx_axis_tvalid_1

rx_axis_tlast_1

rx_axis_tdata2[63:0]

rx_axis_tkeep_user_2[7:0]

rx_axis_tkeep_user_2[8]

rx_axis_tkeep_user_2[9]

rx_axis_tkeep_user_2[10]

rx_preambleout_1[55:0]

TX ready

valid

last

data[63:0]

tkeep

err

preempt

resume

preamble_in

tx_axis_tready_1

tx_axis_tvalid_1

tx_axis_tlast_1

tx_axis_tdata2[63:0]

tx_axis_tkeep_user_2[7:0]

tx_axis_tkeep_user_2[8]

tx_axis_tkeep_user_2[9]

tx_axis_tkeep_user_2[10]

tx_axis_preamblein_1[55:0]

2 RX valid

last

data[63:0]

tkeep

err

preempt

resume

preamble_out

rx_axis_tvalid_2

rx_axis_tlast_2

rx_axis_tdata4[63:0]

rx_axis_tkeep_user_4[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]

tkeep

err

preempt

resume

preamble_in

tx_axis_tready_2

tx_axis_tvalid_2

tx_axis_tlast_2

tx_axis_tdata4[63:0]

tx_axis_tkeep_user_4[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]

3 RX valid

last

data[63:0]

tkeep

err

preempt

resume

preamble_out

rx_axis_tvalid_3

rx_axis_tlast_3

rx_axis_tdata6[63:0]

rx_axis_tkeep_user_6[7:0]

rx_axis_tkeep_user_6[8]

rx_axis_tkeep_user_6[9]

rx_axis_tkeep_user_6[10]

rx_preambleout_3[55:0]

TX ready

valid

last

data[63:0]

tkeep

err

preempt

resume

preamble_in

tx_axis_tvalid_3

tx_axis_tlast_3

tx_axis_tready_3

tx_axis_tdata6[63:0]

tx_axis_tkeep_user_6[7:0]

tx_axis_tkeep_user_6[8]

tx_axis_tkeep_user_6[9]

tx_axis_tkeep_user_6[10]

tx_axis_preamblein_3[55:0]

Table 2. 25G 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]

1 RX valid

last

data[63:0]

data[127:64]

tkeep[7:0]

tkeep[15:8]

err

preempt

resume

preamble_out

rx_axis_tvalid_1

rx_axis_tlast_1

rx_axis_tdata2[63:0]

rx_axis_tdata3[63:0]

rx_axis_tkeep_user_2[7:0]

rx_axis_tkeep_user_3[7:0]

rx_axis_tkeep_user_2[8]

rx_axis_tkeep_user_2[9]

rx_axis_tkeep_user_2[10]

rx_preambleout_1[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_1

tx_axis_tvalid_1

tx_axis_tlast_1

tx_axis_tdata2[63:0]

tx_axis_tdata3[63:0]

tx_axis_tkeep_user_2[7:0]

tx_axis_tkeep_user_3[7:0]

tx_axis_tkeep_user_2[8]

tx_axis_tkeep_user_2[9]

tx_axis_tkeep_user_2[10]

tx_axis_preamblein_1[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]

3 RX valid

last

data[63:0]

data[127:64]

tkeep[7:0]

tkeep[15:8]

err

preempt

resume

preamble_out

rx_axis_tvalid_3

rx_axis_tlast_3

rx_axis_tdata6[63:0]

rx_axis_tdata7[63:0]

rx_axis_tkeep_user_6[7:0]

rx_axis_tkeep_user_7[7:0]

rx_axis_tkeep_user_6[8]

rx_axis_tkeep_user_6[9]

rx_axis_tkeep_user_6[10]

rx_preambleout_3[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_tvalid_3

tx_axis_tlast_3

tx_axis_tlast_3

tx_axis_tdata6[63:0]

tx_axis_tdata7[63:0]

tx_axis_tkeep_user_6[7:0]

tx_axis_tkeep_user_7[7:0]

tx_axis_tkeep_user_6[8]

tx_axis_tkeep_user_6[9]

tx_axis_tkeep_user_6[10]

tx_axis_preamblein_3[55:0]