https://github.com/umarcor/vunit-cosim
https://github.com/umarcor/vunit-cosim
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/umarcor/vunit-cosim
- Owner: umarcor
- Created: 2019-12-05T16:32:48.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-05-21T01:36:26.000Z (about 5 years ago)
- Last Synced: 2025-02-11T10:44:19.250Z (3 months ago)
- Language: Python
- Size: 863 KB
- Stars: 2
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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)**.
# 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.