请问如何快速地创建扫描策略呢?

描述

Vivado提供了丰富的Implementation Strategy,如下图所示。这使得扫描策略成为时序收敛的一种方法。那么如何快速地创建扫描策略呢?

TC1

一种方法是用Tcl脚本,只针对place_design进行扫描,对扫描结果进行分析,获取其中最好的结果作为布线阶段的输入文件,然后再对route_design进行扫描。

这种方式适用于Non-Project模式,同时要求用户对Tcl脚本比较熟悉。如果工程师更习惯于图形用户界面,在Project模式下工作,Vivado也提供了很好的操作方式。

如下图所示,点击Design Runs窗口中的“+”。

TC1

之后会弹出如下图所示窗口。在这个窗口中连续点击“+”,那么点击几次就会出现几个新的Design Run,同时这些Run的Strategy彼此不同,这就免去了工程师逐个选取Strategy的麻烦。

TC1

那么,如果要对某个阶段统一添加Hook Script,比如在place_design之前要添加run_post_opt.tcl,这时用Tcl脚本操作更为便捷。

如果不知道需要哪些Tcl命令,可先对其中一个Run执行上述操作,这样在Tcl Console窗口中就会显示相应的命令,然后再用下面的脚本就可以快速完成对每个Run的同样操作。

这里的核心是通过get_runs获取所有的Run。

TC1

其实创建Run用到的Tcl命令是create_run,如下图所示。结合这个命令,我们可以完全用Tcl脚本完成上述操作。

TC1

首先,用list_property_value获取当前版本的Vivado支持的ImplementationStrategy,然后从中选取目标策略也就是待扫描的策略,通过Tcl脚本创建Strategy。

TC1

总之,无论是Project模式还是Non-Project模式,都可以通过Tcl脚本创建扫描策略。

Project模式易于操作,同时可以方便地对扫描结果进行对比。

Non-Project便于用于更深入的管理,例如只扫描某个阶段的策略。






审核编辑:刘清

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

全部0条评论

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

×
20
完善资料,
赚取积分