生成時序報告后,如何閱讀時序報告并從時序報告中發現導致時序違例的潛在問題是關鍵。 首先要看Design Timing Summary在這個Summary里,呈現了Setup、Hold和Pulse Width的總體信息,但凡WNS、WHS或WPWS有一個小于0,就說明時序未收斂。
找到時序最糟糕的路徑如果時序未收斂,并不需要分析所有未收斂的路徑,而是先關注時序最糟糕的路徑,先優化這些路徑,有可能優化這些路徑之后,這些路徑收斂了,同時其他路徑也能夠收斂。只需要點擊上圖中WNS之后的數字,即可顯示這些最糟糕的路徑,如下圖所示。
分析時序最糟糕的路徑只需要雙擊上圖中的路徑,就能顯示該路徑對應的時序報告的詳細信息,如下圖所示。在這個報告中,首先可以看到Slack,其值為負,表明時序未收斂。接著看Source和Destination。通常,Source為時鐘端口,如圖中觸發器的C端口;Destination為數據端口,如圖中觸發器的D端口。從Source和Destination還可以看到起始cell和終止cell的驅動時鐘,從而可判定該路徑是否為跨時鐘域路徑。這一點也可以從Requirement部分給出的信息加以驗證。圖中Requirement顯示均為同一時鐘,故此處為單一時鐘下的時序路徑。緊接著Path Type為Setup,表明該報告為建立時間路徑報告,其后的信息Max at Slow Process Corner其中的Slow意味著High Temperature Low Voltage。如果是Path Type為Hold,表明該報告為保持時間路徑報告,其后的信息為Min at Fast Process Corner,Fast意味著Low Temperature High Voltage。對于Requirement一欄,一定要看Requirement是否合理,例如,如果Requirement為1ns,那么顯然是不合理的,這說明時序約束本身有問題。其后的Data Path Delay由兩部分構成,邏輯延遲(對應圖中的logic)和線延遲(對應圖中的route)。這一欄同時顯示了每部分延遲占的百分比。對于7系列FPGA,如果邏輯延遲超過了25%,那么說明時序違例的主要原因是邏輯級數太高了;對于UltraScale系列FPGA,這個指標則為50%。對于7系列FPGA,如果線延遲超過了75%,那么說明時序違例的主要原因是線延遲太高了;對于UltraScale系列FPGA,這個指標則為50%。對于Logic Levels,通常認為1個LUT+1根net的延遲為0.5ns,據此來評估邏輯級數是否過高。例如如果時鐘為100MHz,那么邏輯級數在10/0.5=20左右是可以接受的。對于Clock Path Skew,如果該值超過了0.5ns,就要關注;對于Clock Uncertainty,如果該時鐘是由MMCM或PLL生成,且Discrete Jitter超過了50ps,就要回到Clocking Wizard界面嘗試修改參數改善Discrete Jitter。
對于跨時鐘域路徑,如下圖所示,從Requirement部分信息可以看到源時鐘和目的時鐘是不同的,即可表明該路徑為跨時鐘域路徑。這里Requirement為1ns,顯然是不合理的,這說明跨時鐘域路徑的約束不合理。
總體而言,打開時序報告,要看路徑Source、Destination、Requirement、Data Path Delay、Logic Levels、Clock Path Skew和Clock Uncertainty。還有一點至關重要,時序分析在綜合之后就要開始分析,而不是等到布局布線之后再看。綜合之后著重分析的是邏輯級數、資源利用率和控制集。
-
端口
+關注
關注
4文章
990瀏覽量
32206 -
時序
+關注
關注
5文章
392瀏覽量
37427
原文標題:時序報告要看哪些指標
文章出處:【微信號:Lauren_FPGA,微信公眾號:FPGA技術驛站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論