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
    • Capstone Brief
    • Stage 1: Memory Map and Interconnect
    • Stage 2: Clocks, Resets, Power
    • Stage 3: Interrupts and Boot
    • Stage 4: Verification and Signoff
    • Solutions
      • Root Causes, Fixes and Evidence
      • Stage 1 Worked Checks
      • Stage 2 Worked Checks
      • Stage 3 Worked Checks
      • Stage 4 Worked Checks
Loading lesson

←Solutions
  1. Topics
  2. SoC Design
  3. Capstone: Integrate NanoSoC
  4. Solutions
  5. Root Causes, Fixes and Evidence
On this page

    Part 14 of 14, lesson 15 of 19Part 14 of 14/Capstone: Integrate NanoSoC/Lesson 15 of 19All levels

    Root Causes, Fixes and Evidence

    The ten planted symptoms resolved against the NanoSoC v1 integration facts.

    What this key is for

    Each row below is the answer to one symptom in the brief. The causes and fixes are deliberately kept here, after the checks, so the capstone still tests diagnosis rather than recall.

    Bug

    Root cause

    Fix

    Evidence

    1 Address overlap

    The DMA register slot was decoded as 8 KB, so slots 0 and 1 overlap.

    Decode addr[15:12] into the 4 KB APB slots.

    The overlap checker rejects the map and a clean SBR CTRL write no longer changes DMA data bit 0.

    2 Reset release order

    rst_cpu_n released with rst_sys_n, so the first fetch outran the fabric.

    Release the CPU last, after the 8 clk_sys gap and 2 clk_cpu synchroniser.

    The reset trace shows the documented order and the first fetch receives RVALID.

    3 Mis-wired interrupt

    irq_dma was tied to spare INTC input 6 instead of input 1.

    Connect input 1 and drive a per-input connectivity test.

    Forcing DMA completion sets RAW bit 1 and not bit 6.

    4 Width and addressing

    The APB path supplied word addresses while the DMA decodes byte offsets; 0x10 became 0x04.

    Connect apb_paddr[7:0] without an extra word-address shift.

    STATUS, LEN and KEY decode at their byte offsets and unmapped accesses return the expected error.

    5 Unsynchronised crossing

    irq_dma entered clk_per without the required two-flop synchroniser.

    Synchronise every INTC input in the controller clock domain.

    The crossing review finds the two flops and repeated jobs no longer lose the level.

    6 Missing isolation

    Only 112 of the 114 PD_SW-to-PD_AON signals were clamped; irq_dma and irq_sbr were omitted.

    Add clamp-to-0 cells before switch-off and assert the isolation order.

    The isolation census totals 47 + 52 + 13 + 2 = 114 and RAW stays clear in SLEEP.

    7 Secure attribute

    SBR control reset with NS=1, but SRAM1 is secure-only.

    Secure software clears CTRL.NS before the SRAM1 transfer.

    The access carries the secure attribute and the first SRAM1 beat no longer returns STATUS.ERR.

    8 Stream length mismatch

    The SBR and DMA LEN registers contained different word counts.

    Write one n_words value to both registers and check both before start.

    SBR LEN=32 with DMA LEN=64 gives ERR and COUNT=32; SBR LEN=64 with DMA LEN=32 gives DMA DONE at 32 while SBR remains BUSY. Equal lengths complete both blocks.

    9 Contract traps

    Writes while BUSY were ignored, ERR was sticky, and rewriting CTRL cleared IRQ_EN.

    Wait for BUSY=0 before KEY or LEN, write STATUS=0x6 to clear both causes, and CTRL=0x3 to start with IRQ_EN.

    The corrected job uses the new KEY; after the error test both causes clear and irq drops; reading CTRL confirms IRQ_EN remains set after start.

    10 Gated-clock hang

    The DMA clock stopped while the bridge had no timeout, so PREADY never arrived.

    Complete the access with a 256-cycle bridge watchdog and return SLVERR.

    The liveness test terminates with SLVERR instead of hanging until reset.

    Two related findings

    Finding

    Evidence before closure

    Same-bank performance trap

    The Stage 1 worked checks compare separate banks at 361.4 MB/s per direction with a shared single-port bank at 180.7 MB/s per direction. Record the placement and both rates; the functional result alone cannot close a throughput claim.

    Open SBR attribute control in v1

    The Stage 3 and final worked checks reproduce a non-secure register write that clears NS and reaches SRAM1. The final check then models a secure-write guard and proves the access is refused. Keep the weakness open until the guard or a secure-only slot is implemented and independently verified.

    What to carry into signoff

    • The symptom is recorded separately from the diagnosis, so a future regression can prove the observation still reproduces.

    • The fix names a signal, register, cycle count or checker; vague words such as 'handle it' are not closure evidence.

    • The final manifest keeps the known non-secure SBR access to SRAM1 as an explicit open item for NanoSoC v1 rather than silently calling it fixed.

    Check yourself Why does the answer key sit after the stage checks instead of beside the symptom table?

    Because the learning objective is to observe, hypothesise and prove a boundary failure. Showing the root cause first turns the capstone into a lookup exercise and weakens the evidence habit the signoff work requires.

    Related topics

    • Next: Stage 1 Worked Checks

    • Back: Planted Bug Symptoms and Grading

    • Stage 4: Verification and Signoff

    • NanoSoC Cheatsheet

    Previous

    280 / 294

    Next: Stage 1 Worked Checks

    Up next

    Up nextStage 1 Worked Checks

    Sign in to save progress

    Practice this lessonPrevious lessonReport an error

    See also

    • Stage 2 Worked Checks
    • Stage 3 Worked Checks
    • Stage 4 Worked Checks