艺术-开始使用微乳

重要的

本指南已过时,可以找到更新的指南在这里

概述

本指南将逐步介绍如何使用Arty FPGA板的Vivado IP Integrator创建基于微玻璃的硬件设计。

本教程结束时,您将有:

  • 在Xilinx Vivado中创建了基于微玻璃的硬件(HW)设计
  • 在Xilinx Vivado SDK(软件开发工具包)中创建.C项目,通过硬件设计显示Hello World。
  • 在SDK控制台和Tera Term上显示最终输出

微乳介绍

Microblaze是Xilinx的软IP核,它将完全在Xilinx FPGA通用内存和逻辑结构中实现微处理器。在本教程中,我们将使用Vivado IP Integrator工具添加一个Microblaze IP块。

除了Microblaze IP块之外,我们还希望在Arty上使用DDR3 SDRAM组件。因此,我们的设计中将添加一个MIG(内存接口生成器)IP块。

最后,将添加UART(通用异步接收器/发射器)IP块,以在主机PC和Arty上运行的软处理器核心之间进行通信。

通用微釉设计流程

一、万岁

  • 打开Vivado并选择Arty board
  • 创建一个新的Vivado项目
  • 在新项目内创建空块设计工作空间
  • 使用IP integrator工具添加所需的IP块并构建硬件设计
  • 验证并保存块设计
  • 创建HDL系统包装器
  • 运行设计合成和实现
  • 生成位文件
  • 导出硬件设计,包括生成的比特流文件到SDK工具
  • 启动SDK

现在,硬件设计被导出到SDK工具中。Vivado到SDK的移交是通过Vivado在内部完成的。我们将使用SDK创建一个软件应用程序,通过从Vivado导入硬件设计信息,使用定制的板接口数据和FPGA硬件配置。

二、SDK

  • 创建新的应用程序项目并选择默认的Hello World模板
  • 可编程门阵列
  • 通过选择正确的UART COM端口和波特率来运行配置

先决条件

技能

  • 熟悉Vivado
  • 块设计经验

硬件

  • 数字艺术FPGA板
  • 微型USB电缆
    • 用于UART通信、JTAG编程和电源

软件

  • Xilinx Vivado 2015.4和SDK包。
    • 新版本的Vivado也可以工作
  • 电子线路板支持文件
    • 遵循维基指南关于如何安装Vivado 2015的板支持文件。X

教程

1.创建新项目

1.1)打开Vivado并单击创建新项目打开Vivado的新项目向导。

1.2)将打开一个新窗口,单击下一个您将看到下面的屏幕。命名项目(无空格!),并在单击之前选择项目保存目录下一个.下划线是空格的一个很好的替代品。

1.3)我们将从头开始构建该项目,并添加我们自己的资源,因此我们希望创建一个RTL项目。选择RTL项目并确保此时不要指定源检查框。点击下一个

1.4)如果您遵循了董事会支持文件Wiki指南,请选择董事会.通过选择“digilentinc.com”作为供应商,选择“Arty”作为显示名称,过滤器选项可以用来快速找到艺术板。附庸风雅的应显示在选择列表中。选择不同的板名将在以后导致错误。点击下一个

1.5)显示新项目设计源和目标设备的摘要。点击完成

此时,你已经成功地创建了一个项目,将正确地与火炮沟通。


2.创建新的区块设计

这是一个主项目窗口,在这里你可以创建一个基于IP的块设计或者添加基于RTL的设计源。左边的流量导航面板提供了关于如何创建硬件设计、执行模拟、运行合成和实现以及生成位文件的多个选项。您还可以使用硬件管理器直接从Vivado使用为RTL项目生成的位文件来编写电路板。

对于我们的设计,我们将使用IP积分器创建一个新的块设计。

2.1)在左边,你应该看到Flow Navigator。选择创建块设计在IP积分器下。为您的设计命名(无任何空格),然后单击好啊



您已经创建了一个新的块设计。


3.添加时钟和DDR3组件

3.1)点击标签(下面用橙色突出显示)



此列表包含以前安装的线路板文件中定义的所有组件。这些已配置为与多个Vivado IP一起使用。
3.2)单击并拖动系统时钟组件添加到空块设计中。Vivado将自动将这个系统时钟连接到一个新的时钟向导块。

3.3)双击时钟向导块来自定义它。点击输出时钟选项卡并改变clk_out1至“166.667”兆赫. 使可能clk_out2设置为200.0兆赫.设置复位类型活跃低



点击好啊关闭此窗口。
3.4)单击并拖动DDR3SDRAM将组件添加到空块设计中。Vivado将自动将DDR3 SDRAM和一些虚拟时钟端口连接到MIG IP。

3.5)删除clk_ref_i系统时钟i单击端口并按删除键,或者右键单击并选择删除

3.6)连接clk_out1系统时钟i在MIG块上。连接clk_out2clk_ref_i

3.7)点击运行连接自动化在上面的绿色横幅上。默认设置很好,所以单击好啊



Vivado将您的系统重置连接到MIG上的系统。连接这个新的重置端口到resetn时钟向导块上的输入。

