RISC-V Instruction Set Simulator (Built for education).

Overview

Vulcan

vulcanlogo RISC-V Instruction Set Simulator Built For Education.

Features

  • RV32I Extension.
  • RV32M Extension.
  • RV32A Extension.
  • RV32F Extension.
  • Visualization of programming counter (PC), machine code and original instructions side-by-side.
  • Embedded editor inside Vulcan.
  • Integer registers visualization.
  • Single precision floating-point registers visualization.
  • Memory visualization.
  • Syntax Error Alert.

Implemented Instructions

RV32I Extension

  • lui
  • auipc
  • jal
  • jalr
  • beq
  • bne
  • blt
  • bge
  • bltu
  • bgeu
  • lb
  • lh
  • lw
  • lbu
  • lhu
  • sb
  • sh
  • sw
  • addi
  • slti
  • sltiu
  • xori
  • ori
  • andi
  • slli
  • srli
  • srai
  • add
  • sub
  • sll
  • slt
  • sltu
  • xor
  • srl
  • sra
  • or
  • and
  • fence
  • fence.i
  • ecall
  • ebreak
  • csrrw
  • csrrs
  • csrrc
  • csrrwi
  • csrrsi
  • csrrci

RV32M Extension

  • mul
  • mulh
  • mulhsu
  • mulhu
  • div
  • divu
  • rem
  • remu

RV32F Extension

  • flw
  • fsw
  • fmadd.s
  • fmsub.s
  • fnmsub.s
  • fnmadd.s
  • fadd.s
  • fsub.s
  • fmul.s
  • fdiv.s
  • fsqrt.s
  • fsgnj.s
  • fsgnjn.s
  • fsgnjx.s
  • fmin.s
  • fmax.s
  • fcvt.w.s
  • fcvt.wu.s
  • fmv.x.w
  • feq.s
  • flt.s
  • fle.s
  • fclass.s
  • fcvt.s.w
  • fcvt.s.wu
  • fmv.w.x

RV32A Extension

  • lr.w
  • sc.w
  • amoswap.w
  • amoadd.w
  • amorxor.w
  • amoand.w
  • amoor.w
  • amomin.w
  • amomax.w
  • amominu.w
  • amomaxu.w

Limitations

  • Unfortunately, by the time that I did the initial version, Flutter Web does not support responsive web apps. Because of it, one must use Vulcan in fullscreen mode. Otherwise, the app will throw overflow exceptions.

Usage

Web Browser Status

  • Google Chrome
  • Mozilla Firefox
  • Microsoft Edge

How to use it?

  • You must be familiar with RISC-V Assembly in order to use Vulcan properly. If you want to learn about it, you can check the documentation folder inside this repository.

How to simulate my RISC-V Assembly code?

  • You must go to the "Editor" tab and write your code inside the editor. When you are done, press the "Simulate" button.

Local Usage

  • First of all, you must install the Dart SDK in your computer: https://dart.dev/
  • Then, you need to install the Flutter framework: https://flutter.dev/
  • Since Vulcan is a Flutter WebApp, you must install the Web extension. More info can be found here: https://flutter.dev/docs/get-started/web
  • After that, you can download this repository as a zip folder. Extract it in your machine. In the command line, get inside it and finally run the following command:
flutter run -d chrome
  • Then you can use it as you please.
  • This is the version 1.0 (not the final).

Web usage

Bugs and Errors

  • If you find any bugs, errors or strange behavior, feel free to open an issue. The only thing that I ask is to provide a detailed explanation of the bug/error/strange behavior. If possible, provide a screenshot.

Screenshots

Home Page

homepage

Editor Page

editorpage

Simulator Page 1

simpage1

Simulator Page 2

simpage2

Simulator Page 3

simpage3

Simulator Page 4

simpage4

You might also like...

Target the specific design of Material for Android and Cupertino for iOS widgets through a common set of Platform aware widgets

Target the specific design of Material for Android and Cupertino for iOS widgets through a common set of Platform aware widgets

Flutter Platform Widgets This project is an attempt to see if it is possible to create widgets that are platform aware. Currently in order to render t

Jan 4, 2023

Combine a set of dart files into one

dart-merger Combine a set of dart files into one. This is useful when you want to organize a group of files automatically generated by generator. Inst

Mar 17, 2022

