Open daviddcho opened 3 years ago
This is one of the better project proposals because it give contributors the opportunity to learn about low level concepts and turn them into a higher level simulator. This project allows provides users the ability to learn computer science topics that are more difficult to visualize.
I am more so interested in contributing to developing the UI of the project but I look forward to learning more about computer architecture.
RISC-V Simulator
Project Abstract
This project proposes to create a web-based simulator for the RISC-V instruction set architecture (ISA). The ISA is the layer between software and hardware, providing a set of instructions the CPU can execute such add, subtract, divide, multiply. This project won't be working with real hardware but will be simulating that hardware on the web. RISC-V is based on the reduced instruction set computer (RISC) which has simple instructions that are frequently used compared to the complex instruction set computer (CISC) which has many specialized instructions that are rarely used. The simulator will be able to compile and interpret RISC-V code. The user will be able to see registers and status after each instruction. The user will also be able to see memory change after each instruction. This visualization of registers, status, and memory may be helpful for users when debugging or for learning.
High Level Requirement
The simulator will compile and interpret RISC-V assembly code that the user writes or loads in. The user will be able to see registers, status, and memory after each instruction execution to help with debugging or just learning.
Conceptual Design
This project will be built using Javascript, HTML, and CSS. Bootstrap can be used to make the website look nice.
Background
There are many ISA simulators on the internet such as the open-source js-y86 simulator and y86 emulator. This project idea was largely influenced by these web-based simulators. We would be targeting towards a similar look and because the projects are open-source, we can use them as reference when implementing the RISC-V instruction set on the web. Visualizations can be taken so that we can focus on implementing the RISC-V architecture (the harder part). The RISC-V instruction set has a manual that can be referenced. There is also a RISC-V instruction set written in Python with documentation.
Required Resources