Functional coverage plateaus after many regression cycles even though new seeds are added daily. Team suspects remaining bins are either unreachable, mis-modeled, or blocked by testbench sequencing gaps.
The signal you would look at: Coverage growth trend flattens below target despite rising simulation count and seed diversity.
Whether you separate three causes of a plateau: stimulus that never reaches the bin, a bin that cannot legally be reached, and a model that samples the wrong thing.
Whether you reason with numbers: which bins are missing, and what the plateau percentage says about how many are unreachable.
Whether you refuse to waive bins without scenario-level evidence.
Follow these steps in order. The order matters: each step narrows the search so that the next one is cheap.
Read the plateau number against the bin count. A plateau at exactly the fraction of reachable bins (for example 75 percent of four) is a model mismatch, not a lack of seeds.
List the holes. For each one ask: is the tuple legal under the protocol and under our own stimulus constraints?
Check the sampling: the sample event, the clock it uses, reset-time samples filtered with iff, and whether the state is read before or after the update.
Check the options that change the count: at_least thresholds, ignore_bins and illegal_bins, and the default bin.
For a legal but unreached hole, write the directed or constrained sequence that reaches it. For an unreachable one, fix the model or waive it with a written reason.
Report the result as a new denominator and the evidence for every waiver.
A model transcript of the first part of the round. Do not memorise the words; copy the order of the moves.
Interviewer: Coverage has been stuck at 75 percent for two weeks, and we add seeds every night. What do you do?
Candidate: A plateau at an exact fraction makes me suspect a model problem, so I look at the holes first. With four bins, 75 percent means one bin is never hit, no matter how many seeds.
Interviewer: The missing bin is op3. The environment constrains op to values 0 to 2.
Candidate: Then it is unreachable by our own stimulus constraints. More seeds cannot help. I would either relax the constraint if op3 is legal, or fix the coverage model if op3 should not exist.
Interviewer: And if the missing item is a cross tuple, a read with a slave error?
Candidate: I check the protocol. If that combination cannot legally happen, the model must encode reachability, with an ignore bin and a documented reason. If it can happen, I need a sequence that makes the error happen on a read.
Interviewer: The team wants to exclude the hole to reach 100 percent today.
Candidate: I would only waive it with evidence that the tuple is impossible, written next to the exclusion. Otherwise we have just changed the denominator to make the number look good.
Interviewer: What else would you check before blaming stimulus?
Candidate: The sampling. If it samples on a derived clock, or after the state has already updated, or with reset-time samples included, the bins can be hit with the wrong values. That changes both what is hit and what is missed.Pursuing random seed volume instead of root-causing unreachable cross bins.
Ignoring illegal-bin and ignore-bin misuse that distorts closure perception.
Forcing closure with exclusion waivers without scenario-level evidence.
Not checking the sample event, so the plateau is a sampling off-by-one.
Work these cold, with the timer, before you rehearse the conversation.
cov-close-002: Unreachable bin from stimulus constraints (E)
cov-close-005: Unreachable cross tuple from protocol rules (M)
cov-close-006: at_least threshold causes closure plateau (M)