靜態時序分析SAT


1.   背景

     靜態時序分析的前提就是設計者先提出要求,然后時序分析工具才會根據特定的時序模型進行分析,給出正確是時序報告。

  進行靜態時序分析,主要目的就是為了提高系統工作主頻以及增加系統的穩定性。對很多數字電路設計來說,提高工作頻率非常重要,因為高工作頻率意味着高處理能力。通過附加約束可以控制邏輯的綜合、映射、布局和布線,以減小邏輯和布線延時,從而提高工作頻率。

2.   理論分析

   2.1   固定參數launch edge、latch edge、Tsu、Th、Tco概念

2.1.1         launch edge

 

  時序分析起點(launch edge):第一級寄存器數據變化的時鍾邊沿,也是靜態時序分析的起點。

2.1.2        latch edge

  時序分析終點(latch edge):數據鎖存的時鍾邊沿,也是靜態時序分析的終點。

2.1.3         Clock Setup Time (Tsu)

  建立時間(Tsu):是指在時鍾沿到來之前數據從不穩定到穩定所需的時間,如果建立的時間不滿足要求那么數據將不能在這個時鍾上升沿被穩定的打入觸發器。如圖3.2所示:

 

 圖3.2  建立時間圖解

2.1.4        Clock Hold Time (Th)

  保持時間(Th):是指數據穩定后保持的時間,如果保持時間不滿足要求那么數據同樣也不能被穩定的打入觸發器。保持時間示意圖如圖3.3所示:

 

 

圖3.3  保持時間圖解

2.1.5         Clock-to-Output Delay(tco)

  數據輸出延時(Tco):這個時間指的是當時鍾有效沿變化后,數據從輸入端到輸出端的最小時間間隔。

2.2    Clock skew

  時鍾偏斜(clock skew):是指一個時鍾源到達兩個不同寄存器時鍾端的時間偏移,如圖3.4所示:

 

 

圖3.4  時鍾偏斜

  時鍾偏斜計算公式如下:

                                           Tskew = Tclk2 - Tclk1           (公式2-1)

2.2    Data Arrival Time

  數據到達時間(Data Arrival Time):輸入數據在有效時鍾沿后到達所需要的時間。主要分為三部分:時鍾到達寄存器時間(Tclk1),寄存器輸出延時(Tco)和數據傳輸延時(Tdata),如圖3.5所示

 

圖3.5  數據到達時間

  數據到達時間計算公式如下:

   Data Arrival Time = Launch edge + Tclk1 +Tco + Tdata        (公式2-2)

2.3    Clock Arrival Time

  時鍾到達時間(Clock Arrival Time):時鍾從latch邊沿到達鎖存寄存器時鍾輸入端所消耗的時間為時鍾到達時間,如圖3.6所示

圖3.6  時鍾到達時間

時鍾到達時間計算公式如下:

                                          Clock Arrival Time = Lacth edge + Tclk2              (公式2-3)

2.4    Data Required Time(setup/hold)

  數據需求時間(Data Required Time):在時鍾鎖存的建立時間和保持時間之間數據必須穩定,從源時鍾起點達到這種穩定狀態需要的時間即為數據需求時間。如圖3.7所示:

 

 

圖3.7  數據需求時間

  (建立)數據需求時間計算公式如下:

         Data Required Time = Clock Arrival Time - Tsu            (公式2-4)

  (保持)數據需求時間計算公式如下:

                   Data Required Time = Clock Arrival Time + Th               (公式2-5) 

2.5    Setup slack

  建立時間余量(setup slack):當數據需求時間大於數據到達時間時,就說時間有余量,Slack是表示設計是否滿足時序的一個稱謂。

 圖3.8  建立時間余量

  如圖3.8所示,建立時間余量的計算公式如下:

          Setup slack = Data Required Time - Data Arrival Time        (公式2-6)

  由公式可知,正的slack表示數據需求時間大於數據到達時間,滿足時序(時序的余量),負的slack表示數據需求時間小於數據到達時間,不滿足時序(時序的欠缺量)。

3.1.7    時鍾最小周期

  時鍾最小周期:系統時鍾能運行的最高頻率。

  1.  當數據需求時間大於數據到達時間時,時鍾具有余量;

  2.    當數據需求時間小於數據到達時間時,不滿足時序要求,寄存器經歷亞穩態或者不能正確獲得數據;

  3.    當數據需求時間等於數據到達時間時,這是最小時鍾運行頻率,剛好滿足時序。

  從以上三點可以得出最小時鍾周期為數據到達時間等於數據需求時間,的運算公式如下:

                                                               Data Required Time = Data Arrival Time 

圖解Setup 與 Hold Slack

 

 

從上面兩個圖中可以清晰的看出Setup與Hold Slack的定義與計算方法:

Setup slack=latch edge+Tclk2-Tsu-(launch edge+Tclk1+Tco+Tdata)

                =(latch edge-lanuch edge)+(Tclk2-Tclk1)-(Tsu+Tco+Tdata)

對於工具默認的單周期來說,latch edge-lanuch edge=T,如果不考慮時鍾的skew,Tclk2-Tclk1=0,上式可以表達成:

Setup slack=T-(Tsu+Tco+Tdata),這就是為什么說源寄存器與目的寄存器之間延遲不能太長的原因,延遲越長,slack越小。

Hold slack=data arrival time – data required time
             =(launch edge + Tclk1 + Tco + Tdata) – (latch edge + Tclk2 + Th)
             =(launch edge – latch edge) – (Tclk2 – Tclk1) + (Tco + Tdata + Th)

注意,上式中的launch edge為next launch edge,即為latch edge,所以launch edge – latch edge=0,如果不考慮時鍾的skew,Tclk2-Tclk1=0,上式可以表達成:

Hold slack=Tco + Tdata – Th,這就是為什么說源寄存器與目的寄存器之間延遲不能太短的原因,時間太短,slack越小。

 

setup  slack 計算

 

 

hold  slack 計算

 


免責聲明!

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



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