Skip to content
@OSVVM

Open Source VHDL Verification Methodology (OSVVM)

OSVVM is an advanced verification methodology that defines a VHDL verification framework, verification utility library, verification component library, and a scripting flow that simplifies your FPGA or ASIC verification project from start to finish. Using these libraries you can create a simple, readable, and powerful testbench that is suitable for either a simple FPGA block or a complex ASIC.

OSVVM is developed by the same VHDL experts who have helped develop VHDL standards. We have used our expert VHDL skills to create advanced verification capabilities that provide:

  • A structured transaction-based framework using verification components that is suitable for all verification tasks - from Unit/RTL to full chip/system level testing.
  • Test cases and verification components that can be written any VHDL Engineer.
  • Test cases that are readable and reviewable by the whole team including software and system engineers.
  • Unmatched reuse through the entire verification process.
  • Unmatched test reporting with HTML based test suite reports, test case reports, and logs that facilitate debug and test artifact collection.
  • Support for continuous integration (CI/CD) with JUnit XML test suite reporting.
  • Powerful and concise verification capabilities including Constrained Random, Functional Coverage, Scoreboards, FIFOs, Memory Models, error logging and reporting, and message filtering that are simple to use and work like built-in language features.
  • A common scripting API to run all simulators - including GHDL, NVC, Aldec Riviera-PRO and ActiveHDL, Siemens Questa and ModelSim, Synopsys VCS, and Cadence Xcelium.
  • A Co-simulation capability that supports running software (C++) in a hardware simulation environment.
  • A Model Independent Transaction (MIT) library that defines a transaction API (procedures such as read, write, send, get, …) and transaction interface (a record) that simplifies writing verification components and test cases.
  • A rival to the verification capabilities of SystemVerilog + UVM.

Learning OSVVM

You can find an overview of OSVVM at osvvm.github.io. Alternately you can find our pdf documentation at OSVVM Documentation Repository.

You can also learn OSVVM by taking the class, Advanced VHDL Verification and Testbenches - OSVVM™ BootCamp

Run The Demos

A great way to get oriented with OSVVM is to run the demos. For directions on running the demos, see OSVVM Scripts.

OsvvmLibraries contains all other OSVVM repositories as submodules. If you want everything, this is the one you need to clone.

Download using git

Be sure to use “–recursive” to include the submodules:

  $ git clone --recursive https://github.com/osvvm/OsvvmLibraries

Download a Zip file

Get a zip file from osvvm.org Downloads Page.

The OSVVM Utility library (named osvvm) implements buzz word verification capabilities including Constrained Random, Functional Coverage, Scoreboards, FIFOs, Memory Models, error logging and reporting, and message filtering that are simple to use and work like built-in language features.

The OSVVM script library implements a common scripting API to run all simulators - including GHDL, NVC, Aldec Riviera-PRO and ActiveHDL, Siemens Questa and ModelSim, Synopsys VCS, and Cadence Xcelium.
Our motto: "One Script to RUn them ALL"

The Model Independent Transaction (MIT) library (osvvm_common) defines a transaction API (procedures such as read, write, send, get, …) and transaction interface (a record) that simplifies writing verification components and test cases. The MIT library is used (and required) by all OSVVM verification components. Usi8ng OSVVM MIT makes verification component deveopment as easy as any "Lite" based approach.

The OSVVM Verification Component Libraries

The OSVVM Verification Component Libraries are a growing set of verification components commonly used for FPGA and ASIC verification. Each family of verification components is a separate git repository. The library currently contains the following repositories:

  • AXI4 Repository
    • Axi4 Full Manager (burst), Memory (burst), Subordinate Verification Components
    • Axi4 Lite Manager and Subordinate Verification Components
    • AxiStream Transmitter and Receiver Verification Components
  • UART Repository
    • UART Transmitter and Receiver
  • DpRam Repository
    • DpRam behavioral model
    • DpRam Manager VC to read and write to the DpRam interface
  • Ethernet xMII Repository
    • Verification components for Ethernet Phy and MAC that support GMII/RGMII/MII/RMII.

