前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深度解析ug1292(6)

深度解析ug1292(6)

作者头像
Lauren的FPGA
发布2019-10-30 19:32:08
1.2K0
发布2019-10-30 19:32:08
举报
文章被收录于专栏:Lauren的FPGALauren的FPGA

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Lauren的FPGA 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档