热情的PMOD IPS入门
概述
Digilent提供了几个ip,旨在使在FPGA上实现和使用Pmod尽可能简单。本指南将描述如何在Vivado Microblaze或Zynq设计中使用Pmod IP核。
在本教程结束时,您将为您的FPGA或Zynq平台提供Vivado设计和演示,它使用Digilent PMOD IP核心。
下面两个下拉表显示了本教程支持的Digilent FPGA系统板和Pmods,以及完成本教程需要了解的关于它们的一些详细信息。
- 平台支持
- PMODS支持
-
Pmod 接口类型 参考时钟频率(兆赫) 时钟信号名称 中断销名称/ s 使用PmodGPIO 额外的笔记 8 ld GPIO - - - 是的 - ACL SPI 80 ext_spi_clk. - - - ACL2 SPI 50. ext_spi_clk. - - - AD1 SPI - - - - - AD2 IIC. - - - - - AD5 SPI 50. - - - - 肌萎缩性侧索硬化症 SPI 50. ext_spi_clk. - - - amp2. GPIO - - timer_interrupt - - aq IIC. - - - - - BB GPIO - - - 是的 - 祝福 UART - - - - - BT2 UART - - - - - BTN GPIO - - - 是的 - 可以 SPI One hundred. ext_spi_clk. SPI_interruptGPIO_interrupt - CLS SPI 50. ext_spi_clk. - - - CMPS2 IIC. - - - - SDK项目需要数学库 颜色 IIC. - - - - - DA1 SPI 50. ext_spi_clk. - - - DHB1 脉宽调制/GPIO - - - - - DPG1. SPI 50. ext_spi_clk. - - - 内附 GPIO - - - - - ESP32 UART - - - - - 全球定位系统(GPS) UART - - gps_uart_interrupt - - 陀螺仪 SPI 50. ext_spi_clk. - - - HYGRO IIC. - - - - - JSTK SPI 16 ext_spi_clk. - - - JSTK2 SPI 16 ext_spi_clk. - - - KYPD GPIO - - - - - 领导 GPIO - - - 是的 - maxsonar. GPIO - - - - - MicroSD 使用Pmod SD IP核 - mtd SPI - - - - - 导航 SPI /GPIO 50. ext_spi_clk. - - - oled. SPI /GPIO - - - - - OLEDrgb SPI /GPIO 50. ext_spi_clk. - - - PIR GPIO - - - - - R2R GPIO - - - - - RTCC IIC. - - - - - SD. SPI - - - - - SF3 SPI 50. ext_spi_clk. QSPI_INTERRUPT - - 苏维埃社会主义共和国 GPIO - - - 是的 - SWT. GPIO - - - 是的 - TC1 SPI 50. ext_spi_clk. - - TMP3 IIC. - - - - 无线上网 SPI - - WF_INTERRUPT - 需要385 kB的Bram或DDR
先决条件
硬件
-
支持Digilent 7系列FPGA系统板
-
Microusb Cable / s
-
一个或多个支持Digilent Pmods
软件
-
Xilinx Vivado 2018.2与Xilinx SDK和Digilent Board文件
-
其他版本的Vivado也可以工作,但功能不能保证
-
看到“安装Vivado和Divilent Board文件”有关更多信息的教程。
-
-
Digilent Vivado IP库
-
步骤2本教程介绍了如何下载和解压缩这些文件。
-
重要的
如果要使用的PMOD IP具有自述文件,请务必在开始本教程之前查看它。此文件可以在其中找到vivado-library / ip / Pmods /“你pmod”目录中。
教程
1.创建一个新的Microblaze/Zynq模块设计
- Microblaze
-
- Zynq
-
2.添加Digilent库存储库
2.1)找到Digilent的最新版本vivado-library版本号与使用的Vivado版本匹配的存储库(例如:“v2016.4-1”是Vivado 2016.4的第一个版本。下载Vivado-Library-.zip 文件 (不是一个源代码档案!),然后提取这个存档在一个难忘的位置。这个GitHub库包含了大量的用于Digilent板的IP核,包括Digilent所有的Pmod IP核和Pmod接口描述。
3.将Pmod添加到你的方块设计中
信息
此列表包含在您的平台的板文件中定义的所有组件。您可以使用它轻松地插入IP块,该IP块将与平台上的硬件一起工作,例如以太网端口或通用用途领导.在步骤1.1中创建初始设计时,应该已经选择了其中一些。
提示
几个比较简单的GPIOPmods可以与PmodGPIO IP Core一起使用。要查看Pmod是否受此IP核的支持,请参阅Pmod兼容性表概述部分本教程的。
4.连接自动化运行
5.连接参考时钟
将一个参考时钟附加到Pmod IP核是不同的,这取决于您正在使用的平台。选择最能描述平台的选项卡(请参阅概述部分如果你不知道)。
- Zynq
-
5.1)双击ZYNQ处理系统块来重新定制它。在左侧菜单中,单击时钟配置.扩大PL织物时钟下拉并检查尚未检查的第一个fclk_clk以激活它。将所请求的频率设置为PMOD所需的频率。该频率可在Pmod兼容性图表中找到概述部分本教程的。点击好吧.
提示
如果已经检查的FCLK_CLK的一个具有与PMOD所需频率匹配的频率,则可以使用该时钟。可以将一个时钟连接到多个目的地。
- 微毛与米格
-
5.1)双击MIG_7Series块以重新自定义。在Xilinx内存接口生成窗口中,请继续单击下一个直到你看到选择额外的时钟(如下所示)。单击此框并选择Pmod所需的频率或最接近的可用较慢频率。所需的频率可在Pmod兼容性图表中找到概述部分本教程的。
提示
如果其他时钟中的一个已经被使用,并且它的频率与你的Pmod所需的频率相匹配,那么你可以使用这个时钟。可以将一个时钟连接到多个目的地。如果是这样的话,你可以取消退出MIG配置对话框。
5.2)请点击下一个.当你到达引脚选择屏幕时,点击验证然后好吧.继续点击下一个.点击接受在许可协议屏幕上,然后继续单击下一个.当你到达终点时,点击产生用额外的时钟重新生成你的米格方块。
- MicroBlaze没有米格
-
5.1)双击时钟向导IP块,重新定制。在自定义对话框中,选择Output Clocks选项卡。检查下一个未被检查的时钟以激活它。将请求的输出频率设置为Pmod所需的频率。该频率可在Pmod兼容性图表中找到概述部分本教程的。点击好吧.
提示
如果其他时钟中的一个已经被使用,并且它的频率与你的Pmod所需的频率相匹配,那么你可以使用这个时钟。可以将一个时钟连接到多个目的地。
6.连接中断
将Pmod IP核心中断附加到处理器上是不同的,这取决于您使用的平台。选择最能描述平台的选项卡(请参阅概述部分如果你不知道)。
- Zynq
-
6.2)添加一个Concat对IP核块进行设计。重新定制concat块,以确保输入的数量与你需要连接到Zynq处理器的中断数量相匹配——可能只有一个。点击好吧.
- Microblaze
-
6.2)将芯片IP核心添加到块设计。重新自定义Concat块以确保输入的数量与您需要连接到MicroBlaze处理器所需的中断次数 - 可能只有一个。点击好吧.
7.验证设计
7.1)点击重新制定布局按钮来重新排列你的方块设计。
![]()
7.2)选择验证设计.这将检查设计和连接错误。
7.3)如果你已经为你的模块设计创建了一个HDL包装作为板的一部分开始使用……教程中,跳过本步骤的其余部分。否则,在设计验证步骤之后,我们将继续创建HDL系统包装器。点击来源标签并找到块设计。
![]()
7.4)右键单击块设计,然后单击创建高密度脂蛋白包装.让Vivado管理包装器并自动更新它,然后单击好吧.
![]()
这将在VHDL中创建一个顶级模块,并允许您生成一个比特流。
8.生成位文件
开始生成位文件。工具将运行合成和执行.在两者都成功完成之后,将创建位文件。你会发现在项目窗口的右上角运行着合成和实现的状态栏。
这个过程可以发生在任何地方5至60分钟取决于Vivado运行的计算机和目标FPGA的大小。
比特流生成后,屏幕上会弹出消息提示。您不必为这个演示打开已实现的设计。点击取消.
9.将硬件设计导出到SDK
9.1)在Vivado窗口的顶部,单击文件→导出→导出硬件.选中复选框以包括比特流然后点击好吧.这将为Xilinx SDK提供它需要知道的关于硬件设计的所有信息,以及将硬件编程到目标FPGA系统板所需的文件。
![]()
下的项目目录中将创建一个新的文件目录echo_server.sdk.类似于Vivado硬件设计项目的名称。另外两个文件,.sysdef和.hdf也创造了。这一步基本上创建了一个新的SDK工作区。
9.2)在主工具栏上,单击文件→启动SDK.将两个下拉菜单都保留为默认值<本地项目>然后点击好吧.这将打开Xilinx SDK并导入导出的硬件。
![]()
10. Xilinx SDK.
HW设计规范和包含的IP块显示在“system.hdf”文件中。Xilinx SDK独立于Vivado,即,从这一点开始,您可以在导出的HW设计顶部的C / C ++中创建SW项目。如有必要,SDK可以直接使用主Vivado项目目录中的<项目> .sdk文件夹作为工作区启动。从这一点来看,如果您需要返回Vivado并更改HW设计,那么建议关闭SDK窗口并在Vivado中制作所需的HW设计编辑。在此之后,必须遵循保存设计的顺序,允许Vivado重新生成HDL包装器,并生成新位文件。然后,必须将此新的位文件和修改后的硬件设计导出到SDK。
![]()
在这内项目资源管理器在左侧的TAB中,可以看到硬件平台项目。硬件平台的名称遵循在Vivado中创建的块设计包装器的名称。该硬件平台包含所有的硬件设计定义、已添加的IP接口、外部输出信号信息和本地内存地址信息。
设计中的任何PMOD IP的驱动程序都可以在硬件平台的相应文件夹中找到/司机.如果要编辑这些驱动程序,请使用电路板支持包项目中的版本libsrc /.如果您确实修改了驱动程序,请记住,对硬件的任何更改都会覆盖这些更改,以及使用重生BSP来源选择。
11.在SDK中创建一个新的应用程序项目
您将看到两个新文件夹项目资源管理器面板。
-
包含所有二进制文件,.C和.H(头文件)的应用程序项目
-
项目的板支持包,其中包含项目可能包含的驱动程序源文件
我们的主工作源文件夹也包含一个重要的文件,在这里显示为“lscript.ld”。这是Xilinx自动生成的链接器脚本文件,包含关于块设计的不同IP组件的内存地址的信息,以及其他内存区域的大小。
12.导入示例项目
13.用位文件编程FPGA
确保你的板是打开的,并连接到主机PC与微型USB电缆UART和编程。在一些板上,你只需要连接一个单一的PROG/UART端口,而在另一些板上,你需要将你的PC连接到两个不同的端口,通常命名为UART和PROG或JTAG。在顶部工具栏上,单击FPGA程序按钮。有些板还要求它们连接到一个单独的电源。
13.2)点击程序使用硬件设计编程FPGA。
![]()
14.编程MicroBlaze / Zynq处理器
14.1)大多数演示要求您使用PC上的串行终端来读取演示打印的消息。终端的设置取决于您的单板,但通常您需要使用波特率为115200或9600、8位数据、无校验位和一个停止位。Zynq项目将使用115200波特率,而MicroBlaze项目的波特率将取决于Vivado中Uartlite IP的配置。
14.2)选择您的应用程序项目,然后单击运行……按钮。选择在硬件上启动(系统调试器)然后点击好吧.
![]()
14.3) Xilinx SDK将在Microblaze/Zynq处理器的main.c中运行程序。查看示例主文件顶部的注释头,以获得关于演示程序做什么的更多信息,以及任何额外的设置要求。