一,DMA IP核使用详解
1,时钟
DMA具有4个时钟输入,分别是
m_axi_mm2s_aclk:MM2S接口
m_axi_s2mm_aclk: S2MM 接口
s_axi_lite_aclk:AXI4-Lite控制接口
m_axi_sg_clk:S/G模式接口
时钟允许异步时钟和同步时钟。
异步时钟,4个时钟采用不同的时钟源,优点是用户可以使用比DMA更高的时序运行用户程序;在异步时钟下,s_axi_lite_aclk时钟小于m_axi_sg_clk时钟小于m_axi_mm2s_aclk时钟或者m_axi_s2mm_aclk。
同步时钟,m_axi_mm2s_aclk、m_axi_s2mm_aclk和m_axi_sg_clk使用相同的时钟源,s_axi_lite_aclk采用较低的时钟源,
2,复位
axi_resetn信号至少需要16个最慢时钟周期才能复位,并且需要与s_axi_lite_aclk同步。
3,使用说明
DMA使用有两种模式,直接DMA模式和S/G模式。直接DMA模式使用FPGA资源少,直接配置源地址或者目的地址以及传输长度启动传输,当传输完成是,置位IOC_Irq寄存器产生中断。接下来分开说明两种模式下的使用顺序。
(1)直接DMA使用顺序
MM2S通道
置位R/S为1 (MM2S_DMACR)来启动MM2S通道运行。Halted(DMASR)指示MM2S通道正在运行。
MM2S_DMACR的IOC_IrqEn和Err_IrqEn置位使能中断。当AXI DMA配置为直接DMA模式时,不使用延迟中断、延迟计数和阈值计数。
向MM2S_SA寄存器写入