GVSoC is the PULP chips simulator that is natively included in the Pulp SDK and is described and evaluated fully in Bruschi et al. [arXiv:2201.08166v1].
The user documentation, focusing on how to use GVSOC, is available here.
The developer documentation, focusing on how to develop models or extend GVSOC is available [here] (https://gvsoc-developer.readthedocs.io/en/latest/).
If you want to learn more about GVSoC, get started through the tutorial available here. This tutorial provides hands-on practice on building systems on GVSoC and extracting the performance results.
These instructions were developed using a fresh Ubuntu 22.04 (Jammy Jellyfish).
The following packages needed to be installed:
sudo apt-get install -y build-essential git doxygen python3-pip libsdl2-dev curl cmake gtkwave libsndfile1-dev rsync autoconf automake texinfo libtool pkg-config libsdl2-ttf-dev wget sphinx-build doxygen
These are the packages neded on a Fedora:
sudo dnf install -y make gcc cmake ninja-build.x86_64 g++ pip lz4-devel ccache glibc-devel.i686 zlib-ng-compat-devel.i686 SDL2 SDL2-devel SDL2_ttf-devel.x86_64 SDL2_image-devel.x86_64 wget2 sphinx-build doxygen
Please also check any README.md in the submodules for target-specific requirements, like for example pulp/README.md.
Additional Python packages are needed and can be installed with the following commands from root folder:
git submodule update --init --recursive -j8
pip3 install -r core/requirements.txt
pip3 install -r gapy/requirements.txt
Get submodules and compile GVSoC with this command:
make all
It will by default build it for generic targets rv32 and rv64. You can build it for another target with this command:
make all TARGETS=pulp-open
On ETH network, please use this command to get the proper version of gcc and cmake:
CXX=g++-11.2.0 CC=gcc-11.2.0 CMAKE=cmake-3.18.1 make all TARGETS=pulp-open
The following example can be launched on pulp-open:
./install/bin/gvsoc --target=pulp-open --binary examples/pulp-open/hello image flash run
If you intend to use or reference GVSoC for an academic publication, please consider citing it:
@INPROCEEDINGS{9643828,
author={Bruschi, Nazareno and Haugou, Germain and Tagliavini, Giuseppe and Conti, Francesco and Benini, Luca and Rossi, Davide},
booktitle={2021 IEEE 39th International Conference on Computer Design (ICCD)},
title={GVSoC: A Highly Configurable, Fast and Accurate Full-Platform Simulator for RISC-V based IoT Processors},
year={2021},
volume={},
number={},
pages={409-416},
doi={10.1109/ICCD53106.2021.00071}}
If you want to use DRAMsys with GVSoC follow the steps mentioned in DRAMsys.md