Processor
I designed this CPU from scratch as part of the Intel University Programme and implemented it on Intel FPGA.
Through the project, I learned the fundamentals of digital logic and computer architecture from first principles, as well as the tools and skills for hardware design, such as Verilog, Intel Quartus Prime and ModelSim.
This project confirmed my interest in computer hardware design and inspired me to do some further projects with modern, realistic CPU architectures (RISC-V).
Supported Opcodes:

This was a multi-cycle processor and the Control Unit is implemented by a Finite State Machine which asserts different control signals to control the different registers according to the state (clock cycle) it is in and the instruction it is executing. Its operation is as follows:

Connecting this processor with external memory and I/O registers turns it into a simple microcontroller that could be programmed using assembly language with an appropriate assembler:
Here’s a video demonstration of the shift/rotate instructions, written using assembly: