You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Eyck Jentzsch 6e751ac2b4 „README.md“ ändern 1 month ago
.settings Adapted generated code to support translation block linking 1 year ago
cmake Bumped SystemC version 8 months ago
dbt-core @ 87ecbd4ae1 Updated to latest versions 7 months ago
etc Enhanced CLI parsing to allow non-option values 8 months ago
external Merge branch 'master' of https://git.minres.com/VP/RISCV.git 7 months ago
html Back-ported DVCon turorial changes 1 year ago
platform Updated to latest versions 7 months ago
riscv @ 1947a2114f Updated to latest versions 7 months ago
scc @ 6558b1815b Updated to latest versions 7 months ago
.clang-format Added clang-format formatting 2 years ago
.cproject Fixed clint interrupt method invokation 7 months ago
.gitignore Moved to cmake4eclipse builder 1 year ago
.gitmodules Reorganized repo layout 8 months ago
.project Reorganized repo layout 8 months ago
CMakeLists.txt Cleanup dependencies 8 months ago
LICENSE Initial commit 2 years ago
README.md „README.md“ ändern 1 month ago
build.sh Moved to cmake4eclipse builder 1 year ago
conanfile.txt Bumped scc 8 months ago
cycles.txt Made plugin call configurable 1 year ago
system.json Changed name to get consistent 1 year ago

README.md

RISCV-VP

An instruction set simulator based on DBT-RISE implementing the RISC-V ISA. The project is hosted at https://git.minres.com/VP/RISCV-VP.

RISCV-VP README

This is work in progress, so use at your own risk. Goal is to implement an open-source ISS which can easily embedded e.g. into SystemC Virtual Prototypes. It uses code generation to allow easy extension and adaptation of the used instruction. Please see also https://git.minres.com/DBT-RISE/DBT-RISE-RISCV The RISC-V ISS reaches about 65MIPS running on a decent Intel Processor.

The implementation is based on LLVM > v4.0. Eclipse CDT 4.7 (Oxygen) is recommended as IDE.

RISCV-VP uses libGIS (https://github.com/vsergeev/libGIS) as well as ELFIO (http://elfio.sourceforge.net/), both under MIT license

Quick start

  • you need to have a C++11 capable compiler (e.g. gcc >= 4.8), make, python, and cmake installed
  • install LLVM >= 4.0 according to http://apt.llvm.org/ (if it is not already provided by your distribution e.g by Ubuntu 18.04)
  • install conan.io (see also http://docs.conan.io/en/latest/installation.html): pip install conan
  • setup conan to use the minres repo: conan remote add minres https://api.bintray.com/conan/minres/conan-repo conan remote add bincrafters https://api.bintray.com/conan/bincrafters/public-conan
  • checkout source from git
  • start an out-of-source build: cd RISCV-VP mkdir build cd build cmake .. cmake --build .
  • if you encounter issues when linking wrt. c++11 symbols you might have run into GCC ABI incompatibility introduced from GCC 5.0 onwards. You can fix this by adding ‘-s compiler.libcxx=libstdc++11’ to the conan call or changing compiler.libcxx to compiler.libcxx=libstdc++11 in $HOME/.conan/profiles/default

Detailed Setup steps

prepare Ubuntu 18.04

    sudo apt-get install -y git python-pip build-essential cmake libloki-dev zlib1g-dev libncurses5-dev \	
        libboost-dev libboost-program-options-dev libboost-system-dev libboost-thread-dev llvm-dev llvm-doc
    pip install --user conan

prepare Fedora 28

    #prepare system
    dnf install @development-tools gcc-c++ boost-devel zlib-devel loki-lib-devel cmake python2 python3 llvm-devel llvm-static
    #install conan
    pip3 install --user conan
    export PATH=${PATH}:$HOME/.local/bin

Build the ISS

    # configure conan
    conan remote add minres https://api.bintray.com/conan/minres/conan-repo
    conan remote add bincrafters https://api.bintray.com/conan/bincrafters/public-conan
    conan profile new default --detect
    # clone and build DBT-RISE-RISCV
    git clone --recursive https://git.minres.com/VP/RISCV-VP.git
    cd RISCV-VP/
    git checkout develop
    git submodule update --recursive
    mkdir build;cd build
    MAKE_FLAGS="-j4" cmake ..
    make -j4