Skip to content
DenseChip
Learn
PracticeCode labInterview

DenseChip

Navigate

Menu

LearnPracticeCode labInterview

Tools

All toolsSV editorCode repoResume
DenseChip

Practice, courses, and chip-design tools in one focused workspace.

LearnPracticeCode labInterviewToolsLearning paths

© 2026 DenseChip

AboutRoadmapCareersInternshipsFAQContactPrivacyTerms
Skip to lesson

Course contents

  • How to Use This Course
  • The NanoSoC Tour
  • Reading Path
  • SoC Glossary10
  • SoC Metrics Reference
  • SoC Cheatsheet
  • What SoC Integration Is12
  • Architecture and Budgets21
  • Memory Maps and Address Decode26
  • Interconnect and Bus Fabrics26
  • Clock and Reset Architecture24
  • Power Architecture21
  • Interrupts, DMA and Peripherals15
    • Interrupt Controller Integration
    • Interrupt Routing and Latency
    • DMA Integration
      • Programming the DMA Registers
      • The Stream Bridge and Length Agreement
      • DMA Completion and Clock Gating
    • Peripheral Subsystem
    • Pad Muxing and GPIO
  • Memories, Boot and Security21
  • IP Integration and Handoff21
  • Top-Level Verification and Bring-up21
  • Package, Pads and I/O18
  • Chip Signoff and Tapeout18
  • SoC Interview Prep16
  • Capstone: Integrate NanoSoC14
Loading lesson

←Interrupts, DMA and Peripherals
  1. Topics
  2. SoC Design
  3. Interrupts, DMA and Peripherals
  4. DMA Integration

Part 7 of 14Part 7 of 14/Interrupts, DMA and PeripheralsAll levels

DMA Integration

The NanoSoC streaming DMA and its stream bridge: register programming, contract quirks, length agreement, throughput and clock gating.

  • 3topics
  • 3lessons

The NanoSoC DMA is the UVM course's streaming engine dropped into a real memory system: it has no memory port of its own, only an AXI-Stream input and output, so a new stream bridge feeds it from SRAM and drains it back. This topic teaches the DMA as the integrator owns it: the exact register sequence that starts a job, the four contract quirks that trap every first driver, the length agreement between the two blocks that must both say 64, and the clock gate that can hang the bus if software is careless. For the DMA mechanism itself see The DMA You Will Verify; for descriptor-based relatives see Descriptors, Rings and Doorbells.

Lesson

After it you can...

Programming the DMA Registers

Start a job, poll or take its interrupt, and clear it without tripping any quirk.

The Stream Bridge and Length Agreement

Program the bridge, keep both LEN registers equal, and price any transfer.

DMA Completion and Clock Gating

Read the completion waveform and gate the DMA clock without hanging the bus.

Suggested order: top to bottom. The register contract first, because every later lesson programs it; then the bridge that makes the stream engine useful; then completion and gating, which is where the interrupt of the previous topic meets the data path. The peripheral topic next door (Peripheral Subsystem) reuses the same APB access costs quoted here.

Check yourself Why does NanoSoC need the stream bridge at all?

The DMA moves AXI-Stream words to AXI-Stream words and has no memory master. Something must read SRAM into its input stream and write its output stream back to SRAM; that something is the bridge, which is the only AXI master besides the CPU.

Expect to program a 64-word job from reset values on a whiteboard, including the CTRL value that keeps the interrupt enabled, then to explain what breaks when the two LEN registers disagree. Lessons one and two are that exercise worked twice.

PreviousNext: Programming the DMA Registers

Up next

Up nextProgramming the DMA Registers

Sign in to save progress

Practice this lessonPrevious lessonReport an error

See also

  • Interrupt Controller Integration
  • Interrupt Routing and Latency
  • Peripheral Subsystem