一个设计中可以存在许多时钟;但是,并非所有时钟都可以互相交互,某些时钟交互是无法进行的。异步时钟是不相关的时钟(异步时钟具有不同的理想时钟源)。互斥性时钟是无法同时处于活动状态的时钟(例如多路复用时钟)。必须向 Timing Analyzer 声明互斥性,防止它分析这些时钟交互。
可以使用 set_clock_groups 命令指定互斥性时钟或异步时钟。以下列表显示了 set_clock_groups 命令,包括可用选项:
set_clock_groups [-asynchronous | -exclusive] -group <clock name> -group <clock name> [-group <clock name>] ...
表 1 介绍了 set_clock_groups 命令的选项。
以下示例展示了 set_clock_groups 命令以及等效的 set_false_path 命令。
# 当时钟 B 和 D 处于活动状态时,时钟 A 和 C 不可能处于活动状态 set_clock_groups -exclusive -group {A C} -group {B D} # 使用伪路径的等效指定命令 set_false_path -from [get_clocks A] -to [get_clocks B] set_false_path -from [get_clocks A] -to [get_clocks D] set_false_path -from [get_clocks C] -to [get_clocks B] set_false_path -from [get_clocks C] -to [get_clocks D] set_false_path -from [get_clocks B] -to [get_clocks A] set_false_path -from [get_clocks B] -to [get_clocks C] set_false_path -from [get_clocks D] -to [get_clocks A] set_false_path -from [get_clocks D] -to [get_clocks C]