An implementation of a 32-bit, five-stage pipelined RISC-V processor with base integer extension. Designed in Verilog HDL the processor has pipeline registers and a hazard unit for data forwarding and control hazards.
- ISA: RV32I Base Integer Instruction Set
- Architecture: 5-Stage Pipelined Datapath with Hazard Detection
- Hazard Handling: A hazard unit supporting data forwarding, load-use stalling, and control hazard flushing
- Modularity: Designed separate modules for ALU, Control Unit, Hazard Unit, Register File, and Pipeline Registers for clean separation of concerns
- Reproducible Workflow: Used
Makefile
for automating build processes
Find more information about the datapath architecture in here.
├── doc/ # Documentation (Architecture, Diagrams)
├── hex/ # hex file acting as the instruction mem (*.hex)
├── rtl/ # Verilog RTL source files (*.v)
├── scripts/ # Build and simulation scripts (*.tcl)
├── tb/ # Verilog testbenches
├── LICENSE # MIT License
└── Makefile # Makefile for automating the build process
This project uses a Makefile
to automate all common tasks. All commands must be run from the root directory of the repository.
- Xilinx Vivado Design Suite (e.g., 2024.1 or later)
make
build automation tool
-
Clone the Repository:
git clone [https://github.com/Sreeram-Ramesh/riscv-five-stage-pipelined-core.git](https://github.com/Sreeram-Ramesh/riscv-five-stage-pipelined-core.git) cd riscv-five-stage-pipelined-core
-
Build the Vivado Project: This command generates a fresh Vivado project in the
build/
directory using the provided Tcl script.make
-
Clean the Project: This command completely removes the generated
build/
directory and all log files, ensuring a clean state.make clean
-
Open the Project in the GUI: This command opens the generated project in the Vivado GUI for analysis and simulation.
make gui
- Working on a RISCV SoC that can be implemented on Zynq 7000 SoC.
- Cache hierarchy implementation with cache replacement policies.