在分析place_design生成的dcp時,就要開始關(guān)注保持時間違例,尤其是當(dāng)WHS < -0.5ns時。這是因為過大的保持時間違例往往會導(dǎo)致布線時間增大,同時,在布線階段,工具未必能修復(fù)此類違例。
解決保持時間違例流程如下圖所示。按照此流程,要逐步關(guān)注以下幾個因素:
Clock Skew是否大于0.5ns
Hold Requirement是否為正(應(yīng)該為0)
WHS是否小于-0.4ns或THS是否小于-1000ns
Clock Uncertainty是否大于0.1ns
圖片來源 page 4, ug1292
這幾個指標(biāo)的具體數(shù)值可在時序報告中查到,如下圖所示。圖中,Path Type用于確定分析的是保持時間。
圖片來源 page 4, ug1292
Hold Requirement為正的可能情形出現(xiàn)在使用多周期路徑約束的時序路徑中。如下圖所示,時鐘使能信號EN使得路徑的Setup Requirement為3個時鐘周期,但Hold Requirement仍應(yīng)為0。
圖片來源 page 4, ug1292
在此情況下,應(yīng)采用如下圖所示的多周期路徑約束。其中的第2條約束是對hold的調(diào)整,卻往往容易被遺漏。對于-hold,它表示相對于缺省捕獲沿(圖中的Default hold),實(shí)際捕獲沿應(yīng)回調(diào)的時鐘周期個數(shù)。
對于過大的WHS或THS,應(yīng)在布線之前做一些優(yōu)化,盡可能地降低WHS和THS。為此,可在phys_opt_design階段采取如下圖所示的幾個措施。
其中方法(1)是在兩個同步時序元件之間插入與至相反的時鐘沿觸發(fā)的寄存器,將該路徑一分為二,該方法的前提是建立時間不會被惡化。方法(2)至方法(4)都是在路徑中插入LUT1。方法(2)只在WHS最大的路徑中插入LUT1;方法(3)則是在更多的路徑中插入LUT1;方法(4)則是在-directive為Explore的基礎(chǔ)上進(jìn)一步修正保持時間違例,等效于-directive Explore +-aggressive_hold_fix。
-
寄存器
+關(guān)注
關(guān)注
31文章
5359瀏覽量
120785 -
信號
+關(guān)注
關(guān)注
11文章
2797瀏覽量
76938 -
時鐘
+關(guān)注
關(guān)注
11文章
1740瀏覽量
131625
原文標(biāo)題:深度解析ug1292(4)
文章出處:【微信號:Lauren_FPGA,微信公眾號:FPGA技術(shù)驛站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論