米联客FDMA3.1数据缓存方案全网最细讲解,自创升级版,送3套视频和音频缓存工程源码

news2025/2/21 23:01:52

米联客的FDMA数据缓存方案发布也有五六年了,但真正能熟练使用的兄弟却很少,其实还是没有好的例程作为参考和同熟易懂的讲解,这里我做如下解析:
FDMA部分:这部分是米联客封装了用户接口的AXI4-FULL协议代码,我之前写过一篇文章,逐行讲解这个模块,感兴趣的兄弟可以去参考FDMA代码逐行讲解
米联客官方的FDMA3.1封装的IP做得不咋地,我这里对IP做了重新封装,如下:
在这里插入图片描述
这里的AXI数据位宽并不是任意设置的,比如设置为110,这是非法的,米联客原来的IP并没有意识到这一点,也没有提示用户,所以我修改为可选项如下:
在这里插入图片描述
根据AXI4协议,AXI4数据位宽必须与内存相映射,说人话就是必须是8的倍数;且最大只能是256;
AXI最大突发是长度:同理,AXI突发是长度也不是任意值,可选的只有1,2,4,8,32,64,128,256,米联客原来的IP并没有意识到这一点,也没有提示用户,所以我修改为可选项如下:
在这里插入图片描述
这里是指最大值,所以直接选256;
另外:重点:拿出小本本:
AXI数据位宽与AXI突发长度必须遵循如下公式:
AXI数据位宽/8*AXI突发长度<=4096;即4k边界,当然,这里米联客依然没说;
AXI ID以及ID位宽:如果需要调用多个FDMA IP,就要用到这里,我的修改如下:
在这里插入图片描述
最大ID位宽给到了4,即最多可同时调用16个IP,一般用不到这么多,所以这里选1;
下面看更重要的FDMA控制器:
关于FDMA控制器我之前写过文章,感兴趣的可以参考FDMA控制器
当然,同样的道理,米联客原来的IP也没有给出更细的东西,这里我来说说:
先看FDMA控制器IP:
在这里插入图片描述
IP配置页面如下:
在这里插入图片描述
下面的讲解全是干货,注意听!!!!!
SDK读使能:
一般用不到,他的作用是在SDK里读当前帧的序号等,具体取看代码吧,不懂的也可以问我;
图像场同步检测使能:
作用是检测输入视频场同步的上升沿,以触发FDMA传输,如果缓存视频肯定要使能,如果缓存其他类型数据看情况,比如后面的缓存音频的工程就没有使能该信号;
AXI读写数据使能:
即读和写可选择,这里应该表扬米联客,如果你的工程不需要用到读,那你就只使能写,这样可以节约fpga资源;
AXI数据位宽:
必须与FDMA的配置保持一致;这里我将IP做了修改,该参数修改为可选项有限,如下:
在这里插入图片描述

读写FIFO缓存深度:
IP内部有用到FIFO,这里就是FIFO的数据深度设置,具体为什么要用FIFO以及用FIFO的作用请看我之前的文章FDMA控制器这里我将IP做了修改,该参数修改为可选项有限,如下:
在这里插入图片描述
如果数据量小的话可以选1024,数据量大的话可以选4096,具体情况具体选择吧,不懂的也可以联系问我;
读写数据的起始地址:
这里指的是数据缓存的首地址,IP内部根据一帧数据的完成对起始地址进行了累加,具体看代码吧,也可以参考我之前的文章FDMA控制器
读写数据“偏移”地址:
这里的偏移打了引号,因为他不是正真的偏移,IP内部代码关于读写地址部分如下:
在这里插入图片描述
其中fdma_wbufn就是根据一帧数据的完成对起始地址进行了累加,W_addr就是根据突发数据进行的所谓偏移地址的增加,可能讲不清楚,具体可以联系问我吧;
读写缓存帧数:
这里很好理解,就是存几帧,这里我将IP做了修改,该参数修改为可选项有限,如下:
在这里插入图片描述
输入和输出数据位宽:
这里选32是为了和FIFO深度和AXI数据位宽进行适配;
FDMA单次突发的分传次数:
这里是为了解决4K边界的问题,具体参考我之前的文章FDMA控制器这里我将IP做了修改,该参数修改为可选项有限,如下:
在这里插入图片描述
读写单次突发的长度和次数:
因为DFMA控制器直接略过了AXI突发长度的问题,用FDMA单次突发的分传次数完美取代了,所以读写单次突发的长度可以由用户自定义,无需再考虑4K对齐,以1080P视频为例,完全可以设置单次直接突发为一行数据,即1920,突发次数为1080行,一次类推;
单次突发跨度:
比如我想写如720p视频,却以1080P视频时序读出来,这里就有用了,跨度直接设置为1280,后面的工程由讲解;
米联客还配套给出了一个地址切换的IP,如下:
在这里插入图片描述
这个ip米联客干脆就没有介绍,可能觉得太简单了,我这里解析如下:
在这里插入图片描述
可以看到,这个IP其实还是有点绕的,使用方法官方也没有说,这里我给的注释应该能看得懂吧,这里我将IP做了修改,该参数修改为可选项有限,如下:
在这里插入图片描述
在这里插入图片描述
工程讲解:
工程1:
开发板:Kintex7开发板;
开发环境:vivado2019.1;
输入:HDMI视频1080P,IT6802解码;
输出:HDMI视频1080P;
BD工程:
在这里插入图片描述
IP配置:
在这里插入图片描述
代码架构:
在这里插入图片描述
工程2:
开发板:Kintex7开发板;
开发环境:vivado2019.1;
输入:OV5640摄像头720P;
输出:HDMI视频1080P;
BD工程:
同工程1;
IP配置:
在这里插入图片描述
这里是720P输入1080P输出,所以跨度这里的设置不一样,要好好理解,不懂得联系问我吧;
代码架构:
在这里插入图片描述
工程3:
开发板:Kintex7开发板;
开发环境:vivado2019.1;
输入:音频数据,WM8731解码;
输出:音频数据,WM8731编码;
BD工程:
在这里插入图片描述
IP配置:
在这里插入图片描述
这里说明一下:
音频串并转换后一个音频点是32为数据,采样率48K,双通道,所以每秒的数据量就是:
48000*2=96000;
IP里的单次突发读写长度设置为960,实际就是单次读写10ms的音频;
IP里的突发读写次数设置为1000,实际就是一共读写10s的音频;
具体可参考我之前写得文章音频缓存
代码架构:
在这里插入图片描述
输出结果:工程1如下:

