首先,我們需要理解什么是時鐘抖動。簡而言之,時鐘抖動(Jitter)反映的是時鐘源在時鐘邊沿的不確定性(Clock Uncertainty)。例如,假定我們現在有一個頻率為100MHz的時鐘,那么時鐘周期就是10ns,理想情況下,時鐘的上升沿將會出現在0ns,10ns,20ns……基于此,如果已知時鐘上升沿出現在30ns,這樣我們就可以得出下一個上升沿將會出現在40ns。但實際情況是,下一個上升沿很可能介于39.9ns到40.1ns之間。也就是說,有0.1ns對時鐘周期構成了影響。就FPGA設計而言,對于抖動我們理解這么多就足夠了。
接下來我們看一下時鐘抖動對時序性能的影響。以經典的單周期時序路徑為例(收發時鐘為同一個時鐘且建立時間Requirement為一個時鐘周期),如下圖所示。
就建立時間而言,基于靜態時序分析(STA)理論,假定數據發起沿為下圖邊沿1,那么捕獲沿將是邊沿3。如果邊沿1出現在20ns這一時刻,那么邊沿3可能出現在以下兩個時刻:
20+Clock Period+Jitter
20+Clock Period-Jitter
考慮最壞情況,我們應該按照20+Clock Period-Jitter來評估建立時間裕量。換言之,實際的時鐘周期為Clock Period-Jitter。
再看保持時間,發起沿和捕獲沿都是邊沿1,或都是邊沿3,即發起沿和捕獲沿是同一時鐘的同一個上升沿,故抖動不會對保持時間裕量產生影響。
基于此,我們可以得出如下結論:對于發送時鐘和接收時鐘是同一時鐘的單周期路徑,時鐘抖動對建立時間有負面影響,但對保持時間沒有影響。這一點,在Vivado的時序報告中也可以看到。如下圖所示,圖中左側為建立時間時序報告,可以看到Clock Uncertainty,而右側為保持時間時序報告,是沒有Clock Uncertainty。
如果發送時鐘和接收時鐘是不同時鐘呢?假定發送時鐘為200MHz,接收時鐘為100MHz,兩者由同一個MMCM生成,故二者為同步時鐘。兩者之間的跨時鐘域路徑可采按多周期路徑進行約束。毋庸置疑,抖動仍然會對建立時間有負面影響。對于保持時間,發起沿是200MHz時鐘的上升沿,捕獲沿是100MHz的上升沿,不是同一個邊沿,故要將100MHz的時鐘抖動考慮在內。
根據保持時間的定義:數據被時鐘有效沿采樣到之后仍要穩定保持一段時間,這個時間即為保持時間。考慮最壞情況,抖動使得時鐘采樣沿后移,意味著數據需要保持更長的時間即Th+Jitter。因此,此時,抖動對保持時間也是一種惡化。這一點在Vivado的時序報告中也會有所體現。
審核編輯:劉清
-
FPGA設計
+關注
關注
9文章
428瀏覽量
27157 -
時鐘抖動
+關注
關注
1文章
63瀏覽量
16142 -
STA
+關注
關注
0文章
52瀏覽量
19234
原文標題:時鐘抖動會影響建立時間和保持時間違例嗎?
文章出處:【微信號:Lauren_FPGA,微信公眾號:FPGA技術驛站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
芯片設計進階之路—從CMOS到建立時間和保持時間

數字電路中,建立時間和保持時間對于觸發器的時鐘信號有
建立時間和保持時間討論
FPGA實戰演練邏輯篇51:建立時間和保持時間
數字 IC 筆試面試必考點(9)建立時間以及保持時間 精選資料分享
建立時間和保持時間(setup time 和 hold time)
PCB傳輸線建立時間、保持時間、建立時間裕量和保持時間裕量

關于建立時間和保持時間的測量方法

評論