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
    • Write the Plan
    • Hunt the Zoo
    • Review a Plan
    • The Sign-Off Board
    • Debug the Regression
  • Part 18: Interview Preparation6
Loading lesson

‹Part 17: Capstones
  1. Topics
  2. First Principles of Verification Strategy
  3. Part 17: Capstones
  4. The Sign-Off Board

Part 17 · Capstones · Principal (P)

The Sign-Off Board

Capstone: sit on the tape-out board for a memory-controller block. The evidence package has a falling bug curve, high coverage, a long list of waivers, one open bug and a formal gap. Read it, question it, decide go, go with conditions or not yet, and write the decision with its residual risk; then compare with a model decision and the questions a good board asks.

On this page

    Note

    Level: Principal (P) · Answers: Can you apply all of it?

    Before this: The Tape-out Review, Bug Discovery Curves

    The team responsible for a memory-controller block (scheduler, refresh, ECC, a register interface) presents its tape-out package. The project manager wants a decision today; the next mask slot is in a week. You are on the board.

    Your task: read the evidence, write the questions you would ask, and decide: go, go with conditions, or not yet. Write your decision and residual-risk statement before opening the model answer.

    The evidence package (illustrative)

    Item

    Status reported by the team

    Plan

    64 features, 61 with evidence; 3 marked "low risk, deferred": refresh during self-test, ECC scrub with a pending write, register access during reset

    Functional coverage

    96.8%; 41 bins excluded as "unreachable" by the block lead

    Code coverage

    99.1% line, 94% branch; uncovered branches reviewed

    Formal

    Scheduler arbitration proved; refresh timing bounded to depth 40, not proved; ECC not attempted

    Planted bugs

    28 of 30 caught; the 2 missed are in ECC scrub

    Open bugs

    One major: under one rare ordering a read can return stale data after a refresh; root cause understood, fix ready, not yet regressed

    Bug trend

    See below

    Week

    Bugs found

    Regression CPU-hours

    Bugs per 1,000 CPU-hours

    1

    14

    9,000

    1.56

    2

    11

    9,500

    1.16

    3

    9

    9,200

    0.98

    4

    6

    9,400

    0.64

    5

    4

    6,100

    0.66

    6

    3

    4,000

    0.75

    7

    2

    3,900

    0.51

    8

    2

    4,100

    0.49

    Your questions

    Before deciding, list what you would ask. A board's questions are its main tool (lesson 14.5).

    Check yourself Open the questions a good board asks

    Why did regression effort fall from week 5, to less than half by week 6, and does the bug rate per CPU-hour still fall? (It barely moves: between 0.49 and 0.75 per 1,000 CPU-hours from week 4 on, so the falling count is mostly falling effort.) Who reviewed the 41 "unreachable" exclusions, and were any proved unreachable? Are the 3 deferred features really low risk: refresh during self-test and scrub with a pending write are interaction features, the class that escapes. Why were the two missed planted bugs both in ECC scrub, and is that the same gap as the deferred scrub feature and the absent ECC formal? What is the stale-read bug's fix, and when will it be regressed with what? Could the refresh bound of depth 40 miss a refresh interval longer than 40 cycles?

    Model decision

    Item

    Decision

    Outcome

    Not yet; re-review in five days, still inside the mask slot if conditions are met

    Blocking 1

    Stale-read fix regressed with the reproducing test plus the full nightly; the bug is a data-integrity failure

    Blocking 2

    ECC scrub: the two missed planted bugs caught by new checks, and the scrub-with-pending-write feature given evidence

    Blocking 3

    Regression effort restored to weeks 1-4 levels for the remaining days; the bug rate per CPU-hour reported

    Conditions for go

    Exclusions reviewed by someone other than the block lead; refresh-during-self-test and access-during-reset either tested or waived with owners

    Residual risk to state at go

    ECC has no formal proof; refresh timing bounded at 40 cycles, not proved; exclusions reviewed but not all proved unreachable

    • Why not go with conditions: an open data-integrity bug with an unregressed fix, and a cluster of evidence gaps (missed planted bugs, deferred feature, no formal) in one area, ECC scrub, is a pattern, not noise.

    • Why not a long delay: the gaps are specific and closable in days; the decision names exactly what changes it.

    • What the curve really says: the count fell from 14 to 2, but after week 4 bugs per 1,000 CPU-hours barely moved; most of the drop came with the effort cut. Lesson 12.2's trap, in a real-looking package.

    Why this matters

    Principal lens. On a sign-off board, read evidence for patterns (several gaps in one area), normalise bug trends by effort, question exclusions and deferrals as hard as failures, and treat any open data-integrity bug as blocking until its fix is regressed. State the decision with exactly what would change it and the residual risk if it goes.

    Interview

    Asked: "The bug curve is falling, coverage is 97%, one major bug is open. Do you sign off?"

    Weak answer: Yes with conditions, the curve is flattening.

    Strong answer: Not on those numbers alone. First normalise the curve by effort: in the case I'd look for, regression CPU-hours had halved, and bugs per CPU-hour were nearly flat, so the falling count was falling effort. Then look for clusters: two missed planted bugs, a deferred feature and no formal all in ECC scrub is a pattern. An open data-integrity bug with an unregressed fix blocks. Exclusions marked unreachable need independent review. I'd say not yet, with three specific blocking items closable in days, and a residual-risk statement ready for when it goes.

    Follow-ups: (1) How do you normalise a bug curve? (2) When is an open bug acceptable at tape-out?

    Check yourself Why is the falling bug count weak evidence here?

    Regression effort fell by more than half at the same time; the bug rate per 1,000 CPU-hours barely moved after week 4, so the drop reflects less testing, not fewer bugs.

    Check yourself Why do the ECC scrub items matter more together than apart?

    Missed planted bugs, a deferred interaction feature and no formal in the same area point to an area whose checks are weak, where real bugs are likely to remain.

    Key takeaways

    • Normalise bug trends by effort before trusting them.

    • Look for clusters of gaps in one area, and question exclusions and deferrals.

    • Decide with specific blocking items and a stated residual risk.

    Keep going

    Next: Lesson 17.5, Debug the Regression. A night of failures: bucket, triage, root-cause.

    Related topics

    • Part 17 overview: Capstones

    Previous

    153 / 160

    Next: Debug the Regression

    Up next

    Up nextDebug the Regression

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Write the Plan
    • Hunt the Zoo