当前位置: 代码迷 >> 综合 >> Vivado 随笔(4) 创建及管理多个Runs?
  详细解决方案

Vivado 随笔(4) 创建及管理多个Runs?

热度:51   发布时间:2023-12-12 20:28:42.0

目录

 

为什么要创建多个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进行右击,即可看到选项。