Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Coverage refactoring - Tracking Issue #880

Open
7 of 13 tasks
Blebowski opened this issue Apr 20, 2024 · 4 comments
Open
7 of 13 tasks

Coverage refactoring - Tracking Issue #880

Blebowski opened this issue Apr 20, 2024 · 4 comments
Labels

Comments

@Blebowski
Copy link
Sponsor Contributor

Blebowski commented Apr 20, 2024

Convert all Cover Items to one Bin per item, make each item counter:

  1. Branch coverage - Done only half-way, coverage reporting still uses to mask and flag.
  2. FSM coverage - Each bin single item, but mask is used
  3. Toggle coverage - Not done
  4. Expression coverage - Not done

Fully encode bin name into the cover item hierarchy:

  1. FSM coverage
  2. Toggle coverage
  3. Branch coverage
  4. Expression coverage

Other internal refactoring / improvements:

  1. Saturate run-time counters to avoid overflow and therefore rarily marking covered item as uncovered.
  2. Make index of cover_item (the tag) 64 bit. Large designs can have 2 ^ 32 tags.
  3. Convert unreachability mask to a single bit flag. Since single cover item is single bin, no "unreachability mask" is needed.
  4. Convert exclude mask to single bit flag. The same as above

Changes related to the "user":

  1. Change specification of exclude files not to require bin name separately -> Since bin name will be part of hierarchy, this will simplify exclude file, its loading, checking and handling.
@nickg
Copy link
Owner

nickg commented Apr 20, 2024

Make run-time counters 64 bit (32 bit toggle can overflow in realistically long simulation)

This will also double the memory usage of the counters and isn't needed in 99% of cases. It would be better to just make the counter saturate at 2^32 - 1 instead.

@Blebowski
Copy link
Sponsor Contributor Author

This will also double the memory usage of the counters and isn't needed in 99% of cases. It would be better to just make the counter saturate at 2^32 - 1 instead.

Agreed. Any solution that does not overflow and will cause covered item to be reported as uncovered in works for me.

@nickg
Copy link
Owner

nickg commented Apr 21, 2024

It would be better to just make the counter saturate at 2^32 - 1 instead.

I did this in 1745c08.

@Blebowski
Copy link
Sponsor Contributor Author

Thanks, I have rebased my new branch where I am trying to the the coverage refactoring more gradually. It is still WIP, but I am on a much better track now :) Time wise, I am still busy, but I will try to push it a little.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants