Skip to content

This repository includes Verilog and VHDL implementations of out-of-order and in-order superscalar processors, featuring reservation stations, pipelines, scoreboarding, and register files to explore instruction-level parallelism and hazard handling.

Notifications You must be signed in to change notification settings

Amolpagare10/EE739_Processor_Design

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

11 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

EE 739 Processor Design

This repository contains all the files pertaining to the assignments and project done by our group.

Group Members:

Out-of-Order Superscalar Processor

This repository contains the Verilog implementation of a pipelined, out-of-order superscalar processor datapath. The design integrates a range of components including reservation stations, reorder buffer, unified register file, ALUs, load/store units, and more.


πŸ“ Repository Structure

β”œβ”€β”€ datapath.v
β”œβ”€β”€ Report
β”œβ”€β”€ ISA.pdf
β”œβ”€β”€ 1. Controller
β”‚ └── controller.v
β”œβ”€β”€ 2. Execution Pipeline
β”‚ β”œβ”€β”€ alu.v
β”‚ β”œβ”€β”€ alu_tb.v
β”‚ β”œβ”€β”€ data_mem.v
β”‚ β”œβ”€β”€ load_buffer.v
β”‚ β”œβ”€β”€ load_buffer tb.v
β”‚ β”œβ”€β”€ Isu.v
β”‚ └── Isu_tb.v
β”œβ”€β”€ 3. Fetch & Decode Stage
β”‚ β”œβ”€β”€ IF_ID_combined.v
β”‚ β”œβ”€β”€ a. Decode
β”‚ β”‚ β”œβ”€β”€ alu_handler.v
β”‚ β”‚ β”œβ”€β”€ branch_handler.v
β”‚ β”‚ β”œβ”€β”€ ID_Stage.v
β”‚ β”‚ β”œβ”€β”€ ID_tb.v
β”‚ β”‚ β”œβ”€β”€ jump_handler.v
β”‚ β”‚ β”œβ”€β”€ lm_sm_handler.v
β”‚ β”‚ β”œβ”€β”€ Isu_handler.v
β”‚ β”‚ └── sign_extender_6_16.v
β”‚ β”œβ”€β”€ b. Fetch
β”‚ β”‚ β”œβ”€β”€ IF.v
β”‚ β”‚ └── IF_tb.v
β”‚ └── c. IF_ID Reg
β”‚ └── IF_ID_reg.v
β”œβ”€β”€ 4. Register Files
β”‚ β”œβ”€β”€ ARF.v
β”‚ β”œβ”€β”€ ARF_tb.v
β”‚ β”œβ”€β”€ RRF.v
β”‚ β”œβ”€β”€ RRF_tb.v
β”‚ └── combined_RF.v
β”œβ”€β”€ 5. Reorder Buffer
β”‚ β”œβ”€β”€ reorder_buffer.v
β”‚ └── ROB_tb.v
β”œβ”€β”€ 6. Reservation Station
β”‚ └── reservation_station.v
β”œβ”€β”€ 7. Writeback Stage
  └── wb_stage.v

πŸš€ Overview

The datapath is designed to:

  • Support dual-issue ALU and LSU pipelines.
  • Schedule and dispatch instructions via reservation stations.
  • Use a unified register file for physical register management (ARF + RRF).
  • Commit instructions in-order via a reorder buffer (ROB).
  • Integrate broadcast forwarding for register value availability.
  • Handle pipeline hazards via controller-generated stall and flush signals.

πŸ”§ Top-Level I/O

Inputs

  • clk: System clock
  • rst: Asynchronous reset
  • register_address [2:0]: Architectural register address to inspect from outside

Outputs

  • register_data [15:0]: Value from ARF corresponding to the input address

In-Order Superscalar Processor

This repository contains the VHDL implementation of an In-Order Superscalar architecture featuring instruction fetch/decode, reservation station, scoreboard-based hazard handling, and multiple execution pipelines. The design is modular and supports instruction-level parallelism, making it ideal for exploring out-of-order execution techniques.


πŸ“ Repository Structure

β”œβ”€β”€ Adderl 6X3.vhdl
β”œβ”€β”€ alu handler.vhdl
β”œβ”€β”€ ALU.vhdl
β”œβ”€β”€ branch handler.vhdl
β”œβ”€β”€ Branch MUX.vhdl
β”œβ”€β”€ cpu.vhdl
β”œβ”€β”€ data_memory.vhdl
β”œβ”€β”€ datapath.vhdl
β”œβ”€β”€ Gates.vhdl
β”œβ”€β”€ ID_Stage.vhdl
β”œβ”€β”€ IF ID combined.vhdl
β”œβ”€β”€ IF_lD_reg.vhdl
β”œβ”€β”€ IF_stage.vhdl
β”œβ”€β”€ instr_memory.vhdl
β”œβ”€β”€ jump_handler.vhdl
β”œβ”€β”€ 1m sm handler.vhdl
β”œβ”€β”€ Isu handler.vhdl
β”œβ”€β”€ P3_reg.vhdl
β”œβ”€β”€ P4_reg.vhdl
β”œβ”€β”€ P5_reg.vhdl
β”œβ”€β”€ pipeline_controller.vhd
β”œβ”€β”€ Register_file.vhdl
β”œβ”€β”€ rs.vhdl
β”œβ”€β”€ scoreboard.vhdl
β”œβ”€β”€ temp_reg.vhdl
└── testbench.vhdl

About

This repository includes Verilog and VHDL implementations of out-of-order and in-order superscalar processors, featuring reservation stations, pipelines, scoreboarding, and register files to explore instruction-level parallelism and hazard handling.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published