What is the status of UVVM coverage development


What is today’s recommendation for testing coverage in UVVM?
In an old presentation of 2017 there it was said OSVVM is used coverage and randomisation.
Is this still the case in 2020?
Or has UVVM latest release similair functionality?



If you need this today you can still use the solution we proposed in 2017. If so, you can find this under UVVM/xConstrRandFuncCov (for all the code and documentation you need). If possible however, we definitely recommend that you wait a couple of months for new solutions around randomisation and functional coverage that is said to be coming.


Hi Espen,
did the followup to this topic happen for COVERAGE? I have the latest UVVM downloaded, but don’t (seem) to see what I thought would be under coverage.

When I started reading up on COVERAGE in general, if I recall, both the UVM(Systemverilog) and OSVVM approaches outlined the approach to create BINS for parameters to be checked for coverage, then running tests, and finally making reports of the BINS to show percentage coverage of BINS.

I assumed this was the general idea of how everyone implemented COVERAGE, but I might be missing something, as, looking at the examples under the ~\uvvm\bitvis_vip_spec_cov\demo\ folder, it seems the UVVM COVERAGE only deals with, what I would call “Requirement Tracing”.

I’m new to all this, and might have missed reading somethings! Maybe it is left to the USER to fit things as they wish, but I don’t see a recommended UVVM approach to show best practice to do conventional (is it?) - BINS coverage.

P.S. In your reply above you mention the folder: “UVVM/xConstrRandFuncCov”. I guess this was an older folder (2017?), as I don’t see such a folder in the current UVVM release (2020-12-08: v2.15.1).


Hi Rahil,

First of all ‘UVVM/xConstrRandFuncCov’ was remove last year, but you can still download it from Github (as an older version/tag).
You are right that bitvis_vip_spec_cov is for Requirement tracing.
If you need functional coverage today you can use OSVVM (just compile it and use the provided procedures and functions inside UVVM). You can also use UVVM/xConstrRandFuncCov (OSVVM with UVVM scripts) from an earlier UVVM version to get it more integrated. If you don’t need it before the summer, I would recommed to wait for a better solution - most probably being published after the summer vacation.
It was unfortunately delayed for various reasons.