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
    • Levels and What They See
    • What to Verify Where
    • Reuse up the Hierarchy
    • Standard Interfaces and VIP
    • SoC and Software-Driven Tests
    • Hardware-Software Co-Verification
    • Performance and Power Verification
    • Drills: Verification Levels and Reuse
  • Part 9: Planning and Risk9
  • Part 10: Emulation and Prototyping8
  • 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 8: Verification Levels and Reuse
  1. Topics
  2. First Principles of Verification Strategy
  3. Part 8: Verification Levels and Reuse
  4. What to Verify Where

Part 8 · Verification Levels and Reuse · Senior (S)

What to Verify Where

Each feature of a design should be verified at the level where its bugs are cheapest to reach and see, and re-checked higher only for what changes there. A method for assigning features to levels, applied to DCRouter in an SoC and to the classic interview example of a cache.

On this page

    Note

    Level: Senior (S) · Answers: At which level should each thing be verified?

    Before this: Levels and What They See

    A verification plan lists 140 features of a new interconnect. For each one, someone must decide: unit, block, subsystem or chip? Too low, and the feature's real behaviour (with real neighbours, real software) is never seen. Too high, and its corners are never reached. Done carelessly, the same feature is verified three times at three levels while another is verified at none.

    How do you decide where each feature is verified?

    The obvious answer, and why it breaks

    The obvious rule is "where the feature lives": DCRouter's features at DCRouter's level. That is right for its internal rules and wrong for every feature that involves another block, software or the system: the low-power handshake with the power controller, the driver's initialisation sequence, end-to-end bandwidth. The level is decided by what the bugs need to show up, not by where the RTL sits.

    The idea: three questions per feature

    Question

    If yes

    Can its bugs be triggered and seen at the block's own interfaces?

    Verify at block (or unit) level, completely

    Does it depend on a real neighbour's behaviour, or on several blocks interacting?

    Verify the interaction at subsystem level

    Does it depend on software, chip-level configuration, power or clock management, or end-to-end paths?

    Verify at chip level, focused on that dependency

    A feature can answer yes to more than one: then each level verifies only the part it alone can see.

    DCRouter in an SoC

    Feature

    Block

    Subsystem

    Chip

    R1–R10 forwarding, arbitration, credits, CRC, counters

    Complete (Parts 4–7)

    Spot checks with real traffic

    Not re-verified

    R11–R12 registers

    Complete; formal register app

    None

    Access from the processor through the bus fabric

    R13 sleep and wake

    Rules complete

    Wake from real DMA traffic patterns

    Power-controller handshake, firmware sequence

    Credit interface to memory controllers

    Against a model

    With the real controllers

    None

    Bandwidth under real traffic

    Saturation tests

    Real traffic mixes

    End-to-end with software workloads (lesson 8.7)

    The classic example: a cache

    Feature

    Level

    Why

    Hit, miss, replacement, dirty eviction, tag and state logic

    Block, with formal on the state machine

    All visible at the cache's interfaces; corners need precise control

    Coherence with other caches

    Subsystem (several caches and the interconnect)

    Needs real peers issuing conflicting requests

    Coherence with DMA and software cache maintenance

    Chip

    Needs software and other masters

    Performance (hit rate, latency) on real workloads

    Chip or emulation

    Needs real programs (Part 10)

    Guidelines

    • Assign each feature, record the level in the plan, and avoid unowned features at boundaries.

    • Higher levels verify only the delta: connections, interactions, software, performance.

    • Reuse lower-level checks higher up rather than writing new ones (lesson 8.3).

    • Revisit the assignment when bugs escape a level: an escape is a sign the feature needed a higher (or lower) level.

    How real teams assign features

    Practice

    Purpose

    A level column in the verification plan

    Every feature has a home

    Integration test plans listing only cross-block features

    Chip effort focused on what blocks cannot see

    Escape analysis by level

    Plans corrected when a level missed something (lesson 11.7)

    What breaks

    A team (illustrative) verified a cache's coherence logic only at block level, against a model of the interconnect that delivered snoops one at a time. The real interconnect could deliver a snoop in the same cycle as a fill response. The block environment could never produce that, and no subsystem environment existed; the bug was found on the first multi-core boot. Assigning "snoop and fill together" to subsystem level would have caught it.

    Why this matters

    Senior lens. Decide levels feature by feature from what the bugs need in order to appear, and write the decision into the plan. Then make each higher level verify only its delta. The common failure is not the wrong level but no level: features that each team assumed another would cover.

    Interview

    Asked: "Where would you verify a cache?"

    Weak answer: At SoC level, because that's where it's used.

    Strong answer: At several levels, each for what only it can see. Hit, miss, replacement, eviction and the state machine at block level, with formal on the control logic, because corners need precise control. Coherence between caches at subsystem level with real peers and the interconnect, because it needs conflicting requests from real neighbours. Coherence with DMA and software maintenance, and performance on real workloads, at chip level or in emulation. Each higher level verifies only the delta, reusing block-level checkers.

    Follow-ups: (1) What is the risk of verifying coherence only at block level? (2) What would you reuse from block level?

    Check yourself Which part of DCRouter's sleep rule (R13) belongs at chip level, and why?

    The handshake with the power controller and the firmware's power-management sequence: both involve other blocks and software that DCRouter's block testbench does not contain.

    Check yourself What does "higher levels verify only the delta" mean for DCRouter's arbitration?

    Arbitration is proved and tested at block level; the subsystem and chip only check it is connected and behaves sensibly under real traffic, not every corner again.

    Key takeaways

    • Assign each feature by what its bugs need to appear: own interfaces, real neighbours, or software and the chip.

    • Higher levels verify only the delta, reusing lower-level checks.

    • Record the level for every feature; unowned features at boundaries are where escapes come from.

    Keep going

    Next: Lesson 8.3, Reuse up the Hierarchy. Checkers and coverage that travel from block to chip.

    Related topics

    • Part 8 overview: Verification Levels and Reuse

    Previous

    83 / 160

    Next: Reuse up the Hierarchy

    Up next

    Up nextReuse up the Hierarchy

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Standard Interfaces and VIP
    • SoC and Software-Driven Tests
    • Hardware-Software Co-Verification