Segmented Mode - 1.4 English

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

Document ID
PG314
Release Date
2021-11-15
Version
1.4 English
Segmented 100G mode uses a 384-bit datapath. This mode is limited to a single Ethernet client (Client 0) and consequently <N> = 0 for the various tx_axis_*_<N> signals. Higher numbered signals such as tx_axis_tvalid_(1-3), tx_axis_tready_(1-3), etc., are unused and should be driven to 0.
Note: tx_axis_tlast and rx_axis_tlast signals are not used in the segmented mode.
Table 1. Segmented AXI4-Stream Interface Signal Descriptions – TX Direction
Port Name I/O Description
tx_axis_tvalid_0 I Asserted by user logic to indicate that the current bus cycle is valid.
tx_axis_tready_0 O Driven by the MRMAC to indicate that the interface is able to accept the data currently present on the bus. If the tready signal deasserts during a transfer the user logic must hold the current data on the bus until tready is asserted again.
tx_axis_tdata<M>[63:0] I Segmented packet data, in network order.
tx_axis_tkeep_user_<M>[0] I ENA. Setting this input to 1 indicates that the associated tx_axis_tdata(0-5) signal contains valid data, and that the other flags on the associated tx_axis_tkeep_user_* signals are valid. When set to 0, all the corresponding tkeep_user flags are ignored by the interface.
tx_axis_tkeep_user_<M>[1] I SOP. Setting this input to 1 indicates that the associated tx_axis_tdata(0-5) segment contains the beginning of a new packet. Only valid when ENA is 1.
tx_axis_tkeep_user_<M>[2] I EOP. Setting this input to 1 indicates that the associated tx_axis_tdata(0-5) segment contains the last byte of a packet transfer. Only valid when ENA is 1.
tx_axis_tkeep_user_<M>[3] I ERR. Setting this input to 1 indicates the packet in transfer is to be aborted with an error. The packet is marked poisoned with an invalid FCS, as is typical in cut-through architectures. This flag is only valid in a segment where both EOP and ENA are set to 1.
tx_axis_tkeep_user_<M>[6:4] I MTY[2:0]. Empty indicates the number of empty (unused) bytes in the final (EOP) segment. Valid only in the segment where EOP and ENA are asserted to 1.

3'd0 - 8 bytes valid

3'd1 - 7 bytes valid

...

3'd7 - 1 byte valid

tx_axis_tkeep_user_<M>[7] I Preempt. When set to 1, it indicates that the packet in progress is to be preempted. When preempting a packet the interface requires that both EOP and ENA be set to 1 as well. For more details on frame preemption support, see the related information below.
tx_axis_tkeep_user_<M>[8] I Resume. Set to 1 when the currently transmitting packet is a resumption of a previously preempted packet. This signal is to be asserted at the beginning of new packet transfer. It is only valid in a segment where the corresponding SOP and ENA are asserted.
tx_preamblein_0[55:0] I This signal is used to convey preamble when custom preamble mode is enabled. It is also used when Frame Preemption is enabled. The tx_preamblein_0 signal must be provided during the first transfer of data. When enabled, seven preamble bytes must be provided. The MRMAC always sets the first byte to 0x55.
tx_ptp_1588op_in_0[1:0] I Select the desired PTP operation.
  • 2’b00 – No operation: no timestamp is taken and the frame is not modified.
  • 2’b01 – 1-step: a timestamp should be taken and inserted into the frame.
  • 2’b10 – 2-step: a timestamp should be taken and returned to the client using the additional ports of 2-step operation. The frame itself is not modified.
  • 2’b11 – Reserved.
