19-Bit Multi-Cycle Computer
About
This project involves the creation of a unique 19-bit Instruction Set Architecture (ISA) and a corresponding multi-cycle computer. It was designed to implement the ISA using Verilog and aimed at providing a deep understanding of how microprocessors are designed and how they function within digital systems.
Design Objectives
- Custom ISA Development: To design a unique ISA that would support basic computational tasks and learn the principles behind instruction set architecture.
- Real-World Application: To simulate the functionality of real-world computers using a simplified model that can be expanded or modified for educational purposes.
- Hands-On Learning: To offer students and enthusiasts a practical experience in computer architecture and digital design.
Technical Specifications
- ISA Width: 19-bit instruction set capable of accommodating complex commands within a simplified framework.
- Address Bus: 10-bit width supporting up to 1024 unique addresses, balancing simplicity with the capability to handle significant programming tasks.
- Data Bus: 48-bit data width, allowing for robust data handling and operations.
- Registers: Utilizes a 4x48-bit register file, providing sufficient storage for intermediate calculations and operations.
Implementation Details
- Verilog Implementation: All modules were coded and simulated using Verilog, employing tools such as Xilinx ISE and Synopsys for testing and validation.
- Simulation Tasks: The system was tested using two primary programs: a basic addition operation and a loop-based summation, ensuring the functionality and correctness of the implementation.
- Module Design: Detailed design of various modules including ALU, register file, and control unit to handle multiple cycle operations effectively.
Elaborated Design Diagram
coming soon
Educational Impact
- Understanding Core Concepts: By engaging with this project, I gained a thorough understanding of microprocessor operations, from basic logic gates to complex CPU functions.
- Skills Development: Enhanced my skills in digital logic design, Verilog coding, simulation, and problem-solving within the realm of computer engineering.
- Curriculum Integration: This project connected textbook theory with practical application by offering a tangible demonstration of a theoretical concept.
Code Sample
Given that other people are currently doing a similar assignment, i wont be providing all of the code, the following was written in Vivado using the C++ coding language: