Q. Why would I use SVUnit?
Good question. You’ll want to use SVUnit if you and your customers value defect free systemverilog code. Simple as that.
Q. What do I do with SVUnit?
The SVUnit framework allows you to easily isolate modules, classes and/or interfaces in your designs and testbenches so you can kill bugs at a granularity that is most productive: the unit test level. It’s good for design and verification engineers. It’s also great for test-driven development if you care enough to prevent defects in the first place.
Q. Why would I not use SVUnit?
A. If you love garbage code and irate customers, then SVUnit is not for you.
Q. How do I get SVUnit?
A. Instructions for downloading and using SVUnit are on the Getting Started page.
Q. It used to be that SVUnit was only available to early adopters. That still the case?
A. Nope… not any more. Now anyone can download SVUnit.
Q. What’s the best way to learn how to use SVUnit?
Q. If I find a problem or have questions about SVUnit, what do I do?
A. Best to file a ticket on sourceforge at: https://sourceforge.net/p/svunit/tickets/. Or, you can send me an email at firstname.lastname@example.org and I’ll do my best to help you out.
Q. Can anyone file a ticket against the project?
A. Yes… though you’ll have to be logged into sourceforge to do so.
Q. The SVUnit: Up and Running video says I need to use Git to obtain SVUnit? Is that still the case?
A. Nope. You can get SVUnit via the links on the Getting Started page.
Q. The SVUnit: Up and Running video shows you defining test methods in the unit test class and then invoking them in the run method. Should I do that, too?
A. Nope… you shouldn’t. The usage model has changes slightly since I posted that video. Instead, it is recommended to use the SVTEST(<testname>)/SVTEST_END(<testname>) macros. Like this…
// test code
// test code
Q. How do I use SVUnit with UVM?
A. Specify the -U/–uvm switch on the command line to use the version of UVM supported by the simulator you’re using.
Q. In the SVUnit: Unit Testing UVM Components video, you call the svunit_uvm_test_start() and svunit_uvm_test_finish() methods in each test. Should I do that, too?
A. Nope. That would still work, but it’s best to relocate those method invocations to the setup and teardown methods instead so you don’t have to keep typing them!