時(shí)序路徑
典型的時(shí)序路徑有4類,如下圖所示,這4類路徑可分為片間路徑(標(biāo)記①和標(biāo)記③)和片內(nèi)路徑(標(biāo)記②和標(biāo)記④)。
對于所有的時(shí)序路徑,我們都要明確其起點(diǎn)和終點(diǎn),這4類時(shí)序路徑的起點(diǎn)和終點(diǎn)分別如下表。
這4類路徑中,我們最為關(guān)心是②的同步時(shí)序路徑,也就是FPGA內(nèi)部的時(shí)序邏輯。
時(shí)序模型
典型的時(shí)序模型如下圖所示,一個(gè)完整的時(shí)序路徑包括源時(shí)鐘路徑、數(shù)據(jù)路徑和目的時(shí)鐘路徑,也可以表示為觸發(fā)器+組合邏輯+觸發(fā)器的模型。
該時(shí)序模型的要求為(公式1)
Tclk ≥ Tco + Tlogic + Trouting + Tsetup - Tskew
其中,Tco為發(fā)端寄存器時(shí)鐘到輸出時(shí)間;Tlogic為組合邏輯延遲;Trouting為兩級寄存器之間的布線延遲;Tsetup為收端寄存器建立時(shí)間;Tskew為兩級寄存器的時(shí)鐘歪斜,其值等于時(shí)鐘同邊沿到達(dá)兩個(gè)寄存器時(shí)鐘端口的時(shí)間差;Tclk為系統(tǒng)所能達(dá)到的最小時(shí)鐘周期。
這里我們多說一下這個(gè)Tskew,skew分為兩種,positive skew和negative skew,其中positive skew見下圖,這相當(dāng)于增加了后一級寄存器的觸發(fā)時(shí)間。
但對于negative skew,則相當(dāng)于減少了后一級寄存器的觸發(fā)時(shí)間,如下圖所示。
當(dāng)系統(tǒng)穩(wěn)定后,都會是positive skew的狀態(tài),但即便是positive skew,綜合工具在計(jì)算時(shí)序時(shí),也不會把多出來的Tskew算進(jìn)去。
用下面這個(gè)圖來表示時(shí)序關(guān)系就更加容易理解了。為什么要減去Tskew,下面這個(gè)圖也更加直觀。
發(fā)送端寄存器產(chǎn)生的數(shù)據(jù),數(shù)據(jù)經(jīng)過Tco、Tlogic、Trouting后到達(dá)接收端,同時(shí)還要給接收端留出Tsetup的時(shí)間。而時(shí)鐘延遲了Tskew的時(shí)間,因此有:(公式2)
Tdata/_path + Tsetup < = Tskew + Tclk
對于同步設(shè)計(jì)Tskew可忽略(認(rèn)為其值為0),因?yàn)镕PGA中的時(shí)鐘樹會盡量保證到每個(gè)寄存器的延遲相同。
公式中提到了建立時(shí)間,那保持時(shí)間在什么地方體現(xiàn)呢?
保持時(shí)間比較難理解,它的意思是reg1的輸出不能太快到達(dá)reg2,這是為了防止采到的新數(shù)據(jù)太快而沖掉了原來的數(shù)據(jù)。保持時(shí)間約束的是同一個(gè)時(shí)鐘邊沿,而不是對下一個(gè)時(shí)鐘邊沿的約束。
reg2在邊沿2時(shí)刻剛剛捕獲reg1在邊沿1時(shí)刻發(fā)出的數(shù)據(jù),若reg1在邊沿2時(shí)刻發(fā)出的數(shù)據(jù)過快到達(dá)reg2,則會沖掉前面的數(shù)據(jù)。因此保持時(shí)間約束的是同一個(gè)邊沿。
在時(shí)鐘沿到達(dá)之后,數(shù)據(jù)要保持Thold的時(shí)間,因此,要滿足:(公式3)
Tdata/_path = Tco + Tlogic + Trouting ≥ Tskew + Thold
這兩個(gè)公式是FPGA的面試和筆試中經(jīng)常問到的問題,因?yàn)檫@種問題能反映出應(yīng)聘者對時(shí)序的理解。
在公式1中,Tco跟Tsu一樣,也取決于芯片工藝,因此,一旦芯片型號選定就只能通過Tlogic和Trouting來改善Tclk。其中,Tlogic和代碼風(fēng)格有很大關(guān)系,Trouting和布局布線的策略有很大關(guān)系。
編輯:hfy
-
寄存器
+關(guān)注
關(guān)注
31文章
5294瀏覽量
119814 -
觸發(fā)器
+關(guān)注
關(guān)注
14文章
1995瀏覽量
61011 -
時(shí)序路徑
+關(guān)注
關(guān)注
0文章
12瀏覽量
1392
發(fā)布評論請先 登錄
相關(guān)推薦
評論