Nexys视频- Microblaze服务器入门

注意:Nexys视频采用千兆以太网模块,需要TEMAC IP即没有包含在Vivado Webpack中.为了完成本教程,您必须购买TEMAC IP的许可证或通过以下方式从他们的网站免费获得评估许可证本指南

概述

本指南将通过将基于微墨IP Integrator建立的MicroBlaze基于硬件设计提供了一步的步骤步骤开始使用Microblaze利用Nexys Video FPGA板上的以太网端口和gpio进行引导。

在本教程的最后,您将对Nexys视频进行全面的硬件设计,利用由Microblaze软核处理器块管理的Nexys视频上的各种硬件端口。


先决条件

技能

  • 熟悉Vivado
    • 这种体验可以通过我们的“Vivado入门”指南找到。

硬件

  • Nexys视频FPGA板
  • 2 Micro USB线缆
    • 用于UART通信和JTAG编程。
  • 以太网电缆

软件

板支持文件

  • Nexys视频支持文件

教程

MicroBlaze是来自Xilinx的软IP核心,它将完全在Xilinx FPGA通用内存和逻辑面料内实现微处理器。对于本教程,我们将添加以太网功能并创建echo服务器。

一般的设计流程

I. Vivado

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

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

2SDK

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

1.创建一个新项目

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

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

1.3)我们将从地下构建这个项目并添加我们自己的来源,以便我们想要创建RTL项目。选择RTL项目并离开不要指定来源盒子未选中。点击下一个

1.4)如果您遵循了董事会支持文件wiki指南,那么点击下一个并选择董事会.从筛选选项中选择供应商、显示名称和板修订。Nexys视频应该显示在选择列表中。选择正确的板名不匹配将导致错误。

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

至此,您已经成功创建了一个与Nexys视频正确通信的项目。


2.创建块设计

2.1)这是主项目窗口,您可以在其中创建基于IP的块设计或添加基于RTL的设计源。左侧的Flow Navigator面板在如何创建硬件设计,执行模拟,运行综合和实现并生成一部位文件时提供多个选项。您还可以使用硬件管理器将电路板直接从Vivado与生成的位文件编程。

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

2.2)在左边,你应该看到Flow Navigator。选择创建块设计IP集成商。给你的设计起一个名字,不要有任何空格。

添加MicroBlaze核心:

2.3)创建一个空的设计工作区,您可以在其中添加IP块。你可以点击“添加IP”信息提示在顶部或单击 添加IP按钮。这将打开Xilinx IP存储库中预构建的IP块的目录。搜索“microblaze”并双击它,将IP块添加到您的空设计。

2.4)这是Xilinx Microblaze IP块。添加新IP块时,用户可以通过单击“运行块自动化”消息提示或双击块本身。

2.5)运行块自动化和自定义助手窗口将打开与默认设置。

2.6)更改块选项中的默认设置,如下所示,然后单击好吧.这将使用我们的新用户设置自定义块。暂时不要单击“运行连接自动化”。

添加必要的输出时钟:

2.7)双击下面突出显示的时钟向导(CLK_WIZ_1)块,并设置CLK_IN1以使用“sys_clock”和ext_reset_in以使用“重置”。

2.8)选择“输出时钟”页签并启用clk_out2.clk_out3..放clk_out2.200MHz.,clk_out3.125兆赫.设置“Reset Type”为活跃低.当您完成时,单击好吧

添加更多中断:

2.9)找到阻止并双击它。设置端口数为“5”,按“”键好吧


3.添加IP核

3.1)我们现在将为我们的项目添加所有必要的IP块。有4个核心我们会添加:
—内存接口生成器—AXI Uartlite—AXI以太网子系统—AXI定时器
3.2)将所有这些添加到您的设计中,一次使用 添加IP按钮按钮。一旦它们完全添加,您应该看到下面显示的四个块。


4.IP核配置与路由

4.1)点击块自动化运行并为之运行它mig_7series_0块。



运行MIG块自动化时,您将看到此特定错误消息[BD 41-1273]。你现在可以忽略这个。它不会以任何方式影响您的设计。MIG块将根据已下载为Nexys视频的支持文件配置。点击好吧取消这个消息。你会发现MIG IP块现在有额外的输入和输出引脚,必须连接到有效的信号。

4.2)点击“运行块自动化”并为之运行它axi_ethernet_0.块。改变物理接口的选择RGMII.然后点击好吧

4.3)点击“连接自动化运行”.联络microblaze_0复选框,然后单击好吧

4.4)点击“连接自动化运行”一次。运行这个axi_ethernet_0_dma.

4.5)点击重新制定布局(下面用蓝色圈出来的),你的区块设计应该是这样的:

路由丢失的连接

4.6)块采用中断输入并将其发送到MicroBlaze控制器。



将下列连接路由到堵塞;订单无关紧要:
-打断AXI定时器块。
-mm2s_introuts2mm_introut.axi_ethernet_0_dma.块。
-mac_irq打断axi_ethernet_0.块。

4.7)连接resetn孵蛋的向导块的重启引脚输入。

4.8)连接sys_clk_i.mig_7_series_0.块的clk_out2.输出从孵蛋的向导

