开始Microblaze服务器
笔记:Nexys Video使用千兆以太网模块,需要TEMAC IP不包含在Vivado网克.要完成本教程,您必须通过以下方式购买TEMAC IP的许可证或获取其网站的评估许可证本指南.
描述
本指南将通过将基于微墨IP Integrator建立的MicroBlaze基于硬件设计提供了一步的步骤步骤使用MicroBlaze开始通过使用板上以太网端口和Nexys视频FPGA板的gpio指导。
在本教程结束时,您将拥有一个全面的硬件设计,用于Nexys视频,该视频在Nexys视频上使用各种硬件端口,由MicroBlaze Softcore处理器块管理。
在进行本指南之前,您需要什么
软件
-
Xilinx Vivado与SDK包。
-
遵循此Wiki指南(安装Vivado)关于如何安装和激活Vivado 2014.4
-
-
安装了TEMAC IP许可证
-
遵循此Wiki指南(安装TEMAC IP的120天评估许可证)。
-
董事会的支持文件
-
板支持文件。这些文件将描述GPIO您的电路板上的接口,并更轻松地选择FPGA板并添加GPIOIP块。
-
遵循此Wiki指南(Vivado板文件为Digilent 7系列FPGA板)如何安装vivado 2014.4的董事会支持文件。
-
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_introut和s2mm_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.
在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.
设置PHY链接速度
30.打开system.mss.文件中的文件echo_server_bsp.文件夹并单击修改这个BSP的设置.
选择LWIP140,然后扩展temac_adapter_options并找到phy_link_speed在列表中。的值更改phy_link_speed到CONFIG_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服务器格式