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

AboutContactPrivacyTerms
Skip to lesson

Course contents

  • How to Use This Course
  • Reading Paths
  • Concept Map
  • Meet DCRouter
  • Glossary
  • Part 0: What Verification Is8
  • Part 1: What Can Go Wrong11
  • Part 2: Specifications as Checkable Rules8
  • Part 3: Observability and Controllability7
  • Part 4: Stimulus11
  • Part 5: Checking11
  • Part 6: Coverage10
  • Part 7: Formal and Simulation10
  • Part 8: Verification Levels and Reuse8
  • Part 9: Planning and Risk9
  • Part 10: Emulation and Prototyping8
    • Why Cycles Matter
    • Simulation Speed and Its Limits
    • Emulation
    • FPGA Prototyping
    • Virtual Platforms and Hybrids
    • Debug at Scale
    • Choosing the Platform
    • Drills: Emulation and Prototyping
  • Part 11: Post-Silicon Validation8
  • Part 12: Bug Economics8
  • Part 13: Debug7
  • Part 14: Sign-Off7
  • Part 15: Verification in Context8
  • Part 16: Case Studies5
  • Part 17: Capstones5
  • Part 18: Interview Preparation6
Loading lesson

‹Part 10: Emulation and Prototyping
  1. Topics
  2. First Principles of Verification Strategy
  3. Part 10: Emulation and Prototyping
  4. Virtual Platforms and Hybrids

Part 10 · Emulation and Prototyping · Senior (S)

Virtual Platforms and Hybrids

A virtual platform is a software model of the whole chip, fast enough to boot an operating system on a laptop, accurate at the level of registers and functions but not cycles. Hybrids join it to RTL running in simulation or emulation, so one new block can be exercised by real software long before the rest of the RTL exists. How software starts before RTL, and the accuracy you give up.

On this page

    Note

    Level: Senior (S) · Answers: How do we run enough cycles?

    Before this: FPGA Prototyping

    DCRouter's driver team cannot wait for the RTL, let alone silicon. Six months before RTL freeze they receive a virtual platform: a software model of the SoC in which DCRouter is a few hundred lines of C++ that implement its registers and move packets between DMA engines and memory, with no clock at all. The OS boots on a laptop in seconds. By the time the RTL exists, the driver has already been written, run and debugged against the register specification.

    How does software start before the RTL, and what does it give up?

    The obvious answer, and why it breaks

    The obvious sequence is hardware first, then software: write the RTL, build an emulator image or a prototype, then start the driver. That puts software months behind and finds hardware-software contract bugs late, when fixing the hardware is expensive. A model at the level software sees, registers and functions, can exist as soon as the specification does.

    The idea: models at the level software needs

    Software runs on a fast virtual platform; the block being verified runs as RTL, connected through a transactor.

    Platform

    Speed

    Accuracy

    Available

    Virtual platform (transaction-level models)

    Near real time

    Registers and functions; approximate or no timing

    From the specification

    Hybrid: virtual platform plus RTL block in simulation

    Slow for the RTL part

    Exact for the RTL block

    When the block's RTL exists

    Hybrid: virtual platform plus RTL on an emulator

    Fast

    Exact for the emulated part

    When the RTL compiles for emulation

    Full emulation or prototype

    Fast

    Exact RTL

    When the whole RTL exists

    What virtual platforms give up

    • Timing: races, latencies and back-pressure that depend on cycles are absent or approximate.

    • Faithfulness: the model implements the specification as its author read it; it can share the driver team's misreadings (lesson 8.4).

    • Corner behaviour: what a model does not implement (an error response, a reset quirk), the driver never meets.

    • So: virtual platforms are for early software and register-contract checks; the driver must also run against the RTL (lesson 8.6).

    How real teams use virtual platforms and hybrids

    Practice

    Purpose

    Virtual platforms from the architecture specification

    Software development starts months earlier

    Register models generated from the same source as the RTL

    The model's registers match the hardware's (lesson 2.4)

    Hybrids for new blocks

    Real software against real RTL for the risky block, fast models for the rest

    Driver test suites run on every platform in turn

    Each platform catches what the faster one cannot

    What breaks

    A team (illustrative) developed a driver entirely on a virtual platform whose DMA model completed transfers instantly. On the emulator, real transfers took thousands of cycles, and the driver, which read the completion status immediately after starting a transfer, read "busy" and gave up. The virtual platform had no timing to expose the assumption. Running the driver's critical sequences on a hybrid with the RTL DMA would have.

    Why this matters

    Senior lens. Start software on a virtual platform as soon as the specification allows, generate its register models from the same source as the RTL, and plan to run the same driver tests on hybrids and emulation as RTL appears. Each step trades speed for accuracy; none replaces the next.

    Interview

    Asked: "How does software start before RTL?"

    Weak answer: It waits for an FPGA prototype.

    Strong answer: On a virtual platform: transaction-level models of the processor, memory and blocks, accurate at the register and function level, fast enough to boot an OS on a workstation, available as soon as the specification is. Register models are generated from the same source as the RTL. As RTL appears, hybrids connect the virtual platform to the real RTL of a new block in simulation or emulation through a transactor, so real software exercises real hardware early. The virtual platform has no real timing, so driver sequences must also run against the RTL.

    Follow-ups: (1) What does a virtual platform miss? (2) What is a hybrid platform?

    Check yourself Why did the driver that worked on the virtual platform fail on the emulator?

    The virtual DMA model completed instantly; real transfers take time, and the driver assumed completion right after starting.

    Check yourself What does a hybrid platform give that a pure virtual platform cannot?

    Exact behaviour, including timing, for the block running as RTL, while the rest of the chip still runs fast as models.

    Key takeaways

    • Virtual platforms model the chip at register and function level, fast enough for software from day one.

    • Hybrids connect real RTL for one block to fast models for the rest.

    • Virtual platforms miss timing and unmodelled behaviour; run the same software on RTL later.

    Keep going

    Next: Lesson 10.6, Debug at Scale. Finding one failure in billions of cycles.

    Related topics

    • Part 10 overview: Emulation and Prototyping

    Previous

    103 / 160

    Next: Debug at Scale

    Up next

    Up nextDebug at Scale

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Why Cycles Matter
    • Simulation Speed and Its Limits
    • Emulation