Release notes

For installation instructions read this.

Commits since last release


4.0.6 - 2018-11-15 (latest)

  • Fix a problem where sometimes multiple Ctrl-C where required to abort execution. #408

Download from PyPI

Commits since previous release


4.0.5 - 2018-11-07

  • Make tb_path absolute again. #406
  • Fix --export-json test location offets for DOS line endings. #437

Download from PyPI

Commits since previous release


4.0.4 - 2018-11-05

  • Fix broken ActiveHDL support.

Download from PyPI

Commits since previous release


4.0.3 - 2018-11-02

  • Fix set_timeout for large values in ModelSim. #405

Download from PyPI

Commits since previous release


4.0.2 - 2018-10-25

  • Fix missing msg_type in push and pop of msg_t.
  • Ensure axi_lite_master always aligns with aclk to avoid VHDL/Verilog simulation mismatch.

Download from PyPI

Commits since previous release


4.0.1 - 2018-10-23

  • Set value to null when pushing pointer types in queue_t and com to avoid accidental dupliction of ownership.
  • Fix broken ram_master.vhd where the response messages where deleted to early.

Download from PyPI

Commits since previous release


4.0.0 - 2018-10-22

  • New coverage support:

    The --coverage flag has been removed in favor of exposing a more flexible coverage interface. The flag was was not flexible enough for many users and we decided to make a breaking change to get a better solution moving forward. An example of using the new interface can be found here here. For users who liked the old flag VUnit supports adding custom command line arguments.

  • Add ability to set watchdog timer dynamically. #400

  • Skipping protected regions in the Verilog preprocessor.

  • Integrate utility to add Vivado IP to a VUnit project see example.

  • Make tb_path work in combination with preprocessing. #402

Download from PyPI

Commits since previous release


3.9.0 - 2018-10-11

  • Verification components
    • Avalon
      • Add Avalon streaming packet signals #383
    • AXI
      • Various AXI BFM improvements.
  • Added special JUnit XML format for Bamboo CI server. #384
  • Add support for requirements trace-ability via user defined test attributes.
  • Add --json--export flag to export list of all files and tests with associated attributes.
  • Add test case filtering for user defined attributes.
    • For example allows marking tests that should be run per commit or only every night.
  • Always use the most up to date version of modelsim.ini.

Download from PyPI

Commits since previous release


3.8.0 - 2018-08-26

  • Verification components
    • Avalon
      • Add Avalon memory mapped slave and master. #359
      • Add Avalon stream source and sink. #361
    • AXI
      • Add AXI stream monitor
    • Wishbone
      • Strict command order in wishbone master. #372
  • Remove warnings when using built-in RivieraPRO libraries. #374

Download from PyPI

Commits since previous release


3.7.0 - 2018-07-21

  • Fixed lint issues from new pylint version.
  • Log output of failed vsim startup to stderr. #354
  • Allow case-insensitive lookup of entities. ##346
  • Added vhdl_standard attribute at class initialization. ##350
  • Adding csv mapping support for files and libraries. #349
  • Fix broken vivado example wrt verilog headers. #344
  • Allow adding duplicate libraries. #341
  • Make adding duplicate file INFO instead of WARNING. #341

Download from PyPI

Commits since previous release


3.6.2 - 2018-06-21

  • Fixed memory leak when popping messages from queues.

Download from PyPI

Commits since previous release


3.6.1 - 2018-06-20

  • Increase message id on publish

Download from PyPI

Commits since previous release


3.6.0 - 2018-06-19

  • Ignore files added twice with identical contents. Closes #341
  • Made queues type safe

Download from PyPI

Commits since previous release


3.5.0 - 2018-06-04

  • Added the ability to specify actor for AXI stream masters and slaves
  • Added as_sync function to bus masters and AXI stream masters

Download from PyPI

Commits since previous release


3.4.0 - 2018-05-31

  • Updated context files

