文档参考888

Vivado 设计流程概述

**

声明:本文仅供参考,仅供参考,仅供参考
建议:阅读英文原版
警告:产生的ERROR,概不负责

**

Working in Project Mode and Non-Project Mode

一些用户更喜欢使用设计工具来自动管理他们的设计流过程和设计数据,而另一些用户则更喜欢管理源代码和处理进程。Vivado设计套件使用一个项目文件(.xpr)和目录结构来管理设计源文件,存储不同的综合和实现运行的结果,并通过设计流程跟踪项目状态。这种对设计数据、流程和状态的自动化管理需要一个项目基础设施。因此,Xilinx将这种流称为Project Mode(项目模式)。
其他用户更喜欢运行FPGA设计过程,这更像是一个源文件编译,以简单地编译源文件,实现设计,并报告结果。此编译样式流称为Non-Project Mode(非项目模式)。Vivado设计套件很容易容纳这两种使用模型。
这两个流都利用一个项目结构来编译和管理设计。主要的区别是,非项目模式在内存中处理整个设计。没有任何文件被写入磁盘。而项目模式则在磁盘上创建和维护项目目录结构,以管理设计源、结果以及项目设置和状态。下面简要概述了项目模式和非项目模式。有关这些设计模式的更完整的描述,以及每种设计模式的特性和好处,请参阅Vivado设计套件用户指南:设计流程概览(UG892)。

Non-Project Mode

此使用模型适用于不希望Vivado工具管理其设计数据或跟踪其设计状态的基于脚本的用户。Vivado工具只是读取各种源文件,并通过内存中的整个流来编译设计。在实现过程的任何阶段,您都可以生成各种报告、运行设计规则检查(DRC)和编写设计检查点。在整个流中,您可以在Vivado IDE中打开内存中的设计,或任何保存的设计检查点,以进行设计分析或网表/约束修改。但是,在运行非项目模式时,源文件无法在IDE中进行修改。同样重要的是,这种模式不启用基于项目的特性,如源文件和运行管理、交叉探测回源文件、设计状态报告等。基本上,每次在磁盘上更新源文件时,您必须了解它并重新加载设计。
在非项目模式中没有创建默认的报告或中间文件。您必须使用Tcl命令直接创建报告或设计检查点。

Project Mode

这个使用模型是用于那些希望使用Vivado工具来管理整个设计过程的用户,包括诸如源文件、约束和结果管理、集成IP设计以及交叉探测回源代码等特性。在项目模式下,Vivado工具将创建一个目录来管理设计源文件、IP数据、合成和实现运行结果以及相关报告。Vivado设计套件可管理并报告源文件的状态、配置和设计的状态。您可以创建和配置多个运行,以探索约束或命令选项。在VivadoIDE中,您可以交叉探测实现结果回到RTL源文件。您还可以使用Tcl命令编写整个流的脚本,并根据需要打开Vivado IDE。

Using Tcl Commands

Tcl命令和脚本编写方法因所使用的设计流程而异。当使用非项目模式时,将使用read_verilog、read_vhdl、read_edif、read_ipread_xdc命令加载源文件。Vivado设计套件创建了一个内存中的设计数据库,以传递给综合、仿真和实现。在使用项目模式时,您可以使用“create_project(创建项目), add_files(添加文件), import_files(导入文件),和“添加目录(add_directories)”命令来创建管理源文件和跟踪设计状态所需的项目基础设施。用一个称为launch_runs的all-inclusive(全包)命令替换批处理流中的单个“atomic”命令、 synth_design, opt_design, place_design, route_design, and write_bitstream。launch_runs命令将atomic命令与其他命令组合在一起,以生成默认报告并跟踪运行状态。为项目模式产生的Tcl运行脚本与非项目模式不同。本教程介绍了项目模式和非项目模式,以及Vivado IDE。
本教程中讨论的许多分析特性将在其他教程中更详细地介绍。这里并不表示每个命令或命令选项。要查看工具中提供的整个Tcl命令列表,请参考《Vivado设计套件Tcl命令参考指南》(UG835)。
本教程包含两个可以独立执行的labs。

实验1:使用非项目设计流程,通过示例运行脚本来实现bft设计。
•在每个步骤中查看各种报告。
•查看vivado.log文件。
•写design checkpoints。
•在综合后打开Vivado IDE,以查看时序约束定义和I/O planninga,并演示更新约束的方法。	
•打开已实现的DCP,以分析timing, power, utilization androuting(时序、功耗、利用率和路由情况)。
实验2:使用基于项目的设计流程创建一个新的项目。
•完成使用VivadoIDE实现bft设计。在每个步骤中查看各种报告。
•打开综合设计,并查看时序约束定义、I/O规划和设计分析。
•打开已实现的设计,以分析时间、功率、资源利用率、路由和交叉探测。

