FPGA实战开发-基于的ddr图像缓存设计(上)

这篇具有很好参考价值的文章主要介绍了FPGA实战开发-基于的ddr图像缓存设计(上)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

概要

整体架构流程

技术名词解释

技术细节

​编辑

小结


概要

提示:这里可以添加技术概要

本文主要基于DDR的图像缓存设计。

整体架构流程

提示:这里可以添加技术整体架构

先用图像产生模块产生一个1080P60Hz的测试图像,然后经过FDMA进入ddr3,缓存3帧后在读出来。然后在经过HDMI显示。

技术名词解释

FDMA:这是米联科开发一款DMA控制器,本文也是本着学习及分享两种意图写下了此文。

技术细节

在这里我们引入了AXi_interconnect IP,因为smc不能满足FDMA和MIG的最大带宽,导致1080P视频不能正常传输,并且在interconnected IP中要使能寄存器输出,并在使能fifo深度。

这样就能完美传输1080P@60fps的视频。

always@(posedge clk) begin
if(hcounter < hMax - 12'd1)        //line over
    hcounter <= hcounter + 12'd1;
else
    hcounter <= 12'd0; 
end
 
always@(posedge clk) begin
if(hcounter == hMax - 12'd1) begin
    if(vcounter < vMax - 12'd1)  //frame over
        vcounter <= vcounter + 12'd1;
    else
        vcounter <= 12'd0;
    end
end

assign hsync = ((hcounter >= (hStartSync - 2'd2))&&(hcounter < (hEndSync - 2'd2)))? 1'b0:1'b1;  //Generate the hSync Pulses
assign vsync = ((vcounter >= (vStartSync - 1'b1))&&(vcounter < (vEndSync - 1'b1)))? 1'b0:1'b1; //Generate the vSync Pulses
  
        
  assign de = (vcounter >= vVisible || hcounter >= hVisible) ? 1'b0 : 1'b1;
  assign r_o = r_i; 
  assign g_o = g_i; 
  assign b_o = b_i;  
endmodule
 

其实这里我们弄清楚一个问题:

为什么需要缓存,而不是为了设计缓存而去设计缓存。所以我的思想也比较天马行空,本文主要说明为什么,做什么,下节在去说明怎么做。

其实到目前为止,我也不知道他这个例程为什么要使用缓存。

文件上有这么一句,可能我理解能力比较差,没和案例结合在一起,发现问题。

(为了进行图像的多缓存,一般非同步信号至少要满足3缓存才能最大减小图片的延迟/撕裂/丢帧问题)

这个地方啊有两个重点,第一个非同步信号。(这个例程中,图片产生信号和HDMI输出信号同源,同步信号)那我其实可以这么理解,同步信号就不需要了。

第二个至少缓存三帧;

以上结论怎么来的呢。

在看下面一个结论:

由于摄像头产生的数据时钟速率和显示屏的时钟不匹配,而且当摄像头传来数据时,显示屏驱动模块不一定在此时需要数据,况且同一时刻摄像头传进的像素的位置不一定就是显示屏正刷新到的位置。故不能将摄像头的数据直接直接传输到显示屏驱动模块。

总结一些常见的认知,一般可以总结为以下几个方面:

1.时钟不同步,为导致一些异常情况

2.图像显示更加顺畅。

下面对整个流程做个初步设计,

FPGA实战开发-基于的ddr图像缓存设计(上)

关于FDMA:

 FPGA实战开发-基于的ddr图像缓存设计(上)

fdma_wready设置为1,当fdma_wbusy=0的时候代表FDMA的总线非忙,可以进行一次新的FDMA传输,这个时候可以设置fdma_wreq=1,同时设置fdma burst的起始地址和fdma_wsize本次需要传输的数据大小(以bytes为单位)。当fdma_wvalid=1的时候需要给出有效的数据,写入AXI总线。当最后一个数写完后,fdma_wvalid和fdma_wbusy变为0。

FPGA实战开发-基于的ddr图像缓存设计(上)

fdma_rready设置为1,当fdma_rbusy=0的时候代表FDMA的总线非忙,可以进行一次新的FDMA传输,这个时候可以设置fdma_rreq=1,同时设置fdma burst的起始地址和fdma_rsize本次需要传输的数据大小(以bytes为单位)。当fdma_rvalid=1的时候需要给出有效的数据,写入AXI总线。当最后一个数写完后,fdma_rvalid和fdma_rbusy变为0 

小结

提示:这里可以添加总结

例如:

本文主要对图像缓存的应用场景,做了天马行空的介绍,下篇文章主要讲实际代码的实现过程文章来源地址https://www.toymoban.com/news/detail-479822.html

到了这里,关于FPGA实战开发-基于的ddr图像缓存设计(上)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • flutter开发实战-显示本地图片网络图片及缓存目录图片

    flutter开发实战-显示本地图片网络图片及缓存目录图片 在最近开发中碰到了需要显示缓存目录图片,这里顺便整理一下,显示本地图片、网络图片、缓存目录图片的方法。 1 在项目根目录下创建名为 images文件夹,也可以将images放在asserts文件夹下 2.在pubspec.yaml中配置images相关

    2024年02月14日
    浏览(29)
  • FPGA + 图像处理(一)三种向zynq中DDR内导入图像数据的方法

    本文主要讲解三种本人已知的将图像数据传入ddr的方法(一些非图像数据也可以用),方便后续通过fpga对图像进行处理,在一些导入方法中,需要将图像转换成特定的格式,因此,需要用到matlab来实现图像的格式转换 这里先展示一下用到的图像,是一个ai随机绘制的图像 通

    2024年02月03日
    浏览(44)
  • FPGA开发-ddr测试

    文章目录 概要 整体架构流程 技术名词解释 技术细节 小结 提示:这里可以添加技术概要 例如: 本文以米联科开发板为例,介绍ddr测试相关例程。 提示:这里可以添加技术整体架构 提示:这里可以添加技术名词解释 例如: app _addr:表示正在提交给用户界面的请求的地址。聚

    2024年02月08日
    浏览(34)
  • 【FPGA图像处理】——DDR仲裁、多输入源拼接、旋转任意角度、突发长度修改、任意地址读取。

    前言:做FPGA大赛期间遇到的问题,自己coding过程。 包含:hdmi、摄像头等多输入源的拼接;了解DDR以及多种DMA传输方式,修改底层突发长度以及存储位宽;单输入源任意角度旋转(无需降低帧率)。 写这篇文章的原因呢,是因为之前参加FPGA大赛的时候遇到很多问题找不到系

    2024年02月05日
    浏览(33)
  • 基于FPGA的FFT图像滤波设计

            FFT滤波就是通过傅里叶运算将图像转换到频域空间,然后在频域中对图像进行处理,最后将处理后的图像通过傅里叶逆运算将图像转会到时域空间。   在频域空间中,我们能够更好的对图像的噪声进行分析,然后找出相关规律将噪声信息去除。    本文重点讲解

    2024年04月17日
    浏览(34)
  • 基于FPGA的图像锐化算法(USM)设计

            图像锐化算法在实际的图像处理应用很广泛,例如:医学成像、工业检测和军事领域等;它的作用就是将模糊的图像变的更加清晰。常用的图像锐化算法有拉普拉斯算子、sobel算法,但是它们的效果不是很好,USM反锐化算法可以看做是拉普拉斯算子的加强版,算法

    2024年03月23日
    浏览(27)
  • Xilinx FPGA DDR3设计(三)DDR3 IP核详解及读写测试

    引言 :本文我们介绍下Xilinx DDR3 IP核的重要架构、IP核信号管脚定义、读写操作时序、IP核详细配置以及简单的读写测试。 7系列FPGA DDR接口解决方案如图1所示。 图1、7系列FPGA DDR3解决方案 1.1 用户FPGA逻辑(User FPGA Logic) 如图1中①所示,用户FPGA逻辑块是任何需要连接到外部

    2024年02月06日
    浏览(41)
  • 基于紫光同创 FPGA 的 DDR3 读写实验

    此篇为专栏 《紫光同创FPGA开发笔记》 的第二篇,记录我的学习FPGA的一些开发过程和心得感悟,刚接触FPGA的朋友们可以先去此专栏置顶 《FPGA零基础入门学习路线》来做最基础的扫盲。 本篇内容基于笔者实际开发过程和正点原子资料撰写,将会详细讲解此 FPGA 实验的全流程

    2024年01月20日
    浏览(41)
  • FPGA-基于AXI4接口的DDR3读写顶层模块

    AXI4(Advancede Xtensible Interface 4)是一种高性能、高带宽的总线接口协议,用于在系统级芯片设计中连接不同的IP核(Intellectual Property)或模块。它是由ARM公司开发的,被广泛应用于各种SoC(System-on-Chip)设计中。 AXI4接口协议定义了一组规范,用于描述数据传输、地址传输、控

    2024年04月15日
    浏览(42)
  • 基于fpga的图像处理之3x3_5x5算子模板设计

    微信公众号上线,搜索公众号 小灰灰的FPGA ,关注可获取相关源码,定期更新有关FPGA的项目以及开源项目源码,包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 源码工程链接 https://download.csdn.net/download/m0_50111463/88529239 本

    2024年02月05日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包