AN 661: Implementing Fractional PLL Reconfiguration with Altera PLL and Altera PLL Reconfig IP Cores

ID 683640
Date 10/14/2019
Public
Document Table of Contents

1.1.1.4.1. Fractional PLL Dynamic Reconfiguration Registers and Settings

Table 2.  Fractional PLL Dynamic Reconfiguration Registers and Settings
Register Name Register Size Address (Binary) Counter Bit Setting Read/Write
Mode Register 1 000000
  • Write 0 for waitrequest mode
  • Write 1 for polling mode
Read/Write
Status Register 1 000001
  • 0 = busy
  • 1 = ready
Read
Start Register 1 000010 Write either 0 or 1 to start fractional PLL reconfiguration or dynamic phase shift Write
N Counter 18 000011
  • N_counter[7:0] = low_count
  • N_counter[15:8] = high_count
  • Total_div = high_count + low_count
  • N_counter[16] = bypass enable 1
    • N_counter[16] = 0, fREF = fIN/Total_div
    • N_counter[16] = 1, fREF = fIN (N counter is bypassed)
  • N_counter[17] = odd division 1
    • N_counter[17] = 0, even division, duty cycle = high_count/Total_div
    • N_counter[17] = 1, odd division, duty cycle = (high_count – 0.5)/Total_div
Read/Write
M Counter 18 000100
  • M_counter[7:0] = low_count
  • M_counter[15:8] = high_count
  • Total_div = high_count + low_count
  • M_counter[16] = bypass enable 1
    • M_counter[16] = 0, fFB = fVCO/Total_div
    • M_counter[16] = 1, fFB = fVCO (M counter is bypassed)
  • M_counter[17] = odd division 1
    • M_counter[17] = 0, even division, duty cycle = high_count/Total_div
    • M_counter[17] = 1, odd division, duty cycle = (high_count – 0.5)/Total_div
Read/Write
C Counter 23 000101
  • C_counter[7:0] = low_count
  • C_counter[15:8] = high_count
  • Total_div = high_count + low_count
  • C_counter[16] = bypass enable 1
    • C_counter[16] = 0, fOUT = fVCO/Total_div
    • C_counter[16] = 1, fOUT = fVCO (C counter is bypassed)
  • C_counter[17] = odd division 1
    • C_counter[17] = 0, even division, duty cycle = high_count/Total_div
    • C_counter[17] = 1, odd division, duty cycle = (high_count – 0.5)/Total_div
  • C_counter[22:18] is a five bit binary number ranging from 00000 to 10001 (0–17) to select which C counter to change. For example, if you want to change C2, set C_counter[22:18] to 00010.
Read/Write 2
Dynamic_Phase_Shift 22 000110
  • Dynamic_Phase_Shift[15:0] = number of shifts
    • Number of shifts = the number of times you want to shift the output clock. Every time you perform a shift, the actual amount of shift is 1/8 of the VCO period. For example, if the VCO is running at 1.6 GHz, each phase shift equals to 78.125 ps.
  • Dynamic_Phase_Shift[20:16] = cnt_select.
    • cnt_select is a five bit value that specifies which counter output is shifted. For more information about cnt_select mapping, refer to the Dynamic Phase Shift Counter and cnt_select (Dynamic_Phase_Shift[20:16]) Bit Setting table.
  • Dynamic_Phase_Shift[21] = up_dn
    • up_dn = The direction of the shift.
    • up_dn = 1 (positive phase shift).
    • up_dn = 0 (negative phase shift).
Write
M Counter Fractional Value (K) 32 000111 Fractional part of the M counter (for DSM). The actual fractional values are:
  • MFRAC=K[(X-1):0]/2 X (X = 8, 16,24, or 32) 3
  • M counter final value = Total_div for M Counter + MFRAC
Write
Bandwidth Setting 4 001000 For the bandwidth settings, refer to the PLL Reconfiguration Calculator. Read/Write
Charge Pump Setting 3 001001 For the charge pump settings, refer to the PLL Reconfiguration Calculator. Read/Write
VCO Post Divide Counter Setting 4 1 011100 Enable or disable /2 divider for VCO to keep VCO frequency in operating range.
  • 0: VCO DIV = 2
  • 1: VCO DIV = 1
Read/Write
.mif Base Address 9 011111 Base address for the start of a PLL profile in a Memory Initialization File (.mif). Write
1 The bypass enable bit, even division bit, and odd division bit of the M, N, and C counters support write operation only.
2 For C counter read operation, use the address for the selected counter in the Counter Address and Bit Setting During Read Operation table.
3 K counter reconfiguration is effective only when you configure the PLL in fractional mode prior to reconfiguration. For optimum performance, set the MFRAC value between 0.05 and 0.95. X = fractional carry bit, determined in the Altera PLL parameter editor. The default value for X is 24 and cannot be reconfigured during PLL reconfiguration.
4 The VCO frequency reported by the Intel® Quartus® Prime software takes into consideration the VCO post-scale counter K value. Therefore, if the counter K has a value of 2, the frequency reported can be lower than the fVCO specification.