【 Vivado 】理解工程模式和非工程模式

Understanding Project Mode and Non-Project Mode

Vivado设计套件有两个主要使用模型:项目模式和非项目模式。 可以通过Vivado IDE或通过Tcl命令和批处理脚本开发和使用项目模式和非项目模式。 但是,Vivado IDE为项目模式提供了许多好处,例如Flow Navigator图形工作流程界面。 Tcl命令是运行非项目模式的最简单方法。

Project Mode

Vivado Design Suite利用基于项目的架构来组装,实现和跟踪设计的状态。 这称为项目模式。 在项目模式下,Vivado工具可自动管理您的设计流程和设计数据。

Project Mode的主要优势在于Vivado Design Suite管理整个设计过程,包括依赖关系管理,报告生成,数据存储等。

在项目模式下工作时,Vivado Design Suite会在磁盘上创建目录结构,以便在本地或远程管理设计源文件,并管理源文件的更改和更新。

项目基础结构还用于管理自动综合和实施运行,跟踪运行状态以及存储综合和实施结果和报告。

例如:

•   如果在综合后修改HDL源,Vivado Design Suite会将当前结果标识为过时,并提示您进行重新合成。

•   如果修改设计约束,Vivado工具会提示您重新综合,重新实现或两者兼而有之。

•   布线完成后,Vivado工具会自动生成时序,DRC,方法和电源报告。

•   只需在Vivado IDE中单击即可运行整个设计流程。

Non-Project Mode

或者,您可以选择内存编译流程,您可以在其中自行管理源和设计过程,称为非项目模式。 在非项目模式下,您可以使用Tcl命令或脚本自行管理设计源和设计过程。 关键优势在于您可以完全控制流程的每个步骤。

在非项目模式下工作时,源文件从其当前位置读取,例如从修订控制系统读取,并且设计通过内存中的流程进行编译。

您可以使用Tcl命令单独运行每个设计步骤。 您还可以使用Tcl命令设置设计参数和实现选项。

您可以在设计过程的任何阶段保存设计检查点并创建报告。 每个实施步骤都可以定制,以满足特定的设计挑战,您可以在每个设计步骤后分析结果。 此外,您可以随时打开Vivado IDE进行设计分析和约束分配。

在非项目模式下,使用Tcl命令控制每个设计步骤。

例如:

•   如果在综合后修改HDL文件,则必须记住重新运行综合以更新内存中的网表。

•   如果在布线后需要时序报告,则必须在布线完成时显式生成时序报告。

•   使用Tcl命令和参数设置设计参数和实现选项。

•   您可以使用Tcl在设计过程的任何阶段保存设计检查点并创建报告。

随着设计流程的进展,设计的表示将保留在Vivado Design Suite的内存中。 非项目模式会在每次会话后丢弃内存设计,并仅将数据写入您指示的磁盘。

Feature Differences

在项目模式下,Vivado IDE会跟踪设计的历史记录并存储相关的设计信息。 但是,由于许多功能都是自动化的,因此您对默认流程的控制较少。 例如,每次运行仅生成一组标准报告文件。 但是,通过Tcl命令或脚本,您可以在项目模式下自定义工具的流程和功能。

The following automated features are only available when using Project Mode:

• Out-of-the-box design flow
• Easy-to-use, push-button interface
• Powerful Tcl scripting language for customization
• Source file management and status
• Automatically generated standard reports
• Storage and reuse of tool settings and design configuration
• Experimentation with multiple synthesis and implementation runs
• Run results management and status

非项目模式,更像是一种编译方法,您可以完全控制通过Tcl命令执行的每个操作。 这是一个完全可定制的设计流程,适合寻求控制和批处理的特定设计人员。 所有处理都在内存中完成,因此不会自动生成任何文件或报告。 每次编译设计时,都必须定义所有源,设置所有工具和设计配置参数,启动所有实现命令以及生成报告文件。

这可以使用Tcl运行脚本来完成,因为项目不是在磁盘上创建的,源文件保留在其原始位置,并且设计输出仅在您指定的时间和地点创建。 此方法为您提供Tcl命令的所有功能,并完全控制整个设计过程。 许多用户更喜欢这种批量编译风格与工具和设计数据的交互。

Table 2-1: Project Mode versus Non-Project Mode Features
 

Project Mode versus Non-Project Mode Features


Command Differences

Tcl命令因您使用的模式而异,并且每种模式生成的Tcl运行脚本都不同。 在非项目模式下,所有操作和工具设置都需要单独的Tcl命令,包括设置工具选项,运行实施命令,生成报告和编写设计检查点。 在项目模式中,包装命令用于各个综合,实现和报告命令。

例如,在“项目模式”中,使用add_files Tcl命令将源添加到项目以进行管理。 可以将源复制到项目中以在项目目录结构中维护单独的版本,也可以远程引用。 在非项目模式下,使用read_verilog,read_vhdl,read_xdc和read_ * Tcl命令从当前位置读取各种类型的源。

在项目模式下,launch_runs命令使用预配置的运行策略启动工具并生成标准报告。 这样可以合并实施命令,标准报告,运行策略的使用和运行状态跟踪。 但是,您也可以在设计过程的每个步骤之前或之后运行自定义Tcl命令。 在项目中自动存储和管理运行结果。 在非项目模式下,必须运行单个命令,例如opt_design,place_design和route_design。

许多Tcl命令可以在任一模式下使用,例如报告命令。 在某些情况下,Tcl命令特定于项目模式或非项目模式。 创建脚本时,不得混用特定于一种模式的命令。 例如,如果您使用的是项目模式,则不得使用基本级命令,例如synth_design,因为这些命令特定于非项目模式。 如果在项目模式下使用非项目模式命令,则不会使用状态信息更新数据库,也不会自动生成报告。

提示:项目模式包括GUI操作,这导致在大多数情况下执行Tcl命令。 Tcl命令出现在Vivado IDE Tcl控制台中,也可以在vivado.jou文件中捕获。 您可以使用此文件开发用于任一模式的脚本。

Figure 2-3 shows the difference between Project Mode and Non-Project Mode Tcl commands.


内容来自于UG892

版权声明:本文为CSDN博主「Reborn Lee」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Reborn_Lee/article/details/85222440

推荐阅读