问题描述
时钟发生器v3.00.a
时钟发生器v3.00.a使用PLL,在针对Virtex-6器件时映射到MMCM。
时钟发生器v3.02.a
MMCM计数器设置,相移和可变精细相移的所有设置的某些组合可能导致CLKOUTn相移在硬件中错误显示。这在(Xilinx答复33849)中有记录 。这特别影响使用CLKFBOUT_MULT_F值为2,3或4的Virtex-6 Clock_Generator设计.Clock_Generator使用CLKFBOUT_MULT_F参数根据FPGA速度等级确保MMCM的内部VCO频率尽可能高。具有更高的VCO频率可减少输出时钟的抖动。 Clock_Generator将在某些高级参数设置组合中生成2,3和4的此设置。例如,Clock_Generator的输入时钟具有以下频率:
表1: CLKFBOUT_MULT_F = 4
FPGA速度等级 | 从(MHz) | 至(MHz) |
-1 | 240 | 300 |
-2 | 288 | 360 |
-3 | 320 | 400 |
表2: CLKFBOUT_MULT_F = 3
FPGA速度等级 | 从(MHz) | 至(MHz) |
-1 | 300 | 400 |
-2 | 360 | 480 |
-3 | 400 | 533.3 |
表3: CLKFBOUT_MULT_F = 2
FPGA速度等级 | 从(MHz) | 至(MHz) |
-1 | 400 | 600 |
-2 | 480 | 720 |
-3 | 533.3 | 800 |
ISE 11.4设计工具不会产生错误,并且在硬件中会出现问题。在ISE 11.4.1设计工具中,会生成DRC错误。
解决/修复方法
时钟发生器v3.00.a
强烈建议使用Clock Generator v3.02.a来避免PLL自动映射到MMCM可能导致的任何问题。
时钟发生器v3.02.a
要解决此问题,用户需要使用Clock_Generator低级参数手动修改MMCM参数,以确保任何MMCM的CLKFBOUT_MULT_F参数未设置为2,3和4。同时,VCO频率,MMCM参数值将根据Virtex-6 FPGA时钟资源用户指南 (UG362)保持有效。以下解决方法以CLKFBOUT_MULT_F = 4为例。这些步骤也适用于2和3的值。
解决步骤:
步骤1:确定CLKFBOUT_MULT_F = 4是否设置为Clock_Generator生成的MMCM
在XPS中打开设计,在Clock Generator配置对话框中,如图1所示,选中“在MHS文件中插入低级参数”,然后单击“确定”。
图1.时钟发生器配置对话框的低级参数选项卡
打开MHS文件并在Clock_Generator实例中搜索参数C_MMCMn_CLKFBOUT_MULT_F(n = 0,…,3)。如果该值等于4,则需要手动修改;否则,无需更改。
步骤2:手动修改MHS文件中的CLKFBOUT_MULT_F值
需要手动修改时,在Clock_Generator实例中找到以下参数:
PARAMETER C_MMCMn_CLKFBOUT_MULT_F = 4.0
其中n = 0,…,3和m = 1,…,6。并修改参数以确保维持M到D和DO关系。例如,这将是:
PARAMETER C_MMCMn_CLKFBOUT_MULT_F = 8.0
步骤3:手动修改MHS文件中的C_CLK_GEN值
需要手动修改时,在Clock_Generator实例中找到以下参数:
PARAMETER C_CLK_GEN =更新
要么将其值设置为“UPDATE”,要么未在MHS文件中指定,请手动将其值更改为“PASSED”。
PARAMETER C_CLK_GEN =已通过
这可以防止XPS流覆盖手动修改的Clock_Generator低级参数值。
手动更改Clock_Generator低级参数值后,请勿再在XPS中打开Clock_Generator配置对话框。该对话框始终自动覆盖Clock_Generator低级参数值。
没有回复内容