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