Context-Aware Verification, Emulation, and Training
Verification using vendor-specific as well as independent simulators and frameworks is a fundamental and well established step to successful digital design. Similarly, software-defined configuration and operation of hardware has significantly improved accessibility of technology. In fact, modern software-defined experiment design allows scientists and cross-disciplinary users to propose novel modes of operation within hours or even minutes.
This vendor-agnostic framework decouples application development, design verification, and training from the immediate availability of sensitive, unwieldy, and costly hardware installations. Moreover, it facilitates feasibility studies prior to investments as well as reproducibility of research results.
The framework is designed with three distinct needs of academic and development laboratories in mind:
- streamlining context-aware verification for supervised operation,
- hardware emulation for ease of application software development, and
- an environment for experiential training of prospective users.
It distinguishes two distinct aspects of verification:
- static (topologic), and
- dynamic (algorithmic).
For basic examples on how to do this, please see slides presented at FPGA Conference Europe 2025.
(see requirements.txt)
sudo apt install python-venvactivate virtual env
python3 -m venv caveatenv
source caveatenv/bin/activateThen ensure build is installed
python3 -m pip install buildInstall locally
In the caveat top level directory where pyproject.toml lives, run:
pip install -e .To test the installed code, run:
cd example
./run_tests.pyThe test test_loopback_throughput will execute, and the results are placed in the subdirectory build/results/.
- python 3.11+
- pip
- venv
- pytest-reporter-html-dots for advanced html reporting
- pytest-xdist for test parallelization (or pytest-parallel)