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
    • Peripheral Subsystem
    • Pad Muxing and GPIO
      • Pin-Mux Tables and Function Select
      • Reset States, Pulls and GPIO Direction
      • Package, Ball-Out and Simultaneous Switching
  • 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. Pad Muxing and GPIO

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

Pad Muxing and GPIO

The NanoSoC pad model: 31 pads, six of them shared between GPIO and the UART and SPI, reset states and pulls, and the package supply and switching arithmetic.

  • 3topics
  • 3lessons

NanoSoC has 31 pads. Nineteen carry signals: sixteen GPIO pads P0 to P15, the active-low reset and the two crystal pads. Twelve carry power and ground. The UART and the SPI flash bus do not have pads of their own: they use P0 to P5, which are GPIO pads that a peripheral takes over when its enable bit is set. So the pads are muxed, and the mux is simple: there is no pad-control register, and a shared pad follows the CTRL.EN bit of its peripheral. This topic teaches the table that says which function owns each pad, what every pad does before software configures anything, and how the package and the board survive the result. The GPIO block registers from the peripheral topic are assumed; this topic owns the wires from the blocks to the board.

Lesson

After it you can...

Pin-Mux Tables and Function Select

Write a conflict-free mux table for NanoSoC, explain the EN-follows rule and check the table with a script.

Reset States, Pulls and GPIO Direction

Set safe reset defaults and pulls so the board never fights the chip, and keep the pad quiet while EN toggles.

Package, Ball-Out and Simultaneous Switching

Count pads, size the supply pads from current and bound switching noise per supply pair.

Suggested order: top to bottom. The mux table first, because everything else annotates it; then reset states, which are one column of that table with physical consequences; then the package view, which is where the table meets the board. All pad counts and pin assignments in this topic are NanoSoC teaching values: they are consistent across the whole course and labelled as such.

Check yourself Why does pad muxing belong to SoC integration rather than to any block owner?

No block sees the conflict: the UART owner asks for two pins, the SPI owner for four and the GPIO owner for sixteen, and the sharing only appears when all requests land on one package. Only the integrator holds every request and the authority to say that P0 to P5 serve two owners and what decides between them.

Expect a fit-these-functions-on-these-pins exercise with a reset-state column. The first two lessons are that whiteboard done twice, once for the table and once for the power-on behaviour.

PreviousNext: Pin-Mux Tables and Function Select

Up next

Up nextPin-Mux Tables and Function Select

Sign in to save progress

Practice this lessonPrevious lessonReport an error

See also

  • Interrupt Controller Integration
  • Interrupt Routing and Latency
  • DMA Integration