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 from Address Bits
      • Hierarchical Decode and Slot Decode
      • Generating Decode from a Map Table
      • Decode Timing and Pipelining
    • Decode Errors and Default Slaves
    • 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. Implementing Address Decode

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

Implementing Address Decode

Turning the map into gates: decode equations, two-level slot decode, generation from one table, and timing.

  • 4topics
  • 4lessons

The map says what should happen; the decode makes it happen in one system clock. On NanoSoC that means four equality compares in the interconnect, a four-bit slot decoder behind the APB bridge, and a secure filter that watches both. This topic writes that logic out: the exact equations from the design specification, why the decode is split across two levels, how to generate the RTL and the headers from one table so they cannot drift apart, and what a pipelined select costs in latency. For the generic theory start at Address Maps and Decoding; for the RTL view of a decoder see Address Decode.

Lesson

After it you can...

Decode from Address Bits

Write the NanoSoC select equations (windows, default and fault) and prove them against a truth table.

Hierarchical Decode and Slot Decode

Split an address across decode levels and explain the DMA alias as a wiring choice.

Generating Decode from a Map Table

Generate matching SystemVerilog and C headers from one table and assert they agree.

Decode Timing and Pipelining

Cost a registered select in nanoseconds and say when it is worth paying.

Suggested order: top to bottom. Write the equations by hand first so the generator lesson means something, then learn where each level lives before timing the whole path. The error topic that follows assumes you can already predict every select for any address.

Check yourself The CPU reads 0x4000_7000. Which first-level select fires, and why is the answer APB rather than default?

The APB window select fires, because addr[31:16] is 0x4000. The hole only shows at the second level: the slot decoder finds slot 7 unmapped and its own default slave answers.

Expect to derive a select equation from a base and size on the spot, then say which bits each decode level owns. Lessons one and two are that exercise worked twice.

PreviousNext: Decode from Address Bits

Up next

Up nextDecode from Address Bits

Sign in to save progress

Practice this lessonPrevious lessonReport an error

See also

  • Designing the Address Map
  • Decode Errors and Default Slaves
  • Register Maps and Banks