任何學FPGA的人都跑不掉的一個問題就是進行靜態時序分析。靜態時序分析的公式,老實說很晦澀,而且總能看到不同的版本,內容又不那么一致,為了徹底解決這個問題,終于找到了一種很簡單的解讀辦法,可以看透它的本質,而且不需要再記復雜的公式了。
我們的分析從下圖開始,下圖是常用的靜態分析結構圖,一開始看不懂公式不要緊,因為我會在后面給以非常簡單的解釋:
這兩個公式是一個非常全面的,準確的關于建立時間和保持時間的公式。其中Tperiod為時鐘周期;Tcko為D觸發器開始采樣瞬間到D觸發器采樣的數據開始輸出的時間;Tlogic為中間的組合邏輯的延時;Tnet為走線的延時;Tsetup為D觸發器的建立時間;Tclk_skew為時鐘偏移,偏移的原因是因為時鐘到達前后兩個D觸發器的路線不是一樣長。
這里我們來做如下轉化:
因為對于有意義的時序約束,建立時間余量Tslack,setup和保持時間余量Thold都要大于0才行,所以對于時序約束的要求其實等價于:
Tperiod>Tcko+Tlogic+Tnet+Tsetup-Tclk_skew (1)
Tcko+Tlogic+Tnet>Thold+Tclk_skew (2)
之前說了,這兩個公式是最全面的,而實際上,大部分教材沒講這么深,他們對于一些不那么重要的延時沒有考慮,所以就導致不同的教材說法不一。這里,為了得到更加簡單的理解,我們按照常規,忽略兩項Tnet和Tclk_skew。原因在于Tnet通常太小,而Tclk_skew比較不那么初級。簡化后如下:
Tperiod>Tcko+Tlogic+Tsetup (3)
Tcko+Tlogic>Thold (4)
簡單多了吧!但是你能看出這兩個公式的含義嗎?其實(3)式比較好理解,意思是數據從第一個觸發器采樣時刻傳到第二個觸發器采樣時刻,不能超過一個時鐘周期啊!假如數據傳輸超過一個時鐘周期,那么就會導致第二個觸發器開始采樣的時候,想要的數據還沒有傳過來呢!那么(4)式又如何理解呢?老實說,一般人一眼看不出來。
我們對于(4)式兩邊同時加上Tsetup,得到(5):
Tcko+Tlogic+Tsetup>Thold+Tsetup (5)
結合(3)式和(5)式,我們得到如下的式子:
Thold+Tsetup
這個式子就是那個可以讓我們看出規律的式子。也是可以看出靜態時序分析本質的式子。
Tcko+Tlogic+Tsetup是指數據從第一級觸發器采樣瞬間開始,傳輸到第二級觸發器并被采樣的傳輸延時。我們簡稱為數據傳輸延時。下面講述(6)式兩端的含義。
Tcko+Tlogic+Tsetup< ?Tperiod :約定數據傳輸延時不能太大,如果太大(超過一個時鐘周期),那么第二級觸發器就會在采樣的時刻發現數據還沒有到來。
Thold+Tsetup
綜上,我們就可以知道,數據傳輸延時既不能太大以至于超過一個時鐘周期,也不能太小以至于小于觸發器采樣窗口的寬度。這就是靜態時序分析的終極內涵。有了這個,就不需要再記任何公式了。
歡迎加入至芯科技FPGA微信學習交流群,這里有一群優秀的FPGA工程師、學生、老師、這里FPGA技術交流學習氛圍濃厚、相互分享、相互幫助、叫上小伙伴一起加入吧!
點個在看你最好看
原文標題:解讀FPGA的靜態時序分析
文章出處:【微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。
-
FPGA
+關注
關注
1626文章
21666瀏覽量
601834
原文標題:解讀FPGA的靜態時序分析
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論