16-bit processor using Verilog to operate on a DE1-SoC FPGA board

Computer Organization (ECE243) Final Group Project
University of Toronto | Toronto, ON

Skills Verilog, Assembly, TCL, Intel Quartus Prime, ModelSim

About the project:

  • The processor contains a number of 16-bit registers (including a stack pointer, link register and a program counter), a multiplexer, ALU, and a control unit (finite state machine).
  • The processor can perform read and write operations using memory or other devices and support subroutines, stacks, shift/rotate instructions in addition to simple arithmetic operations.
  • I also conducted rigorous testing and debugging throughout the project, employing ModelSim for processor simulation and DESim for real-world testing on the DE1-SoC board.
  • Created a game in assembly that could run on my processor in order to demonstrate its functionalities. The game was to replicate a random LED pattern displayed on the DE1-SoC board using switches.

Lessons Learned:
Through this project, I was able to practice my debugging skill by writing test benches to test various Verilog modules. I also had to be creative in the way that encoded functionalities found on a 32-bit ARM processor on my 16-bit processor. Overall, this project furthered my interest in computer architecture and digital logic design.