ZYNQ学习笔记——SDK系列图像传输接口设计

简介

在一些对实时性要求非常高的图像处理领域,通常我们首先想到的就是FPGA,FPGA以其实时流水线运算能力的确可以达到最高的实时性。所以在FPGA的学习中,图像采集传输与简单的图像处理一般都是必备的学习案例,该案例涉及的知识相对广泛,如果涉及追求完美的话,静态时序分析也是有用武之地的。这些资料在网络上也非常多,这里就不详细介绍了。
今天我们以ZYNQ为开发平台,来看看ARM+FPGA架构的图像传输的设计流程。ZYNQ所包含的IP核非常之多,可以极大的缩短我们的开发周期,这也是ZYNQ的一大亮点。一般而言,ZYNQ图像传输接口主要包括VDMA、VTC、AXI4-Stream to Video Out、Dynamic Clock、RGB to DVI Encoder,这只是我们在ZYNQ图形化编程界面需要添加的IP,在实际中还有系统自动生成的AXI Interconnect IP。看着涉及这么多的IP核,一种悲伤在心中蔓延开来,这里先不要害怕,可不能从入门到放弃哈。其实IP核只是看着多,与我们平时FPGA的逻辑设计相比较而言,少了时序信号对齐/资源优化的问题,做起来还是比较省力的。话不多说,接下来进入今天的正题。

IP(接口)用途介绍

  1. VDMA
    AXI VDMA( AXI Video Direct Memory Access,以下简称 VDMA)是 Xilinx 专门针对视频应用提供的一种高带宽的解决方案,用于将 AXI Stream 格式的数据流转换为 Memory Map 格式或将 Memory Map 格式的数据转换为 AXI Stream 数据流,也就是说 VDMA 内核旨在提供从 AXI4 域到 AXI4-Stream 域的视频读/写传输功能;反之亦然,从而实现系统内存(主要指 DDR3)和基于 AXI4-Stream 的目标视频 IP 之间的高速数据移动。
    VDMA 内核不仅具有帧缓冲功能,而且集成了视频专用功能,如帧同步和 2D DMA 传输等,非常适合基于 ZYNQ 架构上的图像和视频处理,缩短了开发周期。VDMA 的框图与IP核配置界面如下图所示:
    ZYNQ学习笔记——SDK系列图像传输接口设计_第1张图片ZYNQ学习笔记——SDK系列图像传输接口设计_第2张图片
  2. AXI4-Stream to Video Out
    VDMA IP 核为存储器和 AXI4-Stream 类目标外设之间只提供高带宽直接存储器存取,需要添加用于产生 RGB接口时序的 IP 核。AXI4-Stream to Video Out IP 核可将 VDMA 输出的 AXI4-Stream 数据流转换成视频协议的数据流(包括并行数据、视频同步信号等),转换为符合 RGB接口时序的数据流。AXI4-Stream to Video Out配置界面如下图所示:
    ZYNQ学习笔记——SDK系列图像传输接口设计_第3张图片
  3. VTC
    Video Timing Controller(VTC)IP 核为 AXI4- Stream 接口和视频输出接口提供了一个桥,用于控制视频输出的时序参数。VTC配置界面如下图所示:
    ZYNQ学习笔记——SDK系列图像传输接口设计_第4张图片
  4. Dynamic Clock
    Dynamic Clock是一个第三方的开源IP核,是一个动态时钟控制器,主要功能是根据不同的分辨率配置出不同的时钟输出,本质上是调用了锁相环,但要注意的是,此IP的参考时钟必须设置为 100MHz。
  5. RGB to DVI Encoder
    HDMI 编码器,用于将 RGB 数据转换为 TMDS 信号用于HDMI显示。RGB to DVI Encoder配置界面如下图所示:
    ZYNQ学习笔记——SDK系列图像传输接口设计_第5张图片
  6. AXI Interconnect
    AXI Interconnect IP为AXI 总线互联模块,用于 AXI 模块之间的交叉互联,实现 M_AXI_GP 接口与外设配置接口的互联,从而实现 PS控制 PL 端的外设。需要注意的一点是:此模块并不需要设计者手动添加。

IP互连

各个IP的用途介绍之后,接下来看看这些IP之间是如何连线的呢?请继续看下文设计框图,其中红色部分为控制流的流向;蓝色部分为数据流的流向。
ZYNQ学习笔记——SDK系列图像传输接口设计_第6张图片
最后附上一张实际中Vivado_17.4工程图像化方式设计的图像传输接口之间连接图,具体如下图所示:
ZYNQ学习笔记——SDK系列图像传输接口设计_第7张图片

你可能感兴趣的:(ZYNQ)