目录
为什么要创建多个runs?
如果创建多个runs?
runs的类型
相关的TCL命令
为什么要创建多个runs?
你有没有遇到过这种情况,我建立的一个Vivado项目,需要在不同的板子上使用,如果仅仅使用一个runs的话, 那么我必须创建两个Vivado项目,分别选择不同的fpga芯片,或者来回切换fpga芯片类型?
这都不是好的选择,我们可以通过创建多个runs来解决这个问题,且不仅解决这个问题?
如果创建多个runs?
如下图在design runs窗口下即可创建更多的runs:
点击上面的+号,进入下一个页面,选择创建什么类型的runs:
选择具体的类型后,例如创建综合和实现二者的runs,点击Next,可以选择配置综合runs:
继续配置实现runs:
继续指定运行的目录,运行的处理器个数等:
基本完成这个第二个runs的创建。如下开始运行起来:
runs的类型
runs可以有如下类型:
仅有综合的runs,仅有实现的runs,有综合和实现的runs等等;
每一个runs可以有不同的约束,不同的器件类型,以及不同的综合以及实现策略,这一点在上一个标题下也可以看出。
实现的runs是基于综合runs的,因此综合的runs是实现runs的父run,也即parent run。
相关的TCL命令
多个runs中只有一个runs处于active状态,也就是说只有一个处于有效状态,可以通过如下tcl命令让某一个runs处于active状态:
current_run [get_runs synth_1]
其中,synth_1就是其中的一个runs;
例如:当前第一个runs处于active状态,我可以通过相应的tcl命令来使另一个runs处于active状态:
current_run [get_runs synth_2]
可以看到如下变化了:
run的结果叫做design,因此可以通过如下tcl命令来查看当前design:
current_design
Runs也可以删除:
delete_run synth_2
如下,synth_2连带其子run一并删除:
INFO: [Vivado 12-3261] Dependent run, 'impl_2', will be deleted with parent run, 'synth_2'.
当然,上述的tcl命令都有相应的GUI方式来完成,对相应的runs进行右击,即可看到选项。