/virtio

Virtio implementation in SystemVerilog

Primary LanguageSystemVerilogApache License 2.0Apache-2.0

Virtio

Virtio implementation in SystemVerilog.

Requirements

These 3rd party tools and libraries must be installed to build and run tests:

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