School project · CG3207
Single-Cycle ARM Processor
Designed and implemented a single-cycle processor in Verilog on an FPGA, supporting the full ARM DP/Mem/Branch instruction set.
The problem
Build a functioning processor from scratch — from datapath design to instruction decoding — that executes real ARM instructions on physical hardware.
What I did
Co-designed the full single-cycle datapath with a partner in Verilog, implemented all ARM DP/Mem/Branch instructions, and extended it with SMULL/UMULL via multi-cycle micro-operations. Synthesised and validated on an FPGA board.
Outcome
Processor successfully executed the full required instruction set. Extending to SMULL/UMULL gave hands-on insight into how real CPUs handle operations that overflow a single cycle.