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:

  • Are simple to use and work like built-in language features.
  • Maximize reuse and reduce project schedule.
  • Improve readabilty and reviewability by the whole team including software and system engineers.
  • Facilitate debug with HTML based test suite and test case reporting.
  • Support continuous integration (CI/CD) with JUnit XML test suite reporting.
  • Provide buzz word features including Constrained Random, Functional Coverage, Scoreboards, FIFOs, Memory Models, error logging and reporting, and message filtering.
  • Rival 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

Download OSVVM Libraries

OSVVM is available as either a git repository OsvvmLibraries or zip file from osvvm.org Downloads Page.

On GitHub, all OSVVM libraries are a submodule of the repository OsvvmLibraries. Download all OSVVM libraries using git clone with the “–recursive” flag:

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

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.

OSVVM Utility Library Repository

The OSVVM Utility library implements verification capabilities that are simple to use and feel like built-in language features. These include:

  • Transaction-Level Modeling (TbUtilPkg, ResolutionPkg)
  • Constrained Random test generation (RandomPkg)
  • Functional Coverage with hooks for UCIS coverage database integration (CoveragePkg)
  • Intelligent Coverage Random test generation (CoveragePkg)
  • Utilities for testbench process synchronization generation (TbUtilPkg)
  • Utilities for clock and reset generation (TbUtilPkg)
  • Transcript files (TranscriptPkg)
  • Error logging and reporting - Alerts and Affirmations (AlertLogPkg)
  • Message filtering - Logs (AlertLogPkg)
  • Scoreboards and FIFOs (data structures for verification) (ScoreboardGenericPkg)
  • Memory models (MemoryPkg)
  • Test Reporting - Test Suite and Test Case in HTML
  • Continuous Integration (CI/CD) Support - with JUnit XML reports

OSVVM Verification Script Library Repository

  • OSVVM's simulator independent scripting approach.
  • Supports Aldec's Riviera-PRO/Active-HDL, Siemen's QuestaSim/ModelSim, GHDL, Synopsys' VCS, and Cadence's Xcelium

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:

  • OSVVM Common Library Repository
    • Required for all OSVVM Verification Components
    • Defines OSVVMs Model Independent Transactions (Address Bus and Stream)
  • 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

Pinned

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

    QMake 22 7

  2. OSVVM Documentation

    11 4

  3. OSVVM Public

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

    VHDL 176 46

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

    Tcl 2 7

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

    VHDL 2 2

  6. AXI4 Public

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

    VHDL 43 9

Repositories

  • osvvm.github.io Public

    HTML Docs for OSVVM

    Python 2 0 0 0 Updated May 26, 2022
  • OSVVM-Scripts Public

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

    Tcl 2 7 8 1 Updated May 24, 2022
  • OsvvmLibraries Public

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

    QMake 22 7 1 1 Updated May 23, 2022
  • DpRam Public

    DpRam

    VHDL 6 1 0 0 Updated May 15, 2022
  • 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.

    VHDL 3 2 1 0 Updated May 15, 2022
  • AXI4 Public

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

    VHDL 43 9 5 1 Updated May 15, 2022
  • OSVVM Public

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

    VHDL 176 46 14 7 Updated May 15, 2022
  • Documentation Public

    OSVVM Documentation

    11 4 0 0 Updated May 10, 2022
  • .github Public
    0 0 0 0 Updated Apr 29, 2022
  • 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, ...

    VHDL 2 2 3 1 Updated Apr 29, 2022

Most used topics

Loading…