Tutorial Design Description

本教程中使用的示例设计由一个名为bft的小设计组成。在bft设计中有几个VHDL和Verilog源文件,以及一个XDC约束文件。设计目标是xc7k70T设备。一个小的设计被用来允许教程以最小的硬件需求运行,并允许及时完成教程,以及最小化数据大小。

Hardware and Software Requirements

本教程要求安装2020.1 Vivado设计套件软件发行版本或更高版本。以下部分列表描述了Vivado设计套件在x86和x86-64处理器架构上支持的操作系统:请参见Vivado设计套件用户指南:发布说明、安装和许可,以获得系统和软件需求的完整列表和描述(UG973)。

Preparing the Tutorial Design Files

您可以在以下位置的Vivado设计套件示例目录中找到本教程的文件:<Vivado_install_area>/Vivado//examples/Vivado_Tutorial您还可以随时提取所提供的ZIP文件,以便将教程文件写入本地目录,或者将文件恢复到它们的初始条件。
将软件安装中的ZIP文件内容提取到任何可写可访问的位置。<Vivado_install_area>/Vivado//examples/Vivado_Tutorial.zip所提取的Vivado_Tutorial目录在本教程中被称为<Extract_Dir>。
注意:您将在使用本教程时修改本教程的设计数据。每次开始本教程时,您都应该使用原始Vivado_Tutorialdirectory的新副本。

Lab 1: Using the Non-Project Design Flow

Introduction

本lab主要于非项目模式和相关的Tcl命令。

Step 1: Examine the Example Script

1.在文本编辑器中打开示例脚本:<Extract_Dir>/Vivado_Tutorial/create_bft_kintex7_batch.tcl,,并查看不同的步骤。
第0步:定义输出目录位置。
第1步:设置设计来源和约束条件。
第2步:运行综合,报告利用率和时序估计,编写检查点设计。
第3步:运行placement和logic optimization,report utilization and timing estimates, write checkpoint design.(报告利用率和时序估计,编写检查点设计)。
步骤4:运行路由器(Run router),,报告实际利用率和时序,编写检查点设计,运行DRC,写入日志和xdc。
步骤5:生成bitstream。
请注意,许多Tcl命令都被注释掉了。您将手动运行它们,一次一个。
2.打开示例脚本,因为您将在指导中从其中复制和粘贴命令。

Step 2: Starting Vivado with the Example Design

在Linux上:
1、更改为存储实验的目录:cd<Extract_Dir>/Vivado_Tutorial
2、启动vivado®设计套件Tcl shell,并source一个Tcl脚本来创建教程设计:

vivado -mode tcl -source create_bft_kintex7_batch.tcl

在Windows上。
1、Start > All Programs > Xilinx Design Tools > Vivado > Vivado Tcl Shell
注意:你的vivado设计套件安装可能被称为Xilinx Design Tools在start菜单上。
2、在Tcl shell中,更到存储实验的目录:
Vivado% cd <Extract_Dir>/Vivado_Tutorial
3、source一个Tcl脚本来创建教程设计:Vivado% source create_bft_kintex7_batch.tcl
在source脚本完成后,Vivado设计套件Tcl shell,以下称为Tclshell,将显示Tcl提示符:Vivado%
在这里插入图片描述
您可以从Tcl提示符中输入其他Tcl命令。

Step 3: Synthesizing the Design

1、将create_bft_kintex7_batch.tcl脚本中的synth_design命令复制并粘贴到Tclshell中,然后等待综合完成。您可以通过单击鼠标右键,使用弹出菜单粘贴到Tclshell中。注意:示例脚本中的命令是一个注释。不要复制前导的“#”字符,否则您的命令也将被解释为注释。
2、检查正在滚动的综合报告。
3、当Vivado Tcl提示符返回时,复制并粘贴write_checkpoint,report_timing_summary, report_power, report_clock_interaction, and report_high_fanout_nets综合后的命令。
在这里插入图片描述

4、打开另一个窗口,以查看在输出目录中创建的文件。在Windows上,使用文件浏览器可能更容易。
<Extract_Dir>/Vivado_Tutorial/Tutorial_Created_Data/bft_output
5、使用文本编辑器打开我们重新创建的各种报告(*.rpt)文件。

Step 4: Launching the Vivado IDE

即使没有在磁盘上创建Vivado项目,内存设计也可以在工具中使用,所以您可以从Tcl shell打开Vivado IDE来查看设计。
非项目模式允许在设计过程的各个阶段使用Vivado IDE。当前的网表和约束将被加载到IDE中的内存中,从而支持分析和修改。对逻辑或约束的任何更改都存在在内存中,并传递给下游工具。这与需要保存和重新加载文件的ISE工具是一个完全不同的概念。
使用start_gui命令打开IDE。Vivado% start_gui
Vivado IDE为您的使用提供了设计可视化和探索功能。从VivadoIDE中,您可以对设计执行进一步的分析和约束操作。
在这里插入图片描述

