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
  • 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 NanoSoC19
Loading lesson

←SoC Design
  1. Topics
  2. SoC Design
  3. How to Use This Course
On this page

    SoC DesignAll levels

    How to Use This Course

    How the lessons are built, how to run the Python examples, what illustrative numbers mean, and how to study for a project or an interview.

    The course is organised as fourteen sections. Most sections have five to seven topics, and each topic has a short hub page plus about three lessons. A lesson is short enough to read in one sitting and is built to one pattern, so you always know where to look for the idea, the numbers and the pitfall.

    Prerequisites

    Three companions carry the mechanism this course spends. Read them before the sections that lean on them, not necessarily before the course.

    If this is new

    Read this first

    Before sections

    RTL hierarchy and bus structure

    Top-Level Integration Hub and Bus Integration

    Architecture, memory maps, interconnect

    Reset strategies in RTL

    Reset Strategies and Reset Sequencing and POR Controller

    Clock and reset architecture

    Clock architecture and gating

    Clock Architecture and Clock Gating

    Clock and reset architecture, power

    Crossings and synchronisers

    Async FIFO CDC and Reset Sequencing

    Clock and reset architecture, interrupts

    AXI, AHB, APB and streams

    AXI4, AHB, APB and AXI-Stream

    Memory maps, interconnect, DMA

    Timing constraints and signoff

    Interface Budgets and Multi-Corner Multi-Mode Signoff

    IP integration, chip signoff

    Verification levels

    Levels and What They See

    Top-level verification and bring-up

    Anatomy of a lesson

    Part

    What it gives you

    Why it matters

    The problem the idea solves on NanoSoC, in a few sentences, usually a symptom.

    Core idea

    How it works at the top level, with a table or a formula.

    Worked example

    Numbers, as a table, a short calculation or a runnable Python block that asserts them.

    What the review looks for

    The checks an integration reviewer would apply to this step.

    How to verify or debug it

    What to measure and where to look when the result is wrong.

    Pitfall callout

    The common mistake, ideally a real NanoSoC failure mode, and why it looks reasonable until it fails.

    Interview callout

    How the idea is asked in interviews and what a strong answer contains.

    Check yourself

    A question with a hidden answer: answer it first.

    Related lessons

    Links backwards and forwards, and to the owner course where the mechanics live.

    The capstone uses a challenge pattern instead. The brief and the stage lessons give the observation to investigate, the required behaviour, the inputs to start from, a deliverable with its pass criterion, and the evidence to hand in; the answers and the runnable worked checks sit in a separate Solutions topic that you open after your own investigation. Section and topic hubs are shorter: a purpose paragraph, a table of what you can do after each page and a suggested order.

    Running the Python blocks

    • Python 3.8 or newer works. The blocks use only the standard library: no packages, no files, no network and no randomness without a fixed seed.

    • Copy a block into a file or paste it into an interpreter. Each one finishes in well under a few seconds and prints exactly one line starting with PASS if its assertions hold.

    • If an assertion fails you will see which one. Change a number and see which assertion breaks: that is the quickest way to learn which relationship the lesson is about.

    • A block that cannot run here starts with a comment of the form not-run and a reason. Format fragments, such as a few lines of IP-XACT or UPF, are marked the same way: they are explained, not executed.

    What illustrative and NanoSoC teaching value mean

    • Every invented number is labelled illustrative. It is consistent inside its lesson, so the arithmetic can be checked, but it is not a target and not typical of any named process, library or product.

    • Numbers quoted from the running chip are labelled NanoSoC teaching values. They are exact inside the course: every lesson quotes the same address, the same frequency, the same latency.

    • Area and power figures are NanoSoC teaching values built on stated assumptions, a generic planar process at 0.9 V with fixed leakage densities, and are not measurements of any real chip.

    • Exchange formats are real and standard: AMBA AXI, AHB and APB, IP-XACT, UPF, SDC, Liberty, LEF and DEF, GDSII and OASIS, and JTAG. Fragments of them are shown as text blocks and explained.

    • Reports are shown in an illustrative generic format with a few columns. They are not output from any commercial or open-source tool; the text says the interconnect generator, the lint tool or the signoff checker rather than naming a product.

    How the running example threads through the course

    NanoSoC is one chip, and the course builds it together. The address map decoded in the memory-map section is the map the DMA streams through in the interconnect section, the fabric the power controller isolates in the power section, and the memory the boot code loads in the boot section. When a lesson says the SBR reads SRAM0 while writing SRAM1, those are the same two 64 KB memories from The NanoSoC Tour, at 0x2000_0000 and 0x2001_0000, on the same 96 MHz fabric. Learn the tour first and every later number lands on ground you have walked.

    How to study for an interview versus for a project

    Aim

    How to read

    A project in six months

    Follow your role path end to end. Run every Python block, change its inputs, and do the capstone with the checker, because the capstone is the closest thing to the job.

    A project starting now

    Read the tour, then only the sections your task touches, top to bottom. Skim the worked tables even if you skip the scripts; the numbers carry the teaching.

    An interview in two weeks

    Read the tour, then Interview Prep: the framework, the scenarios, the rapid-fire rounds. Say every answer aloud in the order Assumption, Mechanism, Trade-off, Evidence, and draw the diagram before you speak.

    Never skip the check-yourself questions or the interview callouts: they are the shortest way to find a gap. Cut breadth before depth: skip whole topics you will not use before skimming every topic.

    How to report an error

    If a number disagrees with The NanoSoC Tour, the tour wins and the lesson is wrong: quote both pages, the two values, and which assertion fails. If a Python block fails on a fresh copy, quote the block, your interpreter version, and the first failing assertion. If a link points nowhere, quote the lesson and the link text. One report per message keeps each fix checkable.

    When a number in a lesson surprises you, recompute it by hand first, then in the Python block with the same inputs. Disagreement between the two is the most useful thing a worked example can give you.

    Reading the Python blocks without running them skips most of the learning. The assertion that fails after you change an input is the lesson.

    Check yourself Why does the course label every invented number as illustrative?

    So that no value is mistaken for a target or a fact about a real process: the arithmetic is the lesson, and limits come from the project's own policy and the foundry's rules.

    Related topics

    • Up: course hub

    • Next: The NanoSoC Tour

    • Reading Path

    Previous

    1 / 294

    Next: The NanoSoC Tour

    Up next

    Up nextThe NanoSoC Tour

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Reading Path
    • SoC Glossary
    • SoC Metrics Reference