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
    • SoC Verification Strategy
    • Integration and Connectivity Tests
    • Firmware Co-Simulation
      • Running Boot Code Against RTL
      • Bench Checkpoints and the ROM Self-Test
      • Cost, Speed and What to Log
    • Performance Verification
    • Gate-Level and Power-Aware Simulation
    • Emulation and FPGA Prototyping
    • Bring-Up Readiness
  • Package, Pads and I/O18
  • Chip Signoff and Tapeout18
  • SoC Interview Prep16
  • Capstone: Integrate NanoSoC14
Loading lesson

←Top-Level Verification and Bring-up
  1. Topics
  2. SoC Design
  3. Top-Level Verification and Bring-up
  4. Firmware Co-Simulation

Part 10 of 14Part 10 of 14/Top-Level Verification and Bring-upAll levels

Firmware Co-Simulation

Running real boot code against RTL: the ROM flow in simulation, checkpoints, self-test, cost, speed and logging.

  • 3topics
  • 3lessons

The sweeps prove the wires; only software proves the chip does its job. Firmware co-simulation runs the actual boot ROM against the RTL — the same reset vector, the same stack setup, the same SPI load — and watches it reach the prompt. On NanoSoC that run is 12.581 ms of simulated time and exercises every block in its real sequence for the first time. This topic teaches that run: how the code meets the RTL, where the checkpoints go (on the bench, not in the ROM), what the self-test proves, and what the run costs. For the general method see the co-verification lesson linked below; this topic is the NanoSoC boot, staged and priced. The ROM, its wake path and its checksum are designed in Boot ROM and Boot Modes; this topic runs that code.

Lesson

After it you can...

Running Boot Code Against RTL

Set up the ROM-in-simulation run and say what it proves that sweeps cannot.

Bench Checkpoints and the ROM Self-Test

Place bench-side checkpoints through the boot and read a failure to its stage.

Cost, Speed and What to Log

Price a firmware run and choose logging that debugs without drowning.

Suggested order: top to bottom. The run first, because setup decisions constrain everything; then the bench checkpoints around it, which turn a hang into a stage number; then the cost and logging, which decide how often the run executes. The performance topic next door assumes this run passes and measures on top of it.

Check yourself Why does the boot test run after the sweeps even though it proves more?

A wiring bug found by boot costs the whole 12.581 ms run per iteration plus firmware debug; found by sweep it costs one 125 ns access. Order is by failure cost, not by importance.

Expect the boot-in-simulation question: what code runs, what it touches, how long it takes, and what you log. The three lessons are that answer with NanoSoC numbers.

Related topics

  • NanoSoC Tour

  • Memories and Boot: Boot ROM and Boot Modes

  • Memories and Boot: The NanoSoC Boot Flow in Time

PreviousNext: Running Boot Code Against RTL

Up next

Up nextRunning Boot Code Against RTL

Sign in to save progress

Practice this lessonPrevious lessonReport an error

See also

  • SoC Verification Strategy
  • Integration and Connectivity Tests
  • Performance Verification