Visible to Intel only — GUID: dpf1614685337779
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 for the F-Tile Ethernet Intel® FPGA Hard IP User Guide
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
4.4.11. Routing Delay Adjustment for Basic 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. 32-bit Soft CWBIN Counters
7.13. Reconfiguration Interfaces
7.14. 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: dpf1614685337779
Ixiasoft
4.4.6.1. TX UI Adjustment
- Request snapshot of initial TX TAM:
csr_write (ptp_uim_tam_snapshot.tx_tam_snapshot, 1’b1)
- Read snapshotted initial TAM and counter values:
tx_tam_0_31_0 = csr_read (ptp_tx_uim_tam_info0.tam_31_0[31:0]) tx_tam_0_47_32 = csr_read (ptp_tx_uim_tam_info1.tam_47_32[15:0]) tx_tam_0_cnt = csr_read (ptp_tx_uim_tam_info1.tam_cnt[30:16]) tx_tam_0_valid = csr_read (ptp_tx_uim_tam_info1.tam_valid[31])
- If tx_tam_0_valid = 1, complete TAM by concatenating the initial TAM values:
tx_tam_0 = {tx_tam_0_47_32, tx_tam_0_31_0};
- If tx_tam_0_valid = 0, restart from Step1.
- If tx_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 section Minimum and Maximum Reference Time (TAM) Interval for UI Measurement (Hardware).
- Request snapshot of Nth TX TAM:
csr_write (ptp_uim_tam_snapshot.tx_tam_snapshot, 1’b1)
- Read snapshotted Nth TAM and counter values:
tx_tam_n_31_0 = csr_read (ptp_tx_uim_info0.tam_31_0[31:0]) tx_tam_n_47_32 = csr_read (ptp_tx_uim_tam_info1.tam_47_32[15:0]) tx_tam_n_cnt = csr_read (ptp_tx_uim_tam_info1.tam_cnt[30:16]) tx_tam_n_valid = csr_read (ptp_tx_uim_tam_info1.tam_valid[31])
Form the TAM by concatenating snapshotted Nth TAM values:tx_tam_n = {tx_tam_n_47_32, tx_tam_n_31_0};
- Check if there was a large change to TOD value impacting TAM value:
tx_tam_n_valid = csr_read (ptp_tx_uim_tam_info1.tam_valid[31])
If tx_tam_n_valid = 0, restart from Step 1. If you used tx_tam_n as tx_tam_0 and tx_tam_n_cnt as tx_tam_0_cnt, you can skip Steps 1 and 2. Then, you can start the wait time in Step 3 when the Step 4 executes.
- Calculation:
- Get TAM interval:
tx_tam_interval = <Refer to Reference Time Interval> tx_tam_interval_per_pl = tx_tam_interval / PL
- Calculate time elapsed:
tx_tam_delta = (tx_tam_n <= tx_tam_0) ? [(tx_tam_n + 10^9 ns) – tx_tam_0] : (tx_tam_n – tx_tam_0)
Per Step 3, tx_tam_0 and tx_tam_n difference must be within the expected time range.- If tx_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 tx_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.
Note: 10^9 ns = 48’h 3B9A_CA00_0000 - Calculate TAM count value:
tx_tam_cnt = (tx_tam_n_cnt < tx_tam_0_cnt) ? [(tx_tam_n_cnt + 2^15) – tx_tam_0_cnt] : (tx_tam_n_cnt – tx_tam_0_cnt)
Per Step 3, tx_tam_0 and tx_tam_n difference must be within the expected time range.- If tx_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 tx_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.
- Calculate UI value:
tx_ui = (tx_tam_delta) / (tx_tam_cnt * tx_tam_interval_per_pl)
- Get TAM interval:
- Write the calculated UI value to IP:
csr_write (tx_ptp_ui, tx_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 golden time-of-day in the system whenever clock ppm changes.