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.

Single-Cycle ARM Processor preview

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.