DDMA, Direct Memory Access
Four-channel Direct Memory Access Controller
Description
DDMA IP Core — High-Performance Four-Channel Direct Memory Access Controller
Efficient Data Transfer for CPU-Offloading and System Performance
The DDMA IP Core from DCD-SEMI is a four-channel Direct Memory Access (DMA) controller designed to optimize data transfers between memory and peripherals, significantly reducing CPU load and improving system performance in embedded systems, SoCs, and FPGA designs.
Programmed via a 32-bit or 8-bit native interface, the DDMA supports configurable data transaction sizes across a 32-bit address space, ranging from 1 byte up to 16 MB per transaction. To ensure smooth operation across peripherals with varying timing characteristics, the DDMA features a 32-bit FIFO transfer buffer with configurable depth.
Flexible Triggering and Peripheral Request Interface
Data transactions can be initiated by either hardware or software triggers:
-
Hardware Trigger: Utilizes the Peripheral Request Interface (PRI), enabling external peripherals to request data transmission or reception on a specific DDMA channel.
-
Software Trigger: Managed by the CPU through channel registers.
When multiple channels request transfers simultaneously, the DDMA employs a round-robin arbitration algorithm to efficiently manage channel priorities.

Four Independent Channels
The DDMA includes four configurable channels, each with dedicated configuration registers, enable bits, and status flags. Each channel supports three transfer modes:
-
SINGLE: Transfers a single data item per request
-
NORMAL: Transfers one block of data per request
-
BLOCK: Transfers all configured data blocks per request
Data blocks can be customized in byte size and number of blocks, and each channel supports 8-, 16-, and 32-bit read/write operations, independently configurable for source and destination.
Flexible Addressing and Reload Options
The DDMA provides three addressing modes:
-
INC: Increment address after each access
-
DEC: Decrement address after each access
-
FIXED: Maintain the same address
Additionally, it offers three source and destination address reload options:
-
TRANSACTION: Reload after full transaction
-
BLOCK: Reload after each block transfer
-
NEVER: No reload
All address, block, and byte registers are double-buffered, ensuring that updates during active transfers only take effect after the current operation completes.
Advanced Status Flags and Interrupts
Each DDMA channel features channel status flags (BUSY, PENDING, IDLE) and transfer status flags to track the amount of data transmitted. Transfer status flags are maskable, allowing the generation of interrupts for specific transfer conditions, enhancing system responsiveness and control for real-time applications.
Why Choose DCD-SEMI DDMA IP Core
-
Four independent DMA channels with dedicated registers and FIFO buffers
-
Configurable transfer sizes from 1 byte to 16 MB
-
Supports 8-, 16-, and 32-bit read/write operations
-
Flexible addressing and reload modes for source and destination
-
Hardware and software triggers with round-robin arbitration
-
Maskable transfer status flags for interrupt generation
-
Ideal for high-performance embedded systems, SoCs, and FPGA designs
ALL DCD’S IP CORES ARE TECHNOLOGY AGNOSTIC, ENSURING 100% COMPATIBILITY WITH ALL FPGA AND ASIC VENDORS.
For technical details, integration support, or customization options, contact info@dcd-semi.com
Key features
- 32-bit or 8-bit internal registers access
- 32-bit transmission address range
- Transaction size from 1B up to 16MB
- Four transmission channels
- Round-robin arbitration
- Data buffer with configurable size
- For each channel:
- Enable bit
- Software transmission request
- Peripheral request interface:
- Transmission request
- Single data transmission request
- Reception request
- Single data reception request
- Configurable request clear signal
- Transfer status flags:
- Transaction finished
- Block finished
- Single data finished
- Transfer status flags maskable interrupts
- Three transfer modes:
- SINGLE
- NORMAL
- BLOCK
- Independently configurable source and destination data width:
- 32-bits
- 16-bits
- 8-bits
- Configurable source and destination base addresses
- Three addressing modes: INC, DEC, FIXED
- Three sources and destination address reload options each:
- TRANSACTION
- BLOCK
- NEVER
- Transaction divided into blocks
- Configurable transfer size: including amount of blocks and blocks size
- Double-buffered address, block, and byte registers
- Available DMA interface wrappers:
- Native 32-bit interface
- AMBA – APB / AHB / AXI
- Software reset
- Configurable hardware reset
- Fully synthesizable
- No internal tri-states
Similar products
DOSPI Octal SPI IP Core — High-Speed, Low-Latency SPI Controller for Advanced SoC & FPGA Designs The DOSPI Octal SPI...
Achieves 800+ MB/s throughput
Full Single/Dual/Quad/Octal SPI + DDR
Zero-CPU DMA
DFSPI – Advanced SPI Master Controller & Bridge to APB, AHB, and AXI The DFSPI IP Core from DCD-SEMI is...
NOR & NAND Flash Memory Support
Compatible with APB, AHB, and AXI
Advanced multi-master and error-detection
DQSPI – High-Performance Quad SPI IP Core for APB, AHB, and AXI Designs The DQSPI is a revolutionary Quad SPI...
Delivers CLK/2 Quad DDR throughput
Supports Single/Dual/Quad SPI + DDR
Includes write collision detection

