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