CDMA各寄存器配置

就翻译一下IP手册中的重要信息

地址

定义

比特位

0x00

CDMA控制寄存器

CDMACR

bit[2]:复位bit位

bit[3]:SGMod

bit[6]:BD循环使能开关

bit[12]:DMA完成产生中断标志

0x04

CDMA状态寄存器

CDMASR

bit[1]:Idle---1表示Idle,0表示Not Idle

0x08

当前描述符指针

CURDESC_PNTR

bit[31:6]R/W

bit[5:0]Reserved,SG模式下可用 ,CDMACR.IDLE = 1时写入,写入此字段的描述符地址必须对齐到64字节边界(8个64bit),示例是0x00,0x40,0x80

0x10

末尾描述符指针

TAILDESC_PNTR

bit[31:6]R/W

bit[5:0]Reserved,SG模式下可用 ,CDMACR.IDLE = 1时写入,写入该寄存器会启动SG模式DMA传输

0x18

取数的源地址

SA

bit[31:0]R/W,

Simple模式下可用,CDMACR.IDLE = 1时写入

0x20

送往目的地的地址

DA

bit[31:0]R/W,

Simple模式下可用,CDMACR.IDLE = 1时写入

0x28

要转移的字节数

BTT

bit[25:0]R/W,

bit[31:26]Reserved,

Simple模式下可用,CDMACR.IDLE = 1时写入,写入BTT寄存器会启动Simple模式DMA传输,不允许值为零(0),会导致DMA内部错误

Simple DMA 模式操作步骤:

在此模式下, CDMA执行一个编程的DMA命令后停止。需要外部AXI4主机为每个所需的DMA操作设置CDMA寄存器。

以下步骤描述了如何在简单操作模式下建立和启动CDMA传输。

        a). 验证CDMASR.IDLE = 1。

        b). 将CDMACR.IOC_IrqEn bit[12]位编程为传输完成时产生中断所需的状态。还可以设置错误中断启用(CDMACR.ERR_IrqEn)。

        c). 将传输源地址写入源地址(SA)寄存器, 该源地址的传输数据必须有效并准备好传输。如果地址空间大于32位,还得写SA_MSB寄存器。

        d). 将传输目标地址写入(DA)寄存器。如果地址空间大于32位,则还要写入DA_MSB寄存器。

        e). 写入要传输的字节数。一次传输最多可以指定8,388,607(8M)个字节(使用DataMover Lite除外),写入BTT寄存器开始数据传输。

        f). 轮询CDMASR.IDLE位进行断言(CDMASR.IDLE = 1)或等待CDMA产生输出中断(假设CDMACR.IOC_IrqEn = 1) 。

        g). 如果基于中断,则确定中断源(传输完成或发生错误)。

        h). 通过向DMASR.IOC_Irq位写入1来清除CDMASR.IOC_Irq位。

        i). 准备另一次传输,回到第1步。

循环CDMA模式:

通过对BD链设置进行一些更改,可以在循环模式下运行AXI CDMA。在循环模式中, CDMA获取并处理相同的BD而没有任何中断。 该CDMA继续获取和处理,直到被停止或复位。它工作的流程与Scatter Gather Mode操作步骤一致,在编写尾部描述符寄存器之后, CDMA开始获取和处理BD(以环形方式设置),直到CDMA停止或复位。

Scatter Gather Mode操作步骤:

SG DMA模式由AXI CDMA SG接口访问相关指令,该指令列表被组织成传输描述符链。每个描述符都有一个指向要处理的下一个顺序描述符的地址指针。链中的最后一个描述符通常指向链中的第一个描述符,但也不是必需的。传输描述符由8个32bit的字组成,描述符表示单个CDMA传输加上到下一个顺序描述符的地址链接所需的控制和状态信息。

        a).清除CDMACR.SGMode

        b).设置CDMACR.SGMode。SGMode位的切换迫使CDMA SG引擎使用在步骤3中写入到CURDESC_PNTR的新值。

        c). 写一个有效指针到通道CURDESC_PNTR寄存器(0x08),如果选择的地址空间大于32,则写入CURDESC_PNTR_MSB以指定当前描述符指针的高位。

        d). 如果需要得话将控制信息写入通道CDMACR寄存器(0x00)以设置中断使能和键孔功能。

        e). 写一个有效指针到通道TAILDESC_PNTR寄存器(0x10),将启动通道数据提取和处理描述符。如果选择的地址空间大于32,则写入TAILDESC_PNTR_MSB指定当前的高位描述符指针。

        f). CDMA数据搬移操作继续,直到处理 TAILDESC_PNTR 处的描述符,然后引擎才空闲,此时CDMASR.Idle = 1。

该IP在满足时序的极限时钟频率下的资源占用率:

内部各选项配置如下:

手册中都有详细介绍,就不赘述了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值