RTL Studio Open IDE

4.4 · SOC CLASS

Memory-to-peripheral DMA

Implement a Memory-to-Peripheral DMA controller that reads from memory and writes to a peripheral port using a finite state machine.

Video coming soon. This lesson page stays at the same URL when the lecture publishes.

What you practice

Memory-to-peripheral DMA (4.4). Implement a Memory-to-Peripheral DMA controller that reads from memory and writes to a peripheral port using a finite state machine. It is in Mem-to-Periph DMA — Part 4 · Data Movement of the SoC Masterclass. Move data with AXI-Stream slices, mem↔stream FIFOs, and a small DMA engine.

SoC lessons simulate the fabric and the peripheral together in the IDE. Verilator is the simulator; the waveform is where address and response show up.

Run it in the Verilog IDE

  1. Open the lesson workspace in the IDE. The fabric and the peripheral are one simulation.
  2. Run Verilator and follow the address, write data, and read response on the waveform.
  3. A passing log is not enough when decode or an IRQ line is the point of the lesson — those show up on the VCD.
  4. Run Yosys on the RTL island you just integrated when you want the mapped cells.

The lesson is done when the simulation matches Memory-to-peripheral DMA. Change the source, run the Verilog simulator again, and read the waveform without leaving the IDE. Simulation guide · Yosys guide.