an instruction set simulator based on DBT-RISE implementing the RISC-V ISA
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.settings Adapted generated code to support translation block linking May 15, 2018
cmake Adapted plugin behavior obeying availabiltiy of instrumentation Apr 27, 2018
dbt-core @ 31263d4 Implemented basic HiFive1-like platform with PLL,tracing etc. Jul 13, 2018
etc Extended README and clenaed up lauch configurations Jul 12, 2018
external Updated CMake settings Mar 28, 2018
html Fixed transaction linking and gpio visualization Nov 26, 2017
riscv.sc Implemented basic HiFive1-like platform with PLL,tracing etc. Jul 13, 2018
riscv Implemented basic HiFive1-like platform with PLL,tracing etc. Jul 13, 2018
sc-components @ 57853f5 Implemented basic HiFive1-like platform with PLL,tracing etc. Jul 13, 2018
softfloat Added RV32D extension Apr 24, 2018
.clang-format Added clang-format formatting Sep 25, 2017
.cproject Adapted generated code to support translation block linking May 15, 2018
.gitignore Moved to cmake4eclipse builder Apr 5, 2018
.gitmodules Fixed submodules spec Sep 25, 2017
.project Updated Eclipse project name Apr 9, 2018
CMakeLists.txt Fixed missing check for unset CMAKE_BUILD_TYPE Jul 10, 2018
LICENSE Initial commit Aug 27, 2017
README.md Extended README and clenaed up lauch configurations Jul 12, 2018
build.sh Moved to cmake4eclipse builder Apr 5, 2018
conanfile.txt Updated SystemC CCI to 1.0 Jul 11, 2018
cycles.txt Made plugin call configurable Apr 24, 2018
simple-system.json Changed SystemC model to model a platform in a system. Added dedicated Jul 12, 2018

README.md

DBT-RISE-RISCV

Am instruction set simulator based on DBT-RISE implementing the RISC-V ISA

DBT-RISE-RISCV 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 used code generation to allow easy extension and adaptation of the used instruction. The RISC-V ISS reaches about 30MIPS running on Intel Core i7-2600K.

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

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

What's missing

  • F & D standard extensions for 32bit to be implemented
  • MACF &D standard extensions for 64bit to be implemented and verified

Planned features

  • add platform peripherals beyond programmers view to resemble E300 platform
    • QSPI
    • PWM
    • ...
  • and more

Quick start

    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 DBT-RISE-RiscV
    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://github.com/Minres/DBT-RISE-RISCV.git
    cd DBT-RISE-RISCV/
    git checkout develop
    mkdir build;cd build
    MAKE_FLAGS="-j4" cmake ..
    make -j4