DMA与AXI DMA ip

文章目录

  • [AXI DMA](#AXI DMA)
    • [Read Channel(读通道)](#Read Channel(读通道))
    • [Write Channel(写通道)](#Write Channel(写通道))
  • [# 其他选项](# 其他选项)
  • [Scatter Gather Engine](#Scatter Gather Engine)

AXI DMA

配置项 说明
Component Name (axi_dma) DMA组件的名称,可以自定义。
Enable Asynchronous Clocks 允许DMA在不同时钟域之间工作,适用于不同频率的模块。
Enable Scatter Gather Engine 启用SG,DMA可处理不连续内存块的数据传输。
Enable Micro DMA 启用微DMA,适合资源需求低的应用场景。
Enable Multi Channel Support 启用多通道支持,允许DMA处理多个数据通道。
Enable Control / Status Stream 启用控制/状态流,DMA可生成控制和状态信号的AXI流接口。
Width of Buffer Length Register (8-26 bits) 指定描述数据传输长度的寄存器宽度,范围为8-26位,当前为14位。
Address Width (32-64 bits) AXI地址的宽度,可选32位或64位,当前为32位。

Read Channel(读通道)

配置项 说明
Enable Read Channel 启用DMA的读通道,从存储器读取数据传输到外设。
Number of Channels 读通道的数量
Memory Map Data Width AXI内存映射数据宽度
Stream Data Width AXI流数据宽度
Max Burst Size 每次传输的最大突发数据量

Write Channel(写通道)

配置项 说明
Enable Write Channel 启用DMA的写通道,将数据从外设传输到内存。
Number of Channels 写通道的数量,当前设置为1个。
Memory Map Data Width AXI内存映射数据宽度,当前为32位。
Stream Data Width AXI流数据宽度,当前为8位。
Max Burst Size 每次传输的最大突发数据量,当前设置为256。
Allow Unaligned Transfers 允许未对齐的数据传输,适用于未严格对齐的数据传输场景。

# 其他选项

配置项 说明
Enable Single AXI4 Data Interface 使用单一的AXI4数据接口。
Use RxLength In Status Stream 在状态流中包含接收数据长度。

Scatter Gather Engine

Scatter-Gather Engine 是一种DMA(Direct Memory Access)模式,在这种模式下,DMA控制器能够处理不连续的内存块的数据传输。简单来说,它允许数据分散(scatter)在不同的内存区域内,但能够聚集(gather)到连续的外设设备或其他内存区域,反之亦然。

特点

效率高:在大多数应用场景下,数据并不总是连续的。Scatter-Gather模式可以一次性处理多个不连续的内存区域,避免了传统DMA对连续内存的严格要求,从而提高了传输效率。

控制灵活:使用一个描述符链表(descriptor list)来描述多个内存块的地址和大小。DMA读取这些描述符,依次进行数据传输。

适用于大数据传输:特别适合网络通信、音视频处理等需要传输大数据的场景。

工作流程

准备描述符表:描述符表中包含源地址、目标地址、数据传输的长度、以及其他控制信息。

DMA读取描述符表:DMA根据描述符表中的信息,将数据从源地址读取并传输到目标地址。

自动处理多个块:当一个描述符的传输完成后,DMA会自动读取下一个描述符,继续传输。

相关推荐
相醉为友1 小时前
024 嵌入式Linux应用开发——文字显示与freetype的使用显示
linux·运维·驱动开发
daxi1502 小时前
Verilog入门实战——第5讲:Testbench 仿真编写 + 波形查看与分析
fpga开发
夜阑寄语2 小时前
EMC设计基础
硬件工程·能源·反激设计
senijusene3 小时前
i.MX6ULL 裸机 ECSPI 驱动开发详解:
arm开发·驱动开发·嵌入式硬件
半步成诗!6 小时前
【RJ 45连接器】RJ45 网络连接器 3D 模型 3 零件装配体 SolidWorks 源文件 含 STEP/IGS 通用格式
网络·笔记·3d·硬件工程
FPGA的花路7 小时前
UDP协议
fpga开发·以太网·udp协议
智者知已应修善业7 小时前
【CD4022八进制计数器脉冲分配器】2023-5-31
驱动开发·经验分享·笔记·硬件架构·硬件工程
senijusene7 小时前
IMX6ULL Linux 驱动开发流程:从环境搭建到系统启动与内核编译
linux·运维·驱动开发
TechMasterPlus8 小时前
Linux 驱动开发深度解析:从内核模块到设备驱动
linux·运维·驱动开发
LCMICRO-1331084774617 小时前
长芯微LPS123完全P2P替代ADP123,高性能、低压差的线性稳压器
单片机·嵌入式硬件·fpga开发·硬件工程·dsp开发·线性稳压器