工程1输出效果


工程2如下:

工程2输出效果


福利:送以上3套工程及其源码,联系我吧兄弟!!!!!!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

xhs-web校验流程分析

经测试&#xff0c;cookie中需携带gid和timestamp2。参数整理有点乱&#xff0c;仅供参考。 xhsFingerprintV3&#xff0c;VERSION: ‘2.1.2’ 文章目录流程概述timestamp2滑块验证参数Params轨迹FNcaptcha deviceIdProfileDatax-s-commonx5生成x8生成x9生成smidV2a1x-b3-trac…

Jenkins配置linux节点

之前在Windows下安装Jenkins 但是通过windows节点进行构建有诸多的不便&#xff0c;于是想到通过Jenkins里添加linux节点&#xff0c;让构建的时候&#xff0c;使用远程的linux服务器构建 目录一、配置凭据二、配置节点一、配置凭据 Manage Jenkins → Manage Credentials→Je…

Cadence Allegro PCB设计88问解析(十三) 之 Allegro中artwork层的建立

一个学习信号完整性的layout工程师 作为layout工程师&#xff0c;我们经常接触到的是PCB文件&#xff0c;用Cadence设计的是.brd文件。但是我们发给板厂的都是gerber文件。这就涉及到在我们设计好PCB文件之后&#xff0c;怎么把这些文件给到板厂。也就是我们Allegro中的artwork…

Java知识点--IO流(上)

Java知识点--IO流&#xff08;上&#xff09;一、文件1、文件的含义2、文件流二、常用的文件操作1、创建文件对象相关构造器和方法2、创建文件案例演示&#xff08;三种创建方法&#xff09;3、获取文件相关信息的方法4、获取文件相关信息方法案例演示5、目录的操作与删除6、应…

电脑系统重装下载的系统在哪找到

​因为现在很多人都在使用小白一键重装系统&#xff0c;但是很多人都不太能够了解小白系统重装下载的系统在哪儿&#xff0c;下面是小编提供的具体位置供大家参考。 工具/原料&#xff1a; 系统版本&#xff1a;win10 品牌型号&#xff1a;联想yoga13 软件版本&#xff1a;小白…

期货开户有什么规定

有很多朋友刚刚接触到资本市场&#xff0c;当他们听到期货时&#xff0c;他们觉得它非常遥远和高端&#xff0c;这是普通人无法接触到的。但事实上&#xff0c;情况并非如此。期货是一种非常普通的金融产品&#xff0c;很容易接触。让我们来看看期货开户有哪些必要条件以及有什…

postman环境变量的设置

背景&#xff1a;由于我们项目接口入参都有加密&#xff0c;每次接口调试都得启动项目&#xff0c;运行项目才能把对应的参数给传到后台&#xff0c;然后后台再解密参数&#xff0c;才能进行接口调试&#xff0c;很麻烦&#xff08;启动前端项目&#xff09;&#xff0c;如果接…

Linux篇【3】:Linux环境基础开发工具使用(中)

