art - Microblaze服务器入门

概述

本指南将提供使用Vivado IP Integrator创建基于Microblaze的硬件设计的一步一步的演练,该集成器将构建在从Microblaze开始通过使用机载以太网端口和Arty FPGA板的gpio来指导。

在本教程的最后,你将有一个全面的Arty硬件设计,利用各种硬件端口的Arty是由Microblaze软核处理器块管理。


先决条件

技能

  • 熟悉Vivado

硬件

  • 附庸风雅的FPGA板
  • 微型USB电缆
    • 用于UART通信和JTAG编程
  • 以太网电缆

软件

  • Xilinx Vivado 2015。Xwith the SDK package.
  • 串行终端应用程序
    • 在本教程中使用Tera术语

董事会的支持文件

  • 附庸风雅的支持文件
    • 这些文件将描述GPIO界面在您的板,使它更容易选择您的板在最初的设计设置和添加GPIOIP块在块设计中
    • 遵循这个维基指南Vivado板文件为Digilent 7系列FPGA板关于如何安装Vivado 2015的板支持文件。X

介绍

Microblaze是Xilinx的软IP核,它将完全在Xilinx FPGA通用内存和逻辑结构中实现微处理器。在本教程中,我们将添加以太网功能并创建一个回显服务器。


一般的设计流程

即Vivado

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

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

2SDK

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

教程

1.创建新项目

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

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

1.3)我们将从头开始构建这个项目,并添加我们自己的资源,因此我们将希望创建一个RTL项目。选择RTL项目和离开不要指定来源盒子不。点击下一个

1.4)如果您遵循了董事会支持文件Wiki指南,然后单击下一步并选择董事会.从筛选器选项中选择供应商、显示名称和板修订。附庸风雅的应该显示在选择列表中。选择正确的板名不匹配将导致错误。

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

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


2.创建新的块设计

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

对于我们的设计,我们将使用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兆赫.启用clk_out3把它设为25兆赫.设置重置类型活性低.然后单击好吧关闭此窗口。

3.4)单击并拖动的DDR3 SDRAM组件上的空块设计。Vivado将自动将DDR3 SDRAM和一些虚拟时钟端口连接到MIG IP。

3.5)删除clk_ref_isys_clk_i通过单击端口并按下删除键,或者右键单击它们并选择Delete。

3.6)连接clk_out1sys_clk_i米格战机街区。连接clk_out2clk_ref_i

3.7)点击连接自动化运行在上面的绿色横幅上。点击好吧



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


4.添加Microblaze处理器和配置

4.1)点击 添加IP按钮和搜索Microblaze



双击Microblaze将其添加到您的块设计中。

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

在这里,您可以选择给Microblaze处理器提供多少内存。配置选项若要匹配下图,请单击好吧.确保你检查了中断控制器框,并将时钟连接设置为/ mig_7series_0 ui_clk

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

5.添加外围设备

5.1)进入董事会标签,并找到USB UART组件。单击并拖动将其添加到块设计中,以便将Uartlite块添加到您的设计中。
5.2)找到以太网信息产业部将其拖到块设计上将以太网块添加到您的设计中。

5.3)点击 添加IP按钮和搜索计时器.双击AXI计时器将其添加到您的块设计中。

5.4)点击连接自动化运行在绿色的旗帜上。检查所有自动化复选框,然后单击好吧.您现在可能会收到关于过时自动化的警告。点击好吧


6.路由最后的连接

6.1)路线中断AXI计时器In0(0时)Concat块。下一个路线ip2intc_irptAXI EthernetLite三机一体(0时)Concat块。

6.2)右键单击设计的背景(空白),然后点击创建端口…,或使用快捷键Ctrl-K。将此端口命名为“eth_ref_clk”,并将选项更改为下图中的选项。点击好吧一旦完成。

6.3)连接这eth_ref_clk销,clk_out3孵蛋的向导块。

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

7.1)点击 重新布局按钮重新安排您的块设计。

7.2)选择 验证设计.这将检查设计和连接错误。
在设计验证步骤之后,我们将继续创建一个HDL系统包装器。点击来源标签和找到你的块设计。

7.4)右键单击你的方块设计,然后单击创建高密度脂蛋白包装让Vivado管理包装和自动更新并点击好吧



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

8.约束Eth_ref_clk

