資料介紹
任何學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)式又如何理解呢?老實説,一般人一眼看不出來。
用户評論
查看全部 條評論
發表評論請先 登錄, 還沒有賬號?免費註冊。
發表評論