在分析place_design生成的dcp時,就要開始關注保持時間違例,尤其是當WHS < -0.5ns時。這是因為過大的保持時間違例往往會導致布線時間增大,同時,在布線階段,工具未必能修復此類違例。
解決保持時間違例流程如下圖所示。按照此流程,要逐步關注以下幾個因素:
Clock Skew是否大于0.5ns
Hold Requirement是否為正(應該為0)
WHS是否小于-0.4ns或THS是否小于-1000ns
Clock Uncertainty是否大于0.1ns

圖片來源 page 4, ug1292
這幾個指標的具體數值可在時序報告中查到,如下圖所示。圖中,Path Type用于確定分析的是保持時間。

圖片來源 page 4, ug1292
Hold Requirement為正的可能情形出現在使用多周期路徑約束的時序路徑中。如下圖所示,時鐘使能信號EN使得路徑的Setup Requirement為3個時鐘周期,但Hold Requirement仍應為0。

圖片來源 page 4, ug1292
在此情況下,應采用如下圖所示的多周期路徑約束。其中的第2條約束是對hold的調整,卻往往容易被遺漏。對于-hold,它表示相對于缺省捕獲沿(圖中的Default hold),實際捕獲沿應回調的時鐘周期個數。
對于過大的WHS或THS,應在布線之前做一些優化,盡可能地降低WHS和THS。為此,可在phys_opt_design階段采取如下圖所示的幾個措施。
其中方法(1)是在兩個同步時序元件之間插入與至相反的時鐘沿觸發的寄存器,將該路徑一分為二,該方法的前提是建立時間不會被惡化。方法(2)至方法(4)都是在路徑中插入LUT1。方法(2)只在WHS最大的路徑中插入LUT1;方法(3)則是在更多的路徑中插入LUT1;方法(4)則是在-directive為Explore的基礎上進一步修正保持時間違例,等效于-directive Explore +-aggressive_hold_fix。
-
寄存器
+關注
關注
31文章
5609瀏覽量
130032 -
信號
+關注
關注
12文章
2914瀏覽量
80171 -
時鐘
+關注
關注
11文章
1977瀏覽量
135032
原文標題:深度解析ug1292(4)
文章出處:【微信號:Lauren_FPGA,微信公眾號:FPGA技術驛站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
CGI Studio如何加速HMI設計流程
移植E203到Genesys2開發板時遇到時序問題的常見原因
E203內核移植到FPGA開發板時出現時序違例的解決方式
時序約束問題的解決辦法
關于綜合保持時間約束不滿足的問題
是誰偷走了我的時間?RTC時間異常的秘密
賽思高保持小型時鐘模塊:精確時間的守護者
RK3128 Android 7.1 進入深度休眠流程分析
一文看懂芯片的設計流程
解決保持時間違例流程
評論