GitHunt
AM

Amolpagare10/EE739_Processor_Design

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.

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

Amolpagare10/EE739_Processor_Design | GitHunt