开始Vivado


介绍

Vivado开始页面

本指南的目标是让读者通过硬件的hello世界熟悉Vivado工具领导

注意:虽然本指南是使用Vivado 2016.4创建的,但所描述的工作流并没有发生实质性的变化,该指南按照编写本文时最新版本Vivado 2019.2的描述工作。


先决条件

在开始本指南之前,请确保安装Vivado:


指南

1.启动Vivado

窗户
打开安装过程中创建的开始菜单或桌面快捷方式。

Linux
打开一个终端,cd到一个工作目录,可以杂乱的临时Vivado文件和日志,然后运行以下:

source /Vivado//settings s64.sh && Vivado

2.起始页

这是Vivado启动后显示的屏幕。下面以图片为指导对按钮进行描述。

1.创建新项目

这个按钮将打开新建项目向导。该向导指导用户创建一个新项目。该向导将在第3节逐步完成。

2.开放项目

这个按钮将打开一个文件浏览器。导航到所需的Xilinx Project (.xpr)文件并单击开放打开Vivado中的项目。

3.打开示例项目

这将指导用户创建基于示例项目的新项目。这些项目并不适用于所有设备。

4.开放硬件管理器

这将打开没有关联项目的硬件管理器。如果连接和编程一个设备是用户所需要的,那么这是使用的按钮。

3.创建新项目

3.1

从开始页中,选择创建新项目按钮以启动“新建项目向导”。

3.2

此对话框中的文本描述了创建项目所需的步骤。点击下一个继续第一步。

3.3

第一步是设置项目的名称。Vivado将在生成其文件夹结构时使用此名称。

重要的

不要在项目名称或位置路径中使用空格。这将导致Vivado出现问题。而是使用下划线,破折号,或CamelCase

点击下一个继续。

3.4

现在项目已经有了名称和保存文件的位置,我们需要选择将要创建的项目类型。选择RTL项目一定要检查一下此时不指定来源.源文件将在创建项目之后添加和创建。高级用户可以使用此屏幕上的其他选项,但本指南将不介绍这些选项。

点击下一个继续。

3.5

重要的

如果您的电路板没有出现在这个列表中,那么Digilent的电路板文件还没有安装。如果是这种情况,请重新访问本指南的先决条件部分,然后关闭Vivado,重新开始。

现在是时候选择目标设备了。单击董事会选项卡在对话框顶部,然后从列表中选择您的板子。

点击下一个继续。

3.6

下一节总结了整个向导中选择的选项。验证信息是否正确,然后单击完成

4.流导航器

流导航器是Vivado主窗口中最重要的窗格。它是用户在不同的Vivado工具之间导航的方式。

导航器分为七个部分:

  • 项目经理
    • 允许快速访问项目设置、添加源、语言模板和IP目录
  • IP积分器
    • 创建块设计的工具
  • 模拟
    • 允许开发人员在对设备进行编程之前验证其设计的输出
  • RTL分析
    • 让开发人员看到工具是如何解释他们的代码的
  • 合成
    • 提供访问合成设置和合成后报告
  • 实现
    • 访问实现设置和实现后报告
  • 程序和调试
    • 访问位流生成和硬件管理器的设置

5.项目经理

该工具是大多数开发将发生的地方,也是创建新项目后打开的初始工具。

项目经理由四个窗格组成,来源属性结果,工作空间

来源窗格包含项目层次结构,用于打开文件。文件夹结构是这样组织的,以便HDL文件保存在设计来源文件夹中,约束保持在约束文件夹下,并保存仿真文件模拟源文件夹中。通过双击Sources窗格中的相应条目,可以在Workspace中打开文件。源也可以通过右键单击要添加文件的文件夹并选择来添加添加资源或点击添加资源按钮().

属性窗格允许查看和编辑文件属性。当在Sources窗格中选择一个文件时,它的属性将显示在这里。此窗格通常可以忽略。

位于“项目管理器”窗口底部的未命名窗格由几个用于调试项目的不同有用工具组成。最重要的是要知道消息工具。该工具解析Tcl控制台的错误、警告和其他重要信息,并以一种有用的方式显示它。

可以通过选择该窗格底部的不同选项卡来访问这些工具。

Tcl控制台是一种允许直接运行命令而不需要使用主用户界面的工具。一些消息可能链接到Tcl控制台以提供关于错误的更多信息。

