Since version 3.6, Sigasi Studio has a Quick Fix to automatically add the VUnit vunit_lib
VHDL library to your project.
In Sigasi Studio 4.1, VUnit Integration was added. The instructions below are outdated. Use the manual page on VUnit instead.
About VUnit
VUnit is an open-source unit testing framework for VHDL/SystemVerilog that helps to write, and automatically run, tests. The VUnit project was started by Lars Asplund from Synective Labs and Olof Kraigher . The source code is hosted at GitHub . VUnit automatically scans your projects for unit tests (aka test benches), runs them with your favorite simulator and reports you the results. This automation helps to run tests frequently and iterate faster.
The VUnit scripts are written in Python, so first make sure python is installed on your system. The recommended way to install the latest stable release of VUnit is via pip
. On most systems running the following command should do the trick:
pip install vunit_hdl
Make sure you use vunit_hdl
and not vunit
. The latter is a completely different Python library.
You can check that VUnit is installed correctly by for example running:
pip freeze
In the list of installed Python packages you will find a vunit-hdl
entry and its version number.
Using VUnit in Sigasi Studio
If you want to use VUnit in your VHDL testbenches. You need to add a library clause for the vunit_lib
library. All necessary packages can be imported with the predefined vunit_context
context.
A typical VUnit test bench file will have following entity declaration:
library vunit_lib;
context vunit_lib.vunit_context;
entity tb_example is
generic (runner_cfg : string);
end entity;
Note that the context
clause is VHDL-2008 syntax. So, make sure your project is configured accordingly: Right click project, Properties > VHDL Version > VHDL-2008.
When you enter this VHDL snippet in a VHDL file in a Sigasi Studio project, you will see a warning (Library “vunit_lib” is not available) on the library clause and multiple errors because of references to missing declarations.
To automatically add the VUnit library to your project, click the light bulb icon to trigger the Quick Fix (or press Ctrl+F1 on the line with the warning).
As a result the vunit_lib
is added to your project (Note that this also adds the osvvm
library). Under the hood, Sigasi Studio runs a Python script to query VUnit for the correct paths to the VUnit VHDL source files.
This also resolves the unresolved references to test_runner_setup
and test_runner_cleanup
. You can now easily navigate to their declaration with F3 (“Open Declaration”). You can also use autocomplete to quickly add other VUnit function calls.
Happy coding.
See also
- Using VUnit for Real (blog post)
- Using VUnit in a GitLab CI Verification Environment (blog post)
- VUnit: managing input files and compile order (blog post)
- Running UVM tests in VUnit (blog post)
- How to configure VUnit using the Sigasi VS Code extension (knowledge)