This repository contains the CENG3010 Computer Organization course projects. The first project involves developing a GUI-based 32-bit MIPS simulator, while the second project centers on designing a custom 16-bit MIPS-like processor with a unique instruction set.
The first project is a 32-bit MIPS Simulator with a GUI Dashboard. This project contains a simulator that accurately replicates the MIPS architecture while providing a user-friendly graphical user interface (GUI) for code execution and analysis.
- Interactive Dashboard: The GUI dashboard provides real-time visualization of key components including General Purpose Registers (GPRs), Program Counter (PC), Hi-Lo Registers, Instruction Memory (IM) and Data Memory (DM), offering insights into the simulation's progress.
- Branching Support: Full support for both conditional and unconditional branches ensures accurate simulation of branching behavior within the code.
- Procedure Calls: The simulator effectively handles procedure calls and implementations, replicating the behavior of functions within the MIPS architecture.
- Supported Instructions:
- R-Type:
add,sub,and,or,xor,mult,div,mfhi,mflo,sll,srl,sra,slt,jr
- I-Type:
addi,andi,ori,lw,lb,sw,sb,beq,bne,lui,slti
- J-Type:
j,jal
- R-Type:
- User-Friendly GUI: The graphical interface enables code input, observation of registers, memory inspection, and other essential fields, making the simulation process user-friendly.
- Memory Capacity: With total of 1KB allocated for both data and instruction memory, you can explore and visualize their contents directly within the GUI.
In summary, Project I presents a 32-bit MIPS Simulator with a user-friendly GUI Dashboard. This tool accurately replicates 32-bit MIPS architecture, offers a simple platform to run and understand code, supports various instructions including branching, and provides an accessible platform for code execution and analysis. It's a great way to explore and visualize MIPS operations.