Skip to main content

Memory Interfaces

Beethoven provides abstractions for accessing both off-chip DRAM and on-chip memory. Choose the interface based on your access pattern and performance requirements.

Interface Comparison

InterfaceLocationAuto DMAUse Case
ReadChannelConfigOff-chip DRAMYesStream data from external memory with automatic prefetching
WriteChannelConfigOff-chip DRAMYesStream data to external memory with write buffering
ScratchpadConfigOn-chip BRAM/URAMYesBuffering with automatic DMA init/writeback
MemoryOn-chip BRAM/URAM/SRAMNoManual control, ASIC memory compiler integration
IntraCoreMemoryPortsOn-chipN/ADirect core-to-core communication without DRAM

Quick Start

For streaming from DRAM: Use ReadChannelConfig for reads and WriteChannelConfig for writes. These provide automatic transaction management and high throughput.

For on-chip buffers: Use ScratchpadConfig if you need to initialize from or writeback to DRAM. Use Memory for manual control or ASIC designs.

For multi-core designs: Use IntraCoreMemoryPorts to pass data between cores without going through external memory.