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
    • The Whiteboard Framework
    • Design a SoC on a Whiteboard
    • Integration Storm and Budget War Scenarios
      • The Integration Storm
      • The Budget War
      • Strong Answers, Weak Answers and Lessons
    • Rapid-Fire Questions by Section
    • Numeric Drills
  • Capstone: Integrate NanoSoC14
Loading lesson

←Integration Storm and Budget War Scenarios
  1. Topics
  2. SoC Design
  3. SoC Interview Prep
  4. Integration Storm and Budget War Scenarios
  5. The Integration Storm
On this page

    Part 13 of 14, lesson 7 of 16Part 13 of 14/Interview Prep/Lesson 7 of 16All levels

    The Integration Storm

    Five failures in the first weeks of integration, triaged in order: hang, wrong data, missed interrupt, secure fault, wake loop.

    Why it matters

    The first weeks of integration never produce one bug at a time. The CPU hangs, the DMA data is wrong, an interrupt never arrives, a secure copy faults, and the wake sequence loops, and all five symptoms arrive in the same week. The interview question is the triage order: which failure do you chase first, what does each check prove, and when do you stop and suspect the test bench instead of the chip. This lesson runs that storm as a three-day timeline with decision points, using real NanoSoC failure modes throughout.

    The core idea

    Day one, the CPU stalls at address zero with address-valid high and no response. Triage rule one says a hang that kills everything goes first. The decision point is the reset order: the CPU was released in the same step as the fabric, so the first fetch entered the clock-domain FIFO while the fabric was still in reset and was lost. Strong answer: check the release sequence first, because a fetch lost in reset explains a silent hang with no error, and the fix is staging the CPU release 8 system clocks plus 2 CPU clocks after the fabric. Weak answer: blame the ROM contents and spend the day dumping memory that was never fetched.

    Day two brings two symptoms at once: a DMA copy comes out with bit 0 flipped, and the DMA interrupt never fires although DONE reads 1. The flipped bit with a correct count is an address overlap: the slot select was written for an 8 KB window, so a bridge-register write also hits the DMA key register. The dead interrupt with DONE set and the controller's RAW bit 1 clear is a mis-wired interrupt: the line is wired to spare input 6. The decision point is ordering by silence: the mis-wired interrupt corrupts nothing and waits, while the alias corrupts data through a second path, so the alias is fixed first. Strong answer: prove each with one observation, COUNT right with data wrong means the key changed, RAW bit 6 set means the wire moved. Weak answer: reprogram the DMA five ways hoping the symptom moves.

    Day three adds the secure fault and the wake loop. A copy from SRAM1 faults every first beat while CPU reads work: the bridge issues non-secure because its NS bit resets to 1, and SRAM1 is secure-only. The fix is for secure software to clear that bit before the copy, and a strong answer adds the catch: the bridge's register slot is non-secure, so non-secure software can clear the bit too, which means the secure partition is not closed until that bit is writable from the secure side only. The wake loop, spuriously high CPU interrupt from the moment switchable power drops, is missing isolation on the two interrupt lines: 112 of 114 clamps present. The decision point is mechanism over coincidence: two new symptoms on the same day still get separate root causes, and the isolation audit (list every cross-domain net, count 114) is the check that ends the loop. Strong answer: the fault names the attribute, the loop names the missing clamps, and both fixes ship with the audit that would have caught them. Weak answer: one grand theory, usually power supply noise, explaining all five symptoms and fixing none.

    Diagram
    # not-run: the triage order as a decision table, NanoSoC teaching values
    1. Hang with no error  -> check release order (CPU last: 8 T_sys + 2 T_cpu). Kills all.
    2. Wrong data, count right -> check alias/key path (slot decode, 8-bit port). Corrupts silently.
    3. Secure fault, first beat -> check AxPROT/NS attribute end to end. Blocks a feature.
    4. Dead interrupt, DONE set -> check wiring table (RAW bit vs expected input). Waits safely.
    5. Wake loop with X in gate-level sim -> audit isolation (114 clamps, 2 missing). Loops loudly.
    Rule: lethal first, silent corruption second, blocked features third, waits last.

    What the review looks for

    • The triage order is stated as a rule before the symptoms: lethal, silently corrupting, blocking, waiting.

    • Each diagnosis cites one distinguishing observation, not a reprogramming campaign.

    • Each fix ships with the audit that would have caught it: reset-order assertion, lint on port widths, IRQ table check, attribute matrix, isolation count.

    Verify and debug

    Rehearse the storm as narration: five minutes per day, decision point stated before the answer. The checks that prove each diagnosis are the connectivity test forcing each interrupt and watching its RAW bit, the elaboration-time overlap check on base and size pairs, the directed non-secure access expecting SLVERR, and the power-aware simulation showing X where clamps are missing. A narrated storm that never names a check is a story, and stories score 2 on Evidence.

    No default slave: an unmapped access with no response hangs the master forever. NanoSoC's default slave answers DECERR within 2 system clocks, so a hole never hangs the bus, which is why the day-one hang points at reset order and not at the map. If the ROM select equation (bits 31 down to 14 equal zero) were wrong, the first fetch would return DECERR, not stall; stating that distinction is a scored move.

    When symptoms pile up, say the triage rule aloud first. Interviewers forgive a wrong diagnosis that follows a right order; they do not forgive a right diagnosis reached by luck.

    Check yourself Day two's two symptoms arrive together. Why fix the alias before the wiring?

    Because the alias corrupts data silently through a second path while the mis-wired interrupt only waits: DONE still reads 1, so polling works around it. Silent corruption always outranks a waitable nuisance.

    Related topics

    • Next: The Budget War

    • The Chip Hangs: What Do You Do?

    • SoC: NanoSoC Cast and First Triage

    Previous

    256 / 289

    Next: The Budget War

    Up next

    Up nextThe Budget War

    Sign in to save progress

    Practice this lessonPrevious lessonReport an error

    See also

    • Strong Answers, Weak Answers and Lessons