【ZYNQ】VDMA 的介绍

AXI VDMA 是 Xilinx 官方提供的高带宽视频 DMA IP,用于实现 AXI4-Stream 视频数据流与 AXI4 接口数据的转换,同时提供帧缓存与帧同步控制功能。本文主要介绍 AXI VDMA 的基本结构与原理,并简要介绍 VDMA 的配置与使用方法。

目录

1 VDMA 简介

2 VDMA 的配置

3 VDMA 的使用


1 VDMA 简介

        在前面《Zynq 芯片介绍》一文中,我们知道 Zynq 内部包含一个存储器单元,其中 DDR 内存控制器提供对 1GB 数据的访问,并且 PL 与 PS 对用户数据的访问是共享的。

        PS 端可以通过读写相应寄存器的方式,将数据写入 DDR3 或者从 DDR3 中读取数据。而对于 PL 端而言,则需要借助 AXI_HP 接口,才能实现对 DDR3 的访问。

        S_AXI_HP0 和 S_AXI_HP1 是内存控制器专用接口,采用 AXI4 协议规范,HP 表示 High Performance,同时由于 DDR 读/写操作由 PL 端发起,所以这里是 AXI Slave 接口。

初始 OCM/DDR 地址映射

        在视频处理中,许多视频应用程序离不开帧缓存,例如帧率改变、缩放、裁剪。对于视频图像,通常使用 AXI4-Stream 协议传输,因此需要借助 AXI VDMA IP 核,实现 AXI4 与 AXI4-Stream 接口的转换。

        AXI VDMA 包括写通道和读通道,这两个通道是独立工作的。对于写通道,VDMA 将 AXI4-Stream Slave 数据流写入 DDR3(通过 AXI4 Master 接口);对于读通道,VDMA 从 DDR3 中读取数据(通过 AXI4 Master 接口)并转换为 AXI4-Stream Master 数据流。

        其中 AXI-4 接口数据位宽可选 32, 64, 128, 256, 512, 与 1024 bit,AXI4-Stream 数据位宽可选 8 ~ 1024 bit,AXI4-Stream 数据位宽不超过对应通道的 AXI4 接口数据位宽。

        同时 AXI VDMA 提供帧缓存(Frame Buffer)与帧同步控制(Frame Synchronization)功能,对于 32-bit 地址空间,最多支持 32 帧缓存。

2 VDMA 的配置

        从 AXI VDMA 结构框图可以知道,AXI VDMA 使用 AXI4-Lite 接口进行配置。

   

配置数据按照 4 字节(32bit)小端对齐方式。

寄存器地址映射表

其中 MM2S 表示读通道,S2MM 表示写通道。

3 VDMA 的使用

        VDMA IP 核的配置主要包括读/写通道 Memory Map Data,Stream Data 位宽配置、Frame Buffer 与 Line Buffer 深度配置。

        在接收到 mm2s_fsync 信号之后,VDMA 开始工作。m_axi_mm2s_rlast 用于指示图像中一行数据的结束。VDMA 将接收到的数据写入 Line Buffer,随后传输到 AXI4-Stream 端。

        对于 s2mm 通道,VDMA 在接收到 s2mm_fsync 信号之后开始工作。VDMA 将 AXI4-Stream 视频数据流写入 Line Buffer,随后驱动 AXI4 端信号,将数据传递给 DDR3。

未完待续 ~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/747458.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

程序员必备的ChatGPT技巧:从代码调试到项目管理

近年来,随着人工智能技术的迅猛发展,ChatGPT作为一种强大的对话式AI工具,已经广泛应用于各个领域。而对于程序员来说,ChatGPT不仅可以帮助他们解决编程中的各种问题,还能在项目管理中发挥重要作用。本篇博客将详细介绍…

微信小程序的课堂考勤系统

1 项目介绍 1.1 研究的背景及意义 在信息化快速发展的互联网时代,高校教学管理也面临着数字化转型的迫切需求。传统的课堂考勤方式,如到场点名或教师手工记录,不仅效率低下,耗费大量时间和人力资源,而且容易引发考勤…

vue3-登录小案例(借助ElementPlus+axios)

1.创建一个vue3的项目。 npm create vuelatest 2.引入Elementplus组件库 链接:安装 | Element Plus npm install element-plus --save 在main.js中引入 import ElementPlus from "element-plus";import "element-plus/dist/index.css";ap…

【unity实战】制作unity数据保存和加载系统——小型游戏存储的最优解(包含数据安全处理方案的加密解密)

前言 如何在 Unity 中正确制作一个保存和加载系统,该系统使用JSON 文件来处理保存配置文件,可以保存和加载任何类型对象!标题为什么叫小型游戏存储功能呢?因为该存储功能可能只适合存储数据比较单一的情况,它非常的方…

udp udpClient 聊天室

简介 1、UDP(User Data Protocol,用户数据报协议) (1) UDP是一个非连接的协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它…

三大关键技术看RAG如何提升LLM的能力

