是的,当设置 PLL 英特尔 FPGA IP 中大于 50% 的占比时,输出时钟频率可能会遇到问题。如果使用 Quartus® II 软件版本 13.0sp1 或更早版本,则可能发生这种情况。
如果 PLL 英特尔 FPGA IP错误地计算 C-Counter Hi Divide 和 C-Counter Low Divide 参数,则会出现此问题。编译报告 => Fitter => Resource Section => PLL 使用摘要 将显示实际输出时钟频率。如果报告的输出时钟频率不正确,则 C-Counter Hi Divide 或 C-Counter Low Divide 参数不正确。
C 计数器用于将压控振荡器 (VCO) 频率除以所需的输出频率。C-Counter Hi Divide 和 C-Counter 低除分参数的总和是 VCO 频率产生的除分器值。
例如,如果 VCO 以 840 MHz 运行,而所需的输出时钟为 105 MHz,则需要 8 的总除分值。在 50% 的占比周期中,C-Counter Hi Divide 和 C-Counter 低鸿沟参数之间的高和低计数平均可除以,其中每个参数的除分值为 4。要创建其他性能周期值,可以根据需要调整 C-Counter Hi Divide 和 C-Counter Low Divide 参数。您需要确保这些参数的总和等于总除分值,以生成所需的输出时钟频率。
如果总除分值是一个奇数,则如果需要 50% 的占比周期,则需要打开 C-Counter Odd Divide Enable 参数。例如,如果 VCO 以 840 MHz 运行,而所需的输出时钟频率为 120 MHz,则需要 7 的总除分值。在这种情况下,C-Counter Hi Divide 参数为 4,C-Counter Low Divide 参数将为 3,并设置 C-Counter Odd Divide Enable 参数为 True。如果需要不超过 50% 的占比周期,则需要根据需要调整 C-Counter Hi Divide 参数和 C-Counter 低鸿沟参数。您需要确保这些参数的总和等于总除分值,以生成所需的输出时钟频率。
要在设计中修复此问题,打开 <PLL 实例名称>_0002.v 文件,并找到受影响的输出时钟的 C-Counter Hi Divide 和 C-Counter 低除分参数。根据需要调整这些参数,以创建正确的输出时钟频率和所需的工作周期。
引用上述示例,如果 VCO 以 840 MHz 运行,并且所需的输出时钟频率为 105 MHz,占 12.5% 的性能周期,则需要以下参数:
- C-Counter Hi Divide = 1
- C-Counter 低除法 = 7
- C-Counter Odd Divide Enable = False
由于 PLL 英特尔 FPGA IP计算中出现问题,设置 120 MHz 输出时钟频率的以下参数:
- C-Counter Hi Divide = 1
- C-Counter 低除法 = 6
- C-Counter Odd Divide Enable = True
要修复本示例中的参数,应将 C-Counter Low Divide 参数设置为 7,而 C-Counter Divide Enable Enable 参数应在 <PLL 实例名称>_0002.v 文件中设置为 错误。