This repository contains the RISC processor source code used in the CPEN 211 CPU competition held at the end of the semester.
- Main Branch: Achieves maximum 5 cycles per instruction and is currently non-pipelined in SV.
- Competition Results: Ranked 3rd place in terms of:
- Efficiency to compute multiple instructions.
- Maximum clock frequency achieved.
- Geometric Mean Speedup (compared to the unoptimized reference version).
- Pipelined Branch: An experimental version of the RISC machine with pipelining is available in the
pipelined
branch. Although not fully debugged, it is theoretically 2-3x faster than the current implementation.
Note: The processors highlighted pipelined and reference are there to help competitors see how fast a pipelined processor is compared to a unoptimized non-pipelined risc processor.
The RISC machine is developed with:
- Quartus Prime 18.1
- ModelSim 10.5b
It has been tested on the Cyclone-V FPGA using the DE1-SoC development board. While other Verilog tools and FPGAs may work, modifications to the top module and pin assignments may be required.
- Add all
.sv
files to your project. - Set
lab7bonus_top
as your top module. - Create or modify
data.txt
to initialize system RAM.
This work is the property of Krish Thakur and Warrick Lo. It MUST NOT be copied or reused in any form. Furthermore, this code will no longer function on any version of the CPEN 211 autograder.