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
    • The Verification Plan
    • Feature Extraction
    • Risk-Based Prioritisation
    • Estimating Effort
    • Metrics and Their Traps
    • Regression Strategy
    • Managing Change
    • Planning DCRouter
    • Drills: Planning and Risk
  • 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 9: Planning and Risk
  1. Topics
  2. First Principles of Verification Strategy
  3. Part 9: Planning and Risk
  4. Estimating Effort

Part 9 · Planning and Risk · Principal (P)

Estimating Effort

Verification estimates are notoriously optimistic, because the work that dominates (debug, closing the last coverage, absorbing change) is the least predictable. How to estimate bottom-up from the plan, why to give ranges instead of single numbers, what to hold in reserve, and how DCRouter's own course build shows where time really went.

On this page

    Note

    Level: Principal (P) · Answers: What should we verify first, and how much?

    Before this: Risk-Based Prioritisation

    Asked how long DCRouter's verification will take, an engineer counts testbench components, tests and checkers, multiplies by typical days each, and answers "six weeks". The answer leaves out the parts this course has spent most of its time on: the arbitration checker that needed three versions (lesson 5.5), the coverage holes that needed a new test phase (lesson 6.9), the formal properties that failed on the clean design at step 2 (lesson 7.9). Building things is predictable. Finding out they are wrong is not.

    How long will verification take, and how do you say so honestly?

    The obvious answer, and why it breaks

    The obvious estimate adds up the things to build. It is usually accurate for building and badly wrong overall, because building is often the smaller part of the work. The rest is debugging failures (in the design and the testbench), closing the last coverage and corners, re-verifying after changes, and reviews. These depend on how many bugs there are, which is exactly what is unknown at the start.

    The idea: estimate bottom-up, state a range, hold a reserve

    Component

    How to estimate

    Typical uncertainty

    Environment build (agents, scoreboard, models)

    Per component, from past projects

    Low

    Tests, sequences and properties

    Per feature from the plan, by risk and method

    Medium

    Debug

    Proportional to expected bugs; reuse past bug rates per feature type

    High

    Coverage closure and corners

    From past closure curves (lesson 6.5): the last few percent cost the most

    High

    Change absorption

    A share of the schedule for specification and design changes

    High

    Reviews and sign-off

    Fixed points in the schedule

    Low

    • Give a range, with what drives it: "8 to 12 weeks; the upper end if arbitration bugs are as frequent as on the last router."

    • Hold an explicit reserve for the high-uncertainty components, rather than padding every task invisibly.

    • Use history: past projects' bug counts per feature type and closure curves are the best predictor.

    • Re-estimate at milestones, from the bug discovery rate and the closure curve (Part 12).

    Where time went in this course's DCRouter work

    The DCRouter testbenches in this course give a small, honest example of the split. Writing each environment piece was fast. Most of the time went to finding out that something was wrong and why:

    Step

    Planned as

    What actually took the time

    Back-pressure test (lesson 4.8)

    One testbench

    A first version that found nothing extra, then an audit that failed the clean design until the sinks were drained first

    Arbitration checker (lesson 5.10)

    One checker

    Three versions: false failures in 17 of 30 seeds, then misattributed failures, then a correct model of timing

    Coverage model (lesson 6.9)

    A bin list

    Reading 30 holes and writing a phase of tests from them

    Formal proofs (lesson 7.9)

    A property file

    Tool limits (no bind, no hierarchical references, no return), a property bug on the clean design, and depth limits

    None of these surprises was in an estimate made from a list of components; every one of them is the kind of work an honest estimate reserves time for.

    How real teams estimate

    Practice

    Purpose

    Bottom-up estimates from the plan's features, by method

    Estimates tied to scope

    Historical databases of bug rates and closure times

    Debug and closure estimated from evidence

    Ranges and explicit reserves in schedules

    Uncertainty visible to management

    Re-estimation at every milestone

    Schedules corrected by measured progress

    What breaks

    A team (illustrative) estimated a block at ten weeks by summing component estimates and committed to the date. Building finished in week five. Bugs then arrived at a steady rate for eight more weeks, and the last coverage holes took three. The estimate was not wrong about any task it contained; it simply contained none of the work that dominated.

    Why this matters

    Principal lens. Ask for estimates as ranges with named drivers, built from the plan and from history, with an explicit reserve for debug, closure and change. Re-estimate from measured bug rates and closure curves; a date that never moves is a date nobody is checking.

    Interview

    Asked: "How long will verification take?"

    Weak answer: Six weeks, based on the number of tests.

    Strong answer: I'd answer with a range and its drivers. Bottom-up from the plan: environment components and per-feature tests and properties, which are predictable; then debug, coverage closure and change absorption, which dominate and depend on how many bugs there are, so I estimate them from past projects' bug rates and closure curves and hold an explicit reserve. Something like 8 to 12 weeks, with the upper end if the arbiter turns out as bug-prone as the last one, re-estimated at each milestone from the measured discovery rate.

    Follow-ups: (1) What dominates verification effort? (2) How do you re-estimate mid-project?

    Check yourself Why are estimates built only from components to build usually optimistic?

    Building is the predictable minority of the work; debug, closure and change absorption dominate and are left out.

    Check yourself What is the advantage of an explicit reserve over padding every task?

    It makes the uncertainty visible and manageable: everyone can see what it is for and how much remains, instead of hidden padding that is spent invisibly.

    Key takeaways

    • Building is predictable; debug, closure and change absorption dominate and are not.

    • Estimate bottom-up from the plan and from history; give ranges with named drivers.

    • Hold an explicit reserve and re-estimate from measured bug rates and closure curves.

    Keep going

    Next: Lesson 9.5, Metrics and Their Traps. Coverage, pass rate and bug rate: what each hides.

    Related topics

    • Part 9 overview: Planning and Risk

    Previous

    93 / 160

    Next: Metrics and Their Traps

    Up next

    Up nextMetrics and Their Traps

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • The Verification Plan
    • Feature Extraction
    • Regression Strategy