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

Create your own VVC for UVVM #7

Open
Ahmad-Zaklouta opened this issue Aug 19, 2020 · 6 comments
Open

Create your own VVC for UVVM #7

Ahmad-Zaklouta opened this issue Aug 19, 2020 · 6 comments
Labels
cat: Articles Articles, reports, books...

Comments

@Ahmad-Zaklouta
Copy link

ref: http://que.no/index.php/2017/07/03/uvvm-tutorial/
tags: [verification, simulation, UVVM]
@Ahmad-Zaklouta Ahmad-Zaklouta added the cat: Articles Articles, reports, books... label Aug 19, 2020
@GlenNicholls
Copy link

Do you have any examples of using VUnit with UVVM?

@Ahmad-Zaklouta
Copy link
Author

Ahmad-Zaklouta commented Aug 19, 2020

@GlenNicholls, unfortunately, no and I have looked but couldn't find. However, when I was trying to decide what to learn (VUnit, UVVM) I found that VUnit is much faster to learn. This example requires a lot of work to make it work but the author said that if you know how to use UVVM, it is powerful.

@GlenNicholls
Copy link

@Ahmad-Zaklouta Yeah, I used both VUnit and UVVM before settling on VUnit. However, I found UVVM frustrating to learn so I didn't get very far. I understand the framework a decent amount, but having access to all of their VVC's in VUnit would be nice simply because VUnit doesn't have as many verification components. Not a huge deal, but I'm sure this is a deal-breaker for some people. The other example I see with using VUnit and UVVM is someone would be able to keep all of their UVVM frameworks, but with a modern test runner for CI.

@JimLewis
Copy link

@Ahmad-Zaklouta OSVVM is also a nice alternative to UVVM and it plays nice with VUnit. OSVVM utility library is a superset of what UVVM provides - in particular, UVVM currently provides the OSVVM Randomization and Functional Coverage packages in their release.

Like VUnit, we do not provide as many verification components as UVVM - at least not yet. OTOH, with respect to the AXI models, OSVVM provides the missing functionality the others do not - specifically the ability to run each of the independent AXI interfaces independently - yet still coordinate them.

@LarsAsplund
Copy link

@Ahmad-Zaklouta Using VUnit with any other VHDL framework is pretty straight-forward:

  • If that framework is setup to stop the simulation on error then you don't have to do anything special. Anything that stops a VUnit testbench before test_runner_cleanup will be a failed test.
  • If that framework may complete without stopping on errors, for example if you have a "stop level" set to 3 and only have one error, then you have to read that framework's error counter before just before calling test_runner_cleanup. Something like
check_equal(function_to_read_error_counter, 0, result("for error counter"));

Give it a try and see what happens.

@Ahmad-Zaklouta
Copy link
Author

@LarsAsplund I am actually using VUnit only at work and just playing with UVVM. For me, I feel that I got the structure and the idea of VUnit. For UVVM, I am still struggling to get the testbench structure. I feel my way is to focus more on learning VUnit with OSVVM because making this example work took so much time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cat: Articles Articles, reports, books...
Projects
None yet
Development

No branches or pull requests

4 participants