提示:要停止GUI并返回到Vivado设计套件Tclshell,请使用stop_gui命令。如果您使用VivadoIDE中的File>Exit命令,那么您将完全退出Vivado工具。
由于设计中没有处于非项目模式的项目,因此Vivado IDE不启用源文件或运行管理。您正在有效地分析内存设计中的现状。Vivado Flow Navigator和其他基于项目的命令在非项目模式中也不可用。

Step 5: Defining Timing Constraints and I/O Planning

在 implementation之前,您必须经常为设计定义 timing and physical constraints(时序和物理约束)。Vivado工具允许您从约束文件中加载约束,或者使用IDE交互式地输入约束。
Defining Timing Constraints
1、打开时序约束窗口:Window > Timing Constraints,如下图所示:
在这里插入图片描述

不同类型约束的树状视图显示在时序约束窗口的左侧。这是一个可以快速定义的时序约束菜单。请注意,在“ Timing Constraints”窗口右侧的定时约束电子表格中显示的两个时钟约束,wbClk和bftClk。可以通过在电子表格中直接编辑当前定义的约束的值来修改它们。
2、在“ Timing Constraints”窗口的左侧树形视图中,双击“clock”类别下的“Create Clock”,如图所示。注意:如果需要,可以通过单击+来展开时钟类别。
此时将打开“创建时钟”向导,如下图所示,以帮助您定义时钟约束。请注意,底部的Tcl命令行显示了将要执行的XDC命令。此时不要创建或修改任何时间约束。
在这里插入图片描述

3、单击“取消”。
4、通过单击窗口选项卡中的X,可以关闭“Timing Constraints”窗口。Vivado设计套件为设计分析和约束分配提供了各种特性。其他教程也详细介绍了这些特性,它们只在这里提到。请随意检查工具菜单下的一些功能。
I/O Planning
Vivado具有一套执行和验证I/O引脚assignments的全面能力。这些内容在 I/O Planning Tutorial有更详细的介绍。
1.通过从“ Layout Selector”下拉菜单中选择 I/O Planning,打开I/O规划视图布局
2.如果package窗口没响应,则设置为活动视图。注意:如果package窗口未打开,可以使用主菜单中的“Windows > Package”命令打开。
在这里插入图片描述
在这里插入图片描述

5、在“package”窗口中,双击以选择已放置的I/O端口,显示为package pin.的橙色块。
6、将选定的I/O端口拖动到同一I/O组中的另一个引脚位置。
7、检查I/O端口窗口,查看端口名称和package pin。
8、检查在“I/O端口属性”窗口中显示的数据。单击窗口底部的每个选项卡。
9、记住移动端口的端口名称和站点。如有必要,请将它们写下来。在实现后,您将在XDC文件中查找所放置端口的LOC约束。

Step 6: Exporting the Modified Constraints

可以输出修改后的约束,以供以后使用。您还可以保存包含最新更改的设计检查点。您将在本教程中探讨设计检查点。
重要提示:Vivado设计套件不支持NCF/UCF约束。您应该将现有的UCF约束迁移到XDC格式。有关更多信息,请参阅ISE to Vivado设计套件迁移指南(UG911)。
1、使用“Export Constraints”命令输出具有newI/O LOC约束值的修改的XDC约束文件。
File > Export > Export Constraints
将打开导出约束对话框,允许您指定要创建的文件名,如下图所示。
在这里插入图片描述

2、输入文件的名称和位置,然后单击确定。
3、使用 File > Text Editor > Open File命令,在文本编辑器中打开约束文件。
4、浏览以选择新导出的约束文件,然后单击“确定”。
5、请注意,该文件反映了您之前所做的I/O端口位置更改。
提示:您可以在文本编辑器中打开任何ASCII文件。这对于编辑Tcl脚本和约束文件以及查看报告很有帮助。文本编辑器是对上下文敏感的,在显示诸如Verilog、VHDL、XDC和Tcl等文件类型时,它会突出显示关键字和注释。
6、选择IDE底部的Tcl Console选项卡,并输入stop_gui 命令。Vivado IDE关闭,您将返回到Tclshell中的Tcl提示符。

Step 7: Implementing the Design

1、打开create_bft_kintex7_batch.tcl script,或将脚本窗口带到前面。
2、单独复制和粘贴Tcl命令,从opt_design到 write_bit流的顺序:
在这里插入图片描述

3、检查每个命令,并注意在命令运行时产生的各种消息。
4、关闭显示create_bft_kintex7_batch.tcl脚本的文本编辑器。
5、检查在输出目录中创建的文件。<Extract_Dir>/Vivado_Tutorial/Tutorial_Created_Data/bft_output
6、使用文本编辑器打开已创建的各种报告(*.rpt)文件。
7、打开bft_impl.xdc文件。
8、验证是否已使用之前修改的I/O端口约束实现了设计