tx_ptp_cf_offset_0[15:0] I This specifies the offset (in octets) to the PTP Correction field. Offset 0 corresponds to the first byte of the Ethernet Destination Address. If UDP checksum adjustment is required (tx_ptp_upd_chksum_in is set), the first byte of the checksum is assumed to be located at tx_ptp_cf_offset - 10 octets. Note, this value must be even, and for timestamping applications not following IEEE 1588 protocol but wanting to use the 1-step timestamp insertion feature, any user specified correction field offset must be a minimum of 18 bytes from the end of the packet.
tx_ptp_upd_chksum_in_0 I Update UDP checksum:
  • 1’b0: PTP frame does not contain a UDP checksum
  • 1’b1: PTP frame does contain a UDP checksum which the core is required to recalculate. The location of the checksum is ascertained as described in the tx_ptp_cf_offset field.
tx_ptp_tag_field_in_0[15:0] I Identifying tag to use for egress PTP packet. This should be valid during the SOP cycle on the AXI4-Stream interface.
tx_ptp_tag_out_0[15:0] O Egress Tag. Valid when tx_ptp_tstamp_valid_out<N> is set.
tx_ptp_tstamp_valid_out_0 O Indicates that Egress tag/timestamp is valid.
tx_ptp_rsfec_offset_out_0[6:0] O Egress RSFEC codeword offset of start of packet. This is only valid when RSFEC is enabled.
tx_ptp_tstamp_out_0[54:0] O Egress Timestamp. Valid when tx_ptp_tstamp_valid_out_<N> is set.
Table 2. Segmented AXI4-Stream Interface Signal Descriptions – RX Direction
Port Name I/O Description
rx_axis_tvalid_0 O Indicates that the data and flags on the AXI4-Stream bus are valid.
rx_axis_tdata<M>[63:0] O Contains the data for the received packet in network order.
rx_axis_tkeep_user_<M>[0] O ENA. When this output is 1, it indicates that the associated rx_axis_tdata(0-5) signal contains valid data, and that the other flags on the associated rx_axis_tkeep_user_(0-5) signal are valid. When set to 0, all the corresponding tkeep_user flags are ignored by the interface.
rx_axis_tkeep_user_<M>[1] O SOP. When this output is 1, it indicates that the associated rx_axis_tdata(0-5) segment contains the beginning of a new packet. Only valid when ENA is 1.
rx_axis_tkeep_user_<M>[2] O EOP. When this output is 1, it indicates that the associated rx_axis_tdata(0-5) segment contains the last byte of a packet transfer. Only valid when ENA is 1.
rx_axis_tkeep_user_<M>[3] O ERR. When this output is 1, it indicates the packet in transfer was found to contain an error. This flag is only valid in a segment where both EOP and ENA are set to 1.
rx_axis_tkeep_user_<M>[6:4] O MTY[2:0]. Empty indicates the number of empty (unused) bytes in the final (EOP) segment. Valid only in the segment where EOP and ENA are asserted to 1.

3'd0 - 8 bytes valid

3'd1 - 7 bytes valid

...

3'd7 - 1 byte valid

rx_axis_tkeep_user_<M>[7] O Preempt. When set to 1, it indicates that the packet in progress was preempted. For more details on frame preemption support, see the related information below.
rx_axis_tkeep_user_<M>[8] O Resume. When set to 1, it indicates that the currently active packet is a resumption of a previously preempted packet. This signal is to be asserted at the beginning of new packet transfer. It is only valid in a segment where the corresponding SOP and ENA are asserted. For more details on frame preemption support, see the related information below.
rx_preambleout_0[55:0] O This signal is used to convey preamble when custom preamble mode is enabled. It is also used when Frame Preemption is enabled. The rx_preambleout_0 signal must be provided during the first transfer of data. When enabled, seven preamble bytes are provided. The MRMAC discards the first byte (0x55).
rx_ptp_rsfec_offset_out_0[6:0] O Ingress RSFEC codeword offset of start of packet. This is only valid when RSFEC is enabled.
rx_ptp_tstamp_out_0[54:0] O Ingress timestamp.
Note: This signal is also shared with the Flex I/F. When used in Flex I/F mode (ctl_pcs_rx_ts_en_<N>==1), the timestamp is valid for the first word of the data.