Arria® 10 Transceiver PHY User Guide

ID 683617
Date 4/01/2024
Public
Document Table of Contents

6.11.2.2. fPLL Reference Clock Switching

You can use the reconfiguration interface on the fPLL instance to specify which reference clock source drives the fPLL. The fPLL supports clocking by up to five different reference clock sources. The flow to select between the different reference clock sources is independent of the number of transmitter PLLs specified in the reconfiguration interface.

Before initiating a reference clock switch, ensure that your fPLL instance defines more than one reference clock source. Specify the Number of PLL reference clocks parameter on the PLL tab during fPLL parameterization.

The following table shows the addresses and bits for switching between fPLL reference clock inputs. The number of exposed pll_refclk ports varies according to the number of reference clocks you specify. Use the fPLL reconfiguration interface for this operation.

Table 270.  Register Map for Switching fPLL Reference Clock Inputs
Transceiver fPLL Port Description Address Bits
pll_refclk0 Represents logical refclk0 for MUX_0. Lookup register x117[7:0] stores the mapping from logical refclk0 to the physical refclk for MUX_0. 0x117 (Lookup Register) [7:0]
pll_refclk1 Represents logical refclk1 for MUX_0. Lookup register x118[7:0] stores the mapping from logical refclk1 to the physical refclk for MUX_0. 0x118 (Lookup Register) [7:0]
pll_refclk2 Represents logical refclk2 for MUX_0. Lookup register x119[7:0] stores the mapping from logical refclk2 to the physical refclk for MUX_0. 0x119 (Lookup Register) [7:0]
pll_refclk3 Represents logical refclk3 for MUX_0. Lookup register x11A[7:0] stores the mapping from logical refclk3 to the physical refclk for MUX_0. 0x11A (Lookup Register) [7:0]
pll_refclk4 Represents logical refclk4 for MUX_0. Lookup register x11B[7:0] stores the mapping from logical refclk4 to the physical refclk for MUX_0. 0x11B (Lookup Register) [7:0]
N/A

fPLL refclk selection MUX_0.

0x114 [7:0]
pll_refclk0 Represents logical refclk0 for MUX_1. Lookup register x11D[7:0] stores the mapping from logical refclk0 to the physical refclk for MUX_1. 0x11D (Lookup Register) [7:0]
pll_refclk1 Represents logical refclk1 for MUX_1. Lookup register x11E[7:0] stores the mapping from logical refclk1 to the physical refclk for MUX_1. 0x11E (Lookup Register) [7:0]
pll_refclk2 Represents logical refclk2 for MUX_1. Lookup register x11F[7:0] stores the mapping from logical refclk2 to the physical refclk for MUX_1. 0x11F (Lookup Register) [7:0]
pll_refclk3 Represents logical refclk3 for MUX_1. Lookup register x120[7:0] stores the mapping from logical refclk3 to the physical refclk for MUX_1. 0x120 (Lookup Register) [7:0]
pll_refclk4 Represents logical refclk4 for MUX_1. Lookup register x121[7:0] stores the mapping from logical refclk4 to the physical refclk for MUX_1. 0x121 (Lookup Register) [7:0]
N/A fPLL refclk selection MUX_1. 0x11C [7:0]

Specify the logical reference clock and respective address and bits of the replacement clock when performing a reference clock switch. Follow this procedure to switch to the selected reference clock:

  1. Perform the necessary steps from steps 1 to 7 in Steps to Perform Dynamic Reconfiguration.
  2. Read from the lookup register for MUX 0 and save the required 8-bit pattern. For example, switching to logical refclk3 requires use of bits[7:0] at lookup register 0x11A.
  3. Perform a read-modify-write to bits [7:0] at address 0x114 using the 8-bit value obtained from the lookup register.
  4. Read from the lookup register for MUX 1 and save the required 8-bit pattern. For example, switching to logical refclk3 requires use of bits[7:0] at lookup register 0x120.
  5. Perform a read-modify-write to bits [7:0] at address 0x11C using the 8-bit value obtained from the lookup register.
  6. Perform the necessary steps from steps 9 to 12 in Steps to Perform Dynamic Reconfiguration.

Example 1:

Switching from pll_refclk0 to pll_refclk1, you need to read-modify-write to both fPLL refclk selection MUX_0 and MUX_1:
  1. Modify MUX_0 value:
    • Read from 0x118[7:0]
    • Write the value from 0x118 [7:0] to 0x114 [7:0]
  2. Modify MUX_1 value:
    • Read from 0x11E [7:0]
    • Write the value read from 0x11E [7:0] to 0x11C [7:0]

Example 2:

Switching from pll_refclk2 to pll_refclk3, you need to read-modify-write to both fPLL refclk selection MUX_0 and MUX_1:
  1. Modify MUX_0 value:
    • Read from 0x11A [7:0]
    • Write the value read from 0x11A [7:0] to 0x114 [7:0]
  2. Modify MUX_1 value:
    • Read from 0x120 [7:0]
    • Write the value read from 0x120 [7:0] to 0x11C [7:0]