Download from PyPI

Commits since previous release


3.3.0 - 2018-05-24

  • Add SystemVerilog support for test benches without test cases. #328
  • Graceful recovery and error message from failed VHDL parsing.
  • Stripping clean from re-compile command.
  • Add JSON-for-VHDL as a submodule.

Download from PyPI

Commits since previous release


3.2.0 - 2018-05-07

  • Add output argument to post_check. #332

Download from PyPI

Commits since previous release


3.1.0 - 2018-04-27

  • Add --fail-fast CLI argument to stop on first test failure.
  • Delay simulator selection until VUnit class instantiation instead of import
  • Add post_run to VUnit main.
  • Add disable_coverage compile option.
  • Improve AXI read/write slaves
    • Add debug logging
    • Add setting of stall, fifo depth and response latency
    • Add burst length statistics
  • Improve AXI-lite master
    • Add debug logging

Download from PyPI

Commits since previous release


3.0.3 - 2018-04-22

  • Add check_equal for real with max_diff
  • Improve com library performance
  • Added support for message forwarding
  • Improve axi stream verification components
  • Add wishbone verification component
  • Protect against unexpected mutation of compile and sim options

Download from PyPI

Commits since previous release


3.0.2 - 2018-02-22

  • Added is_empty on queues
  • Documented queue_t and integer_array_t
  • Fixed memory leak

Download from PyPI

Commits since previous release


3.0.1 - 2018-02-19

  • Replace deprecated aliases with constants to work around Sigasi-limitation.

Download from PyPI

Commits since previous release


3.0.0 - 2018-02-12

  • beta version of a verification component library.
    • AXI read/write slaves
    • Memory model
    • AXI master
    • AXI stream
    • UART RX/TX
    • (B)RAM master
  • Hiearchical and color logging support.
  • Communication library usability improvements.
    • Push/pop message creation and debugging tools.

Download from PyPI

Commits since previous release


2.4.3 - 2018-01-24

  • SystemVerilog: Fix dependency scanning with instance directly after block label #305.

Download from PyPI

Commits since previous release


2.4.2 - 2018-01-20

  • SystemVerilog: Allow MACRO argument within ({[]}). #300.

Download from PyPI

Commits since previous release


2.4.1 - 2018-01-16

  • SystemVerilog: Fix WATCHDOG macro with local timescale set #299.

Download from PyPI

Commits since previous release


2.4.0 - 2018-01-12

  • Ignore test cases in SystemVerilog comments.
  • Make integer_array_t metadata get-functions public.
  • dictionary: add default value option to get function.
  • Improve get_implementation_subset #286.

Download from PyPI

Commits since previous release


2.3.0 - 2017-12-19

  • Fix commas in Modelsim generics #284.
  • Fix problem with vsim_extra_args between entity and architecture in riviera and activehdl.
  • Update Verilog preprocessor to read using latin-1 encoding. #285.
  • Improve compile printouts #283.
  • Add -q/–quiet flag. #283.
  • Add printout of output file location. #283.
  • Dropped support and testing of Python 3.3 (might still work anyway).
  • Fix of Modelsim –coverage argument #288.

Download from PyPI

Commits since previous release


2.2.0 - 2017-09-29

  • Add support for tokenizing verilog multi line strings. #278
  • Added support for restarting window in check_stable
  • Added support for num_cks=0 in check_next.
  • Error on adding duplicate source files. #274
  • Update Vivado example.
  • Add support for non-system-verilog verilog files. #268
  • Add dependency scanning of the use of an instantiated package. #233
  • Add human readable test output paths. #211

Download from PyPI

Commits since previous release


2.1.1 - 2017-07-19

  • Fix init_file(s) broken in 2.1.0
  • Fix test bench regex that could match *_tb*. #263
  • Add external library sanity check. #230
  • Add non-empty operation check. #250

Download from PyPI

Commits since previous release


