Timing Analyzer set_clock_groups 命令

author-image

作者

一个设计中可以存在许多时钟;但是,并非所有时钟都可以互相交互,某些时钟交互是无法进行的。异步时钟是不相关的时钟(异步时钟具有不同的理想时钟源)。互斥性时钟是无法同时处于活动状态的时钟(例如多路复用时钟)。必须向 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]