vivado時序分析(一,理論基礎)


          在fpga 的大型項目中經常會用到時序分析,很多面試的場合也會遇到時序分析。經常用到的時序分析主要包括時鍾時序分析,輸入端的時序分析以及暑促短的時序分析。最基本的時序分析師歸結到寄存器於寄存器之間的時序分析。主要是分析setup_slack建立時間裕量和hold_slack保持時間裕量。

一、寄存器與寄存器之間的時序模型

 

 

 1、第(1)條路徑包括數據路徑簡稱Tdata以及reg1內部的延遲Tco。數據沿着clk時鍾到達寄存器的Q端,最后由Q端輸出。在reg1內部數據隨着時鍾到達到達reg1的Q端的內部延遲為Tco,寄存器是邊沿觸發的。中間的數據傳輸與、或,非、異或等組合邏輯都有延遲特性會產生數據的延遲簡稱Tdata。

 2、第(2)條路徑是源時鍾到達寄存器的時鍾延遲簡稱Tclk1。

 3,第(3)條路徑是源端時鍾到達reg2的時鍾延遲簡稱Tclk2.

二、計算setup_slack和hold_slack。

  根據以上的時序模型,可以數據傳輸的時序圖如下所示:

 

 

clock_pad:是源短時鍾。

clock_in_reg1:是到達寄存器reg1的時鍾,Tclk1是時鍾到達reg1的延遲。

reg1_q:是數據到達寄存器reg1的Q短的時刻。Tco寄存器內部的延遲。

reg2_d:是數據到達寄存器reg2的D端的時刻。Tdata數據延遲。

通過以上模型分型:數據到達的時間=Tclk1 + Tco + Tdata.

 

clock_pad:是源短時鍾。

clock_in_reg1:是到達寄存器reg1的時鍾,Tclk1是時鍾到達reg1的延遲。

clock_in_reg2:是到達寄存器reg2的時鍾,Tclk2是時鍾到達reg2的延遲。

 

 

 Tsu:數據據所需要的最小的建立時間。

寄存器reg2是用來采集數據的,而且是邊沿采集,也就是說當數據到達第二個寄存器reg2的d端口,並且時鍾到達寄存器reg2的上升沿,才能准確的采集到數據。其中在滿足這個條件的同時根據我們芯片器件的屬性還會有一個采集門限建立時間Tsu.就是在采集上升沿到來之前數據必須保持穩定的最小時間。所以數據要求到達的時間就應該是在第二個寄存器reg2的始終上升沿到來之前的一小段時間到達,這一小段時間就是就是需要的建立時間Tsu.因此可以得到數據到達的時間=一個時鍾周期 + Tclk2 -Tsu.

那么數據的實際到達時間和數據要求到達的時間之間的差值就是建立時間裕量setup_slack.得到的計算公式為:

setup_slack=一個時鍾周期 + Tclk2 -Tsu-(Tclk1 + Tco + Tdata)

在這里要引入時鍾偏移的一個概念,假設時鍾便宜用ΔT來表示,那么:ΔT = Tclk2 - Tclk1.那么setup_slack的表達公式就變為i:

setup_slack=一個時鍾周期 +ΔT-Tsu-( Tco + Tdata)

數據的保持時間就沒有那么復雜了:Thold =  Tdata - ΔT .

三、相關分析

1、當得到setup_slack大於Tsu時,建立時間不違例。當得到setup_slack小於Tsu時,

2、會出現建立時間違例。當時鍾便宜ΔT>0時,Thold收到影響。當時鍾便宜ΔT<0時,setup_slack會受到影響.

3、而且始終越慢就會影響建立時間,時鍾越快就會影響保持時間。

4、Fmax=1/(一個時鍾周期-setup_slack)


免責聲明!

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



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