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數。                


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM