Thought Leadership

Got Coverage?

Welcome to 2025. What happened?! “Coverage” in August in Yosemite backpacking has a different meaning. In August? Snow? Lots of coverage. Got Coverage?

But, nevermind – what about YOUR coverage!? You didn’t get enough coverage collected. But just maybe you have a bunch of 0’s and 1’s. You’re late with your coverage, but your old school 0’s and 1’s are going to save the day.

Test Vectors from a Tester
Test vector results – 0’s and 1’s, but I didn’t collect coverage! Yet.

What to do to get Coverage?

We can build a coverage collector. We can build a set of coverage models and extract coverage from the 0’s and 1’s. And not just functional coverage.

Coverage Flow

If we missed you at DVCON Taiwan 2024 in September, then you might want to check out our paper and slides, because that’s exactly what we describe – a way to feed in a file full of 0’s and 1’s and collect coverage.

The idea is that we’ll read those 0’s and 1’s and assign those bits to “variables” in a SIMULATED environment. The 0’s and 1’s could be from simulation, prototyping, tester results or some other external model. We’ll read them and collect coverage in that SIMULATED environment – it is NOT a re-simulation of the design. It is a SIMULATION built to collect coverage – that’s it.

Coverage Report
Coverage Report with Block, FSM and Expression Coverage

Those 0’s and 1’s are the values that we want to “measure”. For example, suppose you have a 4 bit value and your coverage is simple – “did all values occur at any time during the simulation?” That’s a simple covergroup to write.

Easy. Our technique covers that.

If your coverage is more complicated that’s ok. You might need to cover that 4 bit value during all 7 of the state transistions – a cross coverage.

Easy.

In addition to functional coverage there are ways to collect FSM coverage and some simple expression coverage and even simple block coverage.

Coverage Rollups
Coverage Rollups

This technique can’t give you full coverage across your whole chip, but it can give you focused coverage on some important values. You can cover module instance ports, or registers, or memory locations – whatever got logged in the 0’s and 1’s text file. The file also doesn’t have to be a text file. Whatever kind of file it is, you need to supply a reader for it and be able to get access to the values at a given time.

Happy 2025! We hope you have a great 2025, and you get that coverage collected.

See you at DVCON US 2025. I’ll be at the Siemens booth, ready to talk about coverage, UVM, debug or anything verification at all. Maybe even Yosemite backpacking. Young Lakes. Half Dome. Clouds Rest. We can talk driver tracing and why debug and coverage is more important than ever. Come see Questa and Visualizer in action. Or we can talk ultra-light backpacking…

Thanks

rich

Rich Edelman

Leave a Reply

This article first appeared on the Siemens Digital Industries Software blog at https://blogs.sw.siemens.com/verificationhorizons/2025/02/14/got-coverage/