Genesys 2 -开始与Microblaze服务器
注意:Genesys2使用千兆以太网模块,需要TEMAC IP,即不包含在Vivado Webpack中.为了完成本教程,您必须购买TEMAC IP的许可证,或者通过以下方式从TEMAC IP的网站免费获得评估许可证本指南.
概述
本指南将逐步介绍如何使用Vivado IP Integrator创建基于Microblaze的硬件设计开始Microblaze通过使用Genesys2 FPGA板的板上以太网端口和gpio引导。
在本教程的最后,您将对Genesys2进行全面的硬件设计,该设计利用了Genesys2上的各种硬件端口,这些端口由Microblaze Softcore处理器模块管理。
注意:Genesys2需要Vivado设计版或系统版,支持Kintex-7 FPGA。这和免费的webpack版本不一样
先决条件
硬件
-
Digilent Genesys2 FPGA板
-
2微型USB电缆UART通信和JTAG编程
-
以太网电缆
软件
-
Xilinx Vivado 2015。X
-
系统版或设计版必须安装以支持Kintex-7 FPGA
-
-
Xilinx SDK
-
与Vivado安装的版本相同
-
-
串行终端应用程序
-
Tera Term在本教程中使用
-
-
已安装TEMAC IP许可证
-
遵循这个Wiki指南:安装TEMAC IP 120天评估License.
-
董事会的支持文件
-
董事会的支持文件—这些文件将描述GPIO接口,使它更容易选择您的FPGA板和添加GPIOIP块。
-
遵循这篇Wiki指南Vivado板文件为Digilent 7系列FPGA板关于如何安装Vivado 2015的板支持文件。X
-
教程
1.创建项目
当你第一次运行Vivado时,这将是一个主启动窗口,你可以在这里创建一个新项目或打开一个最近的项目。
1.1)点击创建新项目.选择项目名称和位置没有空格.对于项目名称、文件名和位置路径来说,这是一个重要的命名约定。
下划线可以很好地替代空白。
为Vivado Projects创建一个专用文件夹是一种很好的做法,最好使用尽可能小的路径长度。例如:C: / Vivado_Projects。
命名您的项目,并选择项目位置,然后单击下一个.
1.2)选择项目类型为RTL项目.让“-不指定源文件”框未选中,然后单击下一个.
1.3)我们不会在这里导入或创建任何文件,所以点击下一个直到零件选择屏幕。
1.5)显示新项目设计源和目标设备的摘要。点击完成.
2.创造新的街区设计
这是主要的项目窗口,您可以在这里创建基于IP的块设计或添加基于RTL的设计源。左边的流导航面板提供了多个选项,如何创建硬件设计,执行模拟,运行合成和实现,并生成一个比特文件。您还可以使用硬件管理器直接从Vivado为RTL项目生成位文件来编程。
对于我们的设计,我们将使用IP Integrator创建一个新的块设计。
2.1)在左边你应该看到流程导航器。选择创建块设计IP集成商。给你的设计一个名字(没有任何空白),然后点击好吧.
你创造了一个新的街区设计。
3.添加DDR3组件
3.1)点击董事会标签(下面以橙色突出显示)
此列表包含您之前安装的板文件中定义的所有组件。这些已经配置为与几个Vivado ip一起工作。
3.2)点击并拖动的DDR3 SDRAM组件上的空块设计。Vivado将自动连接DDR3 SDRAM和系统时钟到MIG IP。
3.3)点击连接自动化运行在上面的绿色横幅上。点击好吧.
Vivado将把系统重置连接到MIG上的sys_rst。
4.添加Microblaze处理器和配置
4.1)点击 添加IP按钮并搜索Microblaze.
双击Microblaze将其添加到你的街区设计中。
4.2)点击块自动化运行打开Microblaze处理器的Block自动化。
在这里你可以选择给你的Microblaze处理器多少内存。配置选项要匹配下面的图片,请点击好吧.
4.3)运行块自动化将自动生成一组额外的IP块,这些IP块将根据上一步中选择的选项自动添加到我们的硬件设计中。请先不要单击“运行连接自动化”。
5.添加外围组件
5.1)进入董事会再次按TAB键,找到USB UART组件。单击并拖动将Uartlite模块添加到你的设计中。
5.2)找到以太网PHY和把这个拖到方块设计上将以太网块添加到您的设计中。
5.3)点击 添加IP按钮并搜索计时器.双击AXI计时器将其添加到你的街区设计中。
5.4)点击块自动化运行在绿色的旗帜上。然后单击好吧在屏幕上弹出。
这将创建一个新的以太网DMA IP块以及一个时钟向导。
找到时钟向导axi_ethernet_0_refclk并连接clk_in1到ui_clk输出mig_7series_0块。
5.6)点击连接自动化运行在绿色的旗帜上。检查所有自动化复选框,然后单击好吧.
您可能会收到关于过时自动化的警告。只是连接自动化运行在所有的自动化设备上。这将为DDR内存创建一个AXI互连,为外围组件创建另一个AXI互连。
6.连接中断
6.1)找到Concat阻止并双击它以打开它的设置。
6.2)改变数量的端口来5.点击好吧.
Concat块接收中断输入并将其发送给Microblaze控制器。
将以下连接路由到Concat块;顺序并不重要:
-中断在AXI计时器块。
-mm2s_introut和s2mm_introut在axi_ethernet_0_dma块。
-mac_irq和中断在axi_ethernet_0块。
7.验证设计和制作HDL包装器
7.1)点击 重新布局按钮来重新排列你的方块设计。
7.2)选择 验证设计.这将检查设计和连接错误。
在设计验证步骤之后,我们将继续创建一个HDL系统包装器。点击来源TAB键,找到你的街区设计。
7.4)右键点击你的方块设计,然后点击创建高密度脂蛋白包装.让Vivado管理包装器和自动更新并点击好吧.
这将在VHDL中创建一个顶级模块,并允许您生成一个比特流。
8.生成一些文件
8.1)在Vivado顶部工具栏中,单击 产生的比特流.这也可以在流导航器面板在左边,下面程序和调试.
如果您还没有保存您的设计,您将得到一个提示来保存块设计。
开始生成位文件。工具将运行合成和实现.在合成和实现都成功完成后,将创建位文件。你会发现在项目窗口的右上角运行着合成和实现的状态栏。
这个过程可以发生在任何地方5至60分钟这取决于你的电脑。
比特流生成后,屏幕上会弹出消息提示。您不必为这个演示打开已实现的设计。点击取消.
9.将硬件设计导出到SDK
9.1)在主工具栏中,单击文件并选择出口的硬件.选中复选框以包括比特流并点击好吧.这将导出硬件设计与系统包装软件开发工具- Vivado SDK。
将在下面创建一个新的文件目录echo_server。SDK类似于Vivado硬件设计项目的名称。另外两个文件,.sysdef和.hdf也创造了。这一步基本上创建了一个新的SDK工作区。
9.2)在主工具栏上,单击文件然后发射SDK.将两个下拉菜单都保留为默认值本地项目并点击好吧.这将打开Xilinx SDK并导入硬件。
10.在Xilinx SDK
10.1)硬件设计规范和包含的IP块显示在system.hdf文件。Xilinx SDK是独立于Vivado的,也就是说,从现在开始,你可以在导出的HW设计之上用C/ c++创建你的SW项目。如果需要,您也可以直接从Vivado项目主目录中创建的SDK文件夹中启动SDK。
此时,如果您需要回到Vivado并更改硬件设计,那么建议关闭SDK窗口,并在Vivado中进行所需的硬件设计编辑。在此之后,您必须按照创建一个新的HDL包装器的顺序,保存设计和位文件生成。这个新的位文件和系统包装器必须导出到SDK。
10.2)中Project Explorer在左侧的TAB中,您可以看到您的硬件平台。
系统是在Vivado中创建的块设计的名称。该硬件平台包含所有的硬件设计定义、已添加的IP接口、外部输出信号信息和本地内存地址信息。
11.在SDK中创建新的应用程序项目
11.1)点击 新下拉箭头并选择应用程序项目.
给您的项目一个没有空格的名称,然后单击下一个.
11.2)选择lwIP回显服务器从模板列表中单击好吧.
中的两个新文件夹Project Explorer面板。
-
echo_server包含所有二进制文件,.C和.H(头文件)
-
echo_server_bsp哪个是板支持文件夹
echo_server是我们的主要工作源文件夹。这也包含一个重要的文件,这里显示的是“lscript.ld”。这是Xilinx自动生成的链接器脚本文件。双击这个文件打开。
11.3)回到Project Explorer,双击打开system.mss下echo_server_bsp文件夹中。点击修改这个BSP的设置.
11.4)点击lwip141然后找到temac_adapter_options然后点击箭头。找到phy_link_speed并将Value更改为CONFIG_LINKSPEED100.如果您的路由器支持千兆位传输,请将此值更改为CONFIG_LINKSPEED1000.点击好吧.
12.用位文件编程FPGA
12.1)确保Genesys2是打开的,并连接到主机PC通过两个JTAGUSB端口和的UARTUSB端口。
在顶部工具栏上,单击 FPGA程序按钮。
12.2)点击程序用硬件设计来编程你的FPGA。
13.设置UART终端
打开一个串行终端应用程序(Tera Term)。连接Genesys2 UART端口,波特率为9600。通过双击Uartlite块,可以在块设计中更改此波特率。
14.为Microblaze处理器编程
14.1)在开始之前,确保你的Genesys2已插入路由器。
14.2)回到SDK,选择你的echo_server项目,然后单击 运行……按钮。选择在硬件上启动(系统调试器)并点击好吧.
14.3)你的程序将运行,你应该看到在你的串行终端的IP信息。
14.4)打开另一个终端连接回显服务器7号端口的单板IP.
14.5)通过在终端中输入一些东西来测试你的echo服务器。根据您的设置,您可能在按下之前看不到字符输入.当你这样做时,消息将被发送到Echo Server,并将被回显到你的终端!