All Projects → tum-ei-eda → etiss

tum-ei-eda / etiss

Licence: other
Extendable Translating Instruction Set Simulator

Programming Languages

C++
36643 projects - #6 most used programming language
HTML
75241 projects
c
50402 projects - #5 most used programming language
CMake
9771 projects
python
139335 projects - #7 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to etiss

FreeRTOS-RISCV
A port of FreeRTOS for the RISC-V ISA
Stars: ✭ 68 (+257.89%)
Mutual labels:  risc-v
riscv-cores-list
RISC-V Cores, SoC platforms and SoCs
Stars: ✭ 651 (+3326.32%)
Mutual labels:  risc-v
bl mcu sdk
bl_mcu_sdk is MCU software development kit provided by Bouffalo Lab Team for BL602/BL604, BL702/BL704/BL706, BL616/BL618, BL808 and other series of RISC-V based chips in the future.
Stars: ✭ 147 (+673.68%)
Mutual labels:  risc-v
FPGAmp
720p FPGA Media Player (RISC-V + Motion JPEG + SD + HDMI on an Artix 7)
Stars: ✭ 190 (+900%)
Mutual labels:  risc-v
drec-fpga-intro
Materials for "Introduction to FPGA and Verilog" at MIPT DREC
Stars: ✭ 66 (+247.37%)
Mutual labels:  risc-v
steel-core
Processor core implementing the base RV32I instruction set of the RISC-V ISA
Stars: ✭ 67 (+252.63%)
Mutual labels:  risc-v
picorv32 Xilinx
A picorv32-riscv Soc with DMAC and Ethernet controller & lwip & Kirtex7@333MHz
Stars: ✭ 49 (+157.89%)
Mutual labels:  risc-v
la-core
Linear algebra accelerators for RISC-V (published in ICCD 17)
Stars: ✭ 58 (+205.26%)
Mutual labels:  risc-v
quasiSoC
No-MMU Linux capable RISC-V SoC designed to be useful.
Stars: ✭ 29 (+52.63%)
Mutual labels:  risc-v
srv32
Simple 3-stage pipeline RISC-V processor
Stars: ✭ 88 (+363.16%)
Mutual labels:  risc-v
riscv-meta
RISC-V Instruction Set Metadata
Stars: ✭ 33 (+73.68%)
Mutual labels:  risc-v
riscvm
Tiny RISC-V virtual machine
Stars: ✭ 26 (+36.84%)
Mutual labels:  risc-v
Penglai-Enclave
This is the main repo for Penglai.
Stars: ✭ 47 (+147.37%)
Mutual labels:  risc-v
core-v-verif
Functional verification project for the CORE-V family of RISC-V cores.
Stars: ✭ 283 (+1389.47%)
Mutual labels:  risc-v
9444
9444 RISC-V 64IMA CPU and related tools and peripherals.
Stars: ✭ 18 (-5.26%)
Mutual labels:  risc-v
CorePartition
Universal Cooperative Multithread Lib with real time Scheduler that was designed to work, virtually, into any modern micro controller or Microchip and, also, for user space applications for modern OS (Mac, Linux, Windows) or on FreeRTOS as well. Supports C and C++
Stars: ✭ 18 (-5.26%)
Mutual labels:  risc-v
spu32
Small Processing Unit 32: A compact RV32I CPU written in Verilog
Stars: ✭ 51 (+168.42%)
Mutual labels:  risc-v
multizone-linux
MultiZone® Security Enclave for Linux
Stars: ✭ 18 (-5.26%)
Mutual labels:  risc-v
derzforth
Bare-metal Forth implementation for RISC-V
Stars: ✭ 25 (+31.58%)
Mutual labels:  risc-v
osmium
A toy operating system written in Rust on RISC V(rv32im)
Stars: ✭ 124 (+552.63%)
Mutual labels:  risc-v

ETISS (Extendable Translating Instruction Set Simulator)

Build Status

