FPGA DMA介绍

DMA(Direct Memory Access 直接内存访问),它允许某些计算机内部的硬件子系统可以独立地直接读写系统内存,而不需中央处理器(CPU)介入处理。

DMA存储传输的过程如下:
1. 处理器发出一条DMA命令,用以配置DMA,使DMA传输数据到存储器。
2. DMA控制器把数据从外设传输到存储器或从存储器到存储器或存储器到外设,而让CPU腾出手来做其它操作。
3. 数据传输完成后,向CPU发出一个中断来通知它DMA传输可以关闭了。

在PS和PL两端都有DMA,其中PS端的是硬核DMA,而PL端的是软核AXI DMA。

如何选用这两个DMA呢?

在ARM CPU设计的过程中,已经考虑到了大量数据搬移的情况,因此在CPU中自带了一个DMA控制器DAMC,这个DAMC驻留在PS内,而且必须通过驻留在内存中的DMA指令编程,这些程序往往由CPU准备,因此需要部分的CPU参与。DMAC支持高达8个通道,所以多个DMA结构的核可以挂在单个DMAC上。DAMC与PL的连接是通过AXI_GP接口,这个接口最高支持到32位宽度,这也限制了这种模式下的传输速率,理论最高速率为600MB/s。这种模式不占用PL资源,但需要对DMA指令编程,会增加软件的复杂性。如果从PS端的内存DDR3到I/O、DDR3、OCM,少量的数据传输的情况下就选择PS端的DMA;

为了获取更高的传输速率,可以以空间换时间(内存换速率),在PL中添加AXI DMA IP核,并利用AXI_HP接口完成高速的数据传输。其缺点是会占用FPGA的一部分逻辑资源。

AXI DMA为内存和AXI4-Stream外设之间提供了高带宽的直接内存访问

其可选择的SG模式可以将CPU从数据搬运任务中解放出来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值