RISC-V MCU中文社区

【分享】 利用蜂鸟E203搭建SoC【5】——DMA使用

发表于 全国大学生集成电路创新创业大赛 2021-06-10 20:15:53
3
3609
1

队伍编号:CICC1842 


前文介绍了DDR3扩展,然而,对于大块数据而言,使用CPU进行搬运速度较慢,因此可以使用DMA进行数据搬运。这里会使用到前文提到的中断与DDR3。


本例中使用了Vivado提供的AXI-DMA IP,其中需要用到的寄存器如下,需要注意的是LENGTH寄存器不为0时会立刻开启传输。此外,接收端会接收到AXI Stream格式的数据,需要对AXIS数据进行逻辑处理。


寄存器名
地址偏移量
作用
MM2S_DMACR
0x0000
使能DMA功能,使能DMA中断
MM2S_DMASR
0x0004
对相应位写1,可以将中断置位
MM2S_SA
0x0018
DDR起始地址(32位)
MM2S_LENGTH
0x0028
DMA写数据长度(字节为单位)


具体连接图如下,由于本次使用的总线为50MHz,DMA时钟为50M;DDR3 ui_clk为100MHz;e203这里使用了10MHz。时钟的转换完全由AXI Interconnect进行控制,具体连接如下,DMA的中断信号连接到了irq_1上,当触发中断后会立刻将中断位置零,同时开始响应操作。


本例中还设计了axis4从设备端口,用于地址转换,向BRAM中存数据。在IDE中编程如下


通过逻辑分析仪可知,DMA可以正确传输



喜欢1
用户评论 (3)
  • Ricardo W.Dong

    2023-02-24 20:07:03 Ricardo W.Dong 1#

    Z

    这个不太记得了,用的都是默认,而且这个似乎也没有交织能力,3和4没区别吧

    好的,谢谢!

  • Z

    2023-02-24 20:01:51 Z 2#

    Ricardo W.Dong

    您好,请问您封装的这个AXI是AXI3还是AXI4的协议接口呢

    这个不太记得了,用的都是默认,而且这个似乎也没有交织能力,3和4没区别吧

  • Ricardo W.Dong

    2023-02-24 19:40:06 Ricardo W.Dong 3#

    您好,请问您封装的这个AXI是AXI3还是AXI4的协议接口呢

Z

Z 实名认证

懒的都不写签名

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板