Low Latency Ethernet 10G MAC Intel® FPGA IP User Guide: Agilex™ 3 and Agilex™ 5 FPGAs and SoCs

ID 813663
Date 4/07/2025
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

6.10.3. PTP Register Configuration

Perform the following steps once after power up or link down event to calculate TX and RX datapath delay:
  1. Wait until the link is up and stable.
  2. Wait until tx_measure_valid and rx_measure_valid from 1G/2.5G/5G/10G Multirate Ethernet PHY IP register 0x420 are valid.
    1. For 1G/2.5G (MGBASE), the valid status are at register offset 0x17, bit 0 and bit 1.
    2. For 10M/100M/1G/2.5G/5G/10G (USXGMII), the valid status are at register offset 0x420, bit 0 and it 1.
  3. Read TX and RX datapath deterministic latency values from the Multi-rate Ethernet PHY IP and calculate TX/RX latency. Refer to Calculating Deterministic Latency.
    1. For 1G/2.5G (MGBASE), the TX DL latency value is at register offset 0x18 and 0x19 while the RX DL latency value is at register offset 0x1B and 0x1A.
    2. For 10M/100M/1G/2.5G/5G/10G (USXGMII), the TX DL latency value is at register offset 0x421 while the RX DL latency value is at register offset 0x422.
  4. Convert the latency values to 16-bit nanoseconds and 16-bit fractional nanoseconds by multiplying the values by 216 or 65536.
  5. Calculate the sum of the TX/RX DL latency values and the TX/RX PMA delay values (In nanoseconds and fractional nanoseconds).
  6. Write the calculated 16-bit values to the TX and RX latency registers of the Low Latency Ethernet 10G MAC:
    For 1G/2.5G (MGBASE):
    1. Write the lower 16-bit TX values to 0x10A register (TX fns value).
    2. Write the upper 16-bit TX values to 0x10C register (TX ns value).
    3. Write the lower 16-bit RX values to 0x12A register (RX fns value).
    4. Write the upper 16-bit RX values to 0x12C register (RX ns value).
    For 10M/100M/1G/2.5G/5G/10G (USXGMII):
    1. Write the lower 16-bit TX values to 0x0102 register (TX fns value).
    2. Write the upper 16-bit TX values to 0x0104 register (TX ns value).
    3. Write the lower 16-bit RX values to 0x0122 register (RX fns value).
    4. Write the upper 16-bit RX values to 0x0124 register (RX ns value).