Visible to Intel only — GUID: mhl1614685424495
Ixiasoft
1. Overview
2. Getting Started
3. F-Tile Ethernet Intel® FPGA Hard IP Parameters
4. Functional Description
5. Clocks
6. Resets
7. Interface Overview
8. Configuration Registers
9. Supported Modules and IPs
10. Supported Tools
11. F-Tile Ethernet Intel® FPGA Hard IP User Guide Archives
12. Document Revision History
4.4.1. Features
4.4.2. PTP Timestamp Accuracy
4.4.3. PTP Client Flow
4.4.4. RX Virtual Lane Offset Calculation for No FEC Variants
4.4.5. Virtual Lane Order and Offset Values
4.4.6. UI Adjustment
4.4.7. Reference Time Interval
4.4.8. Minimum and Maximum Reference Time (TAM) Interval for UI Measurement (Hardware)
4.4.9. UI Value and PMA Delay
4.4.10. Routing Delay Adjustment for Advanced Timestamp Accuracy Mode
5.1. Clock Connections in Single Instance Operation
5.2. Clock Connections in Multiple Instance Operation
5.3. Clock Connections in MAC Asynchronous FIFO Operation
5.4. Clock Connections in PTP-Based Synchronous and Asynchronous Operation
5.5. Clock Connections in Synchronous Ethernet Operation
5.6. Custom Cadence
7.1. Status Interface
7.2. TX MAC Avalon ST Client Interface
7.3. RX MAC Avalon ST Aligned Client Interface
7.4. TX MAC Segmented Client Interface
7.5. RX MAC Segmented Client Interface
7.6. MAC Flow Control Interface
7.7. PCS Mode TX Interface
7.8. PCS Mode RX Interface
7.9. FlexE and OTN Mode TX Interface
7.10. FlexE and OTN Mode RX Interface
7.11. Custom Rate Interface
7.12. Reconfiguration Interfaces
7.13. Precision Time Protocol Interface
7.2.1. TX MAC Avalon ST Client Interface with Disabled Preamble Passthrough
7.2.2. TX MAC Avalon ST Client Interface with Enabled Preamble Passthrough
7.2.3. Using MAC Avalon ST skip_crc Signal to Control Source Address, PAD, and CRC Insertion
7.2.4. Using MAC Avalon ST i_tx_error Signal to Mark Packets Invalid
7.4.1. TX MAC Segmented Client Interface with Disabled Preamble Passthrough
7.4.2. TX MAC Segmented Client Interface with Enabled Preamble Passthrough
7.4.3. Using MAC Segmented skip_crc Signal to Control Source Address, PAD, and CRC Insertion
7.4.4. Using MAC Segmented i_tx_mac_error to Mark Packets Invalid
Visible to Intel only — GUID: mhl1614685424495
Ixiasoft
4.4.6.2. RX UI Adjustment
- Request snapshot of initial RX TAM:
csr_write (ptp_uim_tam_snapshot.rx_tam_snapshot, 1’b1)
- Read snapshotted initial TAM and counter values:
rx_tam_0_31_0 = csr_read (ptp_rx_uim_tam_info0.tam_31_0[31:0]) rx_tam_0_47_32 = csr_read (ptp_rx_uim_tam_info1.tam_47_32[15:0]) rx_tam_0_cnt = csr_read (ptp_rx_uim_tam_info1.tam_cnt[30:16]) rx_tam_0_valid = csr_read (ptp_rx_uim_tam_info1.tam_valid[31])
- If rx_tam_0_valid = 1, complete TAM by concatenating the initial TAM values:
rx_tam_0 = {rx_tam_0_47_32, rx_tam_0_31_0};
- If rx_tam_0_valid = 0, restart from Step1.
- If rx_tam_0_valid = 1, complete TAM by concatenating the initial TAM values:
- Starting from time when step 1 is executed, wait for time duration as specified in the Minimum and Maximum Reference Time (TAM) Interval for UI Measurement (Hardware) section.
- Request snapshot of Nth RX TAM:
csr_write (ptp_uim_tam_snapshot.rx_tam_snapshot, 1’b1)
- Read snapshotted Nth TAM and counter values:
rx_tam_n_31_0 = csr_read (ptp_rx_uim_info0.tam_31_0[31:0]) rx_tam_n_47_32 = csr_read (ptp_rx_uim_tam_info1.tam_47_32[15:0]) rx_tam_n_cnt = csr_read (ptp_rx_uim_tam_info1.tam_cnt[30:16]) rx_tam_n_valid = csr_read (ptp_rx_uim_tam_info1.tam_valid[31])
Form the TAM by concatenating snapshotted Nth TAM values:rx_tam_n = {rx_tam_n_47_32, rx_tam_n_31_0};
- Check if there was a large change to TOD value impacting TAM value:
rx_tam_n_valid = csr_read (ptp_rx_uim_tam_info1.tam_valid[31])
If rx_tam_n_valid = 0, restart Step 1. If you used rx_tam_n as a new rx_tam_0 and rx_tam_n_cnt as a new rx_tam_0_cnt, you can skip Step 1 and 2. Then, you can start the wait time in Step 3 when Step 4 executes.
- Calculation:
- Get TAM interval
rx_tam_interval = <Refer to Reference Time Interval> rx_tam_interval_per_pl = rx_tam_interval / PL
- Calculate time elapsed:
rx_tam_delta = (rx_tam_n <= rx_tam_0) ? [(rx_tam_n + 10^9ns) – rx_tam_0] : (rx_tam_n – rx_tam_0)
Per Step 3, rx_tam_0 and rx_tam_n difference must be within the expected time range.- If rx_tam_delta (in ms) is lesser that the minimum time value specified by Time (ms) column of Table: Minimum and Maximum Reference Time (TAM) Interval Allowed for UI Measurement (Hardware Basic Mode) and Table: Minimum and Maximum Reference Time (TAM) Interval Allowed for UI Measurement (Hardware Advanced Mode) in the Minimum and Maximum Reference Time (TAM) Interval for UI Measurement (Hardware) section, discard the result and restart from Step 3.
- If rx_tam_delta (in ms) is greater than the maximum value specified by Time (ms) column of Table: Minimum and Maximum Reference Time (TAM) Interval Allowed for UI Measurement (Hardware Basic Mode) and Table: Minimum and Maximum Reference Time (TAM) Interval Allowed for UI Measurement (Hardware Advanced Mode) in the Minimum and Maximum Reference Time (TAM) Interval for UI Measurement (Hardware) section, discard the result and restart from Step 1 or Step 3 by using rx_tam_n as a new rx_tam_0.
Note: 10^9ns = 48’h 3B9A_CA00_0000 - Calculate TAM count value:
rx_tam_cnt = (rx_tam_n_cnt < rx_tam_0_cnt) ? [(rx_tam_n_cnt + 2^15) – rx_tam_0_cnt] : (rx_tam_n_cnt – rx_tam_0_cnt)
Per Step 3, rx_tam_0 and rx_tam_n difference must be within the expected time range.- If rx_tam_cnt (in ms) is lesser that the minimum time value specified by Number of Count column of Table: Minimum and Maximum Reference Time (TAM) Interval Allowed for UI Measurement (Hardware Basic Mode) and Table: Minimum and Maximum Reference Time (TAM) Interval Allowed for UI Measurement (Hardware Advanced Mode) in the Minimum and Maximum Reference Time (TAM) Interval for UI Measurement (Hardware) section, discard the result and restart from Step 3.
- If rx_tam_cnt (in ms) is greater than the maximum value specified by Number of Count column of Table: Minimum and Maximum Reference Time (TAM) Interval Allowed for UI Measurement (Hardware Basic Mode) and Table: Minimum and Maximum Reference Time (TAM) Interval Allowed for UI Measurement (Hardware Advanced Mode) in the Minimum and Maximum Reference Time (TAM) Interval for UI Measurement (Hardware) section, discard the result and restart from Step 1 or Step 3 by using rx_tam_n as a new rx_tam_0.
- Calculate UI value:
rx_ui = (rx_tam_delta) / (rx_tam_cnt * rx_tam_interval_pl)
- Get TAM interval
- Write the calculated UI value to IP:
csr_write (rx_ptp_ui, rx_ui)
Ensure the format is {4-bit nanoseconds, 28-bit fractional nanoseconds}.
- After first UI measurement, for every minimum TAM interval or longer duration, repeat step 1 to 8. This is to prevent time counter drift from the golden time-of-day in the system whenever the clock ppm changes.