1 简介

Xillybus 的 IP 核旨在通过 FIFO 或双端口 Block RAM 与用户应用逻辑进行接口。因此,通常可以在不深入理解 API 细节的情况下使用该 IP 核。

API 的绝大多数规则都可以从一个简单的原理推导出来: 用户应用逻辑的行为应当完全类似于一个 FIFO 或 Block RAM。即 使应用逻辑直接与 IP 核接口,这一原则依然成立。

这一原则意味着,Xillybus IP 核与用户应用逻辑之间的数据交换以 IP 核决定的节奏进行。数据流可能会随时停顿,然后以不 可预测的方式恢复。在其他情况下,数据流会保持连续。当 IP 核直接连接至 FIFO 或 Block RAM 时,这不会带来任何问题。同样,直接与 IP 核接口的用户应用逻辑也应在数据流以不可预测方式启动和停止时正常运行。

将 IP 核不规则的访问模式视为一个错误是常见的误区。IP 核与 FIFO 之间数据流出现无法解释的暂停看似可疑,但这并不表 示任何故障。

不建议为了减少逻辑资源消耗而直接与 IP 核接口(即不使用 FIFO 或 Block RAM)。在设计初期尤其如此。如果用户应用逻 辑直接连接至 IP 核,不规则的数据流可能会暴露应用逻辑中的错误。

本指南描述了与应用逻辑直接接口相关的 API,并详细介绍了常见的应用。

在深入钻研本指南所呈现的细节之前,建议先获得使用 Xillybus 的初步经验。请参考以下文档:

本指南还假定您理解同步流(synchronous stream)与异步流(asynchronous stream)之间的区别。这在以下两份文档的 第 2 节中讨论:

XillyUSB IP 核暴露相同的 API,是 Xillybus IP 核的一个子集。因此,除非另有说明,本指南中的“Xillybus”也指 XillyUSB IP 核。

对于好奇的读者,可以在 Xillybus Linux 主机应用程序编程指南Xillybus Windows 主机应用程序编程指南的附录 A 中找到关于 Xillybus 如何实现的简要说明。