FPGA系列5——時序分析(時序模型)

上一篇文章講了4中典型時序路徑,都是可以基於一種時序模型進行時序的分析,進行書序的約束。典型的時序模型如下圖所示,一個完整的時序路徑包括源時鐘路徑、數據路徑和目的時鐘路徑,也可以表示爲觸發器+組合邏輯+觸發器的模型。

該時序模型的要求爲:

                                                    Tclk ≥ Tco + Tlogic + Trouting + Tsetup – Tskew

其中,Tco爲發端寄存器時鐘到輸出時間;Tlogic爲組合邏輯延遲;Trouting爲兩級寄存器之間的佈線延遲;Tsetup爲收端寄存器建立時間;Tskew爲兩級寄存器的時鐘歪斜,其值等於時鐘同邊沿到達兩個寄存器時鐘端口的時間差;Tclk爲系統所能達到的最小時鐘週期。通過建立時間可以分析出系統最高運行頻率。

上式可以簡單這麼理解,只要數據從上個寄存器傳到下個寄存器的總時間小於等於工作時鐘週期,數據就可以安全可靠地傳輸。(這個模型不針對兩個時鐘域的信號)

這裏我們多說一下這個Tskew,skew分爲兩種,positive skew和negative skew,其中positive skew見下圖,這相當於增加了後一級寄存器的觸發時間。

但對於negative skew,則相當於減少了後一級寄存器的觸發時間,如下圖所示。

當系統穩定後,都會是positive skew的狀態,但即便是positive skew,綜合工具在計算時序時,也不會把多出來的Tskew算進去。

用下面這個圖來表示時序關係就更加容易理解了。爲什麼要減去Tskew,下面這個圖也更加直觀

發送端寄存器產生的數據,數據經過Tco、Tlogic、Trouting後到達接收端,同時還要給接收端留出Tsetup的時間。而時鐘延遲了Tskew的時間,因此有:

                                                                     Tdata\_path + Tsetup <= Tskew + Tclk

對於同步設計Tskew可忽略(認爲其值爲0),因爲FPGA中的時鐘樹會盡量保證到每個寄存器的延遲相同。

公式中提到了建立時間,那保持時間在什麼地方體現呢?

保持時間比較難理解,它的意思是reg1的輸出不能太快到達reg2,這是爲了防止採到的新數據太快而沖掉了原來的數據。保持時間約束的是同一個時鐘邊沿,而不是對下一個時鐘邊沿的約束。

reg2在邊沿2時刻剛剛捕獲reg1在邊沿1時刻發出的數據,若reg1在邊沿2時刻發出的數據過快到達reg2,則會沖掉前面的數據。因此保持時間約束的是同一個邊沿

在時鐘沿到達之後,數據要保持Thold的時間,因此,要滿足:

                                            Tdata\_path =  Tco + Tlogic + Trouting ≥ Tskew + Thold

(Tdata\_path爲發送端在時刻2發送數據到接收端的時間,確保滿足保持時間)

這兩個公式是FPGA的面試和筆試中經常問到的問題,因爲這種問題能反映出應聘者對時序的理解。

在公式1中,Tco跟Tsu一樣,也取決於芯片工藝,因此,一旦芯片型號選定就只能通過Tlogic和Trouting來改善Tclk。其中,Tlogic和代碼風格有很大關係,Trouting和佈局佈線的策略有很大關係。

(來源:科學計算technomania ,作者貓叔)

發佈了66 篇原創文章 · 獲贊 42 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章