2.1.0 - 2017-07-19

  • Add {rivierapro, modelsim}_init_files.after_load sim_options. They allow setting a list of DO/TCL files to be executed during vunit_load after the top level has been loaded using the vsim command.
  • Add input validation to sim and compile options

Download from PyPI

Commits since previous release


2.0.1 - 2017-07-10

  • Various small fixes

Download from PyPI

Commits since previous release


2.0.0 - 2017-02-21

Public interface changes

Some run.py scripts can be broken by this. Both set_generic and add_config works differently internally.

set_generic and set_sim_option now only affects files added before the call so reordering within the run.py can be needed.

add_config on the test case level will no longer discard configurations added on the test bench level. This affects users mixing adding configurations on both test and test case level for the same test bench. Adding a configuration on the test bench level is now seen as a shorthand for adding the configuration to all test cases within the test bench. Configurations are only held at the test case level now. Before there could be configurations on multiple levels where the most specific level ignored all others. I now recommend writing a for loop over test_bench.get_tests() adding configurations to each test individually, see the updated generate_tests example.

We have also forbidden to have configurations without name (“”), this is since the default configuration of all test cases has no name. The post_check and pre_config can now be set using set_pre_config also without using add_config removing the need to add a single unnamed configuration and instead setting these in the default configuration.

This internal restructuring has been made to allow a sane data model of configurations where they are attached to test cases. This allows us to expose configurations objects on the public API in the future allowing users more control and visibility. The current behavior of configurations is also better documented than it ever was.

I suggest reading the section on configurations in the docs.

  • Replace disable_ieee_warnings and set_pli with corresponding simulation options.
  • Adds --version flag
  • Added --gui flag for GHDL to open gtkwave. Also allows saving waveform without opening gui with --gtkwave-fmt flag.

Download from PyPI

Commits since previous release


1.4.0 - 2017-02-05

  • Removed bug when compiling Verilog with Active-HDL
  • Updated array package
  • Added support for simulation init script
  • Added support for setting VHDL asserts stop level from run script

Download from PyPI

Commits since previous release


1.3.1 - 2017-01-17

  • Fixed compile errors with GHDL 0.33

Download from PyPI

Commits since previous release


1.3.0 - 2017-01-06

  • Added support for pass acknowledge messages for check subprograms.
  • Made design unit duplication a warning instead of runtime error again.

Download from PyPI

Commits since previous release


1.2.0 - 2016-12-19

  • Updated OSVVM submodule

Download from PyPI

Commits since previous release


1.1.1 - 2016-12-08

  • Adds vunit_restart and vunit_compile TCL commands for both ModelSim and RivieraPro
  • Also support persistent simulator to save startup overhead for RivieraPro.
  • Changes –new-vsim into -u/–unique-sim which also works for riviera

Download from PyPI

Commits since previous release


1.0.0 - 2016-11-22

  • Adds ActiveHDL custom simulation flags support
  • Made library simulator flag argument deterministic and same as the order added to VUnit
  • Added check_equal between std_logic_vector and natural for unsigned comparison
  • Can now set vhdl_standard on an external library
  • Added no_parse argument to add_source_files(s) to inhibit any dependency or test scanning
  • Renamed public method depends_on to add_dependency_on

Download from PyPI

Commits since previous release


0.71.0 - 2016-10-20

  • Improved location preprocessing control

Download from PyPI

Commits since previous release


0.70.0 - 2016-10-13

  • Hashing test output_path to protect against special characters and long paths on Windows.
  • Added .vo as recognized Verilog file ending.
  • Enable setting vhdl_standard per file.

Download from PyPI

Commits since previous release


0.69.0 - 2016-09-09

Added check_equal for strings.

Download from PyPI

Commits since previous release


0.68.1 - 2016-09-03

New version to fix broken PyPi upload

Download from PyPI

Commits since previous release


0.68.0 - 2016-09-03

