Vondel
A simple computer architecture, ISA, Assembler and Interpreter build with Rust.
Usage
First off all, we need to build our binaries using:
cargo build -r --bins
Then for testing the demonstration programs we need to assemble it and run with our uarch.
We can accomplish this by just using the following commands:
Running Factorial
cargo run -r --bin assembler -- -i programs/factorial_hardware.asm && \
cargo run -r --bin uarch -- --rom a.rom --ram a.ram
Running Power
cargo run -r --bin assembler -- -i programs/power_hardware.asm && \
cargo run -r --bin uarch -- --rom a.rom --ram a.ram
Running CSW
cargo run -r --bin assembler -- -i programs/csw.asm && \
cargo run -r --bin uarch -- --rom a.rom --ram a.ram
Running Div
cargo run -r --bin assembler -- -i programs/div_hardware.asm && \
cargo run -r --bin uarch -- --rom a.rom --ram a.ram
File Structure
The Vondel file structure follows a convetional Rust program, with a src folder that handles all of our source code.
More info on the chapter File Structure
Interpreter
The Vondel Interpreter was built on top of the Monkey Language using the
book Writing an Interpreter with GO but on Rust.
More info on the chapter Interpreter
Assembler
The Vondel Assembler was based on RISC V assemblers with our custom taste for Mnemonics and operations that our Uarch can accept
More info on the chapter Assembler
Microarchitecture
The basic idea behind Vondel's design is to follow some tips from the book Structured Computer Organization - Andrew S. Tanenbaum while implementing the ability to perform operations even if the main clock is in a non-edge level in order to reduce clock cycles.
More info on the chapter Microarchitecture