大语言模型表现出色,但是在处理幻觉、使用过时的知识、进行不透明推理等方面存在挑战。检索增强生成(RAG)作为一个新兴的解决方案,通过整合外部知识库的数据,提高了模型在知识密集型任务中的准确性和可信度&#xff0c…

数据质量管理-一致性管理

前情提要 根据GB/T 36344-2018《信息技术 数据质量评价指标》的标准文档,当前数据质量评价指标框架中包含6评价指标,在实际的数据治理过程中,存在一个关联性指标。7个指标中存在4个定性指标,3个定量指标; 定性指标&am…

星坤Type-A连接器:创新快充技术,引领电子连接!

快速发展的电子时代,消费者对电子设备的性能和便利性有着更高的要求。特别是在充电和数据传输方面,快充技术和高速传输已成为市场的新宠。中国星坤公司推出的Type-A连接器系列,以其卓越的性能和创新的设计,满足了市场对高效、稳定…

Linux-笔记 全志平台休眠功能初探

前言 全志平台支持的休眠功能主要包括两种模式:休眠模式和待机模式。这两种模式用于降低设备的功耗,并在需要时快速恢复工作状态。由于平台为T113,所以可以很方便的使用RTC来做唤醒源。唤醒源指的是能够让系统从休眠状态恢复到工作状态的信号…

《人人都是产品经理》:项目的坎坷一生

《人人都是产品经理》:项目的坎坷一生 产品VS项目产品经理和项目经理 一切项目从kick off 开始工作量预估Kick Off的大致也就15分钟 写文档咯UML图用例文档UCdemo也得做 需求活在项目中bug等级有多高bug流转过程 以终为始 产品VS项目 项目定义:是只会进…

Python 挖坑式填充Excel模板内容(包括页眉/SheetName/logo)

纵览 Python处理Excel的方式--解压缩方式1、导包2、对模板文件进行解压缩3、对解压缩后文件层级进行介绍4、准备需要载入的数据5、模板挖坑6、运行替换代码7、压缩文件8、生成文件9、完成代码10、可能遇到的问题 结语 Python处理Excel的方式–解压缩方式 在处理Excel中过程中&…

2024-6-26 石群电路-30

2024-6-26,星期三,10:38,天气:雨,心情:晴。今天没有什么事情发生,继续学习,加油!!!!! 今日观看了石群老师电路课程的视频…

SpringBoot中使用多线程调用异步方法,异步方法有无返回值例子。

快速了解Async注解的用法,包括异步方法无返回值、有返回值,最后总结Async注解失效的几个坑。 在我们的 SpringBoot 应用中,经常会遇到在一个接口中,同时做事情1,事情2,事情3,如果同步执行的话&a…

2024期权交易佣金手续费最低是多少?期权交易有哪些成本?

显性成本 期权交易的显性成本包含期权交易的佣金和交易所费用,分别支付给券商和交易所,统一由券商代收。 佣金 期权佣金是期权交易时支付给券商的费用,佣金通常以交易金额的一定比例计算,可以是固定费用,也可以是滑…

深入理解计算机系统 CSAPP 家庭作业7.12

A:refptr (unsigned)(ADDR(r.symbol) r.addend - refaddr) 0x4004f8 (-4) - 0x4004ea 0xa B:refaddr 0x4004d0 0xa 0x4004da refptr 0x400500 (-4) - 0x4004da 0x22 ​​​​​​​

docker安装与入门使用(适用于小白)

总结:Docker 是一个开源的容器化平台,旨在使开发、部署和运行应用程序的过程更加简单和高效。Docker 使用操作系统级虚拟化在单个主机上运行多个独立的容器。每个容器包含应用程序及其所有依赖项,确保在不同环境中具有一致的运行表现。 下面…

【招聘贴】JAVA后端·唯品会·BASE新加坡

作者|老夏(题图:公司业务介绍页) “ 请注意,这两个岗是BASE新加坡的,欢迎推荐给身边需要的朋友(特别是在新加坡的)。” VIP海外业务-产品技术团队,这两个岗位属于后端工程组的岗&…

【ocean】ocnPrin结合getData导出数据

核心就是这一句ocnPrint(?output fout leafValue( getData(“/output” ?result “dc”))) r_list list(4000, 4100, 4200) multi_list list(20,21,22) fout outfile("/home/yourpath/results.txt" "w") foreach(r_value r_listforeach(multi_value …

第11周 多线程接口并行对数据字典的查询优化

第11周 多线程接口并行对数据字典的查询优化 本章概述1. 多线程的初始化方式1.1 简单实现多线程的启动方式(3种)1. 继承Thread实现2. 实现Runnable接口3. 实现callable接口(返回值)1.2 基于线程池实现多线程的启动方式❤❤❤2. 多线程编排工具CompletableFuture2.1 Completable…

onlyoffice实现在单页面加载文档的功能

草图 实现案例的基本原型 这里我们的样式库使用的是Tailwindcss,我们的前端UI组件库使用的是Ant Design Vue。 基本原型是,有个按钮,没有点击按钮的时候,页面显示的时普通的内容。当点击这个按钮的时候,页面加载文档…