Coder Social home page Coder Social logo

rsenna / neptune Goto Github PK

View Code? Open in Web Editor NEW

This project forked from andrescv/jupiter

0.0 1.0 0.0 50.93 MB

RISC-V Assembler and Runtime Simulator

Home Page: https://jupitersim.gitbook.io/

License: GNU General Public License v3.0

JavaScript 83.69% TypeScript 12.42% ANTLR 3.88%

neptune's Introduction

Jupiter

License: GPL v3 Azure Pipelines Coverage Version issues

Jupiter is an open source and education-oriented RISC-V assembler and runtime simulator. It is written in Java 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 manual1. 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 on 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 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 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 ๐Ÿ’ฏ. The simulator shows different types of errors like: syntax errors, 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.

Documentation

Please visit the following link for more info and documentation.

Screenshots

Jupiter GUI mode GUI Mode

Jupiter CLI mode CLI Mode

Installation

Download the app image for your operating system and unzip the file:

Running Jupiter on Linux or macOS

./image/bin/jupiter # for GUI mode
./image/bin/jupiter [options] <files> # for CLI mode

Running Jupiter on Windows

image\bin\jupiter # for GUI mode
image\bin\jupiter [options] <files> # for CLI mode

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

neptune's People

Contributors

andrescv avatar inesrs avatar diegocdl avatar codacy-badger avatar gitter-badger avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.