创世纪2 -开始与Microblaze
重要!
这个指南已经过时了,可以找到更新的指南在这里.
概述
本指南将提供使用Vivado IP Integrator为Genesys2 FPGA板创建基于Microblaze的硬件设计的一步一步的步骤。注意:Genesys2需要Vivado设计版或系统版,支持Kintex-7 FPGA
MicroBlaze是来自Xilinx的软IP核心,它将完全在Xilinx FPGA通用内存和逻辑面料内实现微处理器。对于本教程,我们将使用Vivado IP Integrator Tool添加MicroBlaze IP块。
除了MicroBlaze IP块之外,我们还希望在Genesys2上使用DDR3 SDRAM组件。因此,MIG(内存接口发生器)IP块将被添加到我们的设计中。
最后,将添加UART(通用异步接收器/发射器)IP块以在主机PC和在GENESYS2上运行的软处理器核心之间进行通信。
一般的设计流程
即Vivado
-
打开Vivado并选择Genesys2板
-
创建一个新的Vivado项目
-
在新项目中创建空块设计工作区
-
使用IP积分器工具添加所需的IP块并构建硬件设计
-
验证和保存块设计
-
创建HDL系统包装器
-
运行设计综合与实现
-
生成一些文件
-
导出硬件设计包括生成的位流文件到SDK工具
-
发射SDK
现在硬件设计被导出到SDK工具。Vivado到SDK的转换是通过Vivado内部完成的。我们将使用SDK来创建一个软件应用程序,该应用程序将使用自定义的板接口数据和FPGA硬件配置,通过导入硬件设计信息从Vivado。
2SDK
-
创建新的应用程序项目,然后选择默认的Hello World模板
-
FPGA程序
-
通过选择正确的UART COM端口和波特率来运行配置
先决条件
硬件
-
Digilent Genesys2 FPGA板
-
2 Micro USB线缆
-
对于UART通信和JTAG编程
-
软件
-
Xilinx Vivado 2015.x.
-
必须安装系统版本或设计版本以支持Kintex-7 FPGA
-
-
Xilinx SDK
-
与vivado安装版本相同
-
-
串行终端应用程序
-
在本教程中使用Tera术语
-
董事会的支持文件
-
Genesys 2支持文件
-
这些文件将描述GPIO接口,使选择和添加FPGA板更加容易GPIOIP块
-
遵循此Wiki指南Vivado板文件为Digilent 7系列FPGA板如何安装vivado 2015.x的董事会支持文件
-
教程
1.创建项目
当你第一次运行Vivado时,这将是主要的开始窗口,你可以在这里创建一个新项目或打开一个最近的项目。
1.1)点击创建新项目.选择项目名称和位置,以便没有空格.这是用于项目名称,文件名和位置路径的重要命名约定。
下划线很好地替代了空格。
对于Vivado项目拥有专用文件夹,这是一种很好的做法,最好是尽可能小的路径长度。示例:c:/ vivado_projects。
命名您的项目,并选择项目位置,然后单击下一个.
1.2)选择项目类型为RTL项目.不选中“不指定源”框,然后单击下一个.
1.3)我们不会在这里导入或创建任何文件,所以点击下一个直到部件选择屏幕。
1.5)显示新项目设计源和目标设备的摘要。点击完成.
2.创建新的块设计
这是主项目窗口,您可以在其中创建基于IP的块设计或添加基于RTL的设计源。左侧的Flow Navigator面板在如何创建硬件设计,执行模拟,运行综合和实现并生成一部位文件时提供多个选项。您还可以使用硬件管理器将电路板直接从Vivado与生成的位文件编程。
对于我们的设计,我们将使用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)进入董事会标签,并找到USB UART组件。单击并拖动将其添加到块设计中,以便将Uartlite块添加到您的设计中。
5.2)点击连接自动化运行在绿色的旗帜上。检查所有自动化复选框,然后单击好吧.
这将为DDR内存创建一个AXI互连,为外围组件创建另一个AXI互连。
单击 重新布局按钮重新安排您的块设计。
6.验证设计并制作HDL包装器
6.1)选择 验证设计.这将检查设计和连接错误。
在设计验证步骤之后,我们将继续创建一个HDL系统包装器。点击来源标签并找到块设计。
右键单击块设计,然后单击创建高密度脂蛋白包装.让Vivado管理包装器和自动更新并点击好吧.
这将在VHDL中创建顶级模块,并将允许您生成比特流。
7.生成一些文件
7.1)在Vivado顶部工具栏中,单击 产生的比特流.这也可以在其中找到流动导航器左侧的面板,下程序和调试.
如果您还没有保存您的设计,则会提示保存块设计。
7.2)将开始比特文件生成。该工具将运行合成和实现.在合成和实现都成功完成后,将创建位文件。你会发现在项目窗口的右上角运行着一个Synthesis and Implementation的状态栏。
这个过程可以从任何地方2到20分钟这取决于你的电脑。
7.3)生成比特流后,屏幕上会弹出一个消息提示。您不必为此演示打开实现的设计。只需点击取消.
8.导出硬件设计到SDK
8.1)在主工具栏上,单击文件并选择出口的硬件.勾选复选框包括比特流并点击好吧.这将导出使用系统包装器的硬件设计,用于软件开发工具 - Vivado SDK。
下面将创建一个新的文件目录Hello_World。SDK类似Vivado的硬件设计项目名称。另外两个文件,.sysdef和.hdf也是创造的。此步骤基本上创建了一个新的SDK工作区。
8.2)在主工具栏上,单击文件然后发射SDK.将这两个下拉菜单都保留为默认值本地项目并点击好吧.这将打开Xilinx SDK并导入硬件。
9.内部Xilinx SDK
9.1)硬件设计规范和包含的IP块显示在system.hdf文件。Xilinx SDK独立于Vivado,也就是说,从现在开始,您可以在导出的HW设计之上用C/ c++创建您的SW项目。如果有必要,您还可以直接从Vivado Project主目录中创建的SDK文件夹启动SDK。
从这一点来看,如果您需要返回Vivado并更改HW设计,那么建议关闭SDK窗口并在Vivado中制作所需的HW设计编辑。在此之后,您必须遵循创建新的HDL包装器的序列,保存设计和位文件生成。然后必须将此新位文件和系统包装器导出到SDK。
9.2)中Project Explorer标签在左边,你可以看到你的硬件平台。
系统是在Vivado中创建的块设计的名称。该硬件平台具有所有已添加的HW设计定义,IP接口,外部输出信号信息和本地存储器地址信息。
10.在SDK中创建新的应用程序项目
10.1)点击 新下拉箭头并选择应用程序项目.
为您的项目指定一个没有空格的名称,然后单击下一个.
10.2)选择你好,世界从模板列表中单击好吧.
您将看到两个新文件夹Project Explorer控制板。
-
display_hello_world.包含所有二进制文件,.C和.H(头文件)
-
display_hello_world_bsp哪个是板支持文件夹
display_hello_world.是我们的主要工作源文件夹。它还包含一个重要的文件,即“lscript.ld”。这是一个Xilinx自动生成的链接器脚本文件。双击此文件打开。
10.3) Back in theProject Explorer,双击并打开HelloWorld.c.下src文件夹中。
这是将打印的主要.c文件你好,世界在执行时在控制台中。
11.用位文件编程FPGA
11.1)确保Genesys2是打开的,并通过两者连接到主机PCJTAGUSB端口和这UARTUSB端口。
在顶部工具栏上,单击 FPGA程序按钮。
11.2)点击程序用你的硬件设计来编程你的FPGA。
12.设置UART终端
12.1)打开一个串行终端应用程序(Tera Term)。连接Genesys2 UART端口,波特率为9600。这个波特率可以在你的块设计中通过双击Uartlite块来改变。
13.对Microblaze处理器进行编程
返回SDK,选择你的你好,世界项目,并单击 运行……按钮。选择启动硬件(系统调试器)并点击好吧.
你的程序将运行,你应该看到你好,世界在你的串行终端中弹出。