控制时钟的相位、频率、占空比和抖动
本节提供了微调时钟特性的技术。
使用时钟修改块 (
MMCM
和
PLL
)
用户可使用
MMCM
或
PLL
修改输入时钟的总体特性。
MMCM
最常用于消除时钟的插入延迟(将时钟与输入系统同步
数据在相位上对齐),例如:
•
创建更加严格的相位控制。
•
滤除时钟中的抖动。
•
修改时钟频率。
•
纠正或更改时钟占空比
为正确使用
MMCM
或
PLL
,必须协调多项属性,以确保
MMCM
在规范范围内工作,能够在输出端提供所需的时钟特
性。为此,赛灵思强烈建议使用
Clocking Wizard
来正确设置这一资源。
您还可以直接示例化
MMCM
或
PLL
,这将提供妥善的控制。但是,请务必使用正确的设置,以避免出现下问题:
•
造成抖动增大,进而降低时钟可靠性。
•
建立不正确的相位关系。
•
提高时序收敛难度。
重要提示:
在使用
Clocking Wizard
设置
MMCM
或
PLL
时,在默认条件下
Clocking Wizard
会出于低输出抖动目的,
使用合理的功耗特性设置
MMCM
。
根据您的目标,您可以更改时钟向导中的设置,以进一步最小化抖动,从而以更高功耗为代价改进时序。或者,您可
以降低功耗,但会增加输出抖动。
使用
MMCM
或
PLL
时,请务必执行以下操作:
•
切勿让任何输入浮动。不建议靠综合工具或其它优化工具来锁定浮动值,因为它们锁定的值可能与所需的值有偏
差。
•
将
RST
连接到用户逻辑,以便可以由可靠的时钟源控制的逻辑来断言。如果时钟被中断,就会对
RST
接地造成问
题。
•
在执行复位时使用
LOCKED
输出。例如,保持从
PLL
复位的同步逻辑时钟,直到
LOCKED
置位。
LOCKED
信号在
用于设计同步部分之前需要同步。赛灵思建议将
LOCKED
添加到处理器映射,以便在调试时可见。
•
确认
CLKFBIN
和
CLKBOUT
之间的连接。如果
PLL/MMCM
输出时钟需要与输入参考时钟进行相位对齐,例如使用
ZHOL
补偿模式时,
BUFG
只需包含在反馈路径中。
•
要避免
UltraScale
器件中同步时钟域交汇路径上的
MMCM
或
PLL
相位错误时序损失,请使用
BUFGCE_DIV
而不是
BUFGCE
。详情,请参阅
“
同步
CDC”
。
建议:
探索
Clocking Wizard
内的各种不同设置,可确保根据总体设计目标创建最合适的配置。
在时钟上使用
IDELAY
控制相位
对于
7
系列器件来说,如果只需要稍许调整相位,可以使用
IDELAY
或
ODELAY
(而非
MMCM
或
PLL
)添加额外的延
迟。这样可以增大时钟相对于任何相关数据的相位偏移。在使用
UltraScale
器件时,在输入时钟源上您不可使用
IDELAY
。因此,除非需要相位操纵器,赛灵思建议使用
MMCM
。