开始Microblaze服务器

笔记:Nexys Video使用千兆以太网模块,需要TEMAC IP不包含在Vivado网克.要完成本教程,您必须通过以下方式购买TEMAC IP的许可证或获取其网站的评估许可证本指南

描述

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

在本教程结束时,您将拥有一个全面的硬件设计,用于Nexys视频,该视频在Nexys视频上使用各种硬件端口,由MicroBlaze Softcore处理器块管理。

在进行本指南之前,您需要什么

软件

董事会的支持文件

  • 板支持文件。这些文件将描述GPIO您的电路板上的接口,并更轻松地选择FPGA板并添加GPIOIP块。

nexys视频董事会文件

硬件

  • Digilent Nexys视频FPGA板和Micro USB电缆用于UART通信和JTAG编程

介绍

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创建一个软件应用程序,该应用程序将通过从Vivado导入硬件设计信息来使用自定义的电路板接口数据和FPGA硬件配置。

II。SDK.

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

逐步走过

创建一个新项目

1.点击创建新项目。选择项目名称和位置没有空格.这是用于项目名称,文件名和位置路径的重要命名约定。下划线在一个空间的良好替代品中。

对于Vivado项目拥有专用文件夹,这是一种很好的做法,最好是尽可能小的路径长度。示例:c:/ vivado_projects。

为项目命名并选择项目位置,然后单击“下一步”。

2.选择项目类型作为RTL项目。留下 - 不要指定索道框,取消选中,然后单击“下一步”。

3.如果您遵循了董事会支持文件Wiki指南,然后单击下一步并选择董事会

从过滤器选项,为供应商,显示名称和电路板修订进行必备选择。Nexys视频应在选择列表中显示。选择正确的板名称中的不匹配会导致错误。

4.单击“下一步”,然后单击“完成”,Vivado将为您创建一个项目。

创建一个街区设计

5.点击下面蓝色圈出的按钮创建一个块设计。

添加Microblaze核心

6.点击开始“添加IP”按钮以下面的蓝色盘旋。搜索“microblaze”双击下面突出显示的IP。

7.单击以蓝色旋转的“运行块自动化”,并更改选项以匹配下面图片中的选项。单击“确定”。

添加必要的输出时钟

8.双击孵蛋的向导块下面突出显示,并设置CLK_IN1以使用“sys_clock”和ext_reset_in以使用“重置”。

9.选择“输出时钟”选项卡并启用clk_out2.clk_out3..集clk_out2.200MHz.,clk_out3.125兆赫.设置“重置类型”为活性低使用下面的子弹。完成后,单击“确定”。

添加更多中断

10.找到Concat块并双击它。将端口数设置为5,然后按OK。

添加IP核心

11.我们现在将为我们的项目添加所有必要的IP块。有4个核心我们会添加:

  • 内存接口生成器
  • axi uartlite.
  • AXI以太网子系统
  • AXI计时器

将所有这些添加到您的设计中,一次使用“添加IP”按钮。一旦它们完全添加,您应该看到下面显示的四个块。

IP核的配置和路由

12.点击“运行块自动化”然后运行它mig_7series_0堵塞。

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

13.点击“运行块自动化”然后运行它axi_ethernet_0.堵塞。改变物理接口选择RGMII并单击OK。

点击“运行连接自动化”.联络MicroBlaze_0.复选框并单击OK。

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

15.点击重新制定布局(以下面的蓝色盘旋),你的块设计应该如下所示:

路由丢失的连接

16.Concat块采用中断输入并将其发送到MicroBlaze控制器。

将以下连接路由到输入的输入Concat堵塞。顺序不重要。

  • 中断在这方面AXI计时器堵塞。
  • mm2s_introuts2mm_introut.在这方面axi_ethernet_0_dma.堵塞。
  • mac_irq.中断在这方面axi_ethernet_0.堵塞。

17。

  • 连接resetn.在这方面孵蛋的向导街区到重启销的输入。

18。

  • 连接sys_clk_i在这方面mig_7_series_0.街区到clk_out2.输出从孵蛋的向导

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

20.点击重新制定布局再次将导致您的最终块设计布局为此项目。

