Vivado 时序分析(理论篇) 卷一
文章目錄
- 引言
- 1、建立余量
- 2、建立時間余量的Vivado軟件分析
- 3、保持時間
- 4、保持時間余量的Vivado軟件分析
引言
在之前我的文章中,已經(jīng)寫過時序分析,但當(dāng)時僅解決了step slack的問題,為了加深進(jìn)一步的理解,隨著資料的不斷增多,現(xiàn)在,重新進(jìn)一步整理,當(dāng)然這一次整理將是干貨的歸納,并且納入IC學(xué)習(xí)路線一文中,為IC中的PT工具的時序分析先鋪墊道路。
參考文章:https://blog.csdn.net/ciscomonkey/article/details/88046646
1、建立余量
從圖中可以看出,data arrival time 的時間點和data require time的時間點,只要兩個相減,就是setup slack的值。并且需要保證slack>0.
而Fmax的值=1/(Tcycle -setup slack)
關(guān)于這個Fmax的理解:如果要讓時鐘可以快,更快,更快,顯然,setup slack的余量更加充足,更容易讓時鐘更快,如果slack足夠充足,我可以把Tsu這一段整體往前移動,移動,從而時鐘的上升沿更快的到來,然而,想一下,如果slack很小很小,你想把Tsu往前提,也提不了,所以時鐘快不起來。如果以極限來考慮,也就是說,我可以最多將Tsu提前slack這么一個長度,因此,得到Fmax的公式。
2、建立時間余量的Vivado軟件分析
在實現(xiàn)或者綜合后,點擊編輯時序約束
在進(jìn)行時序約束前,需要分配管腳,否則時序分析是沒有意義的。如下圖所示,創(chuàng)建時鐘約束。如果系統(tǒng)中使用了PLL,就沒必要設(shè)置時鐘約束,因為系統(tǒng)已經(jīng)知道了你的時鐘。
現(xiàn)在需要重新編譯。重新編譯后,在Timing summary中。
如下圖所示,最糟糕的情況下,slack還有5.906ns的余量,而所有負(fù)的salck為0,是沒有的。
WNS 代表最差負(fù)時序裕量 (Worst Negative Slack)
TNS 代表總的負(fù)時序裕量 (Total Negative Slack)(所有path-slack 加起來),也就是負(fù)時序裕量路徑之和。
關(guān)閉窗口后,然后report timing,報告100條路徑
slack代表的余量,level代表該路徑是否有組合邏輯,比如if
雙擊某一條路徑后,可以對該條路徑顯示細(xì)節(jié),通過點擊右鍵進(jìn)行highlight標(biāo)亮后,然后再device中查看,從而可以看到路徑
始終要根據(jù)此模型
首先通過外部的時鐘晶振,時鐘通過時鐘緩沖器buffer,進(jìn)行輸出,當(dāng)然一路時鐘(黃色)輸出給了源寄存器,另一路時鐘輸出給了目的寄存器。
然后看到,第一路時鐘給了一個觸發(fā)器,觸發(fā)器的類型是FDRE,代表同步復(fù)位,復(fù)位值為0。
然后數(shù)據(jù)線經(jīng)過了一個組合邏輯
然后數(shù)據(jù)到達(dá)目的寄存器,從而這條路徑完全符合我們的經(jīng)典兩級寄存器時序分析模型
下面來看一下計算的數(shù)據(jù)
首先是數(shù)據(jù)到達(dá)時間,表里面理出了,經(jīng)過每一條路徑的時間累加,incr代表這條線(器件)增加的時間,path代表總的累加時間,直到計算出累加的時間是3.937.
接著是數(shù)據(jù)需求時間,在詢問后,其實我覺得可這樣來理解,真正進(jìn)入寄存器的采集還需要一定延時,與建立時間之和后,可能為正,也可能為負(fù)。
最后用需求時間減去數(shù)據(jù)到達(dá)時間即可。
疑問?
為什么下圖經(jīng)過同樣的ibuf,結(jié)果會不一樣呢?
前面那個相當(dāng)于TCLK1,后面那個相當(dāng)于TCLK2
為了以最壞的角度考慮,TCLK1應(yīng)該取最大值,TCLK2應(yīng)該取最小值。所以下面的結(jié)果不一樣,是考慮的最悲觀的角度。
3、保持時間
如下圖所示,為了計算hold slack的時間,需要計算兩個點
所以hold slack與時鐘的快慢(時鐘周期)是沒有關(guān)系的。
所以看出,增加組合邏輯的延時,可以改善hold 的slack
4、保持時間余量的Vivado軟件分析
同樣是符合公式的
約束時鐘的意義在于軟件更好的優(yōu)化布局布線,所以需要綁定好管腳。
總結(jié)
以上是生活随笔為你收集整理的Vivado 时序分析(理论篇) 卷一的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FPGA实战训练
- 下一篇: ubuntu常用小工具