This project implements a 5-staged pipelined processor capable of executing instructions for a RISC-V 32-bit architecture. The processor design adheres to the basic principles of pipelining, enhancing throughput and performance by overlapping instruction execution stages.
- 5-Staged Pipeline: Fetch, Decode, Execute, Memory, Writeback stages.
- Supports RISC-V I-type Instructions: Including arithmetic, logical, load, store, and branch instructions.
- Data and Control Hazards Handling: Forwarding and stalling mechanisms implemented.
- Instruction and Data Memory: Separate instruction and data memory units.
- Instruction Tracing: Verified with an IP tracer to validate instruction execution flow.
Responsible for fetching instructions from memory.
Decodes fetched instructions and reads required registers.
Executes arithmetic, logical, and branch instructions.
Handles load/store operations and accesses data memory.
Writes results back to registers.
- Clone the repository:
git clone https://github.com/theuppercaseguy/Complete-RISCV_5-Staged-Pipelined-Processor.git
- add all source and simulation files to Vivado.
- set TOP_TB as your Top simulation module.
- Run simulations.
- Use Venus to write assembly code and dump it all into the instruction memory file in rtl/Inst_mem.sv.
We'd like to make contributions to improve the processor. To contribute:
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch
). - Make your changes.
- Commit your changes (
git commit -am 'Add new feature'
). - Push to the branch (
git push origin feature-branch
). - Create a new Pull Request.
Please ensure your code adheres to our coding standards.
For questions or feedback, don't hesitate to get in touch with Saad Khan at saadan060@gmail.com