简介

Embedded VisualApplets 允许您使用图形化 FPGA 开发环境 VisualApplets 来编写机器视觉应用程序,这些程序将在硬件平台上的 FPGA 上运行。

您并不是使用 VisualApplets 对整个 FPGA 进行编程,而只是对一个 IP Core(知识产权内核)进行编程。该 IP Core 嵌入在您周围的 FPGA 设计中:

在 FPGA 上图形化编程图像处理应用程序

图 186. 在 FPGA 上图形化编程图像处理应用程序


由于 VisualApplets 是一个图形化环境,因此无需具备 HDL 知识即可为图像处理流水线填充逻辑。VisualApplets 还负责整个实现流程。借助 VisualApplets,您可以让软件工程师和图像处理专家对硬件上的 IP core 进行编程。

在使用 VisualApplets 为硬件上的 FPGA 编写应用程序之前,您需要将 IP Core 集成到 FPGA 设计中,并生成一个 eVA (embedded VisualApplets) 插件,该插件可为 VisualApplets 提供硬件平台的所有特定硬件详细信息。

集成工作流

您只需集成一次 VisualApplets (VA) IP Core。VA IP core:FPGA 中的 IP core,您可以通过 VisualApplets 为其编写图像处理功能。集成后,您可以根据需要随时使用任意数量的机器视觉应用程序重新对 VA IP core 进行编程。

硬件和软件集成的关键步骤由工具 eVA Designer(作为 VisualApplets Embedder 软件包的一部分提供)自动执行。这加快了工作流程,并带来了结构正确的实现方案。

只需几个步骤即可将 VisualApplets 集成到您的硬件设计中:

  • 安装 VisualApplets。

  • 让 eVA Designer 在 VHDL 中生成一个 IP core 黑盒。直观的 GUI 可帮助您指定未来 VA IP core 的详细信息:

    • 输入有关您的硬件的一些数据(硬件名称、FPGA 类型、您的供应商名称等)。

    • 指定您希望 VA IP core 拥有的端口(图像输入端口、图像输出端口、寄存器接口、Memory 接口、GPI 和 GPO)。

    • 根据您的输入,让 eVA Designer 自动生成空的 VA IP Core(VHDL 黑盒)。

  • 将生成的 IP core 黑盒集成到您的 FPGA 设计 (VHDL) 中。

  • 生成包含集成黑盒的 FPGA 设计的网表 (netlist)。

  • 创建约束文件 (constraints file)。

  • 将网表和约束文件提供给 eVA Designer,并让其为 VisualApplets 生成特定于硬件平台的 eVA Plugin Installer。

  • 执行 eVA Plugin Installer。安装后,特定于硬件平台的 eVA Plugin 将在 VisualApplets 中可用,并允许为 FPGA 上的 VA IP core 开发设计。

完成这些步骤后,您可以使用图形化开发环境 VisualApplets 对 FPGA 上的 VA IP Core 进行编程。有关这些步骤的详细分步指南,请参见 “定义 IP Core 属性 (Defining the IP Core Properties)”。

新硬件平台的仅需一次的实现过程:

新硬件平台的仅需一次的集成过程

图 187. 新硬件平台的仅需一次的集成过程


作为比特流生成构建块的 FPGA 设计和 IP Core 内容

图 188. 作为比特流生成构建块的 FPGA 设计和 IP Core 内容


VisualApplets 概览

通过在您的 FPGA 设计中实现 VA IP Core,您可以让软件工程师和图像处理专家在您的硬件上对 VA IP Core 进行编程。

VisualApplets 用于为基于 FPGA 的图像处理设计图像处理程序(applets)。使用 VisualApplets 设计 applets 非常简单。它是在图形化开发环境中完成的。无需任何硬件描述语言知识。在 VisualApplets 中,图像处理解决方案是以流程图的形式开发的 —— 完全不需要 HDL。

这就是设计在 VisualApplets 中的外观:

带有图像处理设计的 VisualApplets 程序窗口

图 189. 带有图像处理设计的 VisualApplets 程序窗口


类似上图的设计稍后(在综合为比特流之后)将填充您硬件上的 VA IP Core。

VisualApplets 提供了 200 多个算子。每个算子都提供可在图像处理链中使用的特定功能。

其中一些算子需要直接连接到周围的 FPGA 环境。它们是:

  1. 从相机/传感器接收图像的算子

  2. 在处理管道末端交付处理后图像的算子(例如,向 DMA 交付处理后图像的算子)

  3. 使用 RAM 资源的缓冲算子

  4. 允许信号输入和输出的算子 (GPIO)

带有接口需求算子的简单图像采集 Applet 示例

图 190. 带有接口需求算子的简单图像采集 Applet 示例


为了在这些算子与周围的 FPGA 设计之间进行数据通信,VA IP Core 需要提供相应的接口。

IP Core 接口概念

