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/
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:
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
Editor Page
Simulator Page 1
Simulator Page 2
Simulator Page 3
Simulator Page 4
Open Source Agenda is not affiliated with "Vmmc2 Vulcan" Project. README Source: vmmc2/Vulcan