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)
總結
以上是生活随笔為你收集整理的vivado时序分析(一,理论基础)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网站页面设计中如何定位网站页面颜色
- 下一篇: 月份,星期几的英文表示