1 简介

本指南将逐步介绍如何在 Linux 主机上安装驱动程序,以运行 Xillybus / XillyUSB。同时还展示了如何测试 IP 核的基本功 能。

为简化说明,假定主机是一台具备完整编译能力的计算机。嵌入式平台的步骤与此类似,仅存在少量直接可辨的差异(其中 特别可能需要交叉编译)。

本指南还假定,基于 Xillybus 的 demo bundle(演示包)所生成的比特流(bitstream)已加载到 FPGA 中,并且 FPGA 已 被主机识别为外设(通过 PCI Express、AXI 总线或 USB 3.x 等相应接口)。

达成上述阶段的具体步骤,请参见以下文档之一(具体取决于所选用的 FPGA):

主机驱动程序会生成行为类似于命名管道(named pipes)的设备文件: 这些设备文件可以像普通文件一样被 打开、读取和写入。然而,这些文件的行为与进程之间的管道类似,也与 TCP/IP 流类似。对于运行在主机上的程序而言,区别在于流的另一 端并非另一个进程(无论是在同一台计算机上,还是在网络中的另一台计算机上),而是 FPGA 内部的一个 FIFO(先进先出队列)。与 TCP/IP 流一样,Xillybus 流的设计目标是在高速数据传输时保持高效,同时在偶尔传输小数据量时也能表现良好。

所有通过 PCIe 与主机通信的 Xillybus IP 核均使用同一套主机驱动程序。针对 AXI 接口则另有不同的驱动程序。此 外,XillyUSB 也有自己专用的驱动程序。

当 FPGA 中使用了不同的 IP 核时,无需更换驱动程序: 驱动程序在加载到主机操作系统时会自动检测流及其 属性。设备文件将按相应格式创建,文件名形如 /dev/xillybus_something。同样,XillyUSB 的驱动程序会创建格式为 /dev/xillyusb_00_something 的设备文件。在这些文件名中,00 部分为设备的索引号。当同一台计算机上同时连接多个 XillyUSB 设备时,该部分会依次替换为 01、02 等。

有关主机相关主题的更深入信息,请参见 Xillybus Linux 主机应用程序编程指南