XAPP1171和AXI-CDMA使用仿真

平台:vivado2017.4

芯片:xc7k325tfbg676-2 (active)

关于xilinx的AXI Central DMA Controller。简称CDMA,关于CDMA,在xilinx官方网站上是这样对其介绍的。

Xilinx LogiCORE™ IP AXI Central Direct Memory Access (CDMA) 内核是与 Vivado® Design Suite 一起使用的 Xilinx 软 IP 内核。AXI CDMA 使用 AXI4 协议在内存映射的源地址和目标地址之间提供高带宽直接内存访问(DMA)。可选的 Scatter Gather(SG)功能可用于从系统 CPU 卸载控制和阵列任务。 初始化、状态和管理寄存器可通过适用于 Xilinx MicroBlaze™ 处理器的 AXI4-Lite 从接口访问。

关于此IP的详细说明,可以参见XILINX文档PG034。

话不多说,首先看看这个IP的仿真。

新建BD工程。

 在BD工程中创建CDMA的IP核,打开此IP的example design。保留在当前设计文件夹下。

打开工程查看RTL原理图。可以看到CDMA仿真主要为三个部分。CDMAIP部分和数据搬移的源地址uo_read以及数据搬移的目的地址uo_write。

 

具体的操作过程为。

  1. 通过AXI4_FULL向uo_read存储器中写入数据0000_0000,0101_0101,....1f1f_1f1f写入到BRAM-0中缓存。​​​​​​​
  2. 通过axi_traffic_gen向CDMA配置寄存器。配置寄存器地址0写入0x00027008,配置寄存器地址8写入0x00000000,配置寄存器地址10写入0x00000040。

    地址

    写入值

    含义

    0

    0x00027008

    设置CDMA模式为SG模式,设置完成中断使能,设置中断延时,设置错误中断使能,设置中断阈值为2

    8

    0x00000000

    当前描述符指针指向地址

    10

    0x00000040

    尾部描述符指针指向地址

  3. CDMA根据上述设置的描述符指针,从SG_ABC中获取描述符表。​​​​​​​描述符表1:

    0x0000_0040

    0x0000_0000

    0x0000_0000

    0x0000_0000

    0x0000_0000

    0x0000_0000

    0x0000_0040

    0x0000_0000

    描述符表2:

    0x0000_0040

    0x0000_0000

    0x0000_0040

    0x0000_0000

    0x0000_0000

    0x0000_0000

    0x0000_0040

    0x0000_0000

    Pg034中有描述符详细说明。根据描述符的定义,表一说明下一个描述符起始地址为0x0000_0040,数据的源地址为0x0000_0000数据搬移的目的地址位0x0000_0000。一次传输的数据为0x0000_0040即256Byte,即传输16个32位的BRAM数据。链表2同理。
  4. 启动数据搬运,首先从u0-read中读出数据。​​​​​​​​​​​​​​
  5. 启动数据搬运,将数据搬移到目的地址。
  6. 一次DMA传输完毕,更新链表状态。向描述符地址1C写0x8000_0000表示已完成。

 

到此CDMA部分的仿真完毕。从这里可以看出来,CDMA可以很方便的完成在内存中的数据搬移。

下面就此,我们准备对XAPP1171工程项目进行分析。该项目是在xilinx官方开发板KC705上的项目。先更新在这里。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值