generated from cepdnaclk/eYY-XXX-project-template
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
ebad0e6
commit 72ff710
Showing
1 changed file
with
76 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,78 @@ | ||
___ | ||
# DELETE THIS INSTRUCTIONS AND ADD A SHORT INTRODUCTION ABOUT YOUR PROJECT | ||
___ | ||
# RV32IM Pipelined Processor | ||
--- | ||
|
||
## Please refer the instructions in below URL: | ||
[comment]: # "This is the standard layout for the project, but you can clean this and use your own template" | ||
|
||
https://projects.ce.pdn.ac.lk/docs/how-to-add-a-project | ||
# RV32IM Pipeline Processor | ||
|
||
--- | ||
|
||
<!-- | ||
This is a sample image, to show how to add images to your page. To learn more options, please refer [this](https://projects.ce.pdn.ac.lk/docs/faq/how-to-add-an-image/) | ||
![Sample Image](./images/sample.png) | ||
--> | ||
|
||
## Team | ||
- E/20/024, Ariyarathna D.B.S., [[email protected]]([email protected]) | ||
- E/20/242, Malinga G.A.I., [[email protected]]([email protected]) | ||
- E/20/366 , Seneviratne A.P.B.P., [[email protected]]([email protected]) | ||
|
||
## Table of Contents | ||
1. [RV32IM Pipeline Processor Design](#RV32IM-Pipeline-Processor-Design) | ||
2. [Key Features of the RV32IM Processor](#key-Features-of-the-RV32IM-Processor) | ||
3. [Links](#links) | ||
|
||
--- | ||
|
||
## RV32IM Pipeline Processor Design | ||
|
||
This project focuses on designing a 32-bit RISC-V RV32IM pipeline processor with five stages: Instruction Fetch (IF), Decode (ID), Execute (EX), Memory Access (MEM), and Write Back (WB). The processor supports the RV32I base instructions and the M-extension for integer multiplication and division. The design emphasizes efficient instruction flow with minimized hazards, utilizing forwarding and stalling for data hazards and branch prediction for control hazards. | ||
|
||
The processor is implemented using Verilog , simulated with tools like ModelSim, and tested using the RISC-V toolchain and compliance tests. Performance optimizations include pipeline balancing and optional cache integration for faster memory access. The project delivers a functional HDL codebase, test results, and optionally, an FPGA prototype. | ||
|
||
This design project enhances understanding of processor architecture, pipelining, and ISA implementation, providing a solid foundation for exploring advanced computer engineering concepts. | ||
|
||
## Key Features of the RV32IM Processor | ||
|
||
### Pipeline Stages: | ||
Instruction Fetch (IF) | ||
Instruction Decode (ID) | ||
Execute (EX) | ||
Memory Access (MEM) | ||
Write Back (WB) | ||
The design ensures efficient instruction flow with minimized hazards and optimized performance. | ||
|
||
### Supported Instruction Set: | ||
RV32I Base Instructions: Arithmetic, logical, control flow, and load/store operations. | ||
M Extension: Multiplication (MUL) and division (DIV) instructions. | ||
|
||
### Hazard Handling: | ||
Data hazards: Managed through forwarding and stalling mechanisms. | ||
Control hazards: Addressed using branch prediction or static/dynamic strategies. | ||
|
||
### Performance Enhancements: | ||
Pipeline balancing to reduce cycle latency. | ||
Cache integration for faster memory access. | ||
|
||
### Simulation and Verification: | ||
Implemented using HDL (Verilog or VHDL). | ||
Verified using testbenches with RISC-V compliance tests and custom test cases. | ||
|
||
### Tools and Technologies: | ||
Hardware Description Language (HDL): Verilog/VHDL for processor implementation. | ||
Simulation Tools: ModelSim, Vivado, or equivalent. | ||
Synthesis Tools: FPGA tools like Quartus or Vivado for hardware prototyping. | ||
RISC-V Toolchain: GCC compiler and spike simulator for program generation and debugging. | ||
|
||
|
||
## Links | ||
|
||
- [Project Repository](https://github.com/cepdnaclk/e20-co502-RV32IM_Pipelined_Processor_Group-05) | ||
- [Project Page](https://cepdnaclk.github.io/e20-co502-RV32IM_Pipelined_Processor_Group-05) | ||
- [Department of Computer Engineering](http://www.ce.pdn.ac.lk/) | ||
- [University of Peradeniya](https://eng.pdn.ac.lk/) | ||
|
||
|
||
[//]: # (Please refer this to learn more about Markdown syntax) | ||
[//]: # (https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) |