136

Jupiter: RISC-V Assembler and Runtime Simulator

 4 years ago
source link: https://www.tuicool.com/articles/yQjYNrM
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

QjAjuif.png!web

Jupiteris an open source and education-oriented RISC-V assembler and runtime simulator. It is written in Java 11 and capable of simulate all the instructions of the base integer ISA ( I extension) plus the M and F extensions ( RV32IMF ), including all the pseudo-instructions described in the user-level instruction set manual 1 . It was developed taking into account that it could be used in various courses such as: Computer Architecture, Compilers and Assembly Programming .

Features

  • User Friendly: Jupiter was designed focused in education and for all the people that are getting to know the RISC-V architecture. It places for priority the user experience. Jupiter has two modes of operation ( Command Line Interface and A Graphical User Interface ) and both of these were developed to be intuitive and easy to use.

  • Modularity: Jupiter can assemble and simulate several files at once, not everything has to be one file of 1,000 lines of code. Simply one has to indicate by a global label what is the main starting point of the program. This permits modularity and enables the creation of projects and laboratories more easily.

  • Feedback: People using Jupiter gets feedback on what they are doing wrong :100: . The simulator shows errors of: syntax, when trying to access reserved memory or when trying to write to a read-only memory.

  • Cross-platform: Jupiter is available for Linux ( Ubuntu ), macOS and Windows .

Screenshots

vYfIZ3V.png!webGUI Mode

MnQzmiu.png!webCLI Mode

Why this name, Jupiter ?

Traditionally other simulators of this type have used planet names, for example the famous educational simulator for the MIPS architecture MARS 2 or the Berkeley's web-based simulator Venus 3 . The name Jupiter 4 was chosen because of this tradional reasons and also because this planet represents in some sort the number 5 , in contrast with RISC-V that is the 5th generation of the ISA originally designed in the 90's 5 .

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue .

Other great simulators

  • Venus : Berkeley's Web-based simulator originally developed by @kvakil and then updated and improved by @ThaumicMekanism .

  • RARS : RISC-V Assembler and Runtime Simulator (RARS), based on the originally MARS simulator, but refactored for the RISC-V architecture by @TheThirdOne .

  • Ripes : A graphical 5-stage RISC-V pipeline simulator & assembly editor developed by @mortbopet .

  • Spike : The original RISC-V ISA simulator that implements a functional model of one or more RISC-V harts.

Acknowledgments

A big thank you to all the people working on the RISC-V project.

References

  1. https://github.com/riscv/riscv-isa-manual
  2. http://courses.missouristate.edu/KenVollmar/mars/index.htm
  3. https://github.com/kvakil/venus
  4. https://en.wikipedia.org/wiki/Jupiter
  5. https://en.wikipedia.org/wiki/DLX

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK