布局
全局布局
在全局布局中,尤其是在 PSIP 中,不同的優化中會發生一些復制,包括:
關鍵單元優化:適用于含負載數 <=30 的關鍵信號線的復制
扇出優化:適用于含負載數大于 30 且小于等于 100 的關鍵信號線的復制
超高扇出優化:對驅動高扇出信號線(扇出 > 1000,裕量 < 2.0 ns)的寄存器進行復制。
按 SLR 進行復制優化:對驅動其他 SLR 內的關鍵負載的 FF 進行復制
動態/靜態區域接口信號線復制:對 DFX 設計的每個靜態區域/動態區域的驅動程序進行復制
注釋:在 Versal 默認流程和 Explore 流程中已停用
除上述優化外,還可以通過下列屬性(按優先順序列示)來影響高扇出信號線的初始布局:
MAX_FANOUT:該屬性會將每個驅動程序的扇出限制告知工具,并通過指示布局器了解扇出限制來指引該工具對高扇出的負載進行分配。此屬性可同時應用于 FF 與 LUT 驅動程序。當 MAX_FANOUT 值小于約束的信號線的實際扇出時,將對該信號線進行寄存器復制評估。值得注意的是,僅當時序會得到改善的情況下,才會發生優化。
MAX_FANOUT_MODE:該屬性會指定強制執行扇出限制的方式。您可基于物理器件屬性(CLOCK REGION、SLR、MACRO)來強制執行復制。如果設置該屬性,那么會將高扇出信號線的負載集中到同一個 SLR 中或采用您為該屬性設置的任意值。支持該屬性的宏 (MACRO) 包括:塊 RAM、UltraRAM 和 DSP。
FORCE_MAX_FANOUT:該屬性會被應用于特定信號線,以限制復制優化后信號線的最大物理扇出。借助該屬性,即可在 PSIP 期間強制進行復制優化,并且該工具不考慮時序因素。

圖 9:在此示例中,將 MAX_FANOUT_MODE 屬性設置為 MACRO 并將 FORCE_MAX_FANOUT 設置為 1
針對每項 MACRO 負載,驅動程序均已執行復制。請注意,MAX_FANOUT_MODE 優先于 FORCE_MAX_FANOUT 屬性。
布局后優化
以下操作在布局后流程中完成:
BUFG 插入階段——在布局后操作期間還包含 BUFG 插入階段,在此期間,工具會將高扇出信號線推廣到全局布線。在此階段,布局器會自動將高扇出信號線布線到任何可用的全局布線走線上。滿足以下條件的信號線都會被納入插入的考量范圍:Versal 中扇出 > 10,000 的信號線,以及 UltraScale/UltraScale+ 中扇出 > 1,000 并且所驅動的控制信號裕量大于 1 ns 的信號線。這是時序驅動的插入,僅當插入有助于改善時序時才會發生。
在 place_design 命令中使用 -no_bufg_opt 即可關閉此優化。
物理優化
在物理優化 (phys_opt_design) 期間,有若干優化可用于應對高扇出信號線,其中部分優化默認已啟用:
高扇出優化
在該流程中默認啟用此項優化。針對此優化,若高扇出信號線所含負時序裕量在 WNS 的某一百分比范圍內,則會被納入復制的考量范疇。僅當復制有助于改善時序時,才會發生復制。
-force_replication_on_nets
“force replication on nets”(在信號線上強制復制)選項可用于強制對任意指定信號線進行驅動程序復制,與該信號線的時序裕量無關。如果您在布線后注意到高扇出信號線變得非常關鍵,那么此優化可能很有用。您可以在該特定信號線上再次運行物理優化并強制復制,以查看是否有所幫助。
-directive AggressiveFanoutOpt
物理優化中另有一個選項是 AggressiveFanoutOpt 指令。在某些情況下,物理優化無法解決所有關鍵的高扇出信號線。因此,建議您搭配該指令重新運行物理優化,以便進行更為激進的優化。
-lut_opt
該選項旨在通過移動或復制 LUT 來減少路徑延遲。
如果您熟悉先前被稱為“High fanout optimization”(高扇出優化)和“Very high Fanout optimization”(超高扇出優化)的舊優化,在最新架構中不再支持這些舊優化。而是改為采用 -interconnect_retime (Vivado 2022.1+) 選項和 -lut_opt (Vivado 2023.1+) 選項來代替這些優化。
-iphys_opt_design
此命令描述了由 phys_opt 執行的特定優化,如果您在 write_iphys_opt_tcl 中包含 -place,那么此命令也可以寫出由布局完成的優化。它可在不同階段用于應用優化。例如,該命令允許在布局前設計上執行通常在 phys_opt 之后執行的各項優化。換言之,該命令可幫助您通過 Tcl 復用/重復優化。

圖 10:此流程圖顯示了 iphys_opt 命令的正常使用順序
示例:
基線運行輪次:

復用 iphys_opt_tcl 的輪次:

請參閱 UG835 以了解有關 iphys_opt_design、write_iphys_opt_tcl 和 read_iphys_opt_tcl 的更多信息:
https://docs.amd.com/r/en-US/ug835-vivado-tcl-commands/write_iphys_opt_tcl
物理優化期間執行的優化取決于運行物理優化的實現階段。根據物理優化是在布局后還是布線后運行的,部分其他可用優化(默認優化除外)可能會發生更改。默認如果在布局后運行物理優化,則會執行“Fanout optimization”(扇出優化)和“Very High Fanout Optimization”(超高扇出優化),但布線后運行物理優化時,這兩個選項則不可用。
如需了解更多相關信息,請參閱下表:

圖 11:布局后和布線后物理優化可用的選項
-
寄存器
+關注
關注
31文章
5608瀏覽量
129966 -
信號線
+關注
關注
2文章
186瀏覽量
22222 -
時序
+關注
關注
5文章
406瀏覽量
38853
原文標題:開發者分享|高扇出信號線優化技巧(下)
文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發者社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
Altium Designer信號線束的使用
電源線的直徑可以和信號線的直徑相同嗎?
信號線是什么線
使用總線別名(Bus Alias)實現信號線束的功能
差分信號線的選擇與處理
信號線和光纖線的區別是什么
信號線和屏蔽線有什么區別
高扇出信號線優化技巧(下)
評論