VDMA实用配置说明

VDMA是通过AXI Stream协议对视频数据在PS与PL端进行搬运,开发者无需关注AXI Stream协议,在BlockDesign设计中只需要把相应信号进行连接即可。

VDMA配置有两个选项

1、   Basic:

选择地址位宽32bit 或者64bit;

FrameBuffer 1~32可选,通常选择3帧缓存;可避免图像割裂;

2、   Adanced:

写通道配置:

maxi_S2MM 是将stream流数据通过axi总线写进memory

Fsync Options帧同步有三个选项none、s2mm fsync、s2mm tuser;

none被选择后AXI VDMA处于free run模式,VDMA会尽可能快速的搬运数据,不受外部触发信号所控制;

s2mm fsync被选择VDMA检测到s2mm fsync下降沿信号后开始搬运数据;

s2mm tuser被选择VDMA检测视频帧起始信号(SOF)即AXI4-Stream下的s2mm tuser信号,检测到信号拉高后开始搬运视频数据;

GenLockMode有四个选项Master、Slave、DynamicMaster、DynamicSlave;

Master:VDMA在s2mm_frame_ptr_out端口输出当前帧号;

Slave:When selected, Slave follows the Master by the frames set in the Frame Delay registereither by skipping or repeating frames. The GenlockEn (S2MM_VDMACR[3]=1) registershould be set to enable genlock synchronization between the Master and Slave. Itoutputs the current frame number on the mm2s_frame_ptr_out port.;

DynamicMaster:When selected, AXI VDMA skips the frame buffers that the Dynamic Slave is working on.
It outputs the completed frame number on the s2mm_frame_ptr_out port. GenlockEn
(S2MM_VDMACR[3]=1) register should be set to enable genlock
synchronization between Dynamic Master and Dynamic Slave.

DynamicSlave:When
selected, AXI VDMA follows the Dynamic Master either by skipping or repeating
frames. It outputs the current frame number on the s2mm_frame_ptr_out port.
GenlockEn (S2MM_VDMACR[3]=1) register should be set to enable gunlock
synchronization between Dynamic Master and Dynamic Slave.

读通道配置:

maxi_mm2s通道是将视频数据通过axi总线从memory读出;

maxis_mm2s 是将视频数据转成axis stream数据流形式;

Fsync
Options帧同步有两个选项none、mm2s fsync;

none被选择后AXI VDMA处于free run模式,VDMA会尽可能快速的搬运数据,不受外部触发信号所控制;

注意在选择none后通道会提供一个帧起始脉冲m_axis_mm2s_tuser(0)可用于下一级模块downstream;

mm2s
fsync被选择VDMA检测到mm2s fsync下降沿信号后开始搬运数据;

GenLockMode有四个选项Master、Slave、DynamicMaster、DynamicSlave;

Master:VDMA在mm2s_frame_ptr_out端口输出当前帧号;

