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
    • Designing the Address Map
    • Implementing Address Decode
    • Decode Errors and Default Slaves
      • DECERR Versus SLVERR Versus PSLVERR
      • Default-Slave Design
      • Debugging Address Hangs and Mismatches
    • Register Maps and Banks
    • Security and Privilege Regions
    • The Software View and the Hardware-Software Contract
    • IP-XACT and Automated Assembly
    • Memory-Map Verification
  • Interconnect and Bus Fabrics26
  • Clock and Reset Architecture24
  • Power Architecture21
  • Interrupts, DMA and Peripherals15
  • 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

←Memory Maps and Address Decode
  1. Topics
  2. SoC Design
  3. Memory Maps and Address Decode
  4. Decode Errors and Default Slaves

Part 3 of 14Part 3 of 14/Memory Maps and Address DecodeAll levels

Decode Errors and Default Slaves

What answers when nothing should: DECERR, SLVERR and PSLVERR, default slaves that cannot hang, and debugging decode.

  • 3topics
  • 3lessons

A wrong address must fail loudly and fast: an error response the CPU can trap, never a silence the CPU waits on forever. NanoSoC has three ways to say no, each from a different responder, and a default slave behind each decoder so that no address goes unanswered. This topic teaches the three responses as a diagnosis table, shows how to build a default slave that completes every burst correctly, and walks a debugging method through two decode bugs that were planted in this very map. For the protocol-level meaning of error responses see Unmapped addresses, decode errors and SLVERR; for the generic error-response theory see Error Responses.

Lesson

After it you can...

DECERR Versus SLVERR Versus PSLVERR

Predict the exact response for any NanoSoC address and say which block sends it.

Default-Slave Design

Build the DECERR and SLVERR responders and the APB default that answer every beat and never hang.

Debugging Address Hangs and Mismatches

Localise a decode bug to its level with readback and bisection, and write the check that catches it.

Suggested order: top to bottom. Learn the response table first, because the default-slave lesson implements two rows of it and the debugging lesson reads the third kind of symptom off it. Every address in the table is a NanoSoC teaching value from the design specification.

Check yourself A non-secure load from 0x2001_0000 traps. Which response, from whom, and why?

SLVERR from the interconnect's secure filter: SRAM1 is secure-only, so a non-secure access is denied at the first level. The address is mapped, which is why the answer is SLVERR and not DECERR.

Expect an address and the question what comes back. Answer in three parts every time: who answers, which code, and what software should do about it.

PreviousNext: DECERR Versus SLVERR Versus PSLVERR

Up next

Up nextDECERR Versus SLVERR Versus PSLVERR

Sign in to save progress

Practice this lessonPrevious lessonReport an error

See also

  • Designing the Address Map
  • Implementing Address Decode
  • Register Maps and Banks