MAX_FANOUT在布局布线时有效吗?
- 2019 年 10 月 31 日
- 筆記
上期内容:
谈到降低高扇出网线的方法,我们会想起综合属性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生效
如果文章对你有收获,欢迎转发赞赏~