1 简介
1.1 Xillinux发行版
Xillinux 是一个完整的、图形化的、基于 Lubuntu 16.04 的 Linux 发行版,适用于 Zynq-7000 器件,旨在成为软硬件混合项目快速开发的 平台。当前支持的开发板有 Z-Turn Lite、Zedboard、MicroZed 和 Zybo。
与任何 Linux 发行版一样,Xillinux 是一套软件集合,其功能大致相当于一台运行 Linux 的个人台式电脑。但与常见的 Linux 发行版不同,Xillinux 还包含了一些硬件逻辑,特别是 VGA 适配器。
对于 Z-Turn Lite、Zedboard 和 Zybo,该发行版按经典键盘、鼠标和显示器配置进行组织。它也支持通过 USB UART 端口 进行命令行控制,但此功能主要供故障排除之用。
当与缺少 VGA/DVI 输出的 MicroZed 配合使用时,仅将 USB UART 用作控制台。
Xillinux 还是一个快速开发平台,用于将器件的 FPGA 逻辑结构与运行在 ARM 处理器上的普通用户空间应用程序进行集成。借助其包含 的 Xillybus IP 核(Intellectual Property core)和驱动程序,只需具备基本的编程和逻辑设计技能,即可完成 FPGA 逻辑与基于 Linux 的软件 协同工作的应用设计。
捆绑的 Xillybus IP 核消除了处理内核编程底层内部细节以及应用逻辑与处理器之间接口的需要,为应用设计人员提供了一个 简单而高效的工作环境。
1.2 Xillybus IP核
Xillybus 是一种基于 DMA(直接内存访问)的端到端解决方案,用于在 FPGA 与运行 Linux 或 Microsoft Windows 的主机之间传输数 据。它为 FPGA 逻辑设计人员和软件编程人员提供了简单直观的接口。它适用于使用 PCI Express 总线作为底层传输的个人计算机和嵌入式 系统,也适用于基于 ARM 的处理器,与 AMBA 总线(AXI3/AXI4)接口。
如上所示,FPGA 上的应用逻辑仅需与标准 FIFO(先进先出队列)进行交互。
例如,将数据写入图中的下方 FIFO,Xillybus IP 核会感知到该 FIFO 的另一端有数据可供传输。随后,IP 核会从 FIFO 中读 取数据并将其发送至主机,使用户空间软件可以读取该数据。该数据传输机制对 FPGA 中的应用逻辑是透明的,后者仅需与 FIFO 交互即 可。
在另一端,Xillybus IP 核利用 AXI 总线实现数据流,并在处理器内核的总线上生成 DMA 请求。
主机上的应用程序与行为类似于命名管道(named pipe)的设备文件进行交互。Xillybus IP 核和驱动程序在 FPGA 中的 FIFO 与主机上相关的设备文件之间高效直观地传输数据。
该 IP 核可根据客户规格通过在线 Web 应用程序即时构建。数据流的数量、方向及其他属性均由客户定义,以实现带宽性 能、同步和设计简洁性之间的最佳平衡。
按照本指南完成准备工作后,建议您在 https://xillybus.com/custom-ip-factory 构建并下载您的定制 IP 核。
本指南介绍了如何快速搭建包含 Xillybus IP 核的 Xillinux 发行版。该 IP 核可连接到用户提供的数据源和数据接收端,以进行 实际应用场景测试。它并非演示套件,而是一个功能完整的入门设计,本身即可执行有用的任务。
将现有 IP 核替换为针对特定应用定制的 IP 核过程很快,只需替换一个二进制文件并实例化一个模块即可。
关于使用 Xillybus IP 核的更多信息,请参阅以下文档:
如有兴趣,关于 Xillybus IP 核实现方式的简要说明,请参见 Xillybus Linux 主机应用程序编程指南的附录 A。
