venus is a RISC-V instruction set simulator built for education. This repository is a fork of kvakil/venus. The fork contains some additional minor features that were found to be useful when implementing a compiler for the ChocoPy language. This fork is therefore called Venus164 (named after the course CS164 at UC Berkeley). The additions in this fork are all standard assembler features that are supported by the official RISC-V GNU-based toolchain.
venus164 is available online.
Features (from the original)
- RV32IM
- Single-step debugging with undo feature
- Breakpoint debugging
- View machine code and original instructions side-by-side
- Several
ecall
s: includingprint
andsbrk
- Memory visualization
.word <label>
directive - Relocatable data words.align <n>
directive - Align data words to powers of 2.string
directive - alias for.asciiz
.equiv
directive - aliases.equ
and.set
- Constant expressions: e.g. adding/subtracting immediate values to/from labels
- Offset addressing: e.g.
sw rd, OFFSET(rs)
Build the backend:
$ ./gradlew build
Build the frontend+backend bundle:
$ grunt dist
The website should be built in the out
directory.
Checkout the jvm
branch and run
$ gradle clean jar
Checkout the maven-repository
branch and run
$ ./publish.sh VERSION JARFILE