Nexys 4 -开始与Microblaze服务器

概述

本指南将逐步介绍如何使用Vivado IP Integrator创建基于Microblaze的硬件设计开始Microblaze通过使用板上以太网端口和Nexys 4 FPGA板的gpio引导。

在本教程结束时,您将有一个全面的硬件设计Nexys4,它利用了Nexys4上的各种硬件端口,由Microblaze Softcore处理器模块管理。


先决条件

软件

  • Xilinx Vivado和SDK包

董事会的支持文件

  • 董事会的支持文件。这些文件将描述GPIO接口,使它更容易选择您的FPGA板和添加GPIOIP块。

硬件

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

教程

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

一般的设计流程

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

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

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

1.创建一个新项目

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



命名您的项目并选择项目位置,然后单击next。

1.2)选择项目类型为RTL项目。不要选中“-不指定源文件”框,然后单击“下一步”。

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

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

2.创建一个街区设计

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


3.添加Microblaze核心

3.1)点击开始“添加IP”按钮下面用蓝色圈起来。搜索“Microblaze”双击下面突出显示的IP。

3.2)点击用蓝色圈出的“Run Block Automation”,并将选项更改为与下图相匹配。点击“Ok”。


4.添加必要的输出时钟

4.1)双击下面突出显示的时钟向导块,设置CLK_IN1使用“sys_clock”,设置EXT_RESET_IN使用“reset”。

4.2)选择“输出时钟”选项卡并启用clk_out2.集clk_out250兆赫.它们将分别对内存控制器和以太网参考时钟进行计时。
设置“重置类型”为活性低使用下面的子弹。当您完成时,单击Ok。



你的方块设计应该是这样的:


5.添加IP核

5.1)我们现在将添加所有必要的IP块到我们的项目。我们将增加5个核心:
* AXI EMC
* AXI Uartlite
*以太网PHY MII到简化MII
* AXI EthernetLite
* AXI计时器
将所有这些内容添加到您的设计中,一次添加一个“添加IP”按钮。添加完它们之后,您应该会看到如下所示的五个块。


6.IP核的配置和路由

6.1)AXI EMC块,连接rdlk输入clk1输出时钟向导块.为此,将鼠标悬停在EMC rdclk旁边的蓝色矩形上,直到看到铅笔光标。单击并将其拖动到另一个块的clk1输出并释放。
6.2)AXI EthernetLite块,连接信息产业部输出信息产业部输入以太网PHY MII到缩减MII块.为此,将鼠标悬停在MII+旁边的蓝色矩形上,直到看到铅笔光标。点击并拖动到另一个块的+MII输入,然后释放。

6.3)点击“连接自动化运行”.取消勾选的microblaze_0复选框并单击OK。

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

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




*连接resetn孵蛋的向导块的重置销。

6.6)右键点击你的设计背景(空白)的某个地方,然后点击创建端口…,或使用快捷键Ctrl-K。将该端口命名为eth_ref_clk,并将选项修改为下图所示。

6.7)连接这eth_ref_clk销,ref_clk以太网PHY MII到简化MII块。然后从时钟向导将两者连接到输出引脚clk_out2。

6.8)双击进入AXI EMC块,选择Memory Bank1,设置如下所示。

6.9)点击地址Edditor同时选择S_AXI_MEM,并将范围更改为16M。

6.10)点击重新布局再次将导致这个项目的最终块设计布局。

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

6.12)选择“添加或创建约束”,单击“下一步”。

6.13)点击创建文件…,命名您的新约束文件,然后单击OK,然后单击Finish。

6.14)打开你的新约束文件,并粘贴以下代码行:
set_property -dict {PACKAGE_PIN D5 IOSTANDARD LVCMOS33} [get_ports {eth_ref_clk}];
完成后保存xdc文件。
6.15)现在,右键单击你的design_1框图,然后点击“创建高密度脂蛋白包装”.当窗口弹出时,选择“让Vivado管理包装器和自动更新”选项,然后单击OK。

6.16)点击工作空间顶部的“生成位流”。这个过程需要一段时间。


7.将硬件设计导出到SDK

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


8.启动SDK

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


9.在SDK内部的Vivado

将会打开一个新的SDK窗口。硬件设计规范和包含的IP块显示在system.hdf文件。SDK工具是独立于Vivado的,也就是说,从这里开始,你可以在导出的HW设计之上用C/ c++创建你的SW项目。如果需要,您也可以直接从Vivado项目主目录中创建的SDK文件夹中启动SDK。
现在,如果您需要回到Vivado并更改硬件设计,那么建议关闭SDK窗口,并在Vivado中进行所需的硬件设计编辑。在此之后,您必须按照创建一个新的HDL包装器的顺序,保存设计和位文件生成。这个新的位文件和系统包装器必须导出到SDK。
由于我们在这一点上没有任何硬件设计编辑,我们将继续创建一个软件应用程序来运行一个echo服务器。


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

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



选择IwIP回显服务器在可用模板列表下单击Finish。

10.2)完成上一个步骤后,你会在Project Explorer面板。
echo_server包含所有二进制文件,.C和.H(头文件)
echo_server_bsp哪个是板支持文件夹
echo_server是我们的主要工作源文件夹。它还包含一个src文件夹中名为“lscript.ld”的重要文件。这是Xilinx自动生成的链接器脚本文件。双击这个文件打开。

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

11.1)在链接器脚本中,请查看可用内存区域盒子。名称应该是axi_emc_0_s_AXI_MEMO_BASEADDRSize应该是0x01000000


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



选择lwip140,然后展开temac_adapter_options并找到phy_link_speed在列表中。的值更改phy_link_speedCONFIG_LINKSPEED100和按下OK。


13.用位文件编程FPGA

13.1)确保Nexys 4 DDR已打开,并通过提供的微型USB线缆连接到主机PC。在主工具栏中,单击Xilinx工具程序»FPGA
确保硬件平台是选为design_1_wrapper_hw_platform_0
在软件配置框下要块初始化的ELF文件内存列时,必须读取行选项bootloop.如果不是,请单击该行并选择bootloop
现在点击程序。


14.安装SDK串口控制台并运行服务器

14.1)右键单击echo_server项目文件夹,然后选择Run As»运行配置



它的连接TAB键,并检查连接STDIO到控制台复选框。点击应用,然后单击运行


15.运行服务器

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


16.使用Tera Term测试服务器

16.1)用以太网线连接你的PC和Nexys4。
16.2)为了连接到回显服务器,你必须用一个静态IP地址建立你的以太网连接。
要做到这一点:
*右击你的互联网连接并点击开放网络共享中心



*找到到Nexys4-DDR的以太网连接。应该是一个身份不明的网络。点击本地连接



*点击属性



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



*点击请使用以下IP地址:,并输入IP地址192.168.1。XX, XX的取值范围是2 ~ 255,但不是10。请确保在子网掩码字段获取要自动填充的255.255.255.0掩码。单击Ok,您将拥有一个静态IP地址。

16.3)打开“Tera Term”,输入以下信息,单击“确定”。

16.4)在控制台输入任何内容并按Enter键。echo服务器将回显您的输入并在控制台中显示它。
您可以进入设置>终端,并更改下面的设置,以使用更传统的echo服务器格式