4.添加Microblaze处理器和配置

4.1)点击 添加IP按钮并搜索微晶玻璃



双击微晶玻璃将其添加到您的块设计中。

4.2)点击块自动化运行打开Microblaze处理器的块自动化。

在这里,您可以选择为Microblaze处理器提供多少内存。配置选项要匹配下面的图片,请单击好啊. 确保将时钟连接设置为/ mig_7series_0 ui_clk

4.3)运行块自动化将自动生成一组额外的IP块,这些IP块将根据上一步中选择的选项自动添加到我们的硬件设计中。不要点击运行连接自动化然而。


5.添加外围组件

5.1)进入董事会再次单击tab并找到USB通用异步收发器组成部分单击并拖动将其添加到块设计中,以将Uartlite块添加到设计中。

5.2)点击运行连接自动化在绿色旗帜下。检查所有自动化选中复选框并单击好啊



这将为DDR内存创建一个AXI互连,为外围组件创建另一个AXI互连。
点击 重新生成布局按钮重新排列块设计。


6.验证设计并制作HDL包装器

6.1)选择 验证设计.这将检查设计和连接错误。
6.2)在设计验证步骤之后,我们将继续创建HDL系统包装器。点击来源选项卡并找到您的块设计。



右击你的块设计和点击创建HDL包装器. 确保让Vivado管理包装和自动更新选择并单击好啊



这将在Verilog中创建一个顶级模块,并允许您生成位流。

7.生成位文件

7.1)在Vivado的顶部工具栏中,单击 生成比特流.这也可以在流导航器左边的面板,下面编程与调试
如果你还没有保存你的设计,你会得到一个提示来保存块设计。
将开始生成位文件。工具会运行合成实施. 成功完成合成和实现后,将创建位文件。您将在项目窗口的右上角找到运行的合成和实现状态栏。

这个过程可以在任何地方进行2至20分钟取决于你的电脑。
7.3)位流生成后,屏幕上会弹出消息提示。在本演示中,您不必打开已实现的设计。点击取消

8.将硬件设计导出到SDK

8.1)在主工具栏中,单击文件并选择出口→出口硬件. 选中复选框以包括比特流点击好啊.这将为软件开发工具- Vivado SDK导出带有系统包装的硬件设计。



将在下创建一个新的文件目录你好_World.SDK类似于Vivado硬件设计项目名称。另外两个文件,.sysdef.hdf也创造了。这个步骤实际上创建了一个新的SDK工作区。
8.2)在主工具栏上,单击文件然后启动SDK. 将两个下拉菜单保留为默认值本地项目点击好啊.这将打开Xilinx SDK并导入硬件。


9.在Xilinx SDK

9.1)硬件设计规范和包含的IP块显示在system.hdf文件Xilinx SDK独立于Vivado,也就是说,从这一点来看,您可以在导出的硬件设计之上,用C/C++创建软件项目。如有必要,还可以直接从Vivado项目主目录中创建的SDK文件夹启动SDK。

从这里开始,如果你需要返回Vivado并对HW设计进行更改,那么建议关闭SDK窗口并在Vivado中进行所需的HW设计编辑。在此之后,您必须遵循创建新的HDL包装器、保存设计和位文件生成的顺序。然后必须将这个新的位文件和系统包装器导出到SDK。

9.2)在工程资源管理器选项卡,您可以看到您的硬件平台。

系统是在Vivado中创建的块设计的名称。该硬件平台包含了所有的HW设计定义、已添加的IP接口、外部输出信号信息和本地存储地址信息。

10.在SDK中创建新的应用项目

10.1)点击 刚出现的下拉箭头并选择锡林克斯→应用项目



为项目指定一个没有空格的名称,然后单击下一个
10.2)选择你好世界从模板列表中单击完成

您将在中看到两个新文件夹工程资源管理器面板。

  • Hello_world其中包含所有二进制文件、.C和.H(头文件)文件
  • 你好_world _bsp哪个是板支持文件夹

Hello_world是我们的主要工作源文件夹。这里还包含一个重要的文件,即“lscript.ld”。这是Xilinx自动生成的链接器脚本文件。双击此文件以打开。

10.3)回到工程资源管理器,双击并打开helloworld.csrc文件夹

这是主.C文件,执行时将在控制台中打印“Hello World”。


11用位文件编程FPGA

11.1)确保Arty已打开并通过USB-JTAG端口连接到主机PC -该端口将作为USB-UART连接到Microblaze的双重用途。

在顶部工具栏上,单击 可编程门阵列按钮。
11.2)点击程序用硬件设计对FPGA进行编程。


12设置UART终端

12.1)打开串行终端应用程序(Tera术语)。以9600的波特率连接到Arty UART端口。通过双击Uartlite块,可以在块设计中更改此波特率。


13对微博客处理器进行编程

13.1)返回SDK,选择您的Hello_world项目并单击 作为…运行…按钮。选择在硬件上启动(系统调试器)点击好啊

13.2)您的程序将运行,您应该会看到串行终端内弹出“Hello World”。好极了