DMA/SGDMA Controller IP Core学习

1. DMA Controller Core

        具有 Avalon 接口的DMA Control Core执行批量数据传输,从源地址范围读取数据并将数据写入不同的地址范围。 Avalon 内存映射 (Avalon-MM) 主机外设(如 CPU)可以将内存传输任务交给DMA控制器。 当DMA控制器执行内存传输时,主机可以自由地并行执行其他任务。

        典型的 DMA 事务处理如下:

  1. CPU通过写入控制端口来为DMA控制器准备事务。
  2. CPU启用DMA控制器,然后DMA控制器开始传输数据,无需CPU的额外干预。 DMA的主机读端口从读地址读取数据,该地址可以是存储器或外设。 主机写端口将数据写入目标地址,该地址也可以是存储器或外设。 浅FIFO在读端口和写端口之间缓冲数据,默认深度为2。
  3. 当传输指定数量的字节(固定长度事务)或发送方或接收方发出数据包结束信号(可变长度事务)时,DMA 事务结束。 在事务结束时,DMA 控制器会生成中断请求 (IRQ)。
  4. 在事务期间或之后,CPU 可以通过检查 DMA 控制器的状态寄存器来确定事务是否正在进行,或者事务是否结束(以及如何结束)。

        设置DMA事务:

        Avalon-MM主机外设通过控制端口写入寄存器来设置和启动DMA事务:

  • 读取(源)地址位置;
  • 写入(目标)地址位置;
  • 各个传输的大小:字节(8 位)、半字(16 位)、字(32 位)、双字(64 位)或四字(128 位);
  • 事务结束时启用中断;
  • 使源或目标能够通过数据包结束信号结束 DMA 事务;
  • 指定源和目标是内存还是外设;

        然后主机外设在控制寄存器中设置一个位以启动 DMA 事务。

1.1 DMA Controller Intel FPGA IP

1.1.1 DMA P

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值