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
  • 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
    • The Reasoning Framework
    • Question Bank: Foundation
    • Question Bank: Senior
    • Question Bank: Principal
    • Whiteboard Drills
    • Strategy Design Questions
Loading lesson

‹Part 18: Interview Preparation
  1. Topics
  2. First Principles of Verification Strategy
  3. Part 18: Interview Preparation
  4. Question Bank: Senior

Part 18 · Interview Preparation · Senior (S)

Question Bank: Senior

44 senior-level verification interview questions, grouped by topic, each with a strong answer, the follow-up an interviewer is likely to ask, and the lesson behind it.

On this page

    Note

    Level: Senior (S) · Answers: Can you explain it under pressure?

    Before this: Question Bank: Foundation

    Senior interviews test whether you can make decisions, not just define terms, and they probe with follow-ups until you reach the edge of what you know. For each question, answer out loud, then answer the follow-up before opening it. If the follow-up stops you, the linked lesson is where to go.

    Specifications and oracles

    Check yourself 1. How do you verify a design whose specification is incomplete?

    Strong answer: Turn what exists into numbered rules, list every question as a specification issue with an owner, write checks only for decided rules, and track open questions as risks in the plan.

    Likely follow-up: What do you do if the designer and you read a rule differently?

    See lesson 2.5, Specification Review and Ambiguity.

    Check yourself 2. How deep should a reference model be?

    Strong answer: Deep enough to predict what the checks compare: transaction level for data and order, cycle level only where timing is specified; deeper models cost more and copy more implementation detail.

    Likely follow-up: When would you need a cycle-accurate model?

    See lesson 5.5, How Precise a Reference Model?.

    Check yourself 3. What should you not check?

    Strong answer: Implementation choices the specification leaves open, such as exact latency when only a bound is specified, or arbitration order when any fair order is legal; checking them makes tests brittle.

    Likely follow-up: How do you check a latency bound without fixing the latency?

    See lesson 2.7, What Not to Check.

    Check yourself 4. How do you trace requirements to evidence?

    Strong answer: Each requirement maps to features, each feature to checks, stimulus and coverage, and results update the status automatically, so sign-off reads evidence, not claims.

    Likely follow-up: What does an auditor look for?

    See lesson 2.6, Requirements Traceability.

    Stimulus

    Check yourself 5. How do you bias constrained-random stimulus?

    Strong answer: Weight distributions towards corners (maximum lengths, full buffers, simultaneous events) while keeping enough uniform traffic to find the unexpected; check the distribution with coverage.

    Likely follow-up: What happens if you over-bias?

    See lesson 4.4, Distributions and Bias.

    Check yourself 6. How do you close the long tail of coverage?

    Strong answer: Find why the remaining bins are rare, then change the bias, write a scenario or a directed test for them, or prove them unreachable; more seeds alone rarely closes it.

    Likely follow-up: When do you stop adding seeds?

    See lesson 4.5, The Long Tail.

    Check yourself 7. What is layered stimulus?

    Strong answer: Sequences built from transactions and scenarios built from sequences, so tests describe intent (a hot spot, a burst of errors) instead of individual signals.

    Likely follow-up: How does that help reuse?

    See lesson 4.6, Scenarios and Layered Stimulus.

    Check yourself 8. How do you choose seeds for a regression?

    Strong answer: A fixed set for reproducibility plus fresh random seeds each night for exploration; record every failing seed and add it to the fixed set once fixed.

    Likely follow-up: How do you reproduce a failure from last night?

    See lesson 4.9, Seeds and Regressions.

    Check yourself 9. Why might random stimulus never find a bug that a directed test finds instantly?

    Strong answer: The trigger may be a precise sequence or a register setting that random traffic reaches with tiny probability, such as clearing every counter and re-reading all of them.

    Likely follow-up: How would coverage show you that?

    See lesson 4.10, Hunting the Zoo with Random.

    Checking

    Check yourself 10. Where should checks be placed?

    Strong answer: At every interface and every rule: protocol assertions at ports, a scoreboard end to end, internal assertions where propagation is unlikely, and end-of-test checks for leftovers.

    Likely follow-up: Why not just one end-to-end scoreboard?

    See lesson 5.2, Where to Check.

    Check yourself 11. How do you check ordering when the design may reorder?

    Strong answer: Check order only where the specification requires it, per flow or per ID, and match out-of-order transactions by key elsewhere.

    Likely follow-up: How do you handle legal drops?

    See lesson 5.6, Ordering and Timing in Checks.

    Check yourself 12. How do you validate a new checker?

    Strong answer: Run it on the clean design across many seeds to rule out false failures, then against planted bugs to show it can fail; a checker never seen failing is not yet evidence.

    Likely follow-up: What if it fails on the clean design?

    See lesson 5.8, False Passes.

    Check yourself 13. How do you check performance?

    Strong answer: State the requirement (throughput, latency bound), measure it in long runs with realistic traffic, and compare with an architecture model; treat misses as decisions, not just bugs.

    Likely follow-up: Where do performance checks live in the regression?

    See lesson 5.9, Checking Performance.

    Check yourself 14. What is vacuity, and how do you detect it?

    Strong answer: An implication whose condition never occurs passes trivially; cover the antecedent and fail if it is never hit.

    Likely follow-up: Give an example of a vacuous assertion.

    See lesson 5.8, False Passes.

    Coverage

    Check yourself 15. How do you build a functional coverage model?

    Strong answer: From the plan: one item per feature and rule, with bins for boundaries and modes, crosses only where values interact, and illegal bins for impossible combinations.

    Likely follow-up: How many bins is too many?

    See lesson 6.3, Functional Coverage Models.

    Check yourself 16. How do you read a coverage closure curve?

    Strong answer: A steep rise then a bend; the flat part is where new bins become rare, and is the cue to change stimulus rather than run more of it.

    Likely follow-up: What does a curve that never flattens tell you?

    See lesson 6.5, Closure Curves.

    Check yourself 17. What do you do with unreachable bins?

    Strong answer: Prove or argue they are unreachable, exclude them with a reason and a reviewer, and revisit exclusions after design changes.

    Likely follow-up: Who should approve exclusions?

    See lesson 6.6, Holes and Unreachable Bins.

    Check yourself 18. How does coverage drive stimulus?

    Strong answer: Holes point to missing scenarios; writing tests from the holes, then rechecking, closes the loop and often finds bugs in the newly reached logic.

    Likely follow-up: Can coverage-driven stimulus be automated?

    See lesson 6.7, Coverage-Driven Stimulus.

    Check yourself 19. What does mutation testing tell you that coverage does not?

    Strong answer: Whether a change in the logic is detected; code that is fully covered can still be unchecked, and mutants surviving show exactly where.

    Likely follow-up: How do you handle equivalent mutants?

    See lesson 6.8, Mutation Testing.

    Formal and simulation

    Check yourself 20. When does formal beat simulation?

    Strong answer: Control logic with clear properties and modest state, such as arbiters, FIFOs, credit counters and FSMs, where rare corners matter and every input sequence can be explored.

    Likely follow-up: When does simulation win?

    See lesson 7.5, Where Formal Wins.

    Check yourself 21. What is the difference between a bounded proof and a full proof?

    Strong answer: A bounded proof finds no counterexample within N cycles; a full proof by induction covers every depth, often after adding helper invariants.

    Likely follow-up: What is an induction counterexample?

    See lesson 7.3, Induction and Full Proofs.

    Check yourself 22. How do you avoid over-constraining a formal proof?

    Strong answer: Keep assumptions to the interface rules, cover expected behaviours to show they are still reachable, and plant a bug to show the property can fail.

    Likely follow-up: How did you find an over-constraint?

    See lesson 7.4, Assumptions and Over-Constraint.

    Check yourself 23. How do formal and simulation combine?

    Strong answer: Formal proves control properties completely; simulation covers data paths, long sequences and system behaviour; the plan states which features rest on which.

    Likely follow-up: Can formal results count towards coverage?

    See lesson 7.8, Combining Formal and Simulation.

    Levels, reuse and scale

    Check yourself 24. What should be verified at block level versus SoC level?

    Strong answer: Block level: everything about the block, where controllability is high. SoC level: integration, connectivity, system flows and software, not re-verifying block internals.

    Likely follow-up: What bugs only appear at SoC level?

    See lesson 8.2, What to Verify Where.

    Check yourself 25. How do you reuse block-level checks at SoC level?

    Strong answer: Keep passive monitors, assertions and scoreboards that do not drive, and turn them on at higher levels; drivers are replaced by real neighbours.

    Likely follow-up: What breaks when checks move up?

    See lesson 8.3, Reuse up the Hierarchy.

    Check yourself 26. When would you use emulation?

    Strong answer: When the workload needs billions of cycles: OS boot, software, long traffic; it is fast but has less debug visibility and is expensive to compile and run.

    Likely follow-up: How do you debug on an emulator?

    See lesson 10.3, Emulation.

    Check yourself 27. How do you verify hardware and software together?

    Strong answer: Run the real driver on a virtual platform early, then on RTL in emulation; check register contracts and flows the software actually uses.

    Likely follow-up: What does a virtual platform give up?

    See lesson 8.6, Hardware-Software Co-Verification.

    Planning

    Check yourself 28. How do you extract features for a plan?

    Strong answer: Walk every rule and interface for functions, modes, boundaries, interactions and error cases; ask designers about risks; include reset and power transitions.

    Likely follow-up: Which features are most often missed?

    See lesson 9.2, Feature Extraction.

    Check yourself 29. How do you prioritise verification effort?

    Strong answer: By risk: likelihood times consequence, giving the most effort to features whose bugs are likely and severe.

    Likely follow-up: How do you estimate likelihood?

    See lesson 9.3, Risk-Based Prioritisation.

    Check yourself 30. How do you estimate verification effort?

    Strong answer: Per feature from past projects, adjusted for novelty and complexity, plus infrastructure and debug time; state the uncertainty.

    Likely follow-up: What usually overruns?

    See lesson 9.4, Estimating Effort.

    Check yourself 31. Which verification metrics mislead?

    Strong answer: Test counts, pass rates, raw coverage percentages and raw bug counts without effort beside them.

    Likely follow-up: What would you report instead?

    See lesson 9.5, Metrics and Their Traps.

    Check yourself 32. How do you design a regression strategy?

    Strong answer: Tiers: quick smoke on every commit, broader nightly runs, full regression weekly, with failing seeds kept and runs sized by risk.

    Likely follow-up: How do you keep regression time under control?

    See lesson 9.6, Regression Strategy.

    Check yourself 33. How do you handle a late specification change?

    Strong answer: Assess impact on features, checks and coverage; update the plan; rerun affected evidence; record it as a risk until re-verified.

    Likely follow-up: What if it arrives a week before tape-out?

    See lesson 9.7, Managing Change.

    Debug and bugs

    Check yourself 34. Walk me through debugging a failing test.

    Strong answer: Reproduce it cheaply, find the first wrong value, follow it back to the cause, decide whether design or testbench is wrong, fix, and add a check that would catch it earlier.

    Likely follow-up: How do you decide it is a testbench bug?

    See lesson 13.1, The Debug Loop.

    Check yourself 35. How do you triage hundreds of failures?

    Strong answer: Bucket by signature with run-dependent details abstracted, debug one representative per bucket, largest or earliest first, and rerun after each fix.

    Likely follow-up: How do you choose the signature?

    See lesson 13.5, Triage at Scale.

    Check yourself 36. How do you bisect a regression failure?

    Strong answer: Find the last passing and first failing commits and test halfway between until one change is left; also bisect the stimulus to the shortest failing case.

    Likely follow-up: What if the failure is intermittent?

    See lesson 13.4, Bisection and Delta Debugging.

    Check yourself 37. How do you judge the quality of a fix?

    Strong answer: Find the root cause, not the symptom; check the fix against the rule, not just the test; sweep for the same class elsewhere; add the missing check.

    Likely follow-up: What is a symptom fix?

    See lesson 12.5, Root Cause and Fix Quality.

    Check yourself 38. How do you estimate remaining bugs?

    Strong answer: From discovery curves normalised by effort, from capture-recapture between independent methods, or from planted-bug detection rates, each with a range.

    Likely follow-up: How reliable are these estimates?

    See lesson 12.6, Estimating Remaining Bugs.

    Check yourself 39. Why do bug counts mislead near tape-out?

    Strong answer: A falling count can come from falling effort; only bugs per unit of effort, with effort stable, suggests the design is getting cleaner.

    Likely follow-up: What else would you look at?

    See lesson 12.2, Bug-Discovery Curves.

    Sign-off and context

    Check yourself 40. What are your sign-off criteria?

    Strong answer: Agreed at planning: evidence per feature, coverage decided, key properties proved, planted bugs caught, bug trend with effort, open bugs decided, reviews done, residual risk written.

    Likely follow-up: Which criterion is most often fudged?

    See lesson 14.2, Sign-Off Criteria.

    Check yourself 41. When is a waiver acceptable?

    Strong answer: When the gap is understood, its consequence assessed, the cost of closing it outweighs the risk, and an owner and approvers sign it, with a follow-up.

    Likely follow-up: What does a bad waiver look like?

    See lesson 14.3, Waivers.

    Check yourself 42. How does verification change for safety-critical designs?

    Strong answer: Safety mechanisms become features, fault injection measures diagnostic coverage against ISO 26262 targets, and traceability and process evidence are audited.

    Likely follow-up: What is diagnostic coverage?

    See lesson 15.1, Functional Safety Verification.

    Check yourself 43. How would you check a floating-point accelerator?

    Strong answer: Not bit-exact against a loop model: use a tolerance derived from the format and scaled to the terms, or a bit-accurate model of the hardware's order, and validate the tolerance with planted bugs.

    Likely follow-up: Why must the tolerance scale?

    See lesson 15.6, Verifying AI Accelerators.

    Check yourself 44. How do you verify configurable IP?

    Strong answer: Legal ranges checked in RTL, extremes and customer configurations regressed, pairwise covering arrays, random configurations nightly, and a parameterised testbench.

    Likely follow-up: How many configurations cover all pairs?

    See lesson 15.7, Verifying Configurable IP.

    Key takeaways

    • Senior answers make a decision and give the reason and the trade-off.

    • Prepare for the follow-up: it is where interviews are decided.

    • Ground answers in a concrete example, ideally one you have built or run.

    Keep going

    Next: Lesson 18.4, Question Bank: Principal. Open questions and what interviewers listen for.

    Related topics

    • Part 18 overview: Interview Preparation

    Previous

    157 / 160

    Next: Question Bank: Principal

    Up next

    Up nextQuestion Bank: Principal

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • The Reasoning Framework
    • Whiteboard Drills
    • Strategy Design Questions