ETISS is a C++ ISS (Instruction Set Simulator), which is designed to simulate instructions for a target core on a host computer. It translates binary instructions into C code and appends translated code into a block, which will be compiled and executed at runtime. As aforementioned, it is Extendable, thus it supports myriad level of customization by adopting the technique of plug-ins. ETISS supports varied Instruction Set Architectures (ISAs) according to user needs (see architecture models in ArchImpl/). Meanwhile, the simulator could be enhanced with customized plug-ins to set up many applications (see application examples in examples/).

ETISS diagram

ETISS is structured as shown in the diagram above, and it is capable of translating binary instructions according to loaded architecture models. Furthermore, plug-ins could be developed to model new features of architecture and be added flexibly without any hacking in the ETISS source code.

Getting Started

The ETISS core and included plugins are built as libraries. To make use of the simulator, a program using the library is needed. A very simple bare-metal processor is included in this repository in src/bare_etiss_processor. This program is built during the normal build process; its compiled binary will be placed under <build_-_dir>/bin and <etiss_install_dir>/bin. See its README for more details.

System Requirements

ETISS is supported on x86_64 Linux and Windows hosts. Tested compilers include GCC 7.4 and MSVC 2019. CMake 3.13 is required as build system.

Dependencies

  • GCC Compiler >= 5.0
  • Boost >= 1.54
  • Graphviz + Doxygen (For documentation generation)
  • LLVM + Clang 11 (Please download appropriate pre-built binaries from https://releases.llvm.org/download.html and put them in /opt/)

LINUX SYSTEM

Packages for Ubuntu 18:

sudo apt-get install g++ libboost-system-dev libboost-filesystem-dev libboost-program-options-dev graphviz doxygen libtinfo-dev zlib1g-dev texinfo

Build and Installation

Follow these instructions to quickly build ETISS. Start in the root directory of ETISS by creating a build directory:

$ mkdir build_dir

Change to the created directory, e.g.,

$ cd build_dir

If LLVM-JIT compiler is used, source it with the environment variable:

$ export LLVM_DIR=/path/to/llvm

Configure the build system, e.g., Replace `pwd`/installed with your <etiss_install_path> if you do not like to install etiss into build_dir/installed/. Set up path to cmake if necessary.

$ cmake -DCMAKE_BUILD_TYPE=Release -DETISS_BUILD_MANUAL_DOC=ON \
        -DCMAKE_INSTALL_PREFIX:PATH=`pwd`/installed \
        ..

Compile the package:

$ make

Build the documentation (optional):

$ make doc

Install the package:

$ make install

To save time, compiling can be sped up by using multiple CPU cores:

$ make -j$(nproc)

WINDOWS SYSTEM

Requirements for Windows:

  • Install Visual Studio (2019 community edition). In the installer, select the component "Desktop development with C++". Here, under "Optional" make sure "C++ CMake tools for Windows" is selected.
  • Install Chocolately software from https://chocolatey.org/install

Packages for Windows:

  • choco install boost-msvc-14.2

  • choco install make

  • choco install git

    NOTE: If developer powershell is not used, please also install the CMake package as follows:

    • choco install cmake --version=3.13.3

Build and Installation

Follow these instructions to quickly build ETISS. The developer powershell of Visual Studio is recommended. Otherwise the environment PATH variable might have to be set accordingly to locate various tools. Start in the root directory of ETISS by creating a build directory:

$ mkdir build_dir

Change to the created directory, e.g.,

$ cd build_dir

Configure the build system:

$ cmake -DCMAKE_BUILD_TYPE=Release -DETISS_BUILD_MANUAL_DOC=ON -DCMAKE_INSTALL_PREFIX:PATH=X:/install/path ..

Compile the package:

Compile in Release mode or Debug mode by setting $BUILD_TYPE to Release or Debug appropriately.

$ cmake --build . --config $BUILD_TYPE

Install the package:

$ cmake --build . --config $BUILD_TYPE --target install

Example project to run etiss

Follow steps in <etiss_install_path>/examples/README

Licensing and Copyright

See the separate LICENSE file to determine your rights and responsibilities for using ETISS.

User Documentation

The documentation is optionally built with ETISS and can be found in <etiss_install_path>/doc/html/index.html

It is also hosted at https://tum-ei-eda.github.io/etiss/

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].