Skip to main content

VUnit is an open source unit testing framework for VHDL.

Project description

What is VUnit?

VUnit is an open source unit testing framework for VHDL released under the terms of Mozilla Public License, v. 2.0. It features the functionality needed to realize continuous and automated testing of your VHDL code. VUnit doesn’t replace but rather complements traditional testing methodologies by supporting a “test early and often” approach through automation.

Project Mission

The VUnit project mission is to apply best SW testing practises to the world of VHDL by providing the tools missing to adapt to such practises. The major missing piece is the unit testing framework, hence the name V(HDL)Unit. However, VUnit also provides supporting functionality not normally considered as a part of an unit testing framework.

Main Features

  • Builds on the commonly used xUnit architecture.

  • Python test runner that enables powerful test administration, can handle VHDL fatal run-time errors (e.g. division by zero), and ensures test case independence.

  • Scanners for identifying files, tests, file dependencies, and file changes enable for automatic (re)compilation and execution of test suites.

  • Can run test cases in parallel to take advantage of multi-core machines.

  • Scripting as well as command line support.

  • Support for running same test suite with different generics.

  • VHDL test runner which enables test execution for not fully supported simulators.

  • Assertion checker library that extends VHDL built-in support (assert).

  • Logging framework supporting display and file output, different log levels, filtering on level and design hierarchy, output formatting and multiple loggers. Spreadsheet tool integration.

  • Location preprocessor that traces log and check calls back to file and line number.

  • JUnit report files for better Jenkins integration.

Requirements

VUnit depends on a number of components as listed below. Full VUnit functionality requires Python and a simulator supported by the VUnit Python test runner. However, VUnit can run with limited functionality entirely within VHDL which means that unsupported simulators can be used as well. Prototype work has been done to fully support other simulators but this work is yet to be completed and released.

VHDL

  • VHDL-93

  • VHDL-2002

  • VHDL-2008

Operating systems

  • Windows

  • Linux

  • Mac OS X

Python

  • Python 2.7

  • Python 3.3 or higher

Simulators

  • Aldec Riviera-PRO

    • Tested with Riviera-PRO-2015.06 (x64/x86).

    • Only VHDL 2008

  • Aldec Active-HDL

    • Tested with Active-HDL-10.2 (x64/x86)

    • Only VHDL 2008

  • Mentor Graphics ModelSim/Questa

    • Tested with 10.1 - 10.3

  • GHDL

    • Only VHDL 2008

    • Only versions >= 0.33 dev (There is no official release yet, must be built from source)

    • Tested with LLVM and mcode backends, gcc backend might work aswell.

    • Integrated support for using GTKWave to view waveforms.

Getting Started

There are a number of ways to get started.

Contributing

Contributing in the form of code, feedback, ideas or bug reports are welcome. Before contributing code read our Development document.

Support

Any bug reports, feature requests or questions about the usage of VUnit can be made by creating a new issue. The issue should be labeled accordingly using the built-in labels; bug, enhancement or question.

Main Contributors

  • Lars Asplund

  • Olof Kraigher

License

VUnit

VUnit except for OSVVM (see below) is released under the terms of Mozilla Public License, v. 2.0.

© 2014-2015 Lars Asplund, lars.anders.asplund@gmail.com.

OSVVM

OSVVM 2015.03 is redistributed with VUnit for your convenience. Minor modifications have been made to enable GHDL support. Derivative work is also located under examples/vhdl/osvvm_integration/src. These files are licensed under the terms of ARTISTIC License.

© 2010 - 2015 by SynthWorks Design Inc. All rights reserved.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vunit_hdl-0.46.0.tar.gz (883.7 kB view details)

Uploaded Source

File details

Details for the file vunit_hdl-0.46.0.tar.gz.

File metadata

  • Download URL: vunit_hdl-0.46.0.tar.gz
  • Upload date:
  • Size: 883.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for vunit_hdl-0.46.0.tar.gz
Algorithm Hash digest
SHA256 8ff36293b5cfe7ef67b04467cc89345e2c7429751cfdb65e974a6ecb8d66f8cf
MD5 db5afbfec7f48c449c1bf3cd6d60d52a
BLAKE2b-256 61f6cbd5215c1184e93e4940eb49de871370bf49a727367b76f7f460ca646d7d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page