【基礎知識】時序(Slack、Setup、Hold、Jitter、Skew、亞穩態)


時鍾信號特性有:抖動(Jitter)、偏移(skew)、占空比失真(Duty Cycle Distortion)

偏移SKEW

    因時鍾線長度不同或負載不同,導致時鍾到達相鄰單元的時間不同,這個時間上的偏差就叫時鍾偏移SKEW。   

      

    在上圖中的Tskew=Tc1-Tc2

    偏移會一直存在,因此FPGA在設計時,會進行優化,采用全銅工藝和樹狀結構,設計專門的始終緩沖和驅動網絡,使得時鍾到達不同單元時的路徑一樣長,盡量減小偏移。

所以,Skew 問題的解決方法就是:設計中的主要信號應該走全局時鍾網絡。

此外FPGA中延遲鎖定環(Delay locked ring,DLL)也可以去SKEW,延遲鎖相環由控制邏輯和延時線組成,控制邏輯將輸入時鍾與輸出時鍾進行比較,並插入延時從而使得時鍾同步。

    但無論如何,在STA時,任然要考慮Skew。

抖動Jitter

    在理想情況下,一個頻率固定的完美的脈沖信號(以1MHz為例)的持續時間應該恰好是1us,每500ns有一個跳變沿。但這種信號並不存在。如圖所示,信號周期的長度總會有一定變化,從而導致下一個沿的到來時間不確定。這種不確定就是抖動(jitter)。時鍾抖動也永遠存在。

     

    占空比失真Duty Cycle Distortion

    占空比失真即時鍾不對稱,高電平和低電平時間發生變化。DCD會占用時間裕量(Slack)造成數字信號的失真,使過零區間偏離理想的位置。DCD通常是由信號的上升沿和下降沿之間時序不同而造成的。

扇入扇出Fan-in/Fan-out

   數字電路中,邏輯門相互連接,每個邏輯門輸出端與輸入端都連着大量別的單元,因此由扇入扇出表示處理外部輸入以及驅動外部其他單元的能力。

 


 

亞穩態及相關概念

   同步電路中:

  建立時間(Setup time):觸發器時鍾上升沿到來前數據保持穩定的時間。

  保持時間(Hold time):觸發器時鍾上升沿到來后數保持據穩定的時間。

     

 如圖所示,在時鍾上升沿到來前后的一段時間內數據必須保持穩定,否則數據就無法寫入,造成“亞穩態“輸出。如果前級驅動夠強勁,電路就能按照趨勢變化下去,一定時間后該點的值就會變化為“正確值”,如果驅動不夠強勁,電路就會恢復之前的值,最終得到何值是不可控的,所以我們要避免亞穩態。在使用DFF時,必須滿足其建立時間和保持時間的要求。      

     

以上圖為例,假設時序如下

     

在上圖時序中:

  △T=Tskew

  T1=REG1檢測到時鍾后內部延時+組合邏輯延時最后到達REG2的時間

  Tcycle=CLK的周期

  Tsu=數據在CLK2上升沿到達前維持的時間

    Tsu = Tcycle + Tskew-T1

  Th=數據在CLK上升沿到達后維持的時間

      Th = T1 – Tskew

  如果Ts>setup time(觸發器),Th>hold time(觸發器)則數據能正常寫入,由這個條件可以看出,Tskew與T1起着關鍵作用,而正之前所說如果使用全局時鍾則Tskew會很小,可以忽略不計。

 實例:

    

  以上圖為例Tsu= Tcycle + Tskew-T1要使Tsu最小,則Tskew最小,T1最大。

  Tsu(min) = Tcycle + Tskew(min)-T1(max)=15+2+5+2-2-11-2-9-2<Tsetup

    因此發生了setup violation

 異步復位時:

    除了同步電路中會產生亞穩態外(不滿足Tsu和Th),在異步復位時也會產生亞穩態,這里需要提到復位時間與撤銷時間。

復位時間(recovery):復位信號釋放(對於低電平有效的復位信號指上升沿),與緊跟其后的第一個時鍾上升沿之間的最小時間。

撤銷時間(removal):時鍾信號的上升沿,與緊跟其后異步復位信號從有效到無效的最小時間。    

    

  如圖所示,異步復位信號撤銷必須在復位時間和撤銷時間外,否則會產生亞穩態。    

     

  異步復位信號撤銷時間在Trecovery和Tremoval之內,則會造成亞穩態,在時鍾上升沿Tco(輸出延時)后會產生振盪,振盪時間為Tmet(決斷時間)。

補充:

  1.只要系統中有異步元件,亞穩態就是無法避免的,亞穩態主要發生在異步信號檢測、跨時鍾域信號傳輸中。

  2.對於同步信號而言不滿足Tsu和Th會產生亞穩態,對於異步信號,復位不滿足Trecovery和Tremoval會產生亞穩態。

  3.隨着clk頻率的增加,亞穩態發生的幾率是增加的。

      4.采用工藝更好的FPGA。

消除亞穩態方法:

  1.對異步信號進行同步處理;

  2.使用FIFO對跨時鍾域數據進行緩沖處理;

  3.復位電路采用異步復位,同步釋放處理;

 


 

時間裕量Slack

   概念:

   時間裕量分析首先需要將電路中的路徑找出來。路徑的起點有兩種:時序器件的時鍾輸入端、電路的起點;終點也有兩種:時序器件的數據輸入端、電路的終點。如下圖所示,一共有四種路徑。

     

    除了路徑外還有以下幾個概念需要了解:

      關鍵路徑(critical path):從輸入到輸出中延時最大的那條路徑。

      到達時間(arrival time):信號從參考的時間起到達某特點位置的時間。

      需求時間(required time):信號到達的最晚的時間。

      時間裕量(slack):用需要時間減去到達時間得到的結果就是時間裕量(slack =required time- arrival time)。如果時證書則說明路徑延時滿足需求,如果時負數則說明延時不滿足。其中比較重要的時Hold Time Slack。

計算:

仍然以該電路為例  

    

 發射沿(Launch Edge):產生數據的REG1的clock上升沿;

    鎖存沿(Latch Edge):接受數據的REG2的clock的上升沿,延時Launch Edge1個時鍾;

     

數據到達時間(Data Arrival Time

     

   Tclk1= CLK到達REG1的時間

  Tco  = REG1固定延時

  Tdata= 數據傳輸時間

    時序圖如下:

    

 

             Data Arrival Time = Launch Edge+Tclk1+Tco+Tdata 

時鍾到達時間(Clock Arrival Time

     

時序圖如下:

    

              Clock Arrival Time = latch Edge+Tclk2

 

數據建立需求時間(Data Required Time Setup

       因為數據必須在Tsu之前有效,因此:

       Data Required Time Setup = Clock Arrival Time-Tsu

數據保持需求時間(Data Required Time Hold

       因為數據必須在Th之后才能改變,因此:

       Data Required Time Hold= Clock Arrival Time+Th

              最后計算Slack

                     Setup Slack = Data Required Time Setup -Data Arrival Time

                     Hold Slack = Clock Arrival Time - Data Required Time Hold

 

參考資料:

https://blog.csdn.net/nearcsy/article/details/81304157

https://www.cnblogs.com/oomusou/archive/2010/08/04/timing_slack.html


免責聲明!

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



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