报告工具对于快速跳转到Vivado在设计上生成的众多报告中的任何一个都很有用。这些报告包括功率、时间和利用率等等。

日志显示最新的合成、实现和模拟运行的输出。深入研究这一点通常是不必要的,因为报表和消息视图以更可读的格式在日志中存储信息。

最后一个工具是设计运行.使用此工具可以编辑运行设置并创建新的运行。当针对具有相同设计的多个设备时,此工具非常有用。

项目管理器中最重要的窗格是工作空间.工作区是打开报告以供查看和打开HDL/约束文件以供编辑的地方。最初,工作区显示项目总结上面显示了一些报告中的基本信息。

6.添加约束文件

为了将HDL代码与FPGA的物理引脚连接,需要添加或创建一个约束文件。Digilent为我们的每个电路板都制作了一个Xilinx设计约束(XDC)文件。下载digilent-xdc-master.zip,包含每个主XDC文件的ZIP Archive,然后将其解压缩到您将记住的位置。

6.1

项目经理部分的流导航器,单击按钮。在弹出的向导中,选择添加或创建约束然后单击下一个

6.2

在这个阶段,Vivado提供了在单击Finish时将添加或创建的所有约束文件的列表。目前这个列表是空的,这将在添加或创建文件时改变。在本指南中,约束文件不会从头创建,所以单击添加文件

6.3

找到您解压的目录digilent-xdc-master.zip归档到,然后点击你的板上的文件。将文件名添加到文件名称字段。

点击好吧继续。

6.4

确保所选的XDC文件已添加到源列表中,并且将约束文件复制到项目中选中,然后单击完成

注意:不选中Copy…框意味着对约束文件所做的任何编辑都将反映在原始副本中。强烈建议勾选复选框

6.5

来源面板的项目经理,扩大约束文件夹,然后双击刚刚添加的XDC文件。Digilent的每个XDC文件都包含各自电路板上每个常用外围设备的约束。对于这个演示,限制默认的系统时钟和一个led是必需的。

查找并取消对调用的行进行注释get_ports在以[0]和CLK开头的名称上删除行首的“#”符号。在某些单板上,时钟端口由两个不同的端口组成,clk_p和clk_n。时钟端口有时被命名为sysclk,但是应该出现在XDC文件的顶部。取消的create_clock也遵循时钟端口/秒定义的行。

提示

使用clk_p/clk_n引脚的板意味着使用差分逻辑的输入时钟。如果你想了解更多,请阅读这篇文章低压差分信号

将get_ports调用中的名称从'led[0]'更改为'led'。如果时钟不是'clk'或'clk_p'和'clk_n',那么对它做同样的处理。

7.创建Verilog源文件

7.1

项目经理部分的流导航器,单击按钮一次。选择添加或创建设计源然后单击下一个

7.2

与前面一样,在这个阶段,我们将得到一个列表,其中包含当我们单击Finish时将添加或创建的所有源文件。不要单击“添加文件”,单击创建文件

提示

还可以使用与前面添加约束文件相同的方式添加现有的源文件。

7.3

系统将提示您选择一个文件类型文件名称,文件位置.一定要挑选Verilog<本地项目>的类型和位置。给你的文件一个以'.v'结尾的文件名。

重要的

不要在文件名中使用空格。这将导致Vivado出现问题。而是使用下划线,破折号,或CamelCase

点击好吧继续。

7.4

确保将新的Verilog源文件添加到源文件列表中,然后单击完成

7.5

与添加约束文件时不同,此时a定义模块对话框将弹出。方法重命名Verilog模块模块名称菲尔德,但这是不必要的。Verilog模块的时钟和led端口需要定义。单击添加按钮将为端口添加一个空槽到I / O端口定义列表。

为每个模块的I/O端口定义五个字段:

  • 端口名称:该字段定义了端口的名称,并且需要匹配XDC文件中使用的名称之一。
  • 方向:这个下拉菜单可以设置为输入输出,或inout,定义信号通过这个端口传播的方向,相对于你的模块。输出是模块将要控制的信号。
  • 总线:这可以检查或不,当检查时,该端口由多个单位信号组成,分组成一个单一的总线。
  • 最高有效位:如果是总线,端口的最有效位的索引。对于单位端口,此选项是灰色的。
  • LSB:如果是总线,则端口的最低有效位的索引。对于单位端口,此选项是灰色的。

