• STA分析(二) multi_cycle and false


    multicycle path:当FF之间的组合逻辑path propagate delay大于一个时钟cycle时,这条combinational path能被称为multicycle path。

                  create_clock -name CLKM -period 10 [get_ports CLKM]

                  set_multicycle_path 3 -setup -from [get_pins UFF0/Q] -to [get_pins UFF1/D]

                  set_multicycle_path 2 -hold -from [get_pins UFF0/Q] -to [get_pins UFF1/D]

                  -setup指定,对于setup check,新的setup check edge相对于默认的setup check edge(Capture FF)向后移动的时钟数。

                  -hold指定,对于hold check,新的hold check edge相比于默认的setup check edge(Capture FF前一时钟)向前移动的时钟数。

                  在多数的design中,一个N multicycle setup应该与一个N-1 multicycle hold相对应,以保证hold check维持在同一时钟,否则极容易slack

                                           violated,因为hold check edge太晚于launch edge,使得data required time很大。 

                  

    False Path:通过设置false path,可以turn off一些paths。

                   set_false_path -from [get_clocks SCAN_CLK] -to [get_clocks CORE_CLK] 任何从SCAN_CLK到CORE_CLK的path都为false path

                   set_false_path -through [get_pins UMAX0/S] 任何经过UMAX0这个节点的path都为false path

                   set_false_path -to [get_ports TEST_REG*] 任何以TEST_REG*为终点的path都为false path 

    Half-Cycle Path:当一个design中既有negative_edge FF又有positive_edge FF时,一个从positive_edge FF到negative_edge FF会设置为half-cycle

                   path。或者相反也可。

                   Half-cycle path使得setup check变的更为严峻,因为一个cycle变为半个cycle。但是hold check却得到了半个cycle的余量。 

    Removal Timing Check:异步信号的release必须在active clock edge后的一段时间,以便这个异步信号的变化在下一clock edge被识别。

                                        这个时间称为removal time。

                   这是一个min path check,类似于hold check。Path group称为async_default

    Recovery Timing Check:异步信号的inactive必须在active clock edge前的一段时间,以便这个clock edge能够识别这个异步信号的变化。

                                        这个时间称为recovery time。

                   这是一个max path check,类似于setup check。Path group称为async_default。

    首先设计异步复位,同步释放的逻辑,如果reg的clock可以先gate掉,再进行rst,recovery timing是可以不检查的,否则还是要检测sync FF输出到第一级FF的recovery time的。

                                               但是removal是通过clock采样rst来的,所以需要检查removal timing

    Slow to Fast Clock Domains:当design中有一个从Slow domain到Fast domain时,

                   create_clock -name CLKM -period 20 -waveform {0 10} [get_ports CLKM]

                   create_clock -name CLKP -period 5 -waveform {0 2.5} [get_ports CLKP]

                   这时default setup check edge是在Fast domain中后一个clock。default hold check是setup check edge前一个时钟。

                   此时可以通过set_multicycle_path命令来设置新的setup check edge和hold check edge。保证setup和hold check以Slow clock为准。

                              -end表示以Fast clock为单位计数,setup后移clock数和hold前移的clock数。

    Fast to Slow Clock Domains:此时应该check most restrictive路径。对于setup check,Capture FF前的一个Fast clock。

                                                                                                 对于hold check,default hold check edge后的第一个Fast clock。  

                              此时应该使用-start表示以Fast clock为单位计数,setup后移clock数和hold前移的clock数。                

  • 相关阅读:
    sqlserver2000及以上版本导出数据到mysql里的详细图解
    JDBC和ODBC的区别何在?什么是ODBC?
    mysql ODBC 在64位下提示找不到odbc驱动问题
    Microsoft sqlserver2000如何导入.mdf格式的数据库文件
    使用navicat 链接sql server 出现08001错误
    sql语句如何转成hql语句?
    显示所有SAP图标的ABAP代码
    SMW0上传EXCEL模板时报错无分配给对象***的MIME类型
    显示小闹钟的函数
    便携计算器
  • 原文地址:https://www.cnblogs.com/-9-8/p/4629492.html
Copyright © 2020-2023  润新知