- E/20/024, Ariyarathna D.B.S., [[email protected]]
- E/20/242, Malinga G.A.I., [[email protected]]
- E/20/366 , Seneviratne A.P.B.P., [[email protected]]
- Dr. Isuru Nawinna , [[email protected]]
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.
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.
RV32I Base Instructions: Arithmetic, logical, control flow, and load/store operations. M Extension: Multiplication (MUL) and division (DIV) instructions.
Data hazards: Managed through forwarding and stalling mechanisms. Control hazards: Addressed using branch prediction or static/dynamic strategies.
Pipeline balancing to reduce cycle latency. Cache integration for faster memory access.
Implemented using HDL (Verilog or VHDL). Verified using testbenches with RISC-V compliance tests and custom test cases.
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.