Added check_equal for time and updated documentation.

Download from PyPI

Commits since previous release


0.67.0 - 2016-08-08

  • A number of minor enhancements and bug fixes
  • Added vunit_restart TCL procedure to ModelSim
  • Print out remaining number of tests when pressing ctrl-c
  • Updated OSVVM and made it a git submodule. Run
git submodule update --init --recursive

after updating an existing Git repository or

git clone --recursive https://github.com/VUnit/vunit.git

when creating a new clone to get the OSVVM subdirectory of VUnit populated. Doesn’t affect installations made from PyPi

Download from PyPI

Commits since previous release


0.66.0 - 2016-04-03

  • Fixed #109, #141, #153, #155.
  • Fixed relative path for multiple drives on windows.

Download from PyPI

Commits since previous release


0.65.0 - 2016-03-13

  • Added sim and compile options to set rivierapro/activehdl flags. #143.
  • Removed builtin -dbg flag to vcom for aldec tools. Use set_compile_option instead to set it yourself.
  • Fixed a bug with custom relative output_path.
  • Documentation fixes & improvements.
  • Update rivierapro and activehdl toolchain discovery. #148.
  • Added possibility to set VUNIT_<SIMULATOR_NAME>_PATH environment variable to specify simulation executable path. #148.
  • Added -k/--keep-compiling flag. #140.
  • Added optional output_path argument to pre_config. #146.

Download from PyPI

Commits since previous release


0.64.0 - 2016-03-03

  • Added python version check. Closes #141.
  • Not adding .all suffix when there are named configurations

Download from PyPI

Commits since previous release


0.63.0 - 2016-03-02

  • Update test scanner pattern to be based on runner_cfg. #138

Download from PyPI

Commits since previous release



0.62.0 - 2016-02-27

  • Early runtime error when gtkwave is missing. Closes #137
  • Added add_compile_option. Closes #118

Download from PyPI

Commits since previous release


0.61.0 - 2016-02-23

  • Adds .all suffix to test benches with no test to better align with XUnit architecture. - Enables better hierarchical JUnit XML report view in Jenkins.
  • Fixes #129.

Download from PyPI

Commits since previous release


0.60.1 - 2016-02-16

  • Avoids crash with errors in Verilog defines from Python string in run.py

Download from PyPI

Commits since previous release


0.60.0 - 2016-02-15

  • Better error messages when there are circular dependencies.
  • Added defines argument to add_source_file(s) #126
  • Made --files deterministic with Python 3 #116

Download from PyPI

Commits since previous release


0.59.0 - 2016-02-13

  • Covered a miss in circular dependency detection.
  • Added detection of circular includes and macro expansions in verilog preprocessing.
  • Added caching of verilog parse results for significant speed when running run.py more than once.

Download from PyPI

Commits since previous release


0.58.0 - 2016-02-11

  • Parsing Verilog package references. #119
  • Added scan_tests_from_file public method. #121.

Download from PyPI

Commits since previous release


0.57.0 - 2016-02-08

  • Adds include_dirs argument also to Library add_source_file(s)
  • Ignores more builtin Verilog preprocessor directives.

Download from PyPI

Commits since previous release


0.56.0 - 2016-02-07

  • Verilog preprocessing of resetall / undefineall / undef

Download from PyPI

Commits since previous release


0.54.0 - 2016-02-06

  • Adds support for Verilog preprocessor ifdef/ifndef/elsif/else/endif
  • Fixes regression in modelsim persistent mode. Makes many short tests faster.

Download from PyPI

Commits since previous release


0.53.0 - 2016-02-06

  • add_source_files accepts a list of files
  • Added -f/--files command line flag to list all files in compile order
  • Verilog parser improvements in robustness and error messages.

Download from PyPI

Commits since previous release


0.52.0 - 2016-01-29

Added function to get the number of messages missed by a com package actor.

Download from PyPI