OSVVM co-simulation supports running software (C++) in a hardware simulation environment.
This includes either writing tests cases in C++ or running C++ models such as instruction set simulators.

PDF documentation for all things OSVVM.

Pinned Loading

  1. OsvvmLibraries OsvvmLibraries Public

    Start here. Includes all other OSVVM libraries as submodules: Utility, Common, Verification Component, and Script.

    51 19

  2. Documentation Documentation Public

    OSVVM Documentation

    30 6

  3. OSVVM OSVVM Public

    OSVVM Utility Library: AlertLogPkg, CoveragePkg, RandomPkg, ScoreboardGenericPkg, MemoryPkg, TbUtilPkg, TranscriptPkg, ...

    VHDL 225 60

  4. OSVVM-Scripts OSVVM-Scripts Public

    OSVVM project simulation scripts. Scripts are tedious. These scripts simplify the steps to compile your project for simulation

    Tcl 10 15

  5. OSVVM-Common OSVVM-Common Public

    Packages that implement OSVVM's model independent transactions and other shared verification component support packages. Required for all OSVVM verification components. AddressBusTransactionPkg - A…

    VHDL 5 5

  6. AXI4 AXI4 Public

    AXI4 Full, Lite, and AxiStream verification components. AXI4 Interface Master, Responder, and Memory verification components. AxiStream transmitter and receiver verification components

    VHDL 129 18

Repositories

Showing 10 of 17 repositories
  • OSVVM-Scripts Public

    OSVVM project simulation scripts. Scripts are tedious. These scripts simplify the steps to compile your project for simulation

    OSVVM/OSVVM-Scripts’s past year of commit activity
    Tcl 10 15 6 0 Updated Nov 14, 2024
  • osvvm.github.io Public

    HTML Docs for OSVVM

    OSVVM/osvvm.github.io’s past year of commit activity
    HTML 3 1 0 0 Updated Nov 14, 2024
  • OsvvmLibraries Public

    Start here. Includes all other OSVVM libraries as submodules: Utility, Common, Verification Component, and Script.

    OSVVM/OsvvmLibraries’s past year of commit activity
    51 19 0 0 Updated Nov 5, 2024
  • OSVVM Public

    OSVVM Utility Library: AlertLogPkg, CoveragePkg, RandomPkg, ScoreboardGenericPkg, MemoryPkg, TbUtilPkg, TranscriptPkg, ...

    OSVVM/OSVVM’s past year of commit activity
    VHDL 225 60 13 0 Updated Nov 4, 2024
  • OSVVM-Common Public

    Packages that implement OSVVM's model independent transactions and other shared verification component support packages. Required for all OSVVM verification components. AddressBusTransactionPkg - AXI, AxiLite, ... StreamTransactionPkg - AxiStream, UART, ...

    OSVVM/OSVVM-Common’s past year of commit activity
    VHDL 5 5 3 0 Updated Nov 4, 2024
  • AXI4 Public

    AXI4 Full, Lite, and AxiStream verification components. AXI4 Interface Master, Responder, and Memory verification components. AxiStream transmitter and receiver verification components

    OSVVM/AXI4’s past year of commit activity
    VHDL 129 18 6 0 Updated Nov 4, 2024
  • Documentation Public

    OSVVM Documentation

    OSVVM/Documentation’s past year of commit activity
    30 6 0 0 Updated Oct 19, 2024
  • VideoBus_LouisAdriaens Public Forked from Louadria/VideoBus

    Fork of VideoBus by Louis Adriaens

    OSVVM/VideoBus_LouisAdriaens’s past year of commit activity
    VHDL 1 Apache-2.0 2 0 0 Updated Sep 4, 2024
  • UART Public

    OSVVM UART Verification Components. Uart Transmitter with error injection for parity, stop, and break errors. UART Receiver verification component with error handling for parity, stop, and break errors.

    OSVVM/UART’s past year of commit activity
    VHDL 8 8 2 1 Updated Sep 4, 2024
  • SPI_GuyEschemann Public Forked from noasic/SPI

    OSVVM SPI Verification Component.

    OSVVM/SPI_GuyEschemann’s past year of commit activity
    VHDL 0 3 0 1 Updated Sep 4, 2024