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

Implement UCIS coverage API export #933

Open
Blebowski opened this issue Aug 7, 2024 · 5 comments
Open

Implement UCIS coverage API export #933

Blebowski opened this issue Aug 7, 2024 · 5 comments
Labels

Comments

@Blebowski
Copy link
Contributor

The current coverage data format is not usable with other HW tools.
To tackle the interoperability, Accelera released UCIS (Unified Coverage Interoperabiliy Standard):
https://www.accellera.org/downloads/standards/ucis

The aim of this issue is to extend --cover-export command to allow exporting
also to UCIS format.

@nickg
Copy link
Owner

nickg commented Aug 7, 2024

I actually started doing this last year but didn't get very far. Either we could export using the UCIS C API (which would allow us to write directly to ModelSim's ucdb database if we linked against their library), or export directly to XML similar to the Cobertura exporter. The disappointing thing about the XML format is that it doesn't seem to be widely adopted by vendors: ModelSim only allows import not export, and RiveraPro exports to XML but the schema is totally different to the standard (?!).

@Blebowski
Copy link
Contributor Author

I don't know, I only started looking at the standard now, last time we chatted about it, I only briefly skimmed through.

As of the C API export I think:

  • It will be more difficult to implement than the XML
  • I am not fan of linking vendor specific library for various reasons.

As for the XML:

  • I see that VCS has covimport and covexport tools that seems to take it and convert to their vdb file and vice versa (I did not try it though).
  • Only importing by Modelsim is not a problem IMHO. I guess the main use-case for this would be conversion of NVC coverage data to be shown in some other vednors coverage viewer. For that, import by Modelsim is sufficient. Or do you see use-case for accessing Model-sim generated simulation data by NVC ?
  • I don't know about the RivieraPro, but if the format does not match, then the whole point of universality is lost.

Sure, both XML and C API would be best. Import and Export by NVC would be best, but that is a lot of work and lot of maintenance then.

I think highest priority would be to write XML exporter to --cover-export and later see how to proceed.

@nickg nickg added the coverage label Aug 9, 2024
@nickg
Copy link
Owner

nickg commented Aug 15, 2024

I added a simple XML format for debug/testing in 0a433ca. I also pushed my earlier attempt to implement the UCIS C API to the ucis branch (a5205c1).

@JimLewis
Copy link

JimLewis commented Oct 16, 2024

UCIS / System Verilog do cartesian crosses real well. However if your coverage model is not so symmetric - and many of mine are - then it does not fit so well.

I have tried hand writing a coverage file in the XML format and none of the tools were able to import it. So my assumption is that they do not implement the standard as it is written, but instead do something else - yea. So XML for import/export is not a worth while exercise.

The C API should work. I think that Matthew Ballance did some work for Python in this area. That is outside of my area of interest (and expertise) so I did not pursue it for OSVVM.

@cmarqu
Copy link

cmarqu commented Dec 15, 2024

I think that Matthew Ballance did some work for Python in this area.

Right, that would be https://fvutils.github.io/pyucis/

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

4 participants