過大的Clock Skew也可能導(dǎo)致時序違例,尤其是其數(shù)值超過0.5ns時。如下三個命令生成的報告中均可顯示Clock Skew的具體數(shù)值。
report_design_analysis
report_timing_summary
report_timing
降低Clock Skew可采用如下流程操作。
圖片來源: page 8, ug1292
1
異步跨時鐘域路徑是否被安全合理地約束
時鐘關(guān)系有兩種:同步時鐘和異步時鐘。如果發(fā)送時鐘和接收時鐘是同源的,例如來自于同一個MMCM,則認(rèn)為二者是同步時鐘,否則就按異步時鐘處理。對于異步跨時鐘域路徑,可采用如下三者之一進(jìn)行約束:
set_clock_groups
set_false_path
set_max_delay -datapath_only
2
發(fā)送時鐘和接收時鐘的時鐘樹結(jié)構(gòu)是否平衡
時鐘樹結(jié)構(gòu)其實就是時鐘的拓?fù)浣Y(jié)構(gòu)。從發(fā)送時鐘和接收時鐘的角度看,平衡的時鐘樹結(jié)構(gòu)是指二者“走過相同或等效的路徑”。如下圖所示,發(fā)送時鐘和接收時鐘來自級聯(lián)的BUFG的不同位置上,這就是典型的不平衡時鐘樹。在設(shè)計中要避免這種情形。通過Tcl命令report_methodology可檢查出設(shè)計中級聯(lián)的BUFG。
<不推薦>
同時,還要利用好BUFG_GT和BUFGCE_DIV,兩者均可實現(xiàn)簡單地分頻。如下圖所示,利用BUFG_GT實現(xiàn)二分頻,從而節(jié)省了MMCM。
此外,還要保持時鐘路徑“干凈”,即不能在時鐘路徑上存在組合邏輯。在時序報告中,點擊如下圖標(biāo)記的按鈕,按下F4,在顯示時序路徑的同時也會顯示該路徑的時鐘拓?fù)浣Y(jié)構(gòu)。
3
檢查Clock Skew是否小于0.5ns
CLOCK_DELAY_GROUP可有效改善同步跨時鐘域路徑的Clock Skew,因此,Xilinx建議對于關(guān)鍵的同步跨時鐘域路徑,可通過設(shè)置該屬性降低Clock Skew,即使發(fā)送時鐘和接收時鐘具有相同的CLOCK_ROOT值。CLOCK_DELAY_GROUP的具體使用方法如下圖所示,其中clk1_net和clk2_net是Clock Buffer的輸出端連接的net。但是,避免過多使用該屬性,否則會適得其反。
4
時鐘是否同時驅(qū)動I/O和Slice中的邏輯資源
如果時鐘同時驅(qū)動I/O和Slice中的邏輯資源,且負(fù)載小于2000時,可通過CLOCK_LOW_FANOUT屬性對相應(yīng)的時鐘net進(jìn)行設(shè)置,最終可使工具將該時鐘驅(qū)動的所有負(fù)載放置在同一個時鐘域內(nèi)。通過命令report_clock_utilization生成的報告可查看每個時鐘的負(fù)載,如下圖所示。
CLOCK_LOW_FANOUT的具體使用方法如下圖所示。
5
檢查數(shù)據(jù)路徑是否穿越SLR或I/O Column如果時鐘負(fù)載較小且穿越SLR或I/O Column時,可通過Pblock實施位置約束,將負(fù)載限定在一定區(qū)域內(nèi),例如在一個SLR內(nèi),以避免穿越一些特殊列,例如I/O Column。相反地,如果數(shù)據(jù)路徑并未穿越SLR或I/O Column,可嘗試對相應(yīng)的MMCM或PLL做位置約束,使其位于這些負(fù)載的中央。
-
時鐘
+關(guān)注
關(guān)注
11文章
1879瀏覽量
132837 -
CLOCK SKEW
+關(guān)注
關(guān)注
0文章
2瀏覽量
1609
原文標(biāo)題:深度解析ug1292(8)
文章出處:【微信號:Lauren_FPGA,微信公眾號:FPGA技術(shù)驛站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
時鐘向?qū)?b class='flag-5'>中是否有一個功能可以指導(dǎo)兩個PLL生成沒有偏斜的時鐘?
Labview中DBL數(shù)值常量控件出現(xiàn)了三個框
非常高效三個linux shell命令分享
Skew Correction Using Delay Li

使用NoKia手機的三個技巧
電腦木馬識別的三個小命令(不可不知)
DSP硬件課程的三個實驗報告資料合集免費下載
同步電路設(shè)計中CLOCK SKEW的分析說明

評論