在静态时序分析中, set_false_path 和 set_disable_timing 都可以用来设置 timing exceptions,告诉工具忽略某些特定的path,但是在使用过程中,这两个命令又有些细微的区别。
set_false_path 是用来设置 timing path,表示不用 check 这些 path 的 timing,但是依然会去计算这些 path 上的delay
set_disable_timing 是用来设置 timing arc,表示打断这条时序弧,不去计算这段时序弧的 delay,并且所有经过这段时序弧的 path 都会被打断(要慎用)
举个例子:
上图中,在 function mode 下,是不需要管 Test_Clk 的,此时就可以把 MUX 的 a-y 这条 timing arc 设置成 disable 的:
set_disable_timing -from U1/a -to U1/y
思考:
上图中,是否可以用 set_false_path -from Test_clk -to Int_Clk 来约束?
答案是:不可以!!,因为 set_false_path 只对数据路径有效,而 [ -from Test_clk -to Int_Clk ] 这段 path 是 clock path,这样设置是无效的
补充:
什么是 timing arc?
timing arc 时序弧是 timing path 的基本组成元素,比如cell input to output就是一种典型的timing arc,至于为什么叫时序弧,可能是因为在时序图上经常用一条弧形线段来标示这些元素,比如下图中的这些带箭头的弧形线段都是 timing arc
|----------------------------------------|