FPGA DMA基础知识

FPGA 是基于RAM的,也就是说断电易丢失。所以一般外围会有一个非易失的存储器,如SD卡或者FLASH。这样的好处就是上电之后,程序可以直接从这些设备中加载程序,即固化。

dma 的过程:
1.CPU 发送一个指令,让DMA去做数据传输到内存的事情。
2.接下来就是DMA控制器去做的事情。
3.传输完成之后,然后DMA控制器向CPU发送一个中断通知DMA传输关闭。

DMA 做这样的辅助工作,要知道三个要素:源地址,目的地址与传输长度。

首先,CPU要去设置这样的外部DMA,通过AXI_GP接口去设置这样的GP接口。传输状态是通过中断传到PS的中断控制。
在这里插入图片描述
通过PS上的GP接口去配置AXI_DMA控制器。
上图是采样AXI_LITE总线去配置的DMA控制器。
当然也可以采样别的总线形式。

关于中断的理解
(1)、M_AXI_MM2S:DMA的读通道,从DDR中读取数据。受Enable Read Channel控制,表现为M_AXI_MM2S。

在AXI_DMA ip core的输出信号中,有两个中断信号,分别是s2mm_introut和mm2s_introut,mm指的是Memory Mapped,S指的是Stream。

Memory Map指的是什么?根据AXI DMA的介绍,AXI DMA提供一个介于AXI4 Memory Mapped 与AXI4 Stream IP之间的高带宽DMA:

原话位于IP参考的page5:

The AXI DirectMemory Access (AXI DMA) IP core provides high-bandwidth direct memory accessbetween the AXI4 memory mapped and AXI4-Stream IP interfaces.

所以,对于DMA来说,S2MM,就是Stream形式的数据到达DDR映射空间,具体的实现方式是Stream数据流先进入DMA,之后再从DMA到Memeory Mapped。

MM2S是Memory Mapped将数据送入具有AXI Stream接口的IP。

从这里分析mm2s_introut与s2mm_introut信号的区别是分析不出来的,因为数据都是先到DMA,再从DMA发送出去。

参考:http://xilinx.eetrend.com/blog/2020/100049899.html

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值