参考资料

  1. Xilinx User Guide: pg022_axi_datamover

AXI Datamover IP 概述

(这次主播决定从官方手册出发,仔细研读手册内容从而达到能够独立开发该IP的目的。)

AXI DataMover和AXI DMA的功能非常相似,都是为在AXI4 memory-mapped(AXI4存储器映射)AXI4-Stream domains(AXI4流数据)之间提供高吞吐的数据传输。该IP核的MM2S(即Memory-map to Stream)和S2MM(即Stream to Memory-map)通道独立运作,整体通信是全双工的。

**内存映射(Memory Mapping)**是一种将文件内容映射到进程的虚拟地址空间的技术。在这种机制下,文件可以被视为内存的一部分,从而允许程序直接对这部分内存进行读写操作,而无需传统的文件 I/O 调用。这种方法不仅简化了文件操作,还提高了处理效率。支持4KB的边界保护以及自动拆解太长的burst

AXI Stream: 一种高速流传输的AXI总线协议,详情见ARM官方手册:AMBA AXI-Stream Protocol Specification

首先要头脑清醒:MM2S是负责读Memory-map的,S2MM是负责写Memory-map。

特性总结

和AXI4,AXI4-Stream接口完全兼容

AXI4-Stream 数据宽度必须小于或等于相应通道的 AXI4 数据宽度。

最大的Memory map突发传输长度

AXI MM2S Memory Map接口可以配置突发传输的粒度/大小。例如,如果突发长度设置为 16,则内存映射接口上的最大突发为 16 个数据节拍。

在AXI总线中,ARLEN、ARSIZE和BURST LENGTH是三个关键参数,它们之间有着密切的关系,共同决定了突发传输的特性。参考此博客,但该IP中用户不可操作ARLEN、ARSIZE,只能配置BURST LENGTH。

支持地址未对齐的传输

可选择支持数据重新对齐引擎 (Data Realignment Engine,DRE)

支持异步时钟

可选存储和转发功能

支持 S2MM 通道的可选不确定 BTT(Byte to Transfer) 模式

性能

此处主要讲IP的时钟配置,Zynq-7000系列均封装的是Artix-7的PL,所以依照User Guide,我们可以得知:

Speed Grade Clock Frequency(MHz)
-1 AXI4: 150, AXI4-Stream: 150
-2 AXI4: 180, AXI4-Stream: 180
-3 AXI4: 200, AXI4-Stream: 200

利用IP核进行设计

典型应用