Nexys 4 - Microblaze服务器入门
概述
本指南将逐步介绍如何使用Vivado IP Integrator构建基于Microblaze的硬件设计开始使用Microblaze通过使用Nexys 4 FPGA板上的以太网端口和gpio进行引导。
在本教程的最后,您将有一个全面的硬件设计的Nexys4,利用各种硬件端口的Nexys4是由Microblaze软核处理器块管理。
先决条件
软件
-
Xilinx Vivado与SDK包
董事会的支持文件
-
董事会的支持文件。这些文件将描述GPIO接口,并使您更容易选择您的FPGA板和添加GPIOIP块。
-
遵循本维基指南(Digilent 7系列FPGA板的Vivado板文件)关于如何安装Vivado 2014.4的板支持文件
-
硬件
-
Digilent Nexys 4 FPGA板和Micro USB Cable用于UART通信和JTAG编程
教程
Microblaze是Xilinx的软IP核,它将完全在Xilinx FPGA通用内存和逻辑结构中实现微处理器。在本教程中,我们将添加以太网功能并创建一个echo服务器。
一般的设计流程
即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.创建一个新项目
1.4)单击Next,然后是Finish, Vivado将为您创建一个项目。
2.创建块设计
2.1)点击下面用蓝色圈出来的按钮,创建一个块设计。
3.添加Microblaze核心
3.1)开始点击“添加IP”下面用蓝色圈出的按钮。搜索“Microblaze”并双击下面高亮显示的IP。
3.2)点击蓝色圈出的“运行区块自动化”,并更改选项以匹配下图中的选项。点击“Ok”。
4.添加必要的输出时钟
4.1)双击下面突出显示的时钟向导块,将CLK_IN1设置为使用“sys_clock”,将EXT_RESET_IN设置为使用“reset”。
5.添加IP核
6.IP核配置与路由
6.1)AXI EMC块,连接rdlk输入到clk1输出在时钟向导块.为此,将鼠标悬停在EMC rdclk旁边的蓝色矩形上,直到看到铅笔光标。单击并将其拖动到另一个块的clk1输出并释放。
6.4)点击重新布局(下面用蓝色圈出来的),你的区块设计应该是这样的:
6.5)
*路线中断在AXI计时器块In0(0时)在Concat块。
*路线ip2intc_irpt在AXI EthernetLite块三机一体(0时)在Concat块。
*连接resetn在孵蛋的向导块的重置销。
6.6)右键单击您的设计的背景(空白),然后单击创建端口…,或使用快捷键Ctrl-K。将此端口命名为eth_ref_clk,并将选项更改为下图中的选项。
6.7)连接这eth_ref_clk销,ref_clk在Ethernet PHY MII to reduced MII块。然后从时钟向导将两者连接到输出引脚clk_out2。
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
9.内部SDK为Vivado
将打开一个新的SDK窗口。HW设计规范和包含的IP块显示在system.hdf文件。SDK工具是独立于Vivado的,也就是说,从这一点上,你可以在导出的HW设计上用C/ c++创建你的SW项目。如果需要,还可以直接从Vivado Project主目录中创建的SDK文件夹中启动SDK。
现在,如果您需要返回Vivado并更改HW设计,那么建议关闭SDK窗口并在Vivado中进行所需的HW设计编辑。在此之后,您必须遵循创建新的HDL包装器、保存设计和位文件生成的顺序。然后必须将这个新的位文件和系统包装器导出到SDK。
由于我们目前没有任何HW设计编辑,我们将继续创建一个软件应用程序来运行一个echo服务器。
10.在SDK中创建新的应用项目
10.1)去文件在主工具栏中选择新»应用项目.将弹出一个新的项目窗口。
给您的SDK项目一个没有空格的名称,如下所示。确保目标硬件是正确的硬件设计。在我们的例子中,它将是“design_1_wrapper_hw_platform_0”。
例如,如果你还有另一个硬件设计Project Explorer窗口,则您还将在Target Hardware下拉选择列表中看到此设计名称。
因为我们只有一个硬件设计design_1_wrapper_hw_platform_0这将是我们的目标硬件。选择创建新的下董事会支持包.该工具将自动填充董事会支持包名称来匹配给定的项目名称。
单击Next。
选择IwIP回显服务器在可用模板列表下单击Finish。
完成上一步后,您将在Project Explorer面板。
echo_server它包含所有的二进制文件,.C和.H(头文件)
echo_server_bsp哪个是板支持文件夹
echo_server是我们的主要工作源文件夹。它还包含src文件夹中名为“lscript.ld”的重要文件。这是一个Xilinx自动生成的链接器脚本文件。双击此文件打开。
11.验证内存区域映射的链接器脚本文件
12.设置PHY链路速率
12.1)打开system.mss文件内echo_server_bsp文件夹,然后单击修改BSP的设置.
选择lwip140,然后展开temac_adapter_options并找到phy_link_speed在列表中。改变phy_link_speed来CONFIG_LINKSPEED100和按下OK。
13.用位文件编程FPGA
13.1)确认Nexys 4 DDR已打开,并使用提供的micro USB数据线连接主机PC。在主工具栏上,单击Xilinx工具程序»FPGA
确保硬件平台是选为design_1_wrapper_hw_platform_0.
在软件配置框中,在要在块中初始化的ELF文件内存列,行选项必须读取bootloop.如果不是,单击该行并选择bootloop.
现在点击程序。
14.安装SDK串行控制台并运行服务器
15.运行服务器
15.1)在屏幕底部的控制台窗口中将显示连接的详细信息。
16.用Tera Term测试服务器
16.1)用网线将PC机与Nexys4连接。
16.2)为了连接到echo服务器,你必须设置一个静态IP地址的以太网连接。
要做到这一点:
*右击你的互联网连接和点击开放网络和共享中心.
*找到以太网连接到您的Nexys4-DDR。它应该是一个身份不明的网络。点击本地连接.
*点击属性.
*选择互联网协议版本4 (TCP/IPv4)并点击属性.
*点击请使用以下IP地址:子弹,并输入IP地址192.168.1。XX,其中XX是介于2到255之间的值,而不是10。确保点击子网掩码字段获取要自动填充的255.255.255.0掩码。单击Ok,您将拥有一个静态IP地址。
16.3)打开Tera Term,输入以下信息,点击Ok。
16.4)在控制台中输入任何东西并按Enter键。回显服务器将回显您的输入并在控制台中显示它。
您可以进入Setup>Terminal并更改以下更传统的echo服务器格式的设置