Skip to main content

Apheleia Verification Library - QEMU verification component

Project description

AVL-QEMU- Apheleia Verification Library QEMU Component

License: MIT Python

AVL-QEMU has been developed by experienced, industry professional verification engineers to provide a simple,
extensible verification component integrating QEMU emulation
developed in Python and the AVL library.

AVL is built on the CocoTB framework.

CocoTB 2.0

AVL-QEMU supports CocoTB2.0 https://docs.cocotb.org/en/development/upgrade-2.0.html. This was introduced in v0.2.0.

Component Features

  • Custom address map device integration to QEMU with dedicated, time-consuming read and write callbacks
  • File system PIPE interface between QEMU and AVL / CocoTB

📦 Installation

Using pip

# Standard build
pip install avl-qemu

# Development build
pip install avl-qemu[dev]

Install from Source

git clone https://github.com/projectapheleia/avl-qemu.git
cd avl-qemu

# Standard build
pip install .

# Development build
pip install .[dev]

Alternatively if you want to create a virtual environment rather than install globally a script is provided. This will install, with edit privileges to local virtual environment.

This script assumes you have Graphviz and appropriate simulator installed, so all examples and documentation will build out of the box.

git clone https://github.com/projectapheleia/avl-qemu.git
cd avl-qemu
source avl-qemu.sh

Configuring and Building Custom QEMU

AVL-QEMU relies on a custom device install of QEMU. This can only be done when you build QEMU from source.

A script is provided to download, configure and build QEMU for the user from source.

usage: install-qemu-avl-device [-h] --path PATH [--clean] [--nproc NPROC]

Git Clone and configure qemu with the custom avl device

options:
  -h, --help     show this help message and exit
  --path PATH    Install Path
  --clean        Clean existing installation
  --nproc NPROC  Number of processors to use when building QEMU (default: 16)

:w

📖 Documentation

In order to build the documentation you must have installed the development build.

Build from Source

cd docs
make html
<browser> build/html/index.html

🏃 Examples

In order to run all the examples you must have installed the development build.

To run all examples:

cd examples

# To run
make -j 8 sim

# To clean
make -j 8 clean

To run an individual example:

cd examples/THE EXAMPLE YOU WANT

# To run
make sim

# To clean
make clean

The examples use the CocoTB Makefile and default to Verilator with all waveforms generated. This can be modified using the standard CocoTB build system.


🧹 Code Style & Linting

This project uses Ruff for linting and formatting.

Check code for issues:

ruff check .

Automatically fix common issues:

ruff check . --fix

📧 Contact

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

avl_qemu-0.1.0.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

avl_qemu-0.1.0-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file avl_qemu-0.1.0.tar.gz.

File metadata

  • Download URL: avl_qemu-0.1.0.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for avl_qemu-0.1.0.tar.gz
Algorithm Hash digest
SHA256 cd3aa9e74a1df18f9a25eff8c3fe6e94645dd5a0492e401b6efb8796ee03f060
MD5 48ca84fd6567c85e9351e9b76a5c9eed
BLAKE2b-256 4b3aaae80ab1324acf9e8bae9689850619b40b88b5f2e6d3ee2f2bea6a7db5a8

See more details on using hashes here.

File details

Details for the file avl_qemu-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: avl_qemu-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for avl_qemu-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3e4dbc018a7c47780e997cf7cd4fb21fb8d01f8f02dddecb4bb1807209c22447
MD5 883e6cd7daab6af1a12abff0e589fe46
BLAKE2b-256 e50e499cdbc55b04c425f3d723d736a554aadd2e11714aee8d86514cd212c996

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page