This project implements a simple 4-bit nanoprocessor as part of the Computer Organization and Digital Design module in semester 2 of Computer Science and Engineering at the University of Moratuwa.
The nanoprocessor is designed to execute a set of 4 instructions:
- MOVI - Move immediate value to register
- ADD - Add values in two registers
- NEG - 2's complement of a register
- JZR - Jump if register value is zero
- 4-bit Add/Subtract unit
- 3-bit adder for Program Counter
- 3-bit Program Counter
- Register Bank (8 4-bit registers)
- Program ROM
- Instruction Decoder
- Various multiplexers (2-way 3-bit, 2-way 4-bit, 8-way 4-bit)
- 4-bit data processing
- 3-bit program counter
- 12-bit instruction format
- Ability to perform basic arithmetic and control flow operations
The nanoprocessor is implemented using VHDL and designed to run on a BASYS 3 FPGA board.
- Clone this repository
- Open the project in your preferred VHDL IDE (e.g., Vivado)
- Synthesize and implement the design
- Program the BASYS 3 board with the generated bitstream
- Use the onboard switches and buttons to input data and control the processor
- Observe the results on the LED outputs and 7-segment display