1 简介

Xillybus Block Design 流程(Block Design Flow)是 Verilog / VHDL 设计流程之外的另一种选择,专为不熟悉逻辑相关 HDL 语言的设计 者而设计。其主要目的是让没有 FPGA 背景的设计人员能够轻松获得协同处理/加速能力,而无需掌握 FPGA 相关技能。此外,它还可作为一 种简单的手段,在 AMD Vivado 高级综合(High Level Synthesis, HLS)生成的逻辑与运行 Linux 或 Microsoft Windows 的计算机或嵌入式平 台之间交换数据。

Block Design 流程与 Xillybus 通过 FPGA FIFO 与 Xillybus IP 核通信的主流概念有所区别。在 Block Design 流程中,用户应用逻辑通过 AXI Stream 接口直接连接到 Xillybus IP 模块。这大大简化了工作,但需要留意其中的差异:当 Xillybus 文档提到 FPGA 中的 FIFO 时,这些 FIFO 与 Block Design 流程无关——在 Block Design 的图形界面中,每个 FIFO 的位置只是一条简单的连线。

Xillybus Block Design 流程不应与用于搭建 Zynq 处理器环境或连接逻辑模块的区块设计图(block design diagrams)相混淆:这些区块 设计(如果使用了)与本流程无关,并且无论选择何种方式将 Xillybus IP 核与应用逻辑连接,它们都可以共存。

Xillybus 通过以下方式允许设计者专注于高产出、与应用相关的工作:

  • 提供一个可立即工作的起点项目(starter project),该项目可直接编译成 FPGA 比特流(bitstream)。该项目利用 Xillybus IP 核在 FPGA 与计算机主机之间建立简单直观的数据交换。

  • 提供一个高级综合(HLS)示例项目,用于演示如何使用 C/C++ 进行逻辑设计,本指南将解释其中的关键要素(参见第 6 节)。

  • 允许使用 Vivado 的区块设计工具将 IP 模块极其简便地集成到 FPGA 设计中。

  • 为 Linux 和 Windows 提供驱动程序(drivers),在主机端提供简单的编程接口。

  • 提供一个 Web 工具,可自动创建包含针对特定项目配置的数据流的定制化 Xillybus IP 核。

由于 Block Design 流程依赖于 AMD Vivado 的区块设计工具,因此仅限于该工具支持的 FPGA 系列。故仅支持 AMD 的 series-7 及后续 FPGA(包括 Ultrascale 器件)。

尽管 Block Design 流程易于使用,但它仅能访问 Xillybus 功能的一个子集,因此不建议那些熟悉基于 Verilog 或 VHDL 的 FPGA 设计的人员使用。然而,对于某些应用(例如基于 IP 核或 HLS 的硬件加速/协同处理),Xillybus 功能差异的影响可以忽略不 计。

XillyUSB 不支持 Block Design 流程。