右键单击旁边的蓝色条纹矩形DDR3 +公共汽车上内存接口生成器块,然后单击使外部

4.10)点击重新制定布局再次将导致您的最终块设计布局为这个项目。

4.11)点击验证设计 按钮,以确保您没有犯任何错误。
4.12)现在,右键单击design_1框图并单击创建高密度脂蛋白包装.当窗口弹出时,选择让Vivado管理包装和自动更新子弹,然后单击好吧

4.13)点击产生的比特流在工作空间的顶部。这个过程需要一段时间。


5.导出硬件设计到SDK

5.1)在窗口的左上角,从工具栏点击文件并选择出口的硬件
这将为软件开发工具- Vivado SDK导出带有系统包装的硬件设计。
通过勾选复选框,确保生成的位流包含在内


6.启动SDK

6.1)去文件并选择发射SDK然后单击“确定”。将启动为Vivado设计项目位置创建的SDK文件。来自Vivado的SDK的递交完成。


7.内部SDK为Vivado

将打开一个新的SDK窗口。HW设计规范和包含的IP块显示在system.hdf文件。SDK工具独立于Vivado,即,从这一点开始,您可以在导出的HW设计顶部的C / C ++中创建SW项目。如有必要,您还可以直接从主Vivado项目目录中创建的SDK文件夹启动SDK。

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

由于我们目前没有任何HW设计编辑,我们将继续创建一个软件应用程序来运行一个echo服务器。


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

8.1)去文件在主工具栏中选择新→应用程序项目.将弹出一个新的项目窗口。给您的SDK项目一个没有空格的名称,如下所示。确保目标硬件是正确的硬件设计。在我们的情况下,它将是design_1_wrapper_hw_platform_0.

例如,如果您还拥有另一个硬件设计项目资源管理器窗口,则您还将在Target Hardware下拉选择列表中看到此设计名称。

因为我们只有一个硬件设计design_1_wrapper_hw_platform_0.这将是我们的目标硬件。选择创建新的董事会支持包.该工具将自动填充董事会支持包名称来匹配给定的项目名称。点击下一个

8.2)选择IWIP Echo Server.在可用模板列表下单击完成

完成上一步后,您将在项目资源管理器面板。echo_server它包含所有的二进制文件,.C和.H(头文件),以及echo_server_bsp这是板支持文件夹。

echo_server是我们的主要工作源文件夹。它还包含src文件夹中名为lscript.ld..这是一个Xilinx自动生成的链接器脚本文件。双击此文件打开。


9.验证内存区域映射的链接器脚本文件

9.1)在链接器脚本中,看看部分到内存区域映射盒子。如果你这样做了制作DDR3外部步骤然后是目标存储区域必须mig_7series_0
9.2)向下滚动查看是否适用于所有行。对于任何地区,它都没有说mig_7series_0,然后单击内存区域列和选择mig_7series_0


10.1)打开system.mss文件内echo_server_bsp文件夹,然后单击修改BSP的设置

10.2)一次板支持包设置选择概述→单机→lwip141.LWIP141库的配置表现在应该在右侧可见。导航temac_adapter_options→phy_link_speed.在这里你需要改变CONFIG_LINKSPEED_AUTODETECTCONFIG_LINKSPEED100这样它看起来像下面的图片。


11.用位文件编程FPGA

11.1)确认单板已打开并使用提供的micro USB线缆连接到主机PC上。在主工具栏上,单击Xilinx Tools→Program FPGA
确保硬件平台是选为design_1_wrapper_hw_platform_0.

在软件配置框中,在ELF文件以块初始化内存列,行选项必须读取bootloop.如果不是,单击该行并选择bootloop

现在点击程序


12.设置SDK串行控制台并运行服务器

12.1)确保UART和JTAG USB端口都已插入Nexys视频。右键单击echo_server项目文件夹并选择运行→运行配置

12.2)去它的连接按下并检查连接STDIO到控制台复选框。点击应用,然后单击运行


13.运行服务器

在屏幕底部的控制台窗口中将显示连接的详细信息。


14.用Tera Term测试服务器

14.1)使用以太网电缆将PC连接到电路板。如果使用路由器,请观看UART控制台以找出NEXYS视频回声服务器的IP,并连接到该IP地址。将连接设置为静态是不必要的。
14.2)为了从您的计算机直接连接到echo服务器,您必须设置一个静态IP地址的以太网连接。要做到这一点:

14.2.1)右键单击internet连接并单击打开网络与共享中心

14.2.2)找到与您的单板的以太网连接。它应该是一个身份不明的网络。点击本地连接

14.2.3)点击特性

14.2.4)选择互联网协议版本4 (TCP/IPv4)然后点击特性

14.2.5)点击使用以下IP地址:子弹和类型在IP地址“192.168.1.xx”中,其中xx是2到255之间的值,但不是10。此IP不能与您网络上的其他IP相同.确保点击子网掩码字段获取要自动填充的255.255.255.0掩码。点击好吧你会得到一个静态的IP地址。

14.3)打开Tera Term,输入以下信息并单击好吧

14.4)在控制台中输入任何东西并按Enter键。回显服务器将回显您的输入并在控制台中显示它。

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