Nexys 4-开始使用Microblaze

重要!

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

概述

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

在本教程的最后,你会有:

  • 在Xilinx Vivado中创建了基于Microblaze的硬件(HW)设计
  • 在Xilinx Vivado SDK(软件开发工具包)中创建一个。c项目,使用上一步所示的硬件设计显示Hello World
  • 在SDK控制台和Tera Term上显示最终输出

先决条件

硬件

  • 用于UART通信和JTAG编程的Digilent Nexys 4 FPGA板和微型USB电缆

软件

  • Xilinx Vivado 2016。X与SDK包。

董事会的支持文件

  • 董事会的支持文件

辅导的

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

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

最后,在上位机和运行在Nexys 4 DDR上的软处理器核心之间添加UART(通用异步接收/发送器)IP块进行通信。

一般的设计流程

即Vivado

  • 打开Vivado,选择Nexys 4板
  • 创建一个新的Vivado项目
  • 在新项目中创建空块设计工作区
  • 使用IP集成商工具添加所需的IP块并构建硬件设计
  • 验证和保存区块设计
  • 创建HDL系统包装器
  • 运行设计综合和实现
  • 生成一些文件
  • 将硬件设计(包括生成的位流文件)导出到SDK工具
  • 发射SDK

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

2SDK

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

1.创建新项目

当您第一次运行Vivado时,这将是主启动窗口,您可以在这里创建一个新项目或打开一个最近的项目。

1.1)点击创建新项目.选择项目名称和位置,以便有没有空白.对于项目名称、文件名和位置路径,这是一个重要的命名约定。下划线是空格的一个很好的替代品。为Vivado项目创建一个专用文件夹是一种很好的实践,最好使用最小的路径长度。例如:C: / Vivado_Projects。命名项目并选择项目位置并单击下一个

1.2)选择项目类型作为RTL项目.离开不要指定来源复选框未选中,然后单击下一个

1.3)如果您已经遵循了董事会支持文件维基指南,然后单击下一步并选择董事会. 从过滤器选项中,对供应商、显示名称和电路板版本进行必要的选择。在下4应显示在选择列表中。选择正确的电路板名称不匹配将导致错误。

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


2.创建新的区块设计

2.1)这是主项目窗口,您可以在其中创建基于IP的块设计或添加基于RTL的设计源。左侧的flow navigator面板提供了关于如何创建硬件设计、执行模拟、运行合成和实现以及生成位文件的多个选项。您还可以使用Hardware Manager直接从Vivado使用RTL项目生成的位文件对电路板进行编程。对于我们的设计,我们将使用IP Integrator创建一个新的块设计。

2.2)在左侧,您应该可以看到流导航器。选择创建块设计IP集成商。给你的设计起一个名字,不要留下任何空白。

2.3)创建一个空的设计工作区,您可以在其中添加IP块。添加一个IP核通过点击 添加IP图标。这将打开Xilinx IP存储库中预构建的IP块的目录。搜索“Microblaze”,并双击它添加IP块到您的空设计。


3.添加微博客IP和定制

3.1)这是Xilinx微晶玻璃IP区块。添加新IP块时,用户可以通过单击运行块自动化消息提示或双击块本身。



3.2)选择运行块自动化一个自定义的助手窗口将打开默认设置。

3.3)更改区块选项中的默认设置,如下图所示,单击好吧. 这将使用我们的新用户设置自定义块。

3.4)运行区块自动化将自动生成一组额外的IP区块,这些IP区块将根据上一步中选择的选项自动添加到我们的硬件设计中。暂时不要单击“运行连接自动化”。


4.时钟向导IP块的定制

4.1)双击时钟向导(clk_wiz_1) IP块。

4.2)选择系统时钟对于CLK_IN1。

4.3)选择输出时钟选项卡。

4.4)设置重置类型活性低. 左侧面板显示一个GUI块及其内部设置的表示。观察复位引脚现在将读取为resetn. 这以图形方式表示激活低电平的内部设置。

现在移动到端口重命名标签。这将为您提供时钟向导IP块的输入和输出摘要。单击好吧完成时钟向导的块自动化。还没有选择“运行连接自动化”

—–

5.添加UART IP块

5.1)去 添加IP并搜索“UART”。

5.2)选择AXI UartliteIP块。

5.3)这将向现有设计添加一个UART块。我们需要一个UART控制器来在Host-PC上的终端窗口和Nexys 4硬件之间进行通信。


6.第一次运行连接自动化

6.1)现在选择连接自动化运行设计师的帮助条消息提示。这将打开运行连接自动化窗口。选择外接复位输入如图所示。界面的描述将与可用的信号选项一起显示。选择重置作为单板部分接口。

6.2)现在选择所有可用的连接并单击好吧. 完成此步骤将连接到目前为止已添加和自定义的所有IP块。除了执行可用IP块的自动连接外,还有一个名为微玻璃将添加到我们的设计中。两个信号针重置sys_clock也将被添加。引脚信号指向右边,表明它们是时钟向导块(clk_wiz_1)和重置时钟向导块(rst_clk_wiz_1_100M)的输入。

