Skip to content

ThisaraWeerakoon/Nano_Processor

Repository files navigation

Nano Processor

Implementing a 4 bit nano processor

Overview

As part of the CS1050 - Computer Organization and Digital Design module, This project involves designing and developing a 4-bit processor capable of executing four specific instructions. By completing this project, able to implement:

  • Design and develop a 4-bit arithmetic unit that can add and subtract signed integers.
  • Decode instructions to activate necessary components on the processor.
  • Design and develop k-way b-bit multiplexers or tri-state busses.
  • Verify the functionality of the processor through simulation and implementation on a development board.

Components

  • 4-bit Add/Subtract Unit
    • This unit should be capable of adding and subtracting numbers represented using 2’s complement.
  • 3-bit Adder
    • This unit is used to increment the Program Counter.
  • 3-bit Program Counter (PC)
    • The Program Counter needs to be reset to 0 when required. Build it using D Flip-Flops with a clear/reset input.
  • k-way b-bit Multiplexers
    • A k-way b-bit multiplexer can take in k inputs, each with b bits, rather than a single bit. The output is a group of b bits. There are log2 k control bits, and these control bits are used to select one of the k groups of b bits rather than a single bit.
  • Register Bank
    • Contains 8, 4-bit registers (named R0 to R7).
    • Hardcode value of R0 to all 0s.
  • Program ROM
    • This stores our Assembly program.
  • Buses
    • Used 3, 4, and 12-bit buses to connect components. This had greatly simplified our design rather than running so many wires around. We used labels such as D(3 downto 0), I(11 downto 0), M(3 downto 0), and R(3 downto 0).
  • Instruction Decoder
    • The Instruction Decoder circuit is activating necessary components based on the instructions the user wish to execute

The following table contains the list of functions the shell should support alongside with a brief description of what they are supposed to do.

Awesome README Templates

Block diagram of the nanoprocessor is given below

Awesome README Templates

Practical Operation

See Instructions For Practical Operations.txt for ways to get started.

Report and Documentation

See 'Project Report.pdf'

Demo

WhatsApp.Video.2024-07-06.at.15.49.28.mp4

Contributing

Contributions are always welcome!

📝 License

This project is licensed under MIT license.

👨‍🚀 Show your support

Give a ⭐️ if this project helped you! Example user programs for use.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages