概述
AXI DMA:直接内存访问,为内存和AXI4-Stream外设之间提供高带宽的直接内存访问,其可选的S/G功能可以将CPU从数据搬运任务中解放出来,AXI DMA通过AXI-Lite接口对寄存器做一些配置
Verilog程序编写步骤
在简单的DMA模式,此模式提供了在MM2S和S2MM通道上进行简单DMA传输的配置,只需较少的FPGA资源,通过内存访问DMACR(DMA控制寄存器)、源地址、目的地址和长度寄存器来发起DMA传输。
MM2S:MemoryMap to Stream 存储器映射(AXI4-Full)到AXI4-Stream
S2MM:Stream to MemoryMap AXI4-Stream到存储器映射(AXI4-Full)
1.把MM2S通道使能
2.如果需要的话使能中断
3.朝MM2S_SA寄存器里写一个有效的源地址(起始地址)
如果没有使能DRE的功能,在指定起始地址时,需要注意字节地址对其,取决于Stream流的数据位宽
4.朝MM2S_LENGTH寄存器里写入一个传输的字节数,若0则为无效(必须保证设置长度最后配置)
备注:S/G模式(地址无需连续)
把传输的基本参数,存储在内存中,这些参数就是BD(Buffer Descriptor)
在工作时,通过SG接口加载和更新BD中的状态