zoukankan      html  css  js  c++  java
  • 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数。                

  • 相关阅读:
    .NET XmlNavigator with Namespace
    编程要素
    【FOJ】1962 新击鼓传花游戏
    【POJ】1389 Area of Simple Polygons
    【POJ】2482 Stars in Your Window
    【HDU】3265 Posters
    【HDU】1199 Color the Ball
    【HDU】3642 Get The Treasury
    【HDU】4027 Can you answer these queries?
    【HDU】1542 Atlantis
  • 原文地址:https://www.cnblogs.com/-9-8/p/4629492.html
Copyright © 2011-2022 走看看