set_false_path和set_disable_timin

作者: 飞奔的大虎 | 来源:发表于2022-07-13 13:30 被阅读0次

    False path:在设计中,不需要满足setup/hold时序的数据路径需要设置成false path。

    设置成false_path的数据路径,EDA工具仍然会计算累加这条路径上的timing arc延时,但是不优化和报告这条数据路径上的setup/hold时序违例,会继续优化和报告这条数据路径上的逻辑DRC

    max_transition

    max_capacitance

    max_fanout

    对于上述设计

    A -> C -> E -> G 和 B -> D -> F -> G需要设置成False path。

    在芯片设计中利用两级触发器防止信号的亚稳态传播,此时两级触发器的第一级是不做时序检查的,因此在设计约束中也需要将其设置为False path来避免对第一级触发器进行时序分析。

    Disable timing:set_disable_timing 用来disable 设计中某个timing arc 。

    设置disable_timing之后,所有经过这个timing arc的timing path(data path/clock path),工具都不会去计算和分析。

    上述设计中,Sel是一个选择信号,工具默认会同时计算和分析timing arc :

    a(Test_Clk)  -> y

    b(Ext_Clk) -> y

    而实际情况是,芯片只工作在其中一个模式(mode),我们可以分别在不同的模式下进行时序分析,即在不同的工作模式下分别设置disable timing。

    #Use Ext_ Clk for timing analysis

    set_disable_timing  CLOCK_GEN/U1  -from  a  -to  y

    #Use Test_ Clk for timing analysis

    set_disable_timing  CLOCK_GEN/U1  -from  b  -to  y

    上面的约束去掉了MUX从引脚a/b到引脚Y的timing arc,也就是说,分别指定使用Ext_ Clk/Test_Clk进行setup timing/hold timing分析。

    set_disable_timing命令还可以使库单元的时间弧(timing arc)无效。此功能也可以通过set_case_analysis实现,但是无法通过set_false_ path实现,因为set_false_path是用来约束data path的。

    异步电路有很多timing loop。这些timing loop必须被set_disable_timing命令打断,否则会占据STA工具过多的内存,并且此时的STA结果也没有任何意义。

    综上所述:

    set_false_path 只对data path起作用, EDA 工具还会分析计算这条时序路径, 只是不报出来是否有时序违例。

    set_disable_timing 对timing arc起作用,完全不去分析这条timing arc。

    相关文章

      网友评论

        本文标题:set_false_path和set_disable_timin

        本文链接:https://www.haomeiwen.com/subject/vzdrbrtx.html