Inspiration
The Operating Systems cluster teaches systems using QEMU and real x86 implementations. This makes the learning process more difficult as the architecture is complicated and the implementations do not easily expose processor state. We wanted to make something that would enable students and developers alike to quickly learn, comprehend, and debug a simpler and more modern architecture.
What it does
RISC-V Simulator is a web-application that executes RISC-V binary files entirely in your browser, allowing you to step through each instruction and visualize what is happening. This enables easy debugging and experimentation when learning or developing software for the next generation of embedded systems.
How we built it
An HTML front-end driven by vanilla JavaScript interfaces with the C++ simulator implementation, compiled to WebAssembly to run entirely locally in your browser.
Challenges we ran into
A major challenge was getting the interface between JavaScript and C++ working. Everything from compiling to wasm to loading the wasm module to calling wasm functions from JavaScript was a struggle.
Accomplishments that we're proud of
Getting C++ and JavaScript to work together in an interactive browser session is an unusual and difficult task that we are proud of being able to achieve.
What we learned
We learned more about using WebAssembly, and its current issues caused by limited adoption. We also gained more experience in cross-compiling, C++ and JavaScript.
What's next for RISC-V Simulator
If further refined, this is a product that could be licensed to educators and system vendors alike to foster interest and accelerate development in a modern, competitive, and open architecture.
Built With
- c++
- javascript
- webassembly
Log in or sign up for Devpost to join the conversation.