Nexys 4 -开始与Microblaze服务器
概述
本指南将逐步介绍如何使用Vivado IP Integrator创建基于Microblaze的硬件设计开始Microblaze通过使用板上以太网端口和Nexys 4 FPGA板的gpio引导。
在本教程结束时,您将有一个全面的硬件设计Nexys4,它利用了Nexys4上的各种硬件端口,由Microblaze Softcore处理器模块管理。
先决条件
软件
-
Xilinx Vivado和SDK包
董事会的支持文件
-
董事会的支持文件。这些文件将描述GPIO接口,使它更容易选择您的FPGA板和添加GPIOIP块。
-
请参考本维基指南(Vivado板文件为Digilent 7系列FPGA板)关于如何安装Vivado 2014.4的板支持文件
-
硬件
-
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.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”。
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在以太网PHY MII到简化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窗口。硬件设计规范和包含的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.验证内存区域映射的链接器脚本文件
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已打开,并通过提供的微型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)为了连接到回显服务器,你必须用一个静态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服务器格式