MAX_FANOUT在布局布線時有效嗎?

  • 2019 年 10 月 31 日
  • 筆記

上期內容:

Tips: 兩條命令獲取Package Delay

談到降低高扇出網線的方法,我們會想起綜合屬性MAX_FANOUT。它可以在程式碼中使用,也可以寫在XDC中。在XDC中的格式如下所示(點擊這裡複習:Vivado綜合屬性:MAX_FANOUT)。

set_property MAX_FANOUT 23

[get_nets nets_name]

既然是綜合屬性,那麼該屬性是不是只能在綜合階段使用呢?答案是否定的。該屬性可以在place_design階段起到作用,達到降低扇出的目的。如果你用過report_qor_suggestions命令,這個命令會生成一個RQSImplCommon.tcl的文件,該文件需要添加在opt_design的Tcl.Pre中。MAX_FANOUT有時就會出現在這個文件里。這也證明MAX_FANOUT在實現階段是可以用的。

再來說說place_design。在這一階段會有所謂的物理綜合(PSIP, Physical Synthesis in the Placer),如果某個網線的扇出大於MAX_FANOUT的設定值,PSIP就會執行暫存器複製,降低扇出。PSIP扇出優化的結果以如圖所示(圖片來源ug904, v2018.2)的報告顯示出來。但需要注意的時,要使MAX_FANOUT在place_design有效就必須使能PSIP的扇出優化。具體方法如下。

對於Vivado 2018.2,place_design的命令如圖所示(圖片來源ug835, v2018.2),注意其中紅色方框的選項-no_fanout_opt,當該選項被使用時,PSIP不會做扇出優化。

對於Vivado 2018.1及之前版本,place_design的命令如圖所示(圖片來源ug835, v2018.1),注意其中紅色方框的選項-fanout_out,當該選項被使用時,PSIP才會做扇出優化。

結論

-Vivado2018.2:直接使用place_design不能加-no_fanout_opt可保證MAX_FANOUT生效

-Vivado2018.1及之前版本:直接使用place_design並添加-fanout_opt可保證MAX_FANOUT生效

如果文章對你有收穫,歡迎轉發讚賞~