This is a set of small projects focused solely on the development of the graphical interface with Flutter

This is a set of small projects focused solely on the development of the graphical interface with Flutter

My Flutter Projects Flutter apps with cool design and animations Social Media Youtube Facebook Twitter Getting Started This project is a starting poin

Dec 19, 2022

The Material Design Icons Icon pack available as set of Flutter Icons.

material_design_icons_flutter The Material Design Icons Icon pack available as set of Flutter Icons. Based on Material Design Icons 6.5.95. See a web

Oct 26, 2022

This application was created using the Dart language and it is an application that contains a set of different questions and at the end shows you the number of correct answers you have answered , made by flutter

exams_app A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if thi

Dec 28, 2021

An opinionated, community-driven set of lint rules for Dart and Flutter projects. Like pedantic but stricter

An opinionated, community-driven set of lint rules for Dart and Flutter projects. Like pedantic but stricter

Lint for Dart/Flutter lint is a hand-picked, open-source, community-driven collection of lint rules for Dart and Flutter projects. The set of rules fo

Jan 3, 2023

Get or set persistent storage value based on MMKV framework.

mmkv_flutter Plugin that allow Flutter to read value from persistent storage or save value to persistent storage based on MMKV framework Getting Start

Jan 17, 2022

Cupertino back gesture - Flutter package to set custom width of iOS back swipe gesture area

cupertino_back_gesture A Flutter package to set custom width of iOS back swipe gesture area. Usage To use this package, add cupertino_back_gesture as

Dec 7, 2022

A Flutter widget to set time with spinner instead of material time picker

A Flutter widget to set time with spinner instead of material time picker

flutter_time_picker_spinner Time Picker widget with spinner instead of a material time picker. 12H format 24H format 24H format with second Custom sty

Aug 8, 2022
Owner
Victor Miguel de Morais Costa
I wanna be as big as a mountain. I wanna fly as high as the sun. I wanna know what the rent's like in heaven. I wanna know where the river goes.
Victor Miguel de Morais Costa
Planet Education App built in Flutter!

Planeto (Planet education app in Flutter) This Application is made in Flutter ?? & Dart ?? Code Style Design Credits This Design is from Dribbble by V

Abhishek Rajendra Wagh 11 Nov 14, 2022
This Form Is for a JAJ Digital Education.

flutter_forms A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if

Jibran Abdul Jabbar 3 Dec 28, 2021
E-Learn is a beautiful open-source education app for Android

E-Learn is a beautiful open-source education app for Android. It is built with Dart on top of Google's Flutter Framework.

Hash Studios 216 Jan 6, 2023
Flutter Education app UI Concept

edu_app Education UI Concept inspiration from dribbble The UI is not complete and I am working on it. If you have any suggestions please create a issu

HathTech 143 Jan 6, 2023
⚡️ This project uses the flutter UI tool kit to build an education/skill app for offering online tutorials.

⚡️ This project uses the flutter UI tool kit to build an education/skill app for offering online tutorials.

Godson 8 Nov 10, 2022
A set of real world timelines to showcase the use of timeline_tile package, built with Flutter.

beatiful_timelines Beautiful timelines built with Flutter and timeline_tile. Current examples: Timeline Showcase Football Timeline Activity Timeline S

null 233 Dec 21, 2022
Set of Flutter widgets built using physics based animations.

Elastic Widgets Set of Flutter widgets built using physics based animations. Widgets Seek Bar Range Picker Installation Add this to your package's pub

Alireza Abiri 76 Dec 4, 2021
WYSIWYG editor for Flutter with a rich set of supported formatting options. (WIP)

✨ rich_editor WYSIWYG editor for Flutter with a rich set of supported formatting options. Based on https://github.com/dankito/RichTextEditor, but for

Festus Olusegun 116 Dec 27, 2022
A Flutter widget that forces the device rotates into the set of orientations the application interface can be displayed in.

A Flutter widget that forces the device rotates into the set of orientations the application interface can be displayed in. Features Force device keep

De Men 1 Nov 30, 2021
Target the specific design of Material for Android and Cupertino for iOS widgets through a common set of Platform aware widgets

Flutter Platform Widgets This project is an attempt to see if it is possible to create widgets that are platform aware. Currently in order to render t

null 1.3k Jan 4, 2023