An open API service indexing awesome lists of open source software.

https://github.com/umarcor/vunit-cosim


https://github.com/umarcor/vunit-cosim

Last synced: about 2 months ago
JSON representation

Awesome Lists containing this project

README

        

> **This repository is in a very early planning phase. Although the VHPIDIRECT bridge for GHDL is functional, breaking changes are being discussed in [VUnit/vunit#603](https://github.com/VUnit/vunit/issues/603)**.




'docs' workflow Status
'push' workflow Status

# Interfacing VHDL and foreign languages with [VUnit](https://github.com/VUnit/vunit)

Three main approaches are used to co-simulate (co-execute) VHDL sources along with software applications written in a different language (typically C/C++):

- Verilog Procedural Interface (VPI), also known as Program Language Interface (PLI) 2.0.
- VHDL Procedural Interface (VHPI), or specific implementations, such as Foreign Language Interface (FLI).
- Generation of C/C++ models/sources through a transpiler.

This repository aims to gather resources to use these techniques with VUnit. The content is organised in **bridges**, **examples** and **utils**:

- Bridges contain VHDL packages, (optionally) matching C headers and Python classes. Each bridge provides the glue logic between a VHDL API (or another bridge) and some other API in VHDL and/or C (bindings).
- Examples are working demo projects that use some utils and/or bridges. Dockerfiles are included in the examples that require additional FOSS tools.
- Utils contains helper functions in Python (based on `ctypes`, `base64`, `numpy` and `Pillow`) which are useful for interacting with C-alike executables.