AN 661: 使用Altera PLL和Altera PLL Reconfig IP内核实现小数分频PLL重配置

ID 683640
日期 10/14/2019
Public
文档目录

1.1.1.4.1. 小数分频PLL动态重配置寄存器和设置

表 2.  小数分频PLL动态重配置寄存器和设置
寄存器名称 寄存器大小 地址(二进制) 计数器位设置 读/写
Mode Register 1 000000
  • 对waitrequest模式写入0
  • 对轮询模式写入1
读/写
Status Register 1 000001
  • 0 = 繁忙(busy)
  • 1 = 准备(ready)
读取
Start Register 1 000010 写入01以开始小数分频PLL重配置或动态相移 写入
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计数器被旁路)
  • N_counter[17] = 奇数分频(odd division) 1
    • N_counter[17] = 0,偶数分频(even division)、占空比 = high_count/Total_div
    • N_counter[17] = 1,奇数分频(odd division)、占空比 = (high_count – 0.5)/Total_div
读/写
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计数器被旁路)
  • M_counter[17] = 奇数分频(odd division) 1
    • M_counter[17] = 0,偶数分频(even division)、占空比 = high_count/Total_div
    • M_counter[17] = 1,奇数分频(odd division)、占空比 = (high_count – 0.5)/Total_div
读/写
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计数器被旁路)
  • C_counter[17] = 奇数分频(odd division) 1
    • C_counter[17] = 0,偶数分频(even division)、占空比 = high_count/Total_div
    • C_counter[17] = 1,奇数分频(odd division)、占空比 = (high_count – 0.5)/Total_div
  • C_counter[22:18]一个5位二进制数,从00000到10001 (0–17)的范围来选择要更改的C计数器。例如:如果要更改C2,就将C_counter[22:18]设置为00010。
读/写2
Dynamic_Phase_Shift 22 000110
  • Dynamic_Phase_Shift[15:0] = 移位数
    • 移位数 = 想要移位输出时钟的次数。每次执行移位,实际的移位数为1/8的VCO周期。例如:如果VCO运行在1.6 GHz,那么每个相移等于78.125 ps。
  • Dynamic_Phase_Shift[20:16] = cnt_select.
    • cnt_select是一个5位值,指定要移位的计数器。有关cnt_select映射的更多信息,请参考动态相移计数器和cnt_select (Dynamic_Phase_Shift[20:16])位设置表。
  • Dynamic_Phase_Shift[21] = up_dn
    • up_dn = 移位的方向。
    • up_dn = 1 (正相移)。
    • up_dn = 0 (负相移)。
写入
M Counter Fractional Value (K) 32 000111 M计数器(DSM)的小数部分。实际的小数值为:
  • MFRAC=K[(X-1):0]/2 X (X = 8、16、24或32) 3
  • M计数器最终值 = M计数器的Total_div + MFRAC
写入
Bandwidth Setting 4 001000 有关带宽设置的信息,请参考PLL重配置计算器。 读/写
Charge Pump Setting 3 001001 有关电荷泵设置的信息,请参考PLL重配置计算器。 读/写
VCO Post Divide Counter Setting 4 1 011100 使能或禁用VCO的/2分频器,保持VCO频率在操作范围内。
  • 0: VCO DIV = 1
  • 1: VCO DIV = 1
读/写
.mif Base Address 9 011111 在存储初始化文件(.mif)中开始PLL设置档的基地址。 写入
1 MNC计数器的旁路使能位、偶数分频位和奇数分频位仅支持写入操作。
2 对于C计数器读操作,使用读操作期间计数器地址和位设置表中所选计数器的地址。
3 K计数器重配置仅在重配置之前在小数分频模式中配置PLL时才有效。为了实现最佳性能,将MFRAC值设置在0.05和0.95之间。X = 小数进位,由Altera PLL参数编辑器确定。X的默认值为24,并且在PLL重配置期间无法进行重配置。
4 Intel® Quartus® Prime软件报告的VCO频率考虑到VCO后缩放计数器 K值。因此,如果计数器K的值为2,那么报告的频率能够低于fVCO规范。