提示

如果你定义了一个将在另一个模块中实例化的模块(在本指南中我们不会讨论这个问题),请注意,端口名称不应该在XDC中声明,这只适用于你的“top”模块。

如果您的板使用差分时钟,添加两个单位输入端口,它们的名称与XDC文件中未注释的正时钟端口和负时钟端口相同。否则,添加一个与XDC文件中未注释的时钟端口同名的单位输入端口。

添加一个与。名称相同的单位输出端口领导在XDC文件中未注释的端口。

添加完这两个或三个端口后,单击好吧继续。

7.6

此时,新的源文件将被添加到设计来源文件夹中来源面板的项目经理.展开此文件夹并双击文件以打开它。

接下来,需要编写一些Verilog代码来定义设计的实际行为。

在模块端口列表后面的');'和'endmodule'语句之间,添加以下代码:

注册2400分配领导24总是posedgeclk<=+1

如果你的板是差频的,在');'和'reg [24:0] count = 0;'之前添加以下代码行:

线clkIBUFGDS clk_inst.Oclk.Iclk_p.IBclk_n

应该注意的是,时钟闪烁的速率将根据使用的板子而不同。不同的Digilent板上的系统时钟运行在许多不同的速率,这取决于板的需要。系统时钟周期(以纳秒为单位)可以在create_clock行的XDC文件。

在完成本指南后,建议尝试更改提供的Verilog代码,使时钟以1赫兹的频率闪烁——不建议在注释或取消注释整行之外更改XDC文件。

8.合成、实现和比特流生成

为了创建一个可用于对目标板编程的文件,需要运行“编译管道”的每个阶段。

这开始于合成.Synthesis将HDL文件转换为基于时间和I/O约束的晶体管级别描述。要运行Synthesis,请单击其中之一在工具栏或流导航器.然后,Synthesis的输出被传递给Implementation。

实现有几个步骤。总是运行的步骤是选择设计(优化设计以适应目标FPGA),地方的设计(在目标FPGA结构中布局设计),并且路线设计(路由信号通过fabric)。要运行实现,单击其中之一在工具栏或流导航器.然后将输出传递给Bitstream Generator。

比特流发生器生成FPGA编程所需的最终输出。要运行比特流生成,请单击其中之一在工具栏或流导航器.没有改变设置,生成器将创建一个'。一些文件。

9.硬件管理器

硬件管理器用于对目标设备进行编程。

对设备进行编程的第一步是将Vivado硬件服务器连接到设备。有两种方法可以做到这一点。

1.打开新的硬件目标

第一种方法是手动打开目标。如果硬件连接到另一台计算机,这是必需的。到达开放硬件的目标向导要么打开硬件管理器并单击链接在绿色横幅或单击按钮流导航器.从打开的下拉菜单中选择

向导打开后,单击下一个

下一个屏幕询问硬件服务器是本地的还是远程的。如果板子是连接到上位机选择本地,如果是连接到另一台机器选择远程并填写主机名港口字段。

点击下一个继续。

此屏幕给出连接到硬件服务器的设备列表。如果只有一个连接,它应该是唯一显示的设备。如果连接的设备有多个,请确定需要连接的设备序列号,并在列表中查找。

点击下一个继续。

最后一个屏幕显示了向导中选择的选项的摘要。确认信息无误后,单击完成.该单板现在已连接到硬件管理器。

2.Auto-Connect

第二种方法是自动打开目标。到达按钮或打开硬件管理器并单击链接绿色的旗帜在窗口顶部或单击按钮流导航器.从打开的下拉菜单中选择.Vivado将尝试找到运行在本地机器上的硬件服务器,并连接到服务器上的设备。


编程

要使用先前生成的位文件对设备进行编程,可以单击链接绿色的旗帜在窗口顶部或单击按钮流导航器.从打开的下拉菜单中,选择要编程的设备(例如:),并会开启以下窗口:

比特流文件字段应该用前面生成的位文件自动填充。如果没有,请单击单击字段右边末端的按钮,并导航到
<项目目录> / <项目名称> .runs / impl_1/,并选择位文件(示例:).现在点击程序.这将连接到板,清除当前配置,并使用新的位文件程序。


10.完成了!

您现在应该看到您的板上的一个led闪烁!

请务必访问您的董事会的资源中心,以获得更多的教程和演示项目。可以找到每个资源中心的链接在这里