Third Party Libraries

The PoC-Library is shiped with different third party libraries, which are located in the <PoCRoot>/lib/ folder. This document lists all these libraries, their websites and licenses.

Cocotb

Cocotb is a coroutine based cosimulation library for writing VHDL and Verilog testbenches in Python.

Folder: <PoCRoot>\lib\cocotb\
Copyright: Copyright © 2013, Potential Ventures Ltd., SolarFlare Communications Inc.
License: Revised BSD License (local copy)
Documentation: http://cocotb.readthedocs.org/
Source: https://github.com/potentialventures/cocotb

OSVVM

Open Source VHDL Verification Methodology (OS-VVM) is an intelligent testbench methodology that allows mixing of “Intelligent Coverage” (coverage driven randomization) with directed, algorithmic, file based, and constrained random test approaches. The methodology can be adopted in part or in whole as needed. With OSVVM you can add advanced verification methodologies to your current testbench without having to learn a new language or throw out your existing testbench or testbench models.

Folder: <PoCRoot>\lib\osvvm\
Copyright: Copyright © 2012-2016 by SynthWorks Design Inc.
License: Artistic License 2.0 (local copy)
Website: http://osvvm.org/
Source: https://github.com/JimLewis/OSVVM

UVVM

The Open Source UVVM (Universal VHDL Verification Methodology) - VVC (VHDL Verification Component) Framework for making structured VHDL testbenches for verification of FPGA. UVVM consists currently of: Utility Library, VVC Framework and Verification IPs (VIP) for various protocols.

For what do I need this VVC Framework?
The VVC Framework is a VHDL Verification Component system that allows multiple interfaces on a DUT to be stimulated/handled simultaneously in a very structured manner, and controlled by a very simple to understand software like a test sequencer. VVC Framework is unique as an open source VHDL approach to building a structured testbench architecture using Verification components and a simple protocol to access these. As an example a simple command like uart_expect(UART_VVCT, my_data), or axilite_write(AXILITE_VVCT, my_addr, my_data, my_message) will automatically tell the respective VVC (for UART or AXI-Lite) to execute the uart_receive() or axilite_write() BFM respectively.

Folder: <PoCRoot>\lib\uvvm\
Copyright: Copyright © 2016 by Bitvis AS
License: The MIT License (local copy)
Website: http://bitvis.no/
Source: https://github.com/UVVM/UVVM_All

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.

Folder: <PoCRoot>\lib\vunit\
Copyright: Copyright © 2014-2016, Lars Asplund lars.anders.asplund@gmail.com
License: Mozilla Public License, Version 2.0 (local copy)
Website: https://vunit.github.io/
Source: https://github.com/VUnit/vunit

Updating Linked Git Submodules

The third party libraries are embedded as Git submodules. So if the PoC-Library was not cloned with option --recursive it’s required to run the sub-module initialization manually:

On Linux

cd PoCRoot
git submodule init
git submodule update

We recommend to rename the default remote repository name from ‘origin’ to ‘github’.

cd PoCRoot\lib\

Todo

write Bash code for Linux

On OS X

Please see the Linux instructions.

On Windows

cd PoCRoot
git submodule init
git submodule update

We recommend to rename the default remote repository name from ‘origin’ to ‘github’.

cd PoCRoot\lib\
foreach($dir in (dir -Directory)) {
  cd $dir
  git remote rename origin github
  cd ..
}