重点分析一、AXI_VDMA_1

之前一直认为这个就是内含有DDR的ip核(......最近才搞懂是个啥),后来经过对FDMA的分析发现这就是个框架,通AXI总线挂载到bus总线,可以实现PL端FPGA代码直接读写PS侧的DDR。

几个关键的AXI(AXIS)总线接口:

(1)、S_AXI_LITE接口:该接口收到ZYNQ核和GP总线控制,M_AXI_GP接口通过AXI-Lite总线控制VDMA的配置

(2)、M_AXIS_MM2S接口:本接口将从DDr中读取的数据发送到sobel处理ip

(3)、M_AXIS_S2MM接口:该接口接收sobel处理ip核的输出数据流

(4)、M_AXI_S2MM接口:该接口将数据输出到ZYNQ处理器,然后数据可以刷入DDR

(5)、M_AXI_MM2S接口:该接口接收来自DDR的像素数据

学习完FDMA之后,对VDMA才有了一个初步的了解,VDMA就是通过AXI(AXIS)总线挂载到总线的典型应用,M_AXI_MM2S接口接收到来自ps侧DDR的像素数据,然后通过M_AXI_MM2S将数据发送到sobel ip核,ip对图片数据进行处理后进行将数据转换为AXI_STREAM格式,可以在上一篇博文中看到,输出数据通过S_AXIS_S2MM进入VDMA,然后,由于在VDMA中设置的是三帧缓存,这三帧数据并不是在VDMA中缓存的,是在DDR中进行缓存。那么VDMA与三帧数据的关系是什么?参考FDMA中的设计,CDMA就是对输入数据设计了一个标志位flag,保证有三帧数据传送到DDR进行缓存。数据通过M_AXI_MM2S接口进入DDR。

那么,AXI_CONNECT1的作用中有一个S00_AXI的作用=是什么?可以看到该总线发出读请求,读取ps侧DDR缓存的像素数据。

其他分析二、AXI_VDMA

框架流程:就是将图像数据以二进制形式进行存储,ZYNQ通过AXI_GP接口对各个模块进行配置,将sobel处理的结构通过stream数据流发送到vdma0,再经过stream2video进行转换,将输出图像发送到HDMI核,video timing核的作用是进行时钟约束,其中HDMI的主时钟是74.25Mhz,除此之外还输入一个串转并数据时钟,为主时钟的5M:74.25*5Mhz。

复位管理单元的作用是将复位信号于时钟进行同步处理,所以主时钟连接到复位管理单元的同步时钟端,由ZYNQ产生的复位信号连接到ext_reset_in,就是extern外部复位信号输入。输出两个信号,一个信号用于专用于AXI总线互联模块,另一个用于模块以及AXI传输的复位信号。个人理解是这个peripheral_reset的作用是局部模块的复位信号,但是它好就好在与AXI_CLK同步,可以在AXI的局部传输中进行复位,AXI_CONNECT的总复位信号是interconnect_aresetn,在信号处理中,复位判断语句应该是(interconnect_aresetn||M02_ARESETN),此处的M02_ARESETN仅是用来举例,还可以是其他的复位信号

  VDMA0为什么不用设置成可写呢?

因为数据通过MM2S仅可从GP来到VDMA0,然后经过三帧缓存之后从MM2S到stream视频流输出IP, 将HDMI核需要的信号给HDMI控制器,比较关键的一点是Video Out的vtg_ce,用于暂停时序发生器以达到同步的的目的。

