Virtio
Virtio implementation in SystemVerilog
Install / Use
/learn @tymonx/VirtioREADME
Virtio
Virtio implementation in SystemVerilog.
Requirements
These 3rd party tools and libraries must be installed to build and run tests:
- CMake - build, test and package project
- IntelFPGA Quartus - synthesis tool for Intel FPGAs
- Verilator - simulator, lint and coverage tool
- SystemC 2.3.1 - SystemC C++ library
- SystemC Verification 2.0 - SystemC data randomization
- UVM-SystemC 1.0 - UVM for SystemC
- Natural Docs - code documentation generator
- GoogleTest - C++ unit test framework
- SVUnit - SystemVerilog unit test framework
- GTKWave - waveform viewer
- WaveDrom - digital timing diagram
Workspace
- README.md - this read me file in MarkDown format
- LICENSE - license file
- CMakeLists.txt - CMake root script for building and testing project
- doc - configuration files for code documentation generator
- rtl - RTL source files
- src - C++ source files
- include - C++ include headers
- tests - unit tests and verification tests in SystemC using Google Test or UVM and SystemVerilog using SVUnit
- cmake - additional CMake scripts for building project
- scripts - additional scripts in TCL or Python for building project
Build
Clone repository:
git clone git@github.com:tymonx/virtio.git
Change current location to repository directory:
cd virtio
Clone git submodules:
git submodule init
git submodule update
Create build directory:
mkdir build
Change current location to build directory:
cd build
Create build scripts using CMake:
cmake ..
Build project using CMake:
cmake --build . --target all
Or build project using make:
make -j`nproc`
To build documentation:
cmake --build . target doc
Built HTML documentation can be found in:
doc/html
To view HTML documentation, open it using web browser:
<WEB_BROWSER> doc/html/index.html
Tests
Run all unit tests:
ctest
Run only unit tests for AXI4-Stream:
ctest -R axi4_stream
All waveforms generated from unit tests are located in:
output
All unit tests logs are stored in:
Testing/Temporary/LastTest.log
Verilator Coverage
Run Verilator coverage after running all tests:
cmake --build . --target verilator-coverage
Related Skills
node-connect
339.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
339.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.8kCommit, push, and open a PR
