Vivado 约束 – 约束 BUFGMUX – 时钟多路复用

问题描述:
我已经约束了我的时钟,这些时钟互相有关系或同时存在。

我看到了奇怪的交叉时钟违规情况,这些情况实际上不会发生。

我可以怎么做来解决此问题?

(1楼)解决方案

judyzhong 在 星期二, 09/19/2017 - 09:45 发表。

时序引擎将找到相关时钟之间可能存在的任何路径。

每个create_clock XDC约束均具有相同的优先级,因此工具不会仅仅使用一个。

这些工具要求用户指定这些时钟是不相关的。

例如:

A. 三个时钟输出来自一个 MMCM(时钟是原始时钟频率的 1 倍、2 倍和 4 倍)。

B. 该设计中的所有逻辑均被 BUFGMUX 的输出时钟控制。
此 MMCM 的输出已连接至两个 BUFGMUX,因此可以从三个时钟中选择一个。

C. 一次仅选择一个时钟来记录设计逻辑,不会发生真正的交叉时钟记录情况。

使用以下命令以物理方式分隔时钟:
set_clock_groups -physically_exclusive -group clk_1x -group clk_2x -group clk_4x

将此信息提供给 Vivado 可以使工具对时序进行正确分析。

更多有关约束独有时钟组的注意事项包含于此部分 "由时钟多路复用器驱动的重叠时钟" (UG949)