This project was part of a FPGA course at HUJI that I completed with Yosef Sokolik. We were asked to implement a simple processor. The processor had to execute the following commands:
- Copy data from one register to another (Rx ← [Ry]).
- Insert a number into a register (Rx ← D).
- Add two registers (Rx ← [Rx] + [Ry]).
- Substract one register from another (Rx ← [Rx] − [Ry]).
- Count the number of ‘ones’ that are in a register (Ry ← number of ones [Rx]).
The full instructions for the processor are in a file named “Lab#3_Processor_Specification”. The skeleton and the functions that were given to us are in a folder named “given modules”. I added the lab report in Hebrew that includes test simulations and explanation of the code we wrote.