用Elaborated Design优化RTL的代码

描述

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

RTL

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

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逻辑单元,尤其是注意执行了哪些操作、数据位宽是否合理。

RTL
责任编辑人:CC

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

全部0条评论

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

×
20
完善资料,
赚取积分