Code, Functional and Specification Coverage

FPGA Design/Verification Best Practices for Quality and Efficiency

19. May 3:00 PM – 4:00 PM

Functional coverage is often mentioned together with constrained-random verification, which is a great combination. However, functional coverage is also very useful even if you have no randomization at all. This is a great method for ensuring that you are in fact checking the right things in your testbench. Unfortunately, not many designers are applying for functional coverage, and maybe part of the reason for that is the complexity surrounding previous solutions to this functionality. This presentation will show you how it works and how easy it is to get started with this new functionality in UVVM.

The presentation will also explain and show the usage of Specification Coverage aka Requirement Coverage, which is a feature to track that all your specification requirements have been covered.

Many of us are already familiar with Code Coverage since it’s very easy to use, but some important issues will be presented.




  • Code Coverage briefly explained and discussed
  • Why and When do we need Functional Coverage?
  • How do we apply and use Functional Coverage?
  • Variants of Functional Coverage
  • What is Specification Coverage and Why do we need it
  • How do we apply and use Specification Coverage?

The most error prone FPGA corner cases

Cycle related corner cases are probably the worst and main reason for undetected bugs on many FPGAs. To explain this in a simple way, – a cycle related corner case is for instance if you have an event counter where the number of counted events is critical and you read and reset this counter at regular intervals.

read more