我们现在必须通过创建一个XDC文件将eth_ref_clk引脚连接到FPGA上的正确引脚。下设计窗口中,选择来源选项卡。扩大文件夹,右击若干并点击添加来源…

8.2)选择“添加或创建约束”,单击下一个

8.3)点击创建文件…,命名新的约束文件并单击好吧然后完成

打开新的约束文件,粘贴如下代码行:
set_property -dict {PACKAGE_PIN G18 IOSTANDARD LVCMOS33} [get_ports {eth_ref_clk}];#同步信道= eth_ref_clk


完成后保存XDC文件。


8.生成一些文件

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

这个过程可以从任何地方5至60分钟这取决于你的电脑。
8.3)位流生成完成后,屏幕上会弹出提示信息。您不必为此演示打开已实现设计。点击取消

9.导出硬件设计到SDK

9.1)在主工具栏上,单击文件并选择出口的硬件.勾选复选框包括比特流并点击好吧.这将导出硬件设计与系统包装软件开发工具- Vivado SDK。



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


10.在Xilinx SDK

10.1)硬件设计规范和包含的IP块显示在system.hdf文件。Xilinx SDK独立于Vivado,也就是说,从现在开始,您可以在导出的HW设计之上用C/ c++创建您的SW项目。如果有必要,您还可以直接从Vivado Project主目录中创建的SDK文件夹启动SDK。

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

10.2)中Project Explorer标签在左边,你可以看到你的硬件平台。

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

11.在SDK中创建新的应用程序项目

11.1)点击 下拉箭头和选择应用程序项目



为项目指定一个没有空格的名称,然后单击下一个
11.2)选择lwIP回显服务器从模板列表中单击好吧

您将看到两个新文件夹Project Explorer面板。
- - - - - -echo_server包含所有二进制文件,.C和.H(头文件)
- - - - - -echo_server_bsp哪个是支持板文件夹

echo_server是我们的主要工作源文件夹。这里还包含一个重要的文件,它是lscript.ld.这是一个Xilinx自动生成的链接器脚本文件。双击此文件打开。
11.3)回到Project Explorer,双击并打开system.mssecho_server_bsp文件夹中。点击修改此BSP的设置

11.4)点击lwip141然后找到temac_adapter_options点击箭头。找到phy_link_speed并将“Value”修改为CONFIG_LINKSPEED100.点击好吧


12.用位文件编程FPGA

12.1)确认火炮已通过micro USB接口与主机相连。如果连接正确,红色电源领导应该打开。在顶部工具栏上,单击 FPGA程序按钮。
12.2)点击程序使用硬件设计对FPGA进行编程。


13.设置UART终端

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


1.对Microblaze处理器进行编程

在开始之前,确保你的Arty已经插入了路由器。
14.2)回到SDK,选择你的echo_server项目,并单击 运行……按钮。选择在硬件上启动(系统调试器)并点击好吧

14.3)在屏幕底部的控制台窗口将显示连接的详细信息。这显示所有三个phy速度链接设置。


15.使用Tera Term测试服务器

15.1)用以太网线将PC连接到Zybo。如果使用路由器,观察UART控制台找出Zybo回显服务器的IP,并连接到该IP地址。将连接设置为静态是不必要的。
15.2)为了从您的计算机直接连接到echo服务器,您必须设置一个静态IP地址的以太网连接。要做到这一点:
右键单击您的internet连接,然后单击开放网络和共享中心

15.2.2)查找到Zybo的以太网连接。应该是一个身份不明的网络。点击以太网

15.2.3)点击属性

15.2.4)选择Internet协议版本4 (TCP/IPv4)并点击属性

15.2.5)点击请使用以下IP地址:项目号并输入一个IP地址“192.168.1”。XX”, where XX is a value between 2 and 255, but not 10.此IP不能与网络中已经存在的其他IP相同.请确保点击子网掩码字段获取要自动填充的255.255.255.0掩码。点击好吧你将拥有一个静态IP地址。

15.3)打开“Tera Term”,输入以下信息,单击好吧

在控制台上输入任何东西,然后按下键盘的Enter键。回显服务器将回显您的输入并将其显示在控制台中。

您可以进入安装→终端,并更改以下更传统的echo服务器格式的设置

记得回到开放网络和共享中心
选择Internet协议版本4 (TCP/IPv4)并点击属性
选择自动获取IP地址