21.单击验证设计按钮确保您没有任何错误。

22.现在,右键单击您的Design_1块图并单击“创建高密度脂蛋白包装”.弹出窗口时,选择“让Vivado管理包装器和自动更新”子弹,然后单击“确定”。

23.单击工作空间顶部的“生成比特流”。这个过程需要一段时间。

将硬件设计导出到SDK

24.在窗口的左上角,从工具栏点击文件并选择出口硬件.这将导出使用系统包装器的硬件设计,用于软件开发工具 - Vivado SDK。检查框中是否包含生成的比特流

推出SDK.

25.去文件并选择推出SDK.并单击OK。将启动在Vivado设计项目位置本地创建的SDK文件。从Vivado过渡到SDK的过程已经完成。

在SDK内部的Vivado

26.将打开一个新的SDK窗口。硬件设计规范和包含的IP块显示在system.hdf.文件。SDK工具是独立于Vivado的,也就是说,从这里开始,你可以在导出的HW设计之上用C/ c++创建你的SW项目。如果需要,您也可以直接从Vivado项目主目录中创建的SDK文件夹中启动SDK。

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

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

在SDK中创建新应用程序

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

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

由于我们只有一个硬件设计design_1_wrapper_hw_platform_0这将是我们的目标硬件。选择创建新的在下面董事会支持包.该工具将自动填充董事会支持包与给出项目名称匹配的名称。

点击下一步。

选择IWIP Echo Server.在可用模板列表中,单击“完成”。

28.完成上一步后,您将看到两个新文件夹项目资源管理器控制板。

  • echo_server.包含所有二进制文件,.C和.H(头文件)
  • echo_server_bsp.哪个是板支持文件夹

echo_server.是我们的主要工作源文件夹。这也包含一个名为“lscript.ld”的SRC文件夹中显示的一个重要文件。这是一个Xilinx自动生成的链接脚本文件。双击此文件打开。

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

29.在链接器脚本中,看看内存区域映射部分盒子。如果你做了制作外部DDR2然后步进目标内存区域必须mig_7series_0

向下滚动以检查这是否适用于所有行。如果任何区域都没有说mig_7series_0,然后单击行下的行记忆区域列和选择mig_7series_0

30.打开system.mss.文件中的文件echo_server_bsp.文件夹并单击修改这个BSP的设置

选择LWIP140,然后扩展temac_adapter_options并找到phy_link_speed在列表中。的值更改phy_link_speedCONFIG_LINKSPEED1000然后按OK。

使用位文件编程FPGA

31.确保Nexys视频已打开并连接到主机PC,其中提供的Micro USB电缆插入Nexys视频上的Prog端口。

在主工具栏上,单击Xilinx工具»程序FPGA

确保硬件平台是选为design_1_wrapper_hw_platform_0

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

现在点击程序。

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

32.右键点击echo_server.项目文件夹,然后选择运行»运行配置

将USB插头从板上的PROG端口移动到UART端口.现在转到STDIO连接标签并检查将stdio连接到控制台复选框。点击申请,然后点击

运行服务器

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

使用TERA项测试服务器

34.使用以太网电缆将PC连接到Nexys视频。

35.为了连接到echo服务器,您必须使用静态IP地址设置以太网连接。去做这个:

  • 右键单击Internet连接,然后单击开放网络共享中心

  • 找到与Nexys视频的以太网连接。它应该是一个不明的网络。点击局部连接

  • 点击特性

  • 选择Internet协议版本4 (TCP/IPv4)然后点击特性

  • 单击使用以下IP地址:Bullet和IP地址192.168.1.xx中的键入,其中xx是2到255之间的值,但不是10。此IP不能与您网络上已经存在的其他IP相同.确保点击子网掩码字段获取要自动填充的255.255.255.0掩码。单击Ok,您将拥有一个静态IP地址。

36.打开Tera Term,输入以下信息,然后单击Ok。

37.在控制台中键入任何内容,然后按Enter键。Echo Server将回应输入并将其显示在控制台中。

您可以进入设置>终端并更改下面的设置以获取更传统的echo服务器格式