The checking topic proved that every word the DMA moved was the right word. Every sign-off review then asks the next question: what did the tests actually exercise? A scoreboard that matched 14 words out of 14 says nothing about the zero-length job nobody ran, the error path nobody triggered, or the back-to-back beats the driver never produced. This topic builds the part of the bench that answers that question honestly, and then uses it to close the holes.
Turn a spec into a testplan and a coverage model, and decide for each fact whether it belongs in a class covergroup, an interface covergroup, a cover property or register coverage.
Build a coverage component on analysis imps that samples observed traffic only, with sample-with-arguments covergroups and distinct instance names.
Choose bins, illegal bins, ignore bins, crosses and coverage options deliberately, and predict the number a report will print.
Merge a regression, analyse every hole by its cause, and close it with the right tool: more seeds, a constraint change, a driver fix, a directed test or a reviewed exclusion.
Every arrow in the loop is a place where teams fool themselves: a model that samples intent instead of behaviour, a merge that averages instead of unions, a hole "closed" by an ignore bin. The lessons follow the loop in order and use the course bench's dma_coverage component and its real logs throughout.
# | Lesson | The question it answers |
|---|---|---|
1 | What should be covered, and where is each fact sampled? | |
2 | How does a coverage component listen to monitors and sample only what the DUT did? | |
3 | What makes a value counted, ignored or an error? | |
4 | Which combinations matter, and how does each plan row map to the model? | |
5 | Why do two reports of the same hits print different percentages? | |
6 | When is a fact temporal, and where does that coverage live? | |
7 | How do per-test results become one sign-off number? | |
8 | Why did the DMA's random test leave 8 holes, and how was each one closed? | |
9 | What decides what the log says and whether a test fails? | |
10 | What does code coverage add, and how do the two kinds of coverage close together? |