Step 8: Opening a Design Checkpoint

Vivado IDE可以打开任何保存的设计检查点。这个设计的快照可以在Vivado IDE或Tclshell中打开,用于综合、实现和分析。
1.再次打开VivadoIDE:start_gui这将内存中的活动设计加载到IDE中。现在将加载已实现的设计检查点,关闭当前内存中的设计。
2.打开已实现的检查点。
3.使用File > Checkpoint > Open并浏览以选择检查点文件:<Extract_Dir>/Vivado_Tutorial/Tutorial_Created_Data/bft_output/post_route.dcp
4.如果出现提示,请选择“是”并单击“关闭不保存”以关闭当前内存设计。现在,您可以使用IDE的可视化和分析功能,从一个已放置和路由的设计检查点开始工作。

Step 9: Analyzing Implementation Results

Vivado有一系列广泛的功能,可以从多个角度检查设计和设备数据。您可以生成有关功耗、时序、利用率、时钟等的标准报告。使用TclAPI,Vivado工具中的自定义报告功能非常广泛。 1、单击“设备”窗口选项卡,将其放到屏幕前。
2、运行report_timing_summary命令来分析时序数据。

Reports > Timing > Report Timing Summary

3、在“Report Timing Summary”对话框中,单击“确定”以接受默认运行选项。
4、检查“Timing Summary”窗口中的可用信息。从“Timing Summary”窗口左侧的树中选择各种类别,并检查显示的数据。
5、现在运行 report_timing命令来执行时序分析

Reports > Timing > Report Timing

6、在“时序报告”对话框中,单击“确定”以接受默认的运行选项。
7、在 Timing Checks – Setup窗口中折叠bftClk树。
8、在设置区域中选择在wbClk下列出的第一个路径。
9、最大化或浮动“ Path Properties”窗口,以查看路径的详细信息。检查以确保已选择并显示“设备视图”选项卡
在这里插入图片描述

10、通过单击窗口横幅中的“Restore”按钮或“Dock”按钮来恢复“路径属性”窗口。
11、在“ Timing – Report Timing”窗口中,右键单击以打开弹出菜单,并选择schematic命令以打开所选路径的原理图窗口。注意:您也可以按F4功能键打开原理图窗口。
12.双击原理图对象,如在cell、pin或net上,以展开连接并遍历设计层次结构。
13.关闭“schematic”窗口,或单击设备窗口选项卡将其带到前面。
14.在设备窗口中,检查以确保启用了RoutingResources button,以显示详细的设备路由。在某些情况下,您可能需要再次选择路径。
15.在设备窗口工具栏菜单中选择“Auto-fit Selection”按钮,以使VivadoIDE能够自动放大到选定的对象。
16.从时序结果窗口中选择一些其他路径。
17.在设备窗口中检查选定路径的路由。
18.展开“Reports”主菜单,并检查可用的分析功能。
19.运行一些可用的分析命令:Report Power, Report Clock Interaction,Report Clock Networks, Report Utilization,等。在Vivado的其他教程中也介绍了许多这些设计分析特性。

Step 10: Exiting the Vivado Tool

Vivado工具将一个名为Vivado.log的日志文件和一个名为vivado.jou的日志文件写入到启动Vivado的目录中。该.log文件是在设计会话期间运行的Tcl命令的记录,以及该工具根据这些命令返回的消息。该.jou文件是在会话期间运行的Tcl命令的记录,可以用作创建新的Tcl脚本的起点。退出VivadoIDE:
1、选择Tcl控制台窗口选项卡,并键入以下内容:stop_gui
2、退出Vivado:Vivado%exit
3、关闭窗口上的Tclshell窗口。
4、检查Vivado日志(vivado.log)文件。在Windows上,使用文件浏览器来查找和打开日志文件可能会更容易。Vivado日志和日志文件的位置将是从Vivado工具启动的目录,或者可以在Windows桌面图标中单独配置。您将在实验#2中配置这个问题。在这种情况下,请在以下位置查找日志文件:<Extract_Dir>/Vivado_Tutorial/vivado.log。注意:vivado.log和vivado.jou也可以写入%APPDATA%\Xilinx\Vivado,或写入您的/home目录。
5、检查Vivado journal(vivado.jou)文件。在Windows上,使用文件浏览器可能更容易。在以下位置查找日志文件:<Extract_Dir>/Vivado_Tutorial/vivado.jou注意,日志文件只包含在Vivado会话期间执行的Tcl命令,而没有在日志文件中记录添加的详细信息。当从以前的设计会话创建Tcl脚本时,日志文件通常很有用,因为您将在下一个实验中看到。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值