-
-
Notifications
You must be signed in to change notification settings - Fork 83
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: Source of covered / uncovered data #788
Comments
Hi, I am trying to rethink how to implement this, and I come no an interesting limitation. Since branch, expression and toggle coverage encode multiple "bins" in single coverage item, if you merge such items together, it is very difficult to track covdb It seems that the design decision to encode multiple "bins" into a single Thus, each branch with if/else and each toggle would be split into two coverage items (0/1, true/false). Each binary expression With this change, the run-time data for each "bin" / Also, hierarchy path of each A clear drawback is the memory usage (and therefore size of covdb). If e.g. running with That being said, the user interface may change slightly, especially in the coverage exclude file, and therefore be backwards incompatible. Since this is a big change, I am curious about your opinion. @nickg, would you go for it, or do you think the increased memory usage is not worth possibly simpler implementation? |
I think we really need to reconsider whether
I don't think this matters too much as there are not many users. It's better to iterate the design a bit and arrive at a good solution. |
I still think it is useful. VCS, Aldec and NCSIM do have this feature. OTOH, you are right it is a niche feature, and I would simplify the implementation even at the expense of increased memory usage in this one case. The implementation in might end up being even faster. I would definitely compare performance before and after. I will go ahead with it then. My time options are very limited, so it again will take some time. |
When doing code coverage, there is no way how to find out in the generated report the original coverage
database that lead to the coverage item being covered or uncovered. This would be a nice feature.
This is related to adding
--name
option that would uniquely distinguish the elaborations of otherwiseequal design. We can either keep within
covdb
the path to thecovdb
itself, or keep the--name
to distinguishindividual "runs".
Then, upon merging of coverage, the original path of all
covdb
that were merged would be placed into thecovdb
.There would be a list of paths in the beginning of the
covdb
that would indicate all the DBs that were used toget this final "merged" one.
During merging, we always know the
covdb
that is being currently "merged" into the "old"covdb
. Thus, we couldkeep per-tag mask of
covdb
s that lead to the tag being covered / uncovered. Only drawback is, that the number ofdatabases is not limited, so, the "per-tag" mask of covdbs would have variable length depending on the number of
covdbs. Or, we can support only e.g. up to 64 covdbs, but I would like this to work for unlimited number of
covdbs
.The text was updated successfully, but these errors were encountered: