ZYNQ学习笔记——SDK系列DMA接口设计

简介

ZYNQ的优势在于ARM+FPGA的这种体系结构,那么在这种体系结构中,最关键的无疑是PS端与PL端的数据交互。
通常情况下要将外设数据读入内存或将内存传送到外设都会通过 CPU 控制去完成,有查询或中断两种方式实现。如果设计者追求产品执行效率,中断与查询相比,虽说提高了CPU利用率,但是从效率上来说还不是最完美的选择。DMA的出现完美解决了此问题。
DMA(Direct Memory Access,直接存储器访问)是计算机科学中的一种内存访问技术。它允许某些计算机内部的硬件子系统可以独立地直接读写系统内存,而不需中央处理器(CPU)介入处理。对于批量传送数据的情况,采用 DMA 方式可解决效率与速度问题,CPU 只需要提供地址和长度给 DMA,DMA 即可接管总线,访问内存,等 DMA 完成工作后,告知 CPU,交出总线控制权。
ZYNQ 提供了两种 DMA,一种是集成在 PS 中的硬核 DMA,另一种是 PL 中使用的软核 AXI DMA IP。今天软核AXI DMA IPJ进行环路测试实验,主要需要的IP核主要有AXI DMA、AXI Stream Data FIFO。

IP(接口)用途介绍

  1. AXI DMA
    AXI DMA 提供 3 种操作模式
    (1)Direct Register 模式:Direct Register 模式提供了一种配置,用于在 MM2S 和S2MM 通道上执行简单的 DMA 传输;
    (2)Scatter/Gather 模式:允许在单个 DMA 事务中将数据传输到多个存储区域或从多个存储区域传输数据。它相当于将多个 Simple DMA 请求链接在一起。SGDMA 允许应用程序在内存中定义事务列表,硬件将在应用程序没有进一步干预的情况下处理这些事务。在此期间,应用程序可以继续添加更多工作以保持硬件工作。用户可以通过轮询或中断来检查事务是否完成。
    DMA 的框图与IP核配置界面如下图所示:
    在这里插入图片描述在这里插入图片描述
  2. AXI Stream Data FIFO
    AXI Stream Data FIFOIP核配置界面如下图所示:
    在这里插入图片描述

IP互连

各个IP的用途介绍之后,接下来看看这些IP之间是如何连线的呢?请继续看下文设计框图:
在这里插入图片描述
最后附上一张实际中Vivado_17.4工程DMA环路测试接口之间连接图,具体如下图所示:
在这里插入图片描述

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值