Skip to content

anga93/gvsoc

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GVSoC

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].

GVSoC documentations

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/).

GVSoC Tutorial

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.

OS Requirements installation

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.

Python requirements

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

Installation

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

Usage

The following example can be launched on pulp-open:

./install/bin/gvsoc --target=pulp-open --binary examples/pulp-open/hello image flash run

Citing

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}}

Using GVSoC with DRAMsys

If you want to use DRAMsys with GVSoC follow the steps mentioned in DRAMsys.md

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 86.6%
  • Python 7.5%
  • C++ 5.2%
  • Other 0.7%