← Design Verification Interviews

Interview Question · Concept

Merging Coverage and Ranking Tests

L3 SeniorL4 Stafffunctional coverageregressionmethodology

The Question

The interviewer asks

How do you merge coverage across a nightly regression of 3000 tests? What is test ranking for, and what is it not for?

Reveal the Model Answer

Merge only runs that passed, built from the same RTL and the same coverage model, and take the union of bin hits. Coverage from a failing run is discarded, because the design misbehaved there. Ranking orders tests by how much new coverage each adds, so a small set reaches the same number. Use that set as a fast check-in regression. Don't delete the rest; random seeds still find bugs the model never named.

From a Night of Runs to a Ranked SetArrows show where the coverage data of one nightly regression goes.
From a Night of Runs to a Ranked SetArrows show where the coverage data of one nightly regression goes. component Nightlyregression 3000 tests withrandom seeds component Failing runs Discarded: the designmisbehaved there component Runs that count Passed, same RTL,same coverage model component Merged database Union of every bin hit component Test ranking Order tests by thenew bins each adds component Ranked set Same coverage, afraction of the time filterthrown awaymergesmallest set
Read the diagram as text
  • Nightly regression: 3000 tests with random seeds
  • Failing runs: Discarded: the design misbehaved there
  • Runs that count: Passed, same RTL, same coverage model
  • Merged database: Union of every bin hit
  • Test ranking: Order tests by the new bins each adds
  • Ranked set: Same coverage, a fraction of the time
  • Nightly regression → Runs that count: filter
  • Nightly regression → Failing runs: thrown away
  • Runs that count → Merged database: merge
  • Merged database → Test ranking
  • Test ranking → Ranked set: smallest set

The ranked set runs at every check-in. The full random regression keeps running too, because new seeds find bugs the model never named.

Self-Check

Tick each key point you covered in your answer.

What Interviewers Listen For (Senior)

A good senior answer states the three merge rules: passing runs, same RTL, same model. It keeps the full random regression running beside the ranked set.

Cross-Questions

Where the interviewer goes next. Open a node to practise that follow-up.

WhyWhat IfCompareScale It

  1. Merging Coverage and Ranking Tests
  2. WhyWhy Failing Runs Don't CountL2 Mid-Level

    Why is coverage from failing runs thrown away before merging?

    Reveal the Model Answer

    A failing run shows the design did not behave as the spec says in that run. The bins it hit describe cases that ran, but were not shown to work. Counting them would mark features as verified while their bug is still open. Once the bug is fixed, rerun the test and count the new, passing coverage.

    Self-Check

    Tick each key point you covered in your answer.

    Half-Truth

    "Only the failing check is affected; the rest of that run's coverage is fine."

    After the first error, the design state may already be wrong, so later bins were reached from a broken state.

    Source Spear & Tumbush, SystemVerilog for Verification (3rd ed.), §9.1 (PDF p362)

  3. CompareA Ranked Test Set vs the Full RegressionL3 Senior

    Compare running the ranked set with running the full regression. When do you use each?

    Reveal the Model Answer

    The ranked set reaches the same coverage in a fraction of the time, so it suits every check-in and quick bug-fix checks. Its seeds are fixed, so it repeats the same stimulus every time. The full regression keeps exploring with new seeds and finds bugs the coverage model never described. Run the ranked set often and the full regression nightly or weekly.

    Ranked setFull regression
    Run timeA fraction of the full runHours
    SeedsFixed, so the same stimulus every timeNew seeds every run
    FindsBreaks in what was already coveredNew bugs the model never described
    Run itAt every check-inNightly or weekly

    Self-Check

    Tick each key point you covered in your answer.

    What Interviewers Listen For (Senior)

    A good senior answer re-ranks the tests after every change to the coverage model. It still tracks the bugs that only the full regression finds.

    Half-Truth

    "The ranked set is enough once it reaches full coverage."

    It repeats the same seeds, so it explores nothing new. Bugs outside the model's bins stay hidden.

    Source Spear & Tumbush, SystemVerilog for Verification (3rd ed.), §9.1 (PDF p361)

  4. What IfMerged Coverage After an RTL ChangeL3 Senior

    What if one block's RTL changes after coverage has been merged? Do you keep the old data?

    Reveal the Model Answer

    Look at the size of the change first. For a local fix, rerun the tests that touch the changed logic, and replace that block's coverage with the new runs. For a broad change, such as a new feature or changed timing, start that block's merge from scratch. Sign-off coverage must come from runs on the RTL that tapes out.

    Self-Check

    Tick each key point you covered in your answer.

    Misconception

    "Coverage is about the tests, so it survives RTL changes."

    A bin records what the design did in a run. Change the design, and the old record no longer describes it.

    Source Spear & Tumbush, SystemVerilog for Verification (3rd ed.), §9.1 (PDF p362)

  5. Scale ItCoverage Across IP ReleasesL4 Staff

    An IP block is reused in three chips, each with a new release. How do you manage its coverage?

    Reveal the Model Answer

    Sign off coverage per IP release, stored with the release, on the configurations each chip uses. A new chip reuses that result for unchanged logic, and closes coverage only for new configurations and changed code. At chip level, cover the integration, not the IP's internals again. Keep a list of which configurations were never verified, so nobody assumes they were.

    Self-Check

    Tick each key point you covered in your answer.

    What Interviewers Listen For (Staff)

    A good staff answer ties each coverage result to one IP release and one configuration. It makes the configurations nobody verified visible to every chip team.

    Wrong Altitude

    "The IP was verified once; reuse needs no coverage work."

    A new parameter set or a new mode is a new design as far as coverage is concerned. Only the configurations that were closed are verified.

    Source Mehta, ASIC/SoC Functional Design Verification, §4.9 (PDF p87)

What People Get Wrong

Common wrong answers and why they fail.

Missed Corner

"Merge the whole month of runs to get the highest number."

Bins hit on last month's RTL say little about today's. Merge within one RTL version, or rerun after significant changes.

Source Spear & Tumbush, SystemVerilog for Verification (3rd ed.), §9.1 (PDF p362)

Misconception

"Tests that ranking drops add nothing, so delete them."

Ranking measures only what the model counts. Random walks also create combinations nobody planned, which is where unexpected bugs live.

Source Spear & Tumbush, SystemVerilog for Verification (3rd ed.), §9.1 (PDF p361)

Misconception

"Merged coverage is the average of each test's percentage."

Merging takes the union of hits: a bin hit by any passing test is covered. Averaging percentages would understate it badly.

Source Spear & Tumbush, SystemVerilog for Verification (3rd ed.), §9.1 (PDF p361)

Learn It, Then Prove It