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

版权声明:本博客内容来自于个人学习过程中的总结,参考了互联网、数据手册、帮助文档、书本以及论文等上的内容,仅供学习交流使用,如有侵权,请联系,我会重写!转载请注明地址! https://blog.csdn.net/Reborn_Lee/article/details/85222440

目录

 

Understanding Project Mode and Non-Project Mode

Project Mode

Non-Project Mode

Feature Differences

Command Differences


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
Flow Element Project Mode Non-Project Mode
Design Source File Management Automatic Manual
Flow Navigation Guided Manual
Flow Customization Unlimited with Tcl commands Unlimited with Tcl commands
Reporting Automatic Manual
Analysis Stages Designs and design checkpoints Designs and design checkpoints

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

猜你喜欢

转载自blog.csdn.net/Reborn_Lee/article/details/85222440