Vivado提供了丰富的Implementation Strategy,如下图所示。这使得扫描策略成为时序收敛的一种方法。那么如何快速地创建扫描策略呢?
一种方法是用Tcl脚本,只针对place_design进行扫描,对扫描结果进行分析,获取其中最好的结果作为布线阶段的输入文件,然后再对route_design进行扫描。
这种方式适用于Non-Project模式,同时要求用户对Tcl脚本比较熟悉。如果工程师更习惯于图形用户界面,在Project模式下工作,Vivado也提供了很好的操作方式。
如下图所示,点击Design Runs窗口中的“+”。
之后会弹出如下图所示窗口。在这个窗口中连续点击“+”,那么点击几次就会出现几个新的Design Run,同时这些Run的Strategy彼此不同,这就免去了工程师逐个选取Strategy的麻烦。
那么,如果要对某个阶段统一添加Hook Script,比如在place_design之前要添加run_post_opt.tcl,这时用Tcl脚本操作更为便捷。
如果不知道需要哪些Tcl命令,可先对其中一个Run执行上述操作,这样在Tcl Console窗口中就会显示相应的命令,然后再用下面的脚本就可以快速完成对每个Run的同样操作。
这里的核心是通过get_runs获取所有的Run。
其实创建Run用到的Tcl命令是create_run,如下图所示。结合这个命令,我们可以完全用Tcl脚本完成上述操作。
首先,用list_property_value获取当前版本的Vivado支持的ImplementationStrategy,然后从中选取目标策略也就是待扫描的策略,通过Tcl脚本创建Strategy。
总之,无论是Project模式还是Non-Project模式,都可以通过Tcl脚本创建扫描策略。
Project模式易于操作,同时可以方便地对扫描结果进行对比。
Non-Project便于用于更深入的管理,例如只扫描某个阶段的策略。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !