1 引言

Xillybus 是一款基于 DMA 的端到端解决方案,用于在 FPGA 与运行 Linux 或 Microsoft Windows 的主机之间传输数据。它既为 FPGA 逻 辑设计者提供了简单直观的接口,也为软件程序员提供了便利。

如上图所示,FPGA 上的应用逻辑只需与标准 FIFO 进行交互。

例如,向图中的下方 FIFO 写入数据,会使 Xillybus IP 核感知到该 FIFO 的另一端有数据可供传输。随后,IP 核从 FIFO 中 读取数据并发送至主机,从而使用户空间软件能够读取这些数据。FPGA 中的应用逻辑只需与 FIFO 打交道,数据传送机制对其是透明 的。

在另一端,Xillybus IP 核利用 PCI Express 的传输层(Transport Layer)实现数据流,生成并接收 TLP 数据包。对于较低层 次,它依赖于 Altera 官方的 PCIe 核,该核是开发工具的一部分,无需额外许可证(即使使用 Quartus 的 Web / Lite 版也是如此)。

计算机上的应用程序与表现为命名管道(named pipe)的设备文件进行交互。Xillybus IP 核及驱动程序在 FPGA 中的 FIFO 与主机上对应的设备文件之间高效、直观地传输数据。

使用 XillyUSB 时,采用 MGT 收发器实现 USB 3.0 接口,用于替代上述 PCIe 接口进行数据传输。

IP 核可通过在线 web 应用根据客户规格即时构建。流的数量、方向及其他属性由客户定义,以在带宽性能、同步性和设计简洁性之间达 到最佳平衡。按照本指南中的描述,在完成 demo bundle 的准备步骤后,建议您访问 https://xillybus.com/custom-ip-factory 构建并下载您自己定制 IP 核。

本指南说明了如何快速将 FPGA 与 Xillybus IP 核集成,该 IP 核可连接至用户提供的数据源和数据接收端,用于真实应用场 景测试。IP 核包含在 demo bundle 中,可从网站下载。

尽管名称为 demo bundle,但它并非演示套件,而是一个功能齐全的入门设计,可以直接执行有用的任务。

对于感兴趣的用户,Xillybus 的实现原理简要说明见 Xillybus Linux 主机应用程序编程指南Xillybus Windows 主机应用程序编程指南的附录 A。