Vivado 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 |