cdc_false_path约束用于指定错误路径,以便在规则检查时忽略沿着这些路径的时钟域交叉。
注意以下几点:
-
使用此约束代替限制SpyGlass CDC规则。
-
如果想消除对包含静态(static)信号的交叉规则检查,还可以使用准静态(quasi_static)约束。
-
内部规则FalsePathsetup检查有效的cdc_false_path约束。
-
虚拟时钟只能在cdc_false_path约束的-from和-to参数中指定。对于cdc_false_path约束中的虚拟时钟,需要注意以下几点:
-
-from或-to参数中只能指定一个虚拟时钟。例如,不支持cdc_false_path -from <virtual_clk1 virtual_clk2>
-
可以指定虚拟时钟和实时钟。例如:cdc_false_path -from <virtual_clock> -to <real_clock>
-
如果在两个参数中的任何一个中指定了虚拟时钟,而在另一个参数中指定了非时钟对象,SGDC_cdc_false_pathe06规则将报告一个健全错误。
使用cdc_false_path约束的优点
- 针对SpyGlass CDC解决方案的违反行为,使用-to、-through、-from来适应各种方案的交叉过滤,例如,-from clk1将消除起始于由clk1驱动的触发器的所有交叉。
- 规则可以理解约束,因此可以根据cdc_false_path规范过滤交叉和收敛问题。
- 移植更便捷,因为它不引用规则名称或消息。
- 减小*.vdb文件的大小。
- 与guasi static约束相比,cdc_false_path约束在通过各种选项(-from、-to和-through)指定交叉类型方面提供了更大的灵活性。
参数one_cross_per_dest对cdc_false_path约束的影响
将one_cross_per_dest规则参数设置为yes(默认值)会导致只报告目标对象中第一个发现的时钟交叉。如果您在第一个发现的时钟交叉上设置了有效的cdc_false_path约束,那么将报告相同目标对象的下一个发现的时钟交叉。例如,在源s1、s2、s3和目的地d1之间有