Receive Timestamp Function - 3.1 English

UltraScale+ Devices Integrated 100G Ethernet Subsystem LogiCORE IP Product Guide (PG203)

Document ID
PG203
Release Date
2024-07-17
Version
3.1 English

The ingress logic does not parse the ingress packets to search for 1588 (PTP) frames. Instead, it takes a timestamp for every received frame and outputs this value to the user logic. The feature is always enabled, but the timestamp output can be ignored if this function is not required.

See Table 1 for a detailed description of signals related to the RX timestamping function.

To compensate for lane skew, the alignment buffer fill levels for each PCS lane are provided as outputs. The RX timestamp function is shown in the following figure.

Figure 1. RX Timestamping

In the preceding figure, timestamps are captured for each word of lane 0 which is exiting the gearbox plane. The capture logic accounts for the gearbox dead cycle which occurs every 33 cycles.

Important: The RX system timer input must be in lane 0 of the RX SerDes clock domain.

Timestamps are filtered after the PCS decoder to retain only those timestamps corresponding to an SOP. The PCS also identifies the PCS lane on which the SOP occurred.

The lane alignment fill buffers are carried through to the user interface output. These average values of the fill levels are not expected to vary over time. The average value should be taken to the required accuracy to remove the clock cycle jitter. The alignment fill values reflect the static skew present in each lane.

The signals stat_rx_pcsl_number_0[4:0] to stat_rx_pcsl_number_19[4:0] can be used to correlate each PCS lane to a physical lane.

Soft logic improves timestamp accuracy and compensate for the lane alignment FIFO fill levels by adding or subtracting the relative fill level of the selected lane. The reference fill level is the average fill level of the rx lane aligner fill after the PCS lane number carried by rx_ptp_pcslane_out is translated to a PMD lane number via the stat_rx_pcsl_number_* . The relationship between the 100G Ethernet IP core and the soft logic is shown in the following figure.

Figure 2. Soft Logic
UltraScale Architecture Integrated Block for 100G Ethernet (CMAC) Sheet.1 100 GE Hard IP RX logic 100 GEHard IPRX Logic Standard Arrow.484 Sheet.3 ctl_rx_systemtimerin[80-1:0] ctl_rx_systemtimerin[80-1:0] Sheet.4 SerDes Inputs SerDes Inputs Standard Arrow.483 Sheet.6 Soft Logic SoftLogic Sheet.7 (512 bits) (512 bits) Standard Arrow.9 Sheet.9 Sheet.10 LBUS LBUS/AXIS Standard Arrow.11 Sheet.12 Data rx_ptp_tstamp_corrected[79:0] Standard Arrow.13 Sheet.14 Corrected Timestamp rx_ptp_pcslane_out[4:0] Standard Arrow.16 Sheet.16 rx_ptp_pcslane_out[5-1:0] rx_ptp_pcslane_out[5-1:0] Sheet.17 rx_ptp_tstamp_out[79:0] rx_ptp_tstamp_out[79:0] Standard Arrow.18 Sheet.19 20 20 Standard Arrow.20 Sheet.21 Sheet.22 rx_lane_aligner_fill_0[7-1:0] rx_lane_aligner_fill_0[7-1:0] Sheet.23 . . . . . . Sheet.24 rx_lane_aligner_fill_19[7-1:0] rx_lane_aligner_fill_19[7-1:0] Standard Arrow.29 Sheet.30 Corrected Timestamp rx_ptp_tstamp_corrected_valid Sheet.28 X28727-100923 X28727-100923

The corrected timestamp is computed in the soft logic module as:

rx_ptp_tstamp_corrected = rx_ptp_tstamp_out + (reference fill level - rx_lane_aligner_fill_0)

Where:

  • rx_ptp_tstamp_out is the timestamp at the first gearbox, and is filtered by the PCS to correspond to the start of the SOP. The rx_ptp_tstamp_out value is a unit of time, whereas the fill level is not a unit of time. To translate the fill level to time, multiply the fill level by the cycle period.
  • rx_lane_aligner_fill_0 is the time average of the alignment buffer fill level for the lane on which the timestamp was taken.
  • Reference fill level is the average fill level of the rx lane aligner fill after the PCS lane number carried by rx_ptp_pcslane_out is translated to a PMD lane number through the stat_rx_pcsl_number_* .