​    ​每个单元内部从输入端口到输出端口都定义有时序弧,默认情况下所有的时序弧都应该有效并用于时序分析。但是在设计中由于具体逻辑设计的原因,某些单元内部的时序弧由于没有对应功能逻辑的触发条件而应该是无效的,对于这样的特殊情况可以通过屏蔽时序弧的约束命令来实现,以指导时序分析工具进行正确的时序分析。

    ​    ​比如,选择器单元存在选择输入端到输出端的时序弧,但是设计中不存在通过该单元选择端口到输出端口的时序路径,这样可以通过屏蔽该时序弧,指导时序分析跳过包含该时序弧的时序分析,如下图所示。  ​    ​

屏蔽时序弧

    ​    ​屏蔽时序弧设置通过SDC命令set_disable_timing来定义。命令示例如下。

    ​    ​set_disable_timing  -from  S  -to  Z  [get_cells  MUX]

    ​    ​以上命令定义屏蔽选择器单元MUX从S端到Z端的时序弧。

    ​    ​屏蔽时序弧和为路径在某种情况下存在相似的实现结果,但是也存在本质的不同。屏蔽时序弧是针对单元具体端口内部的时序弧并且进行屏蔽,等价于移除掉该单元内部的时序弧,这样可以通过屏蔽该时序弧,指导时序分析跳过包含该时序弧的时序分析,如下图所示。 ​

屏蔽时序弧

    ​    ​而伪路径是针对时序路径并移除对应时序路径上的默认时序约束,而所有时序弧是一直有效的,如果与单元同一时序弧相关的时序路径有多条,而伪路径设置只作用于其中部分时序路径,那么时序工具默认还是会计算所有时序路径延时,只是对存在时序约束的时序路径进行时序性能评估,如下图所示。  ​

屏蔽时序弧

​    ​    ​当伪路径设置是移除通过某单元具体PIN脚上的所有时序约束时,命令如下所示。

    ​    ​set_false_path  -through  [get_pins  ADDER/CI]

    ​    ​可以用屏蔽时序弧约束替代,命令如下所示。

    ​    ​set_disable__timing  [get_pins  ADDER/CI]

    ​    ​这样做的好处是可以减少静态时序分析工具的计算负载,对应的时序弧已经无效,所以不需要在计算该路径。

相关文章: