前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >借助Elaborated Design优化RTL代码

借助Elaborated Design优化RTL代码

作者头像
Lauren的FPGA
发布2020-10-27 10:31:00
1.6K0
发布2020-10-27 10:31:00
举报
文章被收录于专栏:Lauren的FPGALauren的FPGA

上期内容:(a-b)^2如何高效实现?

在Vivado FlowNavigator中有一个Elaborated Design,如下图所示,属于RTL Analysis这一步对应的设计。可能很多工程师都没有使用到,而实际上对于代码优化,它是很有帮助的。

通常情况下,我们总是习惯了打开综合后的设计,执行诸如

  • report_timing
  • report_timing_summary
  • report_design_analysis

等命令分析时序,却忽视了RTL代码层面的优化。通过这些命令找到关键路径之后,一个重要的步骤是检查这些路径上的逻辑单元是否很好地映射到FPGA器件中。如果没有,就要尝试通过修改RTL代码、使用综合属性(Synthesis Attribute)、设置综合选项、使用BlockLevel综合技术或者使用不同的综合策略优化RTL代码,使得在综合之后时序能够达到一个较好的结果。这对于逻辑级数较高的路径尤为重要。因为高逻辑级数的路径会对后期布局布线带来很大的压力,同时成为设计整体性能提升的瓶颈,更明显的是改善高逻辑级数路径的常用且有效的方法是插入流水寄存器以降低逻辑级数,这一工作在设计初期完成最为快捷,越是在设计后期越难以做这一工作。

在Vivado Project模式下,同时打开Synthesized Design和ElaboratedDesign。在Synthesized Design下对设计进行分析,找到设计的关键路径,生成相应的时序报告,如下图所示。选中图中的时序路径,按下F4,会生成该路径对应的Schematic视图,同时还可以看到路径上的逻辑单元(cell)和单元之间的连线(net)都已被选中。此时切换到Elaborated Design,按下F4,可看到这条路径在Elaborated Design下的Schematic视图。这时候就可以检查这条路径的RTL逻辑单元,尤其是注意执行了哪些操作、数据位宽是否合理。

文 | Lauren 图 | Lauren

Copyright @ Lauren的FPGA

转载事宜请私信 | 获得授权后方可转载

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

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

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

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

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