您可以高度灵活地配置 VA IP core 的接口端口。VA IP core 的 I/O 由 IP core 与您的(周围)FPGA 设计之间的一系列灵活且易于使用的接口组成。外部硬件资源(如传感器接口、内存控制器等)通过 FPGA 设计中的胶合逻辑进行连接,如下图所示:

VA IP Core 接口概念

图 191. VA IP Core 接口概念


使用先进先出缓冲区 (FIFO) 的接口标记为绿色:

接口类型如下:

  • 时钟: IP core 运行两个相位同步的设计时钟,其中第二个时钟的频率是第一个时钟的两倍。

  • ImgIn: 用于输入图像数据流的接口 图像数据通过简单的 FIFO 接口进入 IP core,其中用于行结束和帧结束的附加标志标记了帧边界。可以配置 ImgIn 端口的数量以及通过这些端口通信的数据布局。

  • ImgOut: 用于输出图像数据流的接口 图像数据通过简单的 FIFO 接口离开 IP core,其中用于行结束和帧结束的附加标志标记了帧边界。可以配置 ImgOut 端口的数量以及通过这些端口通信的数据布局。

  • MemWr/Rd: 用于连接外部内存的接口 IP core 可以通过抽象的内存接口连接到外部内存,通过单一的接口机制可以连接任何类型的内存。外部胶合逻辑需要将 IP core 的内存接口协议适配到所使用的内存控制器。可以配置可用内存接口端口的数量。对于每个端口,可以单独定义接口 Property(即地址和数据宽度)。

  • GPI, GPO : 通用信号 I/O 通过 GPI/GPO,信号可以进入或离开 IP core。此类信号可用于触发和过程控制。可以配置 GPIO 信号的数量。

  • Slave IF: 注册从接口以在运行时访问设计参数 从接口是一个简单的寄存器接口,由与设计时钟同步的地址、数据和控制信号进行控制。对 IP 核中已实现的图像处理流水线的 Reset 和 Enable 的控制也通过从接口完成。

性能等级

VisualApplets Embedder 支持 12 种性能等级。各个性能等级由最大传感器带宽、图像处理应用可最大限度使用的 FPGA 资源以及定义 memory 接口的选项来定义:

您需要选择性能等级。有关定价问题和许可证发放流程,请参阅“Licensing Model”一节。特定目标硬件需要您进行选择。

若要将数据输入 XML 文件(即硬件描述文件),您应使用 GUI 工具 eVA Designer,如 Defining the IP Core Properties 一节所述。每个性能等级提供一个 XML 模板。您可使用该 XML 模板输入

  • 您的硬件平台的硬件规范,

  • 您在 VA IP Core 上所需的接口描述,

  • 从 VA IP core 内部连接到接口的硬件专用 VisualApplets 运算符。

[注意] 可用模板

您的 VisualApplets 安装包附带两个示例平台描述(XML),以及一个允许您从头输入您自己的硬件详细信息的模板。这些 XML 文件用于测试目的。它们允许生成受限制的 eVA Plugins。使用这些插件创建的小程序(Applets)具有运行时间限制。您可以在运行时安装文件夹中找到 XML 示例平台描述和模板:

  • VisualApplets_<version_number>\Examples\EmbeddedVisualApplets\DemoTemplate

  • VisualApplets_<version_number>\Examples\EmbeddedVisualApplets\SVDK

  • VisualApplets_<version_number>\Examples\EmbeddedVisualApplets\ZC702

针对每个性能等级的您专属的、特定于供应商的 XML 模板将由 Basler 直接提供。

要求

要将 VA IP Core 集成到您的 FPGA 设计中并生成为 VisualApplets 提供硬件平台所有硬件特定详细信息的 eVA plugin,您需要以下组件:

硬件与操作系统:

  • 运行 Microsoft Windows 7、Windows 8 或 Windows 10(64位)操作系统的 PC

  • PC Memory:最低 4 GByte,推荐:8 GByte 或更高

  • 最小可用硬盘空间:500 MByte

  • 带有已实现 FPGA 的目标硬件平台。在 VisualApplets 3.2 发布时,支持 Xilinx Inc. 的第 6 系列及更新的 FPGA(包括 Zynq7000、第 7 系列 FPGA、Ultrascale、Ultrascale+ 以及 Zynq Ultrascale+)。

软件:

  • VisualApplets 3.0(或更高版本)

  • VisualApplets 3 许可证

  • VisualApplets 3 Embedder 许可证

  • 用于创建硬件描述的 XML 模板(由 Basler 提供)

用于综合图像处理应用的第三方软件:

  • 编译 SDK 示例需要 C++ 编译器。

  • 要从您的设计中生成实际的比特流(bitstream),您需要 FPGA 制造商提供的工具套件。工具流程由 VisualApplets 完全控制。您只需安装它即可。根据您已实现的 FPGA 类型,您需要(在 VisualApplets 3.0 发布时)

    1. Xilinx Vivado(免费的 WebPACK 版本或 Design Suite),或

    2. Xilinx ISE(免费的 WebPACK 版本或 Design Suite)。

    有关详细信息,请参阅您硬件上实现的 FPGA 类型的文档。