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
      • Levels, Polarity and Synchronisation
      • Priority, Masking and the TOP Register
      • The Wiring Table and the Controller Sketch
    • Interrupt Routing and Latency
    • DMA Integration
    • 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. Interrupt Controller Integration

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

Interrupt Controller Integration

Level versus edge, polarity, synchronisation, priority and masking: the NanoSoC interrupt controller and its wiring review.

  • 3topics
  • 3lessons

Every interrupt on NanoSoC is a promise between a block and software: the source holds a level until software clears the cause, and the controller decides which waiting source the CPU hears about first. This topic builds that contract piece by piece: why levels won over pulses here, how the fixed-priority mask and TOP register work, and what the wiring review checks before any software runs. For the generic delivery models see Interrupts and Notification; for the peripheral-side registers see Interrupts and Events.

Lesson

After it you can...

Levels, Polarity and Synchronisation

Choose level signalling, get the polarity right, and bound what a synchroniser costs.

Priority, Masking and the TOP Register

Program ENABLE and read PENDING and TOP to dispatch any combination of sources.

The Wiring Table and the Controller Sketch

Review an interrupt wiring table and read the controller RTL.

Suggested order: top to bottom. Signalling first, because a pulse in a level system is the most common wiring bug; then the programming model, which is what the driver touches; then the wiring review, which is what the integrator signs. The next topic (Interrupt Routing and Latency) follows one irq along the wires this topic draws.

Check yourself A new block offers a one-cycle active-high done pulse as its interrupt. What do you ask for instead, and why?

An active-high level held until software clears the status, matching every other NanoSoC input. A one-cycle pulse can fall between synchroniser edges and be missed entirely; the level waits as long as the controller needs.

Expect to justify level-over-edge for a slow controller clock, then to dispatch from PENDING and TOP without touching the sources. Lessons one and two are that answer in order.

PreviousNext: Levels, Polarity and Synchronisation

Up next

Up nextLevels, Polarity and Synchronisation

Sign in to save progress

Practice this lessonPrevious lessonReport an error

See also

  • Interrupt Routing and Latency
  • DMA Integration
  • Peripheral Subsystem