Home

Awesome

SVUnit

SVUnit is an open-source test framework for ASIC and FPGA developers writing Verilog/SystemVerilog code. SVUnit is automated, fast, lightweight and easy to use making it the only SystemVerilog test framework in existence suited to both design and verification engineers that aspire to high quality code and low bug rates.

NOTE: for instructions on how to get going with SVUnit, go to www.agilesoc.com/svunit.

NOTE: Refer also to the FAQ at: www.agilesoc.com/svunit/svunit-FAQ

Release Notes

Go here for release notes.

Documentation

Read the latest documentation

Step-by-step instructions to get a first unit test going

1. Set up the SVUNIT_INSTALL and PATH environment variables

export SVUNIT_INSTALL=`pwd`
export PATH=$PATH:$SVUNIT_INSTALL"/bin"

You can source Setup.bsh if you use the bash shell.

source Setup.bsh

You can source Setup.csh if you use the csh shell.

source Setup.csh

2. Go somewhere outside SVUNIT_INSTALL (i.e. where you are right now)

Start a class-under-test:

// file: bogus.sv
class bogus;
endclass

3. Generate the unit test

create_unit_test.pl bogus.sv

4. Add tests using the helper macros

// file: bogus_unit_test.sv
`SVUNIT_TESTS_BEGIN

  //===================================
  // Unit test: test_mytest
  //===================================
  `SVTEST(test_mytest)
  `SVTEST_END

`SVUNIT_TESTS_END

5. Run the unit tests

runSVUnit -s <simulator> # simulator is ius, questa, modelsim, riviera or vcs

6. Repeat steps 4 and 5 until done

7. Pat self on back

Feedback

Tell us about what you like, what you don't like, new features you'd like to see... basically anything you think would make SVUnit more valuable to you.

The best place for feedback is https://github.com/svunit/svunit/discussions. If you don't have a GitHub account, you can send an email to contact[at]svunit[dot]org.