當設計出現布線擁塞時,通常會導致布線延遲增大,從而影響時序收斂。布線擁塞程度可通過如下兩種方式獲取:
-布線階段的log文件中會顯示擁塞程度
-對于place_design或route_design生成的dcp文件,可通過如下命令獲取
生成的擁塞報告如下圖所示。要格外關注擁塞程度(Congestion Level)大于4的區域。
對于擁塞程度大于4的情形,可采用如下流程加以改善并降低布線延遲。在如下的案例中,可以看到布線延遲占到了總延遲的94%,據此,可斷定布線延遲是導致時序違例的根本原因。從布線結果看,在擁塞區域出現了繞線。
圖片來源:page 6, ug1292
圖片來源:page 6, ug1292
降低擁塞程度可改善布線質量。Xilinx建議采用如下方法以改善布線擁塞。
(1)當整體資源利用率達到70%~80%時(對于多die芯片,這個數值是指每個SLR的資源利用率),需要砍掉一些模塊以降低資源利用率。尤其要避免LUT/BRAM/DSP/URAM利用率同時出現大于80%的情形。如果BRAM/DSP/URAM這些Block利用率無法降低,那么要確保LUT利用率低于60%。
(2)執行place_design時,嘗試將-directive設置為AltSpreadLogic*或SSI_Spread*或將Implementation的策略設置為Congestion_*,如下圖所示。
(3)通過如下命令分析設計復雜度,找到設計中出現擁塞的模塊(Rent值大于0.65或AverageFanout大于4)。之后,對這些模塊實施模塊化綜合,其中的綜合策略設置為ALTERNATE_ROUTABILITY。
生成設計復雜度報告:
對擁塞模塊采用模塊化綜合技術:
(4)降低擁塞區域MUXF*和LUT-Combining的使用率,具體方法有時可通過report_qor_suggestions獲得。但采用模塊化綜合技術是一個值得一試的方法。
(5)在布線區域內非關鍵的高扇出網線上引入BUFG,可通過如下命令實現。
(6)從之前低擁塞的布線或布局結果中繼承DSP/BRAM/URAM的布局。這可通過如下腳本實現。
優化高扇出網線:
(1)在RTL層面,基于設計層次復制寄存器降低扇出,或者在opt_design階段通過-hier_fanout_limit選項降低扇出。
(2)在phys_opt_design(布局之后)階段通過-force_replication_on_nets對關鍵的高扇出網線通過復制寄存器降低扇出。
-
布線
+關注
關注
9文章
773瀏覽量
84360 -
ug1292
+關注
關注
0文章
3瀏覽量
2325
原文標題:深度解析ug1292(6)
文章出處:【微信號:Lauren_FPGA,微信公眾號:FPGA技術驛站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論