介绍
此页面是关于如何开始使用Xillybus或XillyUSB的简短摘要。这通常是一个快速而简单的过程,不需要很多指导。但是,不同的 FPGAs之间存在细微差异。
此处仅介绍最常见的用例和最新的 FPGAs 。当此页面中的信息明显缺失时,请参阅Xillybus的文档页面,其中包含更详细和具体的信息。
我不会在这里讨论Xillinux ,因为它的过程有点不同。
概述
开始使用 Xillybus分为三个步骤:
- 从演示包的(demo bundle)生成 FPGA 的比特流(bitstream)文件。
- 在计算机上安装驱动程序(这通常不是必需的)。
- 在显示 Xillybus 工作的计算机上执行简单测试(在 Linux 和 Windows的单独页面上进行了解释)。
稍后,您可能希望在IP Core Factory处创建自定义 IP core 。这将允许您选择任意数量的数据流(streams)。但在此之前,试用演示包的将帮助您了解 Xillybus 的工作原理。
Xillybus 与 XillyUSB
如果您正在考虑使用 XillyUSB,请考虑选择 Xillybus for PCIe ,如果这是一个现实的选择: PCIe 总线比 USB更坚固。
仅当 FPGA 必须在计算机外部时才应选择XillyUSB (例如,当笔记本电脑用作主机(host)时)。
下载演示包的和软件
可从 Xillybus网站下载的所有内容均功能齐全。这包括IP Core Factory和演示包的的 IP cores 。无需请求 activation code 或任何类似的东西。但是,使用 IP core 的法律许可是有限的: 您只能将 IP core 用于评估。之后,可能需要购买许可证才能继续合法使用 IP core 。因此,请确保您了解这些条件。
下载文件有两个单独的网页: 对于Xillybus 使用 PCIe ,对于XillyUSB 。转到相关网页,并下载以下项目:
- 适用于您的电路板的演示包的。
- 适用于 Linux 或微软 Windows(Microsoft Windows)的驱动程序。即使您使用的是 Linux,也要这样做,而驱动程序是 Linux distribution的一部分。
- 仅限Windows 用户: Xillybus package for Windows。
- 仅限 XillyUSB 的Windows 用户: diagnostic utility for Windows。
所有这些文件都是 .zip 或 .tar.gz 格式。于是开始用一张 uncompression 把自己的内容存入盘中。
如果你的电路板不在演示包的的列表中,你就需要在这个演示包的(demo bundle)上进行修改。选择基于相同 FPGA family 的演示包的,并遵循 Xilinx 或 Intel FPGA文档中的指南。
AMD / Xilinx 和 Altera (以前称为 Intel FPGA) 的下一步有所不同。
为 AMD / Xilinx创建比特流
您需要在计算机上安装 Vivado 。 文档包含适用于每 FPGA的版本(versions)列表。但如果已经安装了 Vivado,请尝试使用它。如果 Vivado的版本不合适,则下面详述的过程将失败: 会出现错误提示需要更新的版本。如果没有出现这样的错误,则说明你的版本或 Vivado 没有问题。
这些是创建比特流文件的步骤:
- 在 Vivado中,选择 Tools > Tcl Script… 并找到 xillydemo-vivado.tcl。该文件位于子目录(subdirectory)中,名称为 verilog/ 或 vhdl/。你可能知道你更喜欢哪一个。不知道就选 verilog/。
- Vivado 创建一个新的 FPGA project 作为响应。 Vivado的 Tcl console 会说“INFO: Project created: xillydemo”。
- 然后点击“Generate Bitstream”。
- Vivado 响应运行项目的实现(implementation)。在此过程结束时,有一个比特流(bitstream)文件可供使用。该文件的名称是 xillydemo.bit。
Vivado 在实现期间生成了几 warnings ,但应该没有 Critical Warnings 和 errors。
详细解释在本文档中: Getting started with the FPGA demo bundle for Xilinx 。请注意, Vivado 不适用于 Virtex-5、 Spartan-6 和 Virtex-6。如果您使用这些 FPGAs之一,请参阅此文档。
不要尝试在没有 Tcl 脚本的情况下创建 FPGA project 。如果您尝试创建一个新的 project 并导入源 files(source files),它可能无法正常工作。
为 Altera创建比特流
您需要在计算机上安装 Quartus 。 文档包含每 FPGA的合适版本列表。但如果已经安装了 Quartus,请尝试使用它。如果 Quartus的版本不合适,则下面详述的过程将失败: 会出现错误提示需要更新的版本。如果没有出现这样的错误,则说明你的版本或 Quartus 没有问题。
这些是创建比特流文件的步骤:
- 双击“xillydemo.qpf”文件。该文件位于子目录中,名称为 verilog/ 或 vhdl/。你可能知道你更喜欢哪一个。如果您不知道,请选择 verilog/。
- Quartus 打开 FPGA project 作为响应。
- 单击“Compile Design”。
- Quartus 响应运行项目的实现。在此过程结束时,有一个比特流文件可供使用。该文件的名称是 xillydemo.sof。
Quartus 在实现期间生成几个警告,但不应该有关键 Warnings (Critical Warnings)和 errors。
详细解释在本文档中: Getting started with the FPGA demo bundle for Intel FPGA 。如果您的 FPGA 早于 series-V (例如 Cyclone IV),则过程会稍微长一些。有关详细信息,请参阅此文档。
为微软 Windows(Microsoft Windows)安装驱动程序
Xillybus的驱动程序for Windows 的标准安装方式: 启动装有 FPGA 电路板的电脑。在开机前必须先将装有 Xillybus 的比特流装入 FPGA 。
首先打开包含驱动程序的 Zip archive 到本地磁盘。该文件可在演示包的的下载页面中找到。该文件的名称类似于 xillybus-windriver-1.2.0.0.zip。
在 Device Manager内部,应该有一个列在“Other Devices”下的 device 。这 device的图标会提示 device 没有安装好(带感叹号)。右键单击此图标并选择“Update Driver Software…”。选择从计算机中选择一个文件(“Browse my computer for driver software”)。然后选择名称为“xillybus-windriver-1.2.0.0”(或类似名称)的目录(directory)。单击“Next”,然后单击“Install”。
驱动程序正确安装后, Device Manager中会多出一个组,名称为“Xillybus”。在这个组里面,会有一个标题为“Xillybus driver for generic FPGA interface”的 device 。 device的图标不应指示错误(即图标上没有感叹号)。
如果使用 XillyUSB , device 会出现在名为“Universal Serial Bus controllers”的组下,驱动程序在 xillyusb-windriver-1.1.2.0-win10.zip中。
Windows指南中的截图更详细地描述了此安装过程。
为 Windows安装好驱动程序之后,接下来就是做一个简单的测试了。这在单独的页面上进行了解释。
为 Linux安装驱动程序(?)
Xillybus的驱动程序包含在 desktop computers的许多 Linux distributions 中。因此,如果您使用的是 Fedora、 Ubuntu 或 Mint, Xillybus的驱动程序可能已经安装在您的计算机上。
为了检查驱动程序是否已经安装,在 shell 提示符键入:
$ modinfo xillybus_core
如果响应是多行输出: 驱动程序已经安装好了,不需要做任何事情。只有当答案是“modinfo: ERROR: Module xillybus_core not found”时才需要安装驱动程序。
如果你想使用 XillyUSB,命令是
$ modinfo xillyusb
即使已经安装了驱动程序,安装 Xillybus的 udev 文件也是个好主意。请参阅本页底部。也可以跳过这个,直接进行简单的测试。
如果没有安装驱动程序,有两种选择:
- 将驱动程序安装为 kernel 模块。如何做到这一点解释如下。如果您没有自己准备 kernel (即您收到的 kernel 作为 distribution 或 BSP (Board Support Package)的一部分),则此选项适用。
- 启用 kernel 树内部的驱动程序。这种方法需要整 kernel的一次编译(compilation)。如果 kernel 编译是您工作程序的一部分,这是更简单的方法。相关的 flags 是 CONFIG_XILLYBUS 和 CONFIG_XILLYBUS_PCIE (或 CONFIG_XILLYUSB)。
Xillybus 的驱动程序自版本 v3.12(version v3.12)起就属于 Linux kernel 树的一部分。如果你的 kernel是版本 is v4.6 (version is v4.6)或更高版本,则无需升级驱动程序: 自版本以来,没有任何有意义的变化(仅编码样式发生变化)。 XillyUSB 的驱动程序已添加到 Linux v5.14。
有关开始使用 Linux 的更多信息,请参阅相关指南。
kernel 模块的编译(Compilation)
Xillybus的 kernel 模块的编译要求执行编译的计算机上已经安装了三个东西:
- gcc 编译器
- “make”
- 与 Xillybus一起使用的 kernel 的 kernel headers
Linux的相关指南建议如何检查是否安装了这些元素,如果未安装,如何安装它们。
驱动程序的编译是这样完成的:
$ tar -xzf xillybus.tar.gz $ cd xillybus/module/ $ make make -C /lib/modules/4.15.0/build M=/home/01signal/xillybus/module modules make[1]: Entering directory '/usr/src/linux-headers-4.15.0' CC [M] /home/01signal/xillybus/module/xillybus_core.o CC [M] /home/01signal/xillybus/module/xillybus_pcie.o Building modules, stage 2. MODPOST 2 modules CC /home/01signal/xillybus/module/xillybus_core.mod.o LD [M] /home/01signal/xillybus/module/xillybus_core.ko CC /home/01signal/xillybus/module/xillybus_pcie.mod.o LD [M] /home/01signal/xillybus/module/xillybus_pcie.ko make[1]: Leaving directory '/usr/src/linux-headers-4.15.0'
为了安装 kernel 模块,键入“make install”(这需要 root)。
驱动程序将在下次 kernel 启动时自动加载总线上存在的 Xillybus device 。也可以使用 insmod 手动加载驱动程序。
请注意,那些打算在 embedded Linux device 上使用 Xillybus 的人可能需要使用 cross compiler。在这种情况下也需要与 embedded kernel 相关的 kernel headers 。
如果您不想使用“make install”,可以手动执行相同的操作: 将模块文件复制到包含 kernel 模块的目录中。此目录的名称必须包含将与 Xillybus一起运行的 kernel 的版本编号。
例如,
# cp xillybus_core.ko /lib/modules/4.15.0/kernel/drivers/char/ # cp xillybus_pcie.ko /lib/modules/4.15.0/kernel/drivers/char/
在此之后,运行 depmod ,以便 kernel 能够识别新的模块。例如:
# depmod -a 4.15.0-20
udev file (Linux)
建议安装 Xillybus的 udev file,即使已经安装了驱动程序。这允许访问 Xillybus 而不是 root user。此文件是包含驱动程序(xillybus.tar.gz 或 xillyusb.tar.gz)的包的一部分。
Xillybus 的 udev file 安装由这个命令(或类似产品)组成。至于 root user:
# cp 10-xillybus.rules /etc/udev/rules.d/
它在工作吗?
下一步是看看您是否做对了所有事情, Xillybus 是否可以在您的硬件上运行。 Linux 和 Windows分别显示了如何执行此操作。