Ripes is a visual computer architecture simulator and assembly code editor built for the RISC-V instruction set architecture.
Experimental: Try Ripes directly in your browser: https://ripes.me/
If you enjoy using Ripes, or find it useful in teaching, feel free to leave a tip through Ko-Fi.
For questions, comments, feature requests, or new ideas, don't hesitate to share these at the discussions page.
For bugs or issues, please report these at the issues page.
Ripes may be used to explore concepts such as:
- How machine code is executed on a variety of microarchitectures (RV32IMC/RV64IMC based)
- How different cache designs influence performance
- How C and assembly code is compiled and assembled to executable machine code
- How a processor interacts with memory-mapped I/O
If this is your first time using Ripes, please refer to the introduction/tutorial.
For further information, please refer to the Ripes documentation.
Prebuilt binaries are available for Linux, Windows & Mac through the Releases page.
Releases for Linux are distributed in the AppImage format. To run an AppImage:
- Run
chmod a+x
on the AppImage file - Run the file! The AppImage for Linux should be compatible with most Linux distributions.
For Windows, the C++ runtime library must be available (if not, a msvcp140.dll error will be produced). You most likely already have this installed, but if this is not the case, you download it here.
Initially, the following dependencies must be made available:
- A recent (>=6.5.0) version of Qt + Qt Charts (not bundled with Qt by default, but can be selected during Qt installation)
- CMake
sudo apt-get install libegl1-mesa-dev
Then, Ripes can be checked out and built as a standard CMake project:
git clone --recursive https://github.com/mortbopet/Ripes.git
cd Ripes/
cmake .
Unix: Windows:
make jom.exe / nmake.exe / ...
Note, that you must have Qt available in your CMAKE_PREFIX_PATH
. For further information on building Qt projects with CMake, refer to Qt: Build with CMake.
In papers and reports, please refer to Ripes as follows: 'Morten Borup Petersen. Ripes. https://github.com/mortbopet/Ripes' or by referring to the WCAE'21 paper on the project, e.g. using the following BibTeX code:
@MISC{Ripes,
author = {Morten Borup Petersen},
title = {Ripes},
howpublished = "\url{https://github.com/mortbopet/Ripes}"
}
@inproceedings{petersen2021ripes,
title={Ripes: A Visual Computer Architecture Simulator},
author={Petersen, Morten B},
booktitle={2021 ACM/IEEE Workshop on Computer Architecture Education (WCAE)},
pages={1--8},
year={2021},
organization={IEEE}
}