深度解析ug1292:降低布线延迟

电子说

1.3w人已加入

描述

当设计出现布线拥塞时,通常会导致布线延迟增大,从而影响时序收敛。布线拥塞程度可通过如下两种方式获取:

-布线阶段的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对关键的高扇出网线通过复制寄存器降低扇出。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分