Skip to content

hawashra/Multi-Cycle-Processor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ–₯️ Multi-Cycle Processor (Custom ISA in Verilog)

A Verilog implementation of a multi-cycle CPU designed as part of the Computer Architecture course at Birzeit University.
This project was developed collaboratively with Saja Shareef and Shereen Ibdah.


πŸš€ Project Overview

The project implements a multi-cycle processor based on a custom instruction set architecture (ISA).
Unlike a single-cycle processor, which executes every instruction in one clock cycle, this design splits execution into multiple stages, allowing efficient reuse of hardware components and a more optimized control structure.

πŸ”‘ Key Features

  • Custom ISA: Designed and implemented a tailored instruction set to support basic computation and memory operations.
  • Multi-Cycle Execution: Instructions executed across stages:
    1. Instruction Fetch (IF)
    2. Instruction Decode (ID)
    3. Execution (EX)
    4. Memory Access (MEM)
    5. Write Back (WB)
  • Finite State Machine (FSM): Control logic designed as an FSM to sequence instruction stages.
  • Hardware Reuse: Single ALU and unified instruction/data memory reused across stages.
  • Modular Design: Processor components implemented as Verilog modules (e.g., ALU, register file, memory, control unit).

βš™οΈ How It Works

  1. Instruction Fetch: Load instruction from memory.
  2. Decode & Register Read: Identify operation and operands.
  3. Execute: Perform ALU operation or compute address.
  4. Memory Access: Read/write from memory (if required).
  5. Write Back: Store result into the register file.

The FSM ensures each stage is executed in sequence across multiple cycles, optimizing hardware utilization.


πŸ› οΈ Technologies Used

  • Verilog HDL – for hardware description and simulation
  • ModelSim / Quartus (or similar tools) – for compiling, simulating, and testing

πŸ‘₯ Contributors


πŸ“– References


πŸ“Œ Notes

This project was developed as an academic exercise to demonstrate understanding of CPU datapath design, instruction set design, and hardware description using Verilog.

About

Architecture course second project (Birzeit University)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors