【转载】静态时序分析
1.?? 背景
???? 靜態(tài)時序分析的前提就是設(shè)計者先提出要求,然后時序分析工具才會根據(jù)特定的時序模型進行分析,給出正確是時序報告。
進行靜態(tài)時序分析,主要目的就是為了提高系統(tǒng)工作主頻以及增加系統(tǒng)的穩(wěn)定性。對很多數(shù)字電路設(shè)計來說,提高工作頻率非常重要,因為高工作頻率意味著高處理能力。通過附加約束可以控制邏輯的綜合、映射、布局和布線,以減小邏輯和布線延時,從而提高工作頻率。
2.?? 理論分析
?? 2.1???固定參數(shù)launch edge、latch edge、Tsu、Th、Tco概念
2.1.1???????? launch edge
?
時序分析起點(launch edge):第一級寄存器數(shù)據(jù)變化的時鐘邊沿,也是靜態(tài)時序分析的起點。
2.1.2??????? latch edge
時序分析終點(latch edge):數(shù)據(jù)鎖存的時鐘邊沿,也是靜態(tài)時序分析的終點。
2.1.3???????? Clock Setup Time (Tsu)
建立時間(Tsu):是指在時鐘沿到來之前數(shù)據(jù)從不穩(wěn)定到穩(wěn)定所需的時間,如果建立的時間不滿足要求那么數(shù)據(jù)將不能在這個時鐘上升沿被穩(wěn)定的打入觸發(fā)器。如圖3.2所示:
?
?圖3.2? 建立時間圖解
2.1.4??????? Clock Hold Time (Th)
保持時間(Th):是指數(shù)據(jù)穩(wěn)定后保持的時間,如果保持時間不滿足要求那么數(shù)據(jù)同樣也不能被穩(wěn)定的打入觸發(fā)器。保持時間示意圖如圖3.3所示:
?
?
圖3.3? 保持時間圖解
2.1.5???????? Clock-to-Output Delay(tco)
數(shù)據(jù)輸出延時(Tco):這個時間指的是當時鐘有效沿變化后,數(shù)據(jù)從輸入端到輸出端的最小時間間隔。
2.2??? Clock skew
時鐘偏斜(clock skew):是指一個時鐘源到達兩個不同寄存器時鐘端的時間偏移,如圖3.4所示:
?
?
圖3.4? 時鐘偏斜
時鐘偏斜計算公式如下:
?????????????????????????????????????? ??? Tskew = Tclk2 - Tclk1 (公式2-1)
2.2??? Data Arrival Time
數(shù)據(jù)到達時間(Data Arrival Time):輸入數(shù)據(jù)在有效時鐘沿后到達所需要的時間。主要分為三部分:時鐘到達寄存器時間(Tclk1),寄存器輸出延時(Tco)和數(shù)據(jù)傳輸延時(Tdata),如圖3.5所示
?
圖3.5? 數(shù)據(jù)到達時間
數(shù)據(jù)到達時間計算公式如下:
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)
數(shù)據(jù)需求時間(Data Required Time):在時鐘鎖存的建立時間和保持時間之間數(shù)據(jù)必須穩(wěn)定,從源時鐘起點達到這種穩(wěn)定狀態(tài)需要的時間即為數(shù)據(jù)需求時間。如圖3.7所示:
?
?
圖3.7? 數(shù)據(jù)需求時間
(建立)數(shù)據(jù)需求時間計算公式如下:
Data Required Time = Clock Arrival Time - Tsu (公式2-4)
(保持)數(shù)據(jù)需求時間計算公式如下:
Data Required Time = Clock Arrival Time?+ Th ??? (公式2-5)
2.5??? Setup slack
建立時間余量(setup slack):當數(shù)據(jù)需求時間大于數(shù)據(jù)到達時間時,就說時間有余量,Slack是表示設(shè)計是否滿足時序的一個稱謂。
?圖3.8? 建立時間余量
如圖3.8所示,建立時間余量的計算公式如下:
Setup slack = Data Required Time - Data Arrival Time (公式2-6)
由公式可知,正的slack表示數(shù)據(jù)需求時間大于數(shù)據(jù)到達時間,滿足時序(時序的余量),負的slack表示數(shù)據(jù)需求時間小于數(shù)據(jù)到達時間,不滿足時序(時序的欠缺量)。
3.1.7??? 時鐘最小周期
時鐘最小周期:系統(tǒng)時鐘能運行的最高頻率。
1. 當數(shù)據(jù)需求時間大于數(shù)據(jù)到達時間時,時鐘具有余量;
2.??? 當數(shù)據(jù)需求時間小于數(shù)據(jù)到達時間時,不滿足時序要求,寄存器經(jīng)歷亞穩(wěn)態(tài)或者不能正確獲得數(shù)據(jù);
3.??? 當數(shù)據(jù)需求時間等于數(shù)據(jù)到達時間時,這是最小時鐘運行頻率,剛好滿足時序。
從以上三點可以得出最小時鐘周期為數(shù)據(jù)到達時間等于數(shù)據(jù)需求時間,的運算公式如下:
?????????????????????????????????????????????????????????????? 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 計算
?
轉(zhuǎn)載自:
http://www.cnblogs.com/inet2012/archive/2012/03/07/2384149.html
轉(zhuǎn)載于:https://www.cnblogs.com/socquan/p/3264972.html
總結(jié)
以上是生活随笔為你收集整理的【转载】静态时序分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 云图说|图解DGC:基于华为智能数据湖解
- 下一篇: 大端模式小端模式、主机序网络序、入栈地址