现在选择连接自动化运行设计师的帮助条消息提示。现在选择所有可用的连接并单击好吧


6.4)选择用蓝色圈出的按钮。这是 重新布局将在设计中重新排列IP块的选项。


7.验证设计

7.1)选择 验证设计. 这将检查设计和连接错误。



7.2)在设计验证步骤之后,我们将继续创建HDL系统包装器。


8.创建HDL系统包装器

8.1)如本步骤中突出显示的,右键单击design_1选择创建高密度脂蛋白包装.让Vivado管理包装器并进行选择好吧

8.2)将生成一个系统包装文件,并在tcl控制台中显示一条消息,通知我们wrapper.v文件已生成。


9.生成一些文件

9.1)流程导航器左边的面板,在下面程序和调试选择产生的比特流选择。如果你还没有保存你的设计,你会得到一个提示来保存块设计。


将开始生成位文件。工具会运行合成实现.在合成和实现都成功完成后,将创建实际的位文件。你会在项目窗口的右上角发现一个综合与实现的状态栏。


9.3)生成比特流后,可能会在屏幕上弹出消息提示。在本演示中,您不必打开已实现的设计。只需点击取消


10将硬件设计导出到SDK

10.1)在窗口的左上角,从工具栏上单击文件选择出口的硬件
这将为软件开发工具- Vivado SDK导出带有系统包装的硬件设计。通过选中该框,确保包含生成的比特流

将在下面创建一个新的文件目录Hello_World。SDK类似Vivado硬件设计项目的名称。另外两个文件,.sysdef.hdf也创建了。这一步实质上创建了一个新的SDK工作区。
如果您浏览到驱动器上创建Vivado项目的位置,您将看到在SDK下已经创建了新的文件夹。请参阅下面屏幕截图中的TCL控制台消息。现在设计已经导出到软件开发工具包(SDK)工具,下一步将是启动SDK工具。


11.启动SDK

11.1)去文件选择发射SDK并单击OK。将启动Vivado设计项目位置本地创建的SDK文件。从Vivado到SDK的切换已经完成。


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

12.1)去文件在主工具栏中选择新应用项目.将弹出一个新的项目窗口。给您的SDK项目一个没有空格的名称,如下所示。确保目标硬件是正确的硬件设计。在我们的情况下,它将是design_1_wrapper_hw_platform_0
例如,如果你还有另一个硬件设计Project Explorer窗口,则您还将在Target Hardware下拉选择列表中看到此设计名称。
因为我们只有一个硬件设计design_1_wrapper_hw_platform_0这将是我们的目标硬件。选择创造新的在下面板支持包. 该工具将自动填充板支持包与给定项目名称匹配的名称。
单击下一步。


13.从可用模板中选择Hello World应用程序

13.1)选择你好,世界在下面可用模板在左侧面板上单击“完成”。

完成上一步后,您将在Project Explorer专家组:

-显示“你好”世界它包含所有的二进制文件,.C和.H(头文件)
-display_hello_world_bsp哪个是board support文件夹

显示“你好”世界是我们的主要工作源文件夹。这里还包含了一个重要的文件,就是lscript.ld.这是一个Xilinx自动生成的链接器脚本文件。双击此文件打开。


14.用位文件编程FPGA

14.1)确保Nexys 4 DDR已打开,并使用提供的micro USB数据线连接到主机PC。
在快速选择工具栏中,你会发现一个带有红色箭头和三个绿色方框的符号。该可单击按钮物理上位于搜索主工具栏中的选项卡。
单击此符号以打开“程序FPGA”窗口。
确保硬件平台是选为design_1_wrapper_hw_platform_0
在“软件配置”框中的要在块中初始化的ELF文件内存列,行选项必须读取引导回路.如果不是,单击该行并选择引导回路
现在点击程序。


15运行配置

15.1)在FPGA用位文件成功编程后,从Project Explorer面板上,右键单击显示“你好”世界项目文件夹,该文件夹已在下面的屏幕截图中突出显示。
在下拉列表的底部,选择运行然后选择在硬件上启动

}}


16使用终端仿真器

您可以使用任何您想要的串行终端,包括SDK上的串行终端。我们使用Tera术语。请参阅此链接http://en.wikipedia.org/wiki/Tera_Term才能知道Tera Term是什么。你可以从这个链接下载和安装Tera Termhttp://ttssh2.sourceforge.jp/index.html.en

16.1)在Tera术语内建立与正确通信端口的串行连接。
SDK运行配置→ 应用并运行。
Tera Term将通过显示输出作为控制台工作。
注意,在SDK的内置控制台窗口中,有一条消息显示如下内容COM4端口已经在使用中表明COM4为端口由Tera术语使用。