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 clockrst: Asynchronous resetregister_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