AXI DMA IP核使用说明

文章目录

  • 1 AXI DMA IP核结构图
  • 2 AXI DMA IP接口
    • 1 寄存器说明
      • 1 MM2S寄存器
      • 2 S2MM寄存器
    • 2 S/G描述符
    • 3 DMA 多通道模式
  • 3 AXI DMA IP核使用说明
    • 1 时钟
    • 2 复位
    • 3 使用说明
      • 1 直接DMA使用顺序
      • 2 S/G模式
      • 3 循环DMA模式
  • 4 AXI DMA IP核使用配置

AXI DMA提供内存和AXI4-Stream 目标外设之间的高带宽直接内存访问。DMA除了配置为直接DMA模式外,还可以配置为scatter/gather(S/G)模式,S/G模式减轻CPU负担。

为了掌握对DMA的使用方法,需要对DMA IP核有足够的了解。这篇文章主要对AXI DMA IP 核的使用进行简单的说明,接下来详细论述,首先是 AXI DMA IP核的结构图,如下所示:

1 AXI DMA IP核结构图

AXI DMA IP核使用说明_第1张图片
在上图中,DMA 能够实现的功能有:
(1) 内存到AXI4S(AXI4-Stream)是通过AXI4 Read Master 到 AXI4 memory-mapped to stream (MM2S) Master;
AXI4S到内存是 AXI stream to memory-mapped (S2MM) Slave到AXI4 Write Master,在S/G模式下,MM2S和S2MM可以实现最多16个通道的数据传输。
(2) 提供byte级数据重对齐,允许从内存任何位置访问数据;
(3) MM2S通道提供 AXI4 Control Stream 控制流,S2MM提供状态流;
(4) S/G 模式允许访问和更新内存中的 buffer描述符(buffer descriptors, bd)
(5) AXI4接口支持32, 64, 128, 256, 512 和 1024 位的数据传输;
(6) AXI4S 接口支持8, 16, 32, 64, 128, 256, 512 和 1024位的数据传输。

在此先说明一下S/G模式
S/G 模式:DMA操作需要在内存中驻留的数据结构保存DMA操作列表,列表描述为描述符链,任一描述符有指向下一描述符的指针,最后一个描述符指向第一个描述符。描述符的存在可以实现数据报头和数据内从在内存中不同位置,获取报头和获取数据相互独立,增加吞吐量。
在 MM2S 通道上使用帧起始位(TXSOF)和帧结束位(TXEOF)描述内存中的数据包长度,当DMA获取TXSOF位设置的描述符时,触发包的开始。数据包继续获取后续描述符,直到获取一个设置了TXEOF位的描述符。
在S2MM通道上,DMA使用RXSOF 和 RXEOF标记描述符。

2 AXI DMA IP接口

了解IP核的结构后,就需要了解IP核的使用方法,首先介绍下IP核的接口资源。
AXI DMA IP核的接口如下图所示:
AXI DMA IP核使用说明_第2张图片
下面详细介绍接口功能:

s_axi_lite_aclk: AXI4-Lite时钟;
m_axi_sg_aclk: S/G模式时钟;
m_axi_mm2s_aclk: MM2S通道时钟;
m_axi_s2mm_aclk: S2MM通道时钟;

axi_resetn: 复位
mm2s_introut:	MM2S通道中断;
s2mm_introut: S2MM通道中断;
axi_dma_tstvec: 提供调试使用;

s_axi_lite_*AXI4-Lite接口;

AXI4存储器读接口
m_axi_mm2s_*MM2S通道读接口;

AXI4S 接口
mm2s_prmry_reset_out_n: MM2S通道数据流设备的复位输出;
m_axis_mm2s_*MM2SAXI4S接口;

AXI4控制接口
mm2s_cntrl_reset_out_n:MM2S通道控制的复位输出;
m_axis_mm2s_cntrl_*MM2SAXI4控制接口;

AXI4存储器写接口
m_axi_s2mm_*S2MM 通道写接口;


s2mm_prmry_reset_out_n: S2MM 通道数据流设备的复位输出;
s_axis_s2mm_*S2MMAXI4S接口;


s2mm_sts_reset_out_n: S2MM 通道状态的复位输出;
s_axis_s2mm_sts_*S2MMAXI4状态接口;

S/G读接口
m_axi_sg_*S/G读接口
m_axi_sg*S/G写接口

1 寄存器说明

对于上面某些控制接口或者状态接口,比如中断接口来说,DMA传输过程中或许不需要产生中断,所以DMA的某些寄存器可以通过用户配置,实现功能选择。DMA的同一地址空间中寄存器对于不同的传输模式,其功能也不相同,下面详细介绍寄存器功能:

1 MM2S寄存器

S/G模式下寄存器地址

寄存器地址 名称 描述
00h MM2S_DMACR run/stop状态控制,1是
04h MM2S_DMASR MM2S DMA状态寄存器
08h MM2S_CURDESC MM2S当前描述符指针。地址的低32位。

你可能感兴趣的:(fpga开发)