1、發(fā)起沿和捕獲沿(Launch edge & Capture edge)
①
② Launch edge是發(fā)送數(shù)據(jù)的時(shí)鐘邊沿,通常選擇上升沿。
③ Capture edge是捕獲段捕獲到該數(shù)據(jù)的時(shí)鐘邊沿。
④ 通常情況下這兩個(gè)邊沿會(huì)有一個(gè)時(shí)鐘周期的差別。
2、時(shí)序路徑(Timing path典型時(shí)序路徑有四種)
①
② 第一類時(shí)序路徑(紅色)
- 從device A的時(shí)鐘到FPGA的第一級(jí)寄存器的輸入端口。
③ 第二類時(shí)序路徑
- 兩個(gè)同步元件之間的路徑(rega到regb藍(lán)色)
④ 第三類時(shí)序路徑
- 最后一集寄存器到device B數(shù)據(jù)端口的路徑(黃色)
⑤ 第四類時(shí)序路徑
- 端口到端口的路徑(dinb到dinb綠色)
⑥ 我們要關(guān)注的是這些路徑的
- 起始點(diǎn)(start point)記作S
- 終止點(diǎn)(end point)記作E
-
- 前三條路徑的起始點(diǎn),都是發(fā)送寄存器的時(shí)鐘端口,終止點(diǎn)都是接收寄存器的數(shù)據(jù)端口。
⑦ 常規(guī)時(shí)序路徑的組成
- 我們給出基本模型(可看出rega 和 regb時(shí)鐘是不同的)
-
- 源端時(shí)鐘路徑(紅色) 數(shù)據(jù)路徑(藍(lán)色) 和目的段時(shí)鐘路徑(黃色)
-
3、數(shù)據(jù)到達(dá)時(shí)間和數(shù)據(jù)需求時(shí)間
① 數(shù)據(jù)到達(dá)時(shí)間
-
- 數(shù)據(jù)在發(fā)送沿發(fā)送之后,經(jīng)過多長時(shí)間會(huì)到達(dá)接收寄存器的數(shù)據(jù)端口,即到達(dá)regb的D端口的時(shí)刻,這個(gè)時(shí)刻就是數(shù)據(jù)到達(dá)時(shí)間。
- 我們需要選擇一個(gè)參考(基準(zhǔn))時(shí)間點(diǎn)。通常選擇launch edge作為零時(shí)刻基準(zhǔn)點(diǎn)。
- 數(shù)據(jù)經(jīng)過Tco時(shí)間,到達(dá)Q端口。
- 數(shù)據(jù)從Q端口,要經(jīng)過組合邏輯,以及布線的線延時(shí)才能到達(dá)接收短的D端口(Tdata)。
- 故有公式如下:
-
- 選擇launch edge作為零時(shí)刻基準(zhǔn)點(diǎn)。
② 時(shí)鐘到達(dá)時(shí)間(clock Arrival Time)
- 觀察捕獲寄存器的時(shí)鐘。
-
- 選擇launch edge作為零時(shí)刻基準(zhǔn)點(diǎn)。其實(shí)是launch edge加上一個(gè)時(shí)鐘周期。
4、建立時(shí)間的裕量和保持時(shí)間的裕量(Setup slack & Hold Slack)
① 建立時(shí)間(數(shù)據(jù)需求時(shí)間:Tsu)
-
- 數(shù)據(jù)可以被穩(wěn)定的捕獲到的最小時(shí)間。
- 我們?nèi)匀魂P(guān)注捕獲寄存器。
- 數(shù)據(jù)需要在時(shí)鐘捕獲沿到達(dá)之前的一段時(shí)間,必須到達(dá)。相當(dāng)于是數(shù)據(jù)到達(dá)regb的時(shí)鐘端口 和 regb的時(shí)鐘處于capture edge這兩個(gè)情況同時(shí)滿足的時(shí)候,才可以進(jìn)行接收數(shù)據(jù)。
- 換句話就是說,數(shù)據(jù)至少提前時(shí)鐘Tsu的時(shí)間到達(dá)捕獲寄存器的數(shù)據(jù)端口。
- 數(shù)據(jù)所需要的時(shí)間是
-
- 其中Set up Uncertainty(一般是時(shí)間抖動(dòng)造成的Uncertainty時(shí)間)。
② 保持時(shí)間情況下的數(shù)據(jù)需求時(shí)間(Data Request Time-Hold)
-
- 當(dāng)我們捕獲到數(shù)據(jù)之后,數(shù)據(jù)還應(yīng)該穩(wěn)定的存在一定時(shí)間。
- 除了有Tlckb的時(shí)鐘延時(shí)之外,還要看到捕獲寄存器本身的保持時(shí)間需求。
- Tclkb時(shí)鐘延時(shí),然后數(shù)據(jù)到達(dá)后,至少還需要Th的保持時(shí)間。
-
③ Tsu和Th確定了數(shù)據(jù)的有效窗口。
- 數(shù)據(jù)有效窗口的起始沿就是Tsu
- 終止端口就是Th。
④ 建立時(shí)間裕量(Setup Slack)
- 在做時(shí)序分析時(shí),我們的建立時(shí)間的需求可以滿足,那么這條路徑上發(fā)送的數(shù)據(jù),就可以被目的寄存器穩(wěn)定的捕獲到。
- 我們來看一下我們的模型:
-
- Tclka
- Tco
- Tdata
- Tclkb
- Tsu
- 數(shù)據(jù)需求時(shí)間(Tsu)-當(dāng)前數(shù)據(jù)到達(dá)時(shí)間
-
-
⑤ 保持時(shí)間的裕量(Hold Slack)新的數(shù)據(jù)不能太早的到達(dá),否則就破壞了原來的數(shù)據(jù)
-
- Tclka
- Tco
- Tdata
- Tclkb
- Th
- 新的數(shù)據(jù)到達(dá)時(shí)間-數(shù)據(jù)需求時(shí)間(Th)
-
-
⑥ 如果Slack為正,說明我們的時(shí)序是滿足的。
⑦ 為什么會(huì)出現(xiàn)Slack為負(fù)的情況?
- 對(duì)于Set up Slack為負(fù)的情況
- 數(shù)據(jù)延時(shí)太大,導(dǎo)致數(shù)據(jù)建立時(shí)間Tsu不夠了,見下圖:
-
- Hold Slack為負(fù)
- 時(shí)鐘的延遲太大,導(dǎo)致當(dāng)前data的Capture time到來的時(shí)候,已經(jīng)在傳下一個(gè)data了。
-
⑧ Tdata = Tlogic(組合邏輯,邏輯門的延時(shí))+Tnet(布線,線的延時(shí))
- Tlogic:主要和我們的代碼風(fēng)格有關(guān)。
- Tnet:可能跟我們的布局布線的策略有關(guān)。
⑨ 系統(tǒng)的時(shí)鐘頻率Ts >= Tco + Tdata + Tsu這三者決定了系統(tǒng)的時(shí)鐘的最高頻率。
5、總結(jié):
① 通常我們都是以Launch edge作為零時(shí)刻點(diǎn)(參考時(shí)刻點(diǎn))
② 通常Capture edge time = Launch edge time + 1 clock cycle
③ Tsu和Th是芯片決定的。
編輯:hfy
-
寄存器
+關(guān)注
關(guān)注
31文章
5253瀏覽量
119212 -
時(shí)序分析
+關(guān)注
關(guān)注
2文章
127瀏覽量
22527
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論