VIVADO 官方AXI DMA模块 SG 模式

本文介绍了VIVADO官方AXI DMA模块在Scatter Gather(SG)模式下的工作原理和使用流程,包括AXI DMA框图、引脚描述、寄存器映射以及SG模式下的系统连接结构。详细阐述了SG模式下的DMA启动过程,并提供了VIVADO实际工程的实现步骤和SDK编程要点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

VIVADO 官方AXI DMA模块 SG 模式

AXI DMA模块说明

AXI DMA框图

在这里插入图片描述

图一:AXI DMA 结构框图
引脚描述

在这里插入图片描述在这里插入图片描述

图二:引脚描述

补充下重点描述:

  • s_axi_lite_*:上位机通过此接口配置AXI DMA的内部寄存器。
  • m_axi_mm2s_* :上位机到DMA的写通道,传输的是上位机需要写入到外设的数据。
  • m_axi_s2mm_*:上位机到DMA的读通道,传输的是外设写入上位机的数据:即上位机从外设读取的数据。
  • m_axis_mm2s_*:DMA到外设的写通道,DMA通过此通道将上位机的数据写入外设。
  • s_axis_s2mm_*:DMA到外设的读通道,DMA通过此通道读取外设需要传给上位机的数据。
  • m_axis_mm2s_cntrl_*:DMA配置外设的控制通道(未使用)
  • s_axis_s2mm_sts_*:DMA读取外设的状态通道(未使用)
  • m_axi_sg_*:SG模式下的读写内存映射的通道
AXI DMA寄存器内存地址映射

Scatter/Gather模式

图三:SG模式下的Register Address Map

寄存器各字段详细说明看附件(AXI_DMA Preference Guide)

Scatter Gather 描述符

在这里插入图片描述

图四:SG描述符(非多通道下)

各字段详细说明看附件

SG模式下典型的系统连接结构

在这里插入图片描述

图五:SG模式下系统互联结构
SG DMA使用流程(摘取自xilinx官方教程)

MM2S 端:

  1. 在内存中开辟缓存空间,制作链表

  2. 通过 AXI4_LITE 总线将第一个 Descriptor 的地址写入 MM2S_CURDESC 寄存器

  3. 写寄存器 MM2S_DMACR.RS=1 启动 DMA,如果需要,打开 MM2S_DMACR.IOC_IrqEn 中断,结束后会发出中断

  4. 将最后一个 Descriptor 地址写入 MM2S_TAILDESC 寄存器,触发 DMA 开始通过 M_AXI_SG 总线抓取链表的 Descritptor,等 package 传输结束,读取下一个 Descriptor 信息,直到结束。

S2MM 端:

  1. 在内存中开辟缓存空间,制作链表

  2. 通过 AXI4_LITE 总线将第一个 Descriptor 的地址写入

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值