Pipelined MIPS Processor

Computer Architecture, Simulation

Github: https://github.com/xiemengjie-kay/Pipelined_MIPS_Processor

Design: Register Transfer Logic (RTL), MIPS instruction sets
Hardware Description Language: Verilog
Software Tool: Vivado

I designed and simulated a Pipelined-5-stage MIPS Processor using Verilog on Vivado, incorporating Forwarding and Hazard Detection techniques.

The 5 stages are IF (Instruction Fetch), ID (Instruction Decode), EXE (Execution), MEM (Memory) and WB (Write Back). The pipeline helps to keep all the stages busy at all times. The pipelined datapath is controlled using RTL. There are some situations where hazards happen, so I added the Forwarding units and the required paths to detect the data dependencies and handle data hazards and control hazards. However, there are situations where we cannot avoid delay by forwarding. Then, the pipeline will stall for 1 or more clock cycles, and I added a Hazard Detection unit to detect those situations.

The following two figures show the schematic of the pipelined processor.

a pipelined mips32 processor

a closer look of the pipelined mips32 processor