Slave:When
selected, Slave follows the Master by the frames set in the Frame Delay
registereither by skipping or repeating frames. The GenlockEn (MM2S_VDMACR[3]=1
registershould be set to enable genlock synchronization between the Master and
Slave. Itoutputs the current frame number on the s2mm_frame_ptr_out.;

DynamicMaster:When
selected, AXI VDMA skips the frame buffers that the Dynamic Slave is working
on.
It outputs the completed frame number on the mm2s_frame_ptr_out. GenlockEn
(MM2S_VDMACR[3]=1) register should be set to enable gunlock synchronization
between Dynamic Master and Dynamic Slave.

DynamicSlave:When
selected, AXI VDMA follows the Dynamic Master either by skipping or repeating
frames. It outputs the current frame number on the mm2s_frame_ptr_out .
GenlockEn (MM2S_VDMACR[3]=1) register should be set to enable gunlock
synchronization between Dynamic Master and Dynamic Slave.

VDMA工作简单时序理解

  VDMA内部linebuffer通过HP接口从DDR中搬运数据,通常VDMA之后直接连接axis_stream to video out IP模块,该IP模块内部通过异步FIFO来缓存数据实现跨时钟域的问题,整体时序描述为VDMA 出tready信号给到PS,VDMA会预读一部分数据到linebuffer中,检测到video_out模块给出的tready信号将数据给到video_out 模块的fifo中,如果fifo存满则video_out不再给VDMA tready信号,此时VDMA仍旧一直从DDR中读数据,直到video_out模块中的FIFO变空再次给出tready信号,数据才会从VDMA中linebuffer流向video_out模块;

VDMA 同步机制理解

         MasterSlave同步机制相当于古代的夫妻,讲究的是夫唱妇随,master是老公,slave是老婆,master不去理会slave当前在操作哪帧数据,自己只顾干自己的事情;slave则需要跟随master,因此slave需要实时监测masterptr帧指针。

         Dynamic master/Dynamic
slave
同步机制则像现代社会的夫妻制度,讲究的是谦让和谐,master还是老公,slave还是老婆,但是两者在工作时会通过ptr指针互相监督彼此。假如master看到slave在操作某一帧即1时,而此时自己也想对1进行操作,他会考虑这样不行会起冲突,进而转向对2进行操作。同理slave也是一样;设计者在BlockDesign中需要将ptr_inptr_out用线连接起来;

VDMA 在设计中通常配置如下

         VDMA读、写通道通常配置3帧缓存,这样能避免图像显示有割裂现象。

VDMA写通道通常配置s2mm tuserdynamic master,至于位宽什么根据自己设计而定;

VDMA读通道通常配置none dynamic slave

VDMA SDK驱动

         未附上有需要可邮件联系

 

VDMA是通过AXI Stream协议对视频数据在PS与PL端进行搬运,开发者无需关注AXI Stream协议,在BlockDesign设计中只需要把相应信号进行连接即可。

VDMA配置有两个选项

1、   Basic:

选择地址位宽32bit 或者64bit;

FrameBuffer
1~32可选,通常选择3帧缓存;可避免图像割裂;

2、   Adanced:

写通道配置:

maxi_S2MM 是将stream流数据通过axi总线写进memory

Fsync
Options帧同步有三个选项none、s2mm fsync、s2mm tuser;

none被选择后AXI VDMA处于free run模式,VDMA会尽可能快速的搬运数据,不受外部触发信号所控制;

s2mm
fsync被选择VDMA检测到s2mm fsync下降沿信号后开始搬运数据;

s2mm
tuser被选择VDMA检测视频帧起始信号(SOF)即AXI4-Stream下的s2mm tuser信号,检测到信号拉高后开始搬运视频数据;

GenLockMode有四个选项Master、Slave、DynamicMaster、DynamicSlave;

Master:VDMA在s2mm_frame_ptr_out端口输出当前帧号;

Slave:When
selected, Slave follows the Master by the frames set in the Frame Delay
registereither by skipping or repeating frames. The GenlockEn
(S2MM_VDMACR[3]=1) registershould be set to enable genlock synchronization
between the Master and Slave. Itoutputs the current frame number on the
mm2s_frame_ptr_out port.;

DynamicMaster:When
selected, AXI VDMA skips the frame buffers that the Dynamic Slave is working
on.
It outputs the completed frame number on the s2mm_frame_ptr_out port. GenlockEn
(S2MM_VDMACR[3]=1) register should be set to enable genlock
synchronization between Dynamic Master and Dynamic Slave.

DynamicSlave:When
selected, AXI VDMA follows the Dynamic Master either by skipping or repeating
frames. It outputs the current frame number on the s2mm_frame_ptr_out port.
GenlockEn (S2MM_VDMACR[3]=1) register should be set to enable gunlock
synchronization between Dynamic Master and Dynamic Slave.

读通道配置:

maxi_mm2s通道是将视频数据通过axi总线从memory读出;

maxis_mm2s 是将视频数据转成axis stream数据流形式;

Fsync
Options帧同步有两个选项none、mm2s fsync;

none被选择后AXI VDMA处于free run模式,VDMA会尽可能快速的搬运数据,不受外部触发信号所控制;

注意在选择none后通道会提供一个帧起始脉冲m_axis_mm2s_tuser(0)可用于下一级模块downstream;

mm2s
fsync被选择VDMA检测到mm2s fsync下降沿信号后开始搬运数据;

GenLockMode有四个选项Master、Slave、DynamicMaster、DynamicSlave;

Master:VDMA在mm2s_frame_ptr_out端口输出当前帧号;

Slave:When
selected, Slave follows the Master by the frames set in the Frame Delay
registereither by skipping or repeating frames. The GenlockEn (MM2S_VDMACR[3]=1
registershould be set to enable genlock synchronization between the Master and
Slave. Itoutputs the current frame number on the s2mm_frame_ptr_out.;

DynamicMaster:When
selected, AXI VDMA skips the frame buffers that the Dynamic Slave is working
on.
It outputs the completed frame number on the mm2s_frame_ptr_out. GenlockEn
(MM2S_VDMACR[3]=1) register should be set to enable gunlock synchronization
between Dynamic Master and Dynamic Slave.

DynamicSlave:When
selected, AXI VDMA follows the Dynamic Master either by skipping or repeating
frames. It outputs the current frame number on the mm2s_frame_ptr_out .
GenlockEn (MM2S_VDMACR[3]=1) register should be set to enable gunlock
synchronization between Dynamic Master and Dynamic Slave.

VDMA工作简单时序理解

  VDMA内部linebuffer通过HP接口从DDR中搬运数据,通常VDMA之后直接连接axis_stream to video out IP模块,该IP模块内部通过异步FIFO来缓存数据实现跨时钟域的问题,整体时序描述为VDMA 出tready信号给到PS,VDMA会预读一部分数据到linebuffer中,检测到video_out模块给出的tready信号将数据给到video_out 模块的fifo中,如果fifo存满则video_out不再给VDMA tready信号,此时VDMA仍旧一直从DDR中读数据,直到video_out模块中的FIFO变空再次给出tready信号,数据才会从VDMA中linebuffer流向video_out模块;

VDMA 同步机制理解

         MasterSlave同步机制相当于古代的夫妻,讲究的是夫唱妇随,master是老公,slave是老婆,master不去理会slave当前在操作哪帧数据,自己只顾干自己的事情;slave则需要跟随master,因此slave需要实时监测masterptr帧指针。

         Dynamic master/Dynamic
slave
同步机制则像现代社会的夫妻制度,讲究的是谦让和谐,master还是老公,slave还是老婆,但是两者在工作时会通过ptr指针互相监督彼此。假如master看到slave在操作某一帧即1时,而此时自己也想对1进行操作,他会考虑这样不行会起冲突,进而转向对2进行操作。同理slave也是一样;设计者在BlockDesign中需要将ptr_inptr_out用线连接起来;

VDMA 在设计中通常配置如下

         VDMA读、写通道通常配置3帧缓存,这样能避免图像显示有割裂现象。

VDMA写通道通常配置s2mm tuserdynamic master,至于位宽什么根据自己设计而定;

VDMA读通道通常配置none dynamic slave

VDMA SDK驱动

         未附上

 

xilinx VDMA IP核使用的更多相关文章

  1. 从Xilinx FFT IP核到OFDM

    笔者在校的科研任务,需要用FPGA搭建OFDM通信系统,而OFDM的核心即是IFFT和FFT运算,因此本文通过Xilinx FFT IP核的使用总结给大家开个头,详细内容可查看官方文档PG109.关于 ...

  2. PCIE xilinx v5 IP核使用前的研究

    外带一个月前啃的一个星期,加本星期心无旁骛,啃出些心得,广惠后人.但愿有用. trn信号是数据链路层的信号 TLP包是数据链路层传给transaction层的包 解包需要一个transaction的协 ...

  3. Xilinx DDR3 IP核使用问题汇总(持续更新)和感悟

    一度因为DDR3的IP核使用而发狂. 后来因为解决问题,得一感悟.后面此贴会完整讲述ddr3 ip的使用.(XILINX K7) 感悟:对于有供应商支持的产品,遇到问题找官方的流程.按照官方的指导进行 ...

  4. xilinx DMA IP核(一) —— loop测试 代码注释

    本篇笔记中的代码来自:米联科技的教程“第三季第一篇的DMA_LOOP环路测试” 硬件的连接如下图所示: 图:DMA Loop Block Design 橘色的线就是DMA加FIFO组成的一个LOOP循 ...

  5. xilinx DMA IP核(二) —— 文档阅读

    本笔记不记录DMA的Scatter/Gather特性.DMA上有三种总线:AXI4-LIte(对寄存器进行配置),AXI4-Memory Map(用于与内存交互)和AXI4 Stream(用于与外设交 ...

  6. Xilinx FFT IP核缩放因子说明

    以1024点FFT为例, reg [9:0] scale_sch = 10'b11_10_01_01_01; 流水线结构中,将每个基 2 的蝶形处理单元视为一个阶段. 每个阶段进行一次数据的缩减,缩减 ...

  7. Xilinx的IP核接口命名说明

    s_axis中的s表示:slave(从); m_axis中的m表示:master(主). axis表示AXI(一种总线协议) Signal.

  8. xilinx IP核配置,一步一步验证Xilinx Serdes GTX最高8.0Gbps

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010161493/article/details/77658599   目录(?)[+]   之前 ...

  9. 7 Series GTP IP核使用总结 IP核配置篇

    FPGA内嵌收发器相当于以太网中的PHY芯片,但更灵活更高效,线速率也在随着FPGA芯片的发展升级.本文对7系列FPGA内部高速收发器GTP IP核的配置和使用做些简单的总结,以备后续回顾重用.本文是 ...

随机推荐

  1. 【学习笔记】splay入门(更新中)

    声明:本博客所有随笔都参照了网络资料或其他博客,仅为博主想加深理解而写,如有疑问欢迎与博主讨论✧。٩(ˊᗜˋ)و✧*。 前言 终于学习了 spaly \(splay\) !听说了很久,因为dalao总 ...

  2. RocketMQ存储机制与确认重传机制

    引子 消息队列之前就听说过,但一直没有学习和接触,直到最近的工作流引擎项目用到,需要了解学习一下.本文主要从一个初学者的角度针对RocketMQ的存储机制和确认重传机制做一个浅显的总结. 存储机制 我 ...

  3. python 中自带的堆模块heapq

    import heapq my_heap = [] #使用列表保存数据 #网列表中插入数据,优先级使用插入的内容来表示,就是一个比较大小的操作,越大优先级越高 heapq.heappush(my_he ...

  4. 在项目中部署redis的读写分离架构(包含节点间认证口令)

    #### 在项目中部署redis的读写分离架构(包含节点间认证口令) ##### 1.配置过程 ---  1.此前就是已经将redis在系统中已经安装好了,redis utils目录下,有个redis ...

  5. Linux源码安装步骤

    来源:https://www.cnblogs.com/benwu/articles/8436209.html 1. 获取源码 2. 查看INSTALL与README文件    (解压后查看INSTAL ...

  6. 2019-2020-1 20199328《Linux内核原理与分析》第二周作业

    冯诺依曼体系结构的核心是: 冯诺依曼体系结构五大部分:控制器,运算器,存储器,输入输出设备. 常用的寄存器 AX.BX.CX.DX一般存放一些一般的数据,被称为通用寄存器,分别拥有高8位和低8位. 段 ...

  7. Logon Trigger Example (C++)

    This C++ example shows how to create a task that is scheduled to execute Notepad when a user logs on ...

  8. Java 后台设置session成功,获取为空

    cookie secure当服务器使用https时,容易出现漏洞SSL cookie without secure flag set,敏感cookie这时就需要打开cookie secure,服务器端 ...

  9. Scala教程之:scala的参数

    文章目录 默认参数值 命名参数 scala的参数有两大特点: 默认参数值 命名参数 默认参数值 在Scala中,可以给参数提供默认值,这样在调用的时候可以忽略这些具有默认值的参数. def log(m ...

  10. Libra教程之:move语言的特点和例子

    文章目录 move语言的特点 资源优先 灵活性 安全性 可验证性 Move语句初探 点对点支付交易脚本 Currency Module move语言的特点 Libra的目标是打造一个全球话的金融和货币 ...