目录 一、Linux 编译器&#xff1a;gcc/g 的使用 1.1、知识拓展&#xff1a; 1.2、如何安装 C/C 标准静态库&#xff1a; 1.3、头文件与库文件&#xff1a; 1.4、静态库&#xff0c;静态链接&#xff0c;动态库&#xff0c;动态链接&#xff1a; 二、简单 vim 配置 2.1、…

【SpringBoot】一文了解SpringBoot热部署

文章目录前言手动启动热部署热部署种类手动进行热部署自动启动热部署热部署范围配置热部署的关闭总结&#x1f315;博客x主页&#xff1a;己不由心王道长&#x1f315;! &#x1f30e;文章说明&#xff1a;一文彻底搞懂SpringBoot热部署&#x1f30e; ✅系列专栏&#xff1a;Sp…

深入理解Java虚拟机:Java类的加载机制

本篇内容包括&#xff1a;Java 类的加载机制&#xff08;Jvm 结构组成、Java 类的加载&#xff09;、类的生命周期&#xff08;加载-验证-准备-解析-初始化-使用-卸载&#xff09;、类加载器 以及 双亲委派模型。 一、Java 类的加载机制 1、 Jvm 结构组成 Jvm 整体组成可分为…

坤坤音效键盘(Python实现)

文章目录坤坤音效键盘说明坤坤音效键盘效果展示代码实现安装第三方库准备音频监听键盘播放音频编写逻辑引入线程打包成exe程序坤坤音效键盘说明 坤坤音效键盘说明&#xff1a; 单独按下 j、n、t、mj、n、t、mj、n、t、m 按键&#xff0c;会对应触发 “鸡”、“你”、“太”、…

科技视界杂志科技视界杂志社科技视界编辑部2022年第21期目录

科技视界杂志科技视界杂志社科技视界编辑部2022年第21期目录 科普论坛《科技视界》投稿&#xff1a;cnqikantg126.com 天敌昆虫——让农业生产更安全 季香云; 1-3 储粮昆虫三维模型Web可视化技术研究与应用 阎磊;马宏琳;李亮;李鹏翔;王义超; 4-6 科学实验 非均匀催…

wy的leetcode刷题记录_Day33

wy的leetcode刷题记录_Day33 时间&#xff1a;2022-11-4 目录wy的leetcode刷题记录_Day33754. 到达终点数字题目介绍思路代码收获199. 二叉树的右视图题目介绍思路代码收获754. 到达终点数字 今天的每日一题是&#xff1a;754. 到达终点数字 题目介绍 在一根无限长的数轴上…

CSS:变量函数var和自定义属性

文章目录CSS变量var()函数CSS变量 CSS变量分为两部分&#xff1a;变量声明和变量使用。 变量的声明是由CSS自定义属性和对应的属性朱组成的&#xff0c;比如&#xff1a; :root {--custom-color: deepskyblue;}在这段代码中&#xff0c;–custom-color是属于css的自定义属性名…

方法的使用

目录 1. 举例说明什么叫方法 2. 方法概念及使用 2.1 什么是方法(method) 1.2 方法定义 1.3 方法调用的执行过程 1.4 实参和形参的关系(重要) 2. 方法重载 2.1 为什么需要方法重载 2.3 方法签名 3. 递归 递归执行过程分析 1. 举例说明什么叫方法 我们利用面向对象的方…

2022年特色小镇行业研究报告

第一章 行业概况 特色小镇是在几平方公里土地上集聚特色产业、生产生活生态科技相融合、不同于行政建制镇和产业园区的创新创业平台。根据类型的不同&#xff0c;特色小镇可以分为三类&#xff0c;即产业类、社区类和旅游类。 产业类&#xff1a;通过招商引资吸引企业进入&…

门控循环单元(GRU)【动手学深度学习v2】

理论 候选隐藏状态。 圆圈 表示 按元素乘法。 这里面的 这个符号值得是 按元素相乘。 Rt理解为 和Ht 长度一样的一维向量。&#xff08;这么理解&#xff09; 这里如果Rt长的像0的话&#xff0c;那么乘出来的结果&#xff0c;就也像0。 要是像0 的话&#xff0c;相当于是说…

文件操作之文件系统

目录 一 磁盘 1 磁盘的物理结构 2 磁盘在物理结构上如何存储数据 CHS寻址 3 从物理结构到抽象结构 LBA寻址 4管理 二 块组 boot block super block inode table data blocks block bitmap GDT&#xff1a;Global Descriptor Table 块组描述符 三 文件名和目录之…

网课查题接口搭建

网课查题接口搭建 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 查题校园题库&#xff1a;查题校园题库后台&#xff08;点击跳…

字符串匹配算法(C/Java实现)

目录BF算法C语言实现Java实现KMP算法Java实现C语言实现next[]数组的优化BF算法 BF算法&#xff0c;即暴力(Brute Force)算法&#xff0c;是普通的模式匹配算法&#xff0c;BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配&#xff0c;若相等&#xff0c;…