sobel算法的Soc FPGA实现之框架分析(二)的更多相关文章

  1. PHP 面向对象及Mediawiki 框架分析(二)

    mediaHandler可以理解为处理media文件的 /includes/filerepo/file/File.php /** * Get a MediaHandler instance for t ...

  2. 14FPGA综设之图像边沿检测的sobel算法

    连续学习FPGA基础课程接近一个月了,迎来第一个有难度的综合设计,图像的边沿检测算法sobel,用verilog代码实现算法功能. 一设计功能 (一设计要求) (二系统框图) 根据上面的系统,Veri ...

  3. SoC FPGA JTAG电路设计 要点

    JTAG协议制定了一种边界扫描的规范,边界扫描架构提供了有效的测试布局紧凑的PCB板上元件的能力.边界扫描可以在不使用物理测试探针的情况下测试引脚连接,并在器件正常工作的过程中捕获运行数据. SoC ...

  4. SoC FPGA开发板的FPGA配置数据下载和固化

    小梅哥编写,未经许可,严禁用于任何商业用途 2018年7月2日星期一  soc fpga的烧写和固化方式与传统的纯fpga固化方式即存在形式上的相同,也存在细节上的差异,特整理此文. AC501-So ...

  5. Intel Cyclone SoC FPGA介绍

    3.1 Intel Cyclone SoC FPGA介绍 3.1.1 SoC FPGA的基本概念 Intel Cyclone V SoC FPGA是Intel PSG(原Altera)于2013年发布 ...

  6. Sobel算法

    最近看了一些Sobel算法,并试了一下,源码如下: private void Sobel(Bitmap img) { int width = img.Width; int height = img.H ...

  7. opencl+opencv实现sobel算法

    这几天在看opencl编程指南.照着书中的样例实现了sobel算法: 1.结合opencv读取图像,保存到缓冲区中. 2.编写和编译内核.并保存显示处理后的结果. 内核: const sampler_ ...

  8. 【原创】Linux v4l2框架分析

    背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...

  9. Python遗传算法工具箱DEAP框架分析

    本文主要介绍python遗传算法工具箱DEAP的实现.先介绍deap的如何使用,再深入介绍deap的框架实现,以及遗传算法的各种实现算法. 代码可以参考 https://github.com/suma ...

随机推荐

  1. 如何解决MSVCR120.dll在Windows上缺少错误?

    在安装MySQL的时候,执行mysqld的时候,提示msvcr120.dll,是因为计算机中丢失了 一些文件 然后点击我下载完成安装就好了, 备注:两个都得安装!

  2. Flask之 请求,应用 上下文源码解析

    什么是上下文? 每一段程序都有很多外部变量.只有像Add这种简单的函数才是没有外部变量的.一旦你的一段程序有了外部变量,这段程序就不完整,不能独立运行.你为了使他们运行,就要给所有的外部变量一个一个写 ...

  3. MySQL两个时间相减

    SELECT TIMESTAMPDIFF(MONTH,'2009-10-01','2009-09-01'); interval可是: SECOND 秒 SECONDS MINUTE 分钟 MINUTE ...

  4. 【bzoj3171】[Tjoi2013]循环格

    题目描述: 一个循环格就是一个矩阵,其中所有元素为箭头,指向相邻四个格子.每个元素有一个坐标(行,列),其中左上角元素坐标为(0,0).给定一个起始位置(r,c) ,你可以沿着箭头防线在格子间行走.即 ...

  5. AC自动机2

    AC自动机 给N个模式串,求文本串中出现次数最多的模式串出现次数. #include<bits/stdc++.h> using namespace std; #define maxn 10 ...

  6. 全球DC主机交流

    全球DC主机交流https://www.globaldc.cn/ 全球DC主机交流论坛是一个综合性的国内服务器.国外服务器.高防清洗.硬件服务器交流论坛,主要为网友提供IP地址鉴定主机商,全球独立服务 ...

  7. 在阿里云centOS7上部署Redis 5.0.5主从 + 哨兵模式

    一.在两台服务器上分别安装.配置Redis 5.0.5 ,为一主一从 安装Redis关键命令: 将安装包上传至:/home 目录下解 压:.tar.gz 安装依赖:yum install gcc 安装 ...

  8. JS - 创建只读属性

    一:为私有变量创建get()方法 这种方式可以创建 "伪 "只读属性.这并不是一种好方法,因为使用_函数_获得只读的_属性_不太符合一般的逻辑. /** * Represent a ...

  9. nacos 使用 servlet 异步处理客户端配置长轮询

    config 客户端 ClientWorker#ClientWorker 构造方法中启动定时任务 ClientWorker.LongPollingRunnable 长轮询的任务,在 run 方法的结尾 ...

  10. 阶段1 语言基础+高级_1-2 -面向对象和封装_15练习使用private关键字定义

    练习使用private关键字定义一个学生类.通过这个联系说明一种特殊情况 先定义了name个age分别再定义getter和setter的方法 boolean类型的getter方法不能叫做get开头的. ...