Zynq-7000系列器件PS端的DMA控制器采用ARM的IP核DMA-330(PL-330)实现。有关DMA控制器的硬件细节及相关指令集、编程实例内容参考ARM官方文档:
DDI0424D:dma330_r1p2_trm.pdf
DAI0239A:dma330_example_programs.pdf
本文开发环境为Xilinx SDK2015.2,DMA库版本为dmaps_v2_1。
1 结构特点
DMA控制器具有以下的特点:
8个独立的通道,4个可用于PL—PS间数据管理,每个通道有1024Byte的MFIFO;
使用CPU_2x 时钟搬运数据,CPU_2x = (CPU frq/6)*2;
执行自定义内存区域内的DMA指令运行DMA;
AHB控制寄存器支持安全和非安全模式;
每个通道内置4字Cache;
可以访问SoC的以下映射物理地址:
DDR、OCM、PL、Linear QSPI Read、SMC和M_AXI_GP设备,访问设备的互联结构如图1所示。