Overview

Description
4-stage, single issue, inorder pipelined CPU supports RV32IMF
simply stall the pipeline via PipelineCtrl for the execution or memory access.
Fetch
Decode
Execution
Writeback
Stages
Fetch stage
Determine the next program counter, and fetch instruction from instruction memory.
Next PC is determined according to branch predictor, branch unit, and CSR.
Modules and Logic Blocks
PC
branch predictor
EX next pc logic
branch flush logic
next pc logic
Decode stage
Decode the instruction and get data from Register or FRegister.
Modules and Logic Blocks
ID PipelineRegister
ImmGen
Control
Execution stage
Execute the instruction or perform Memory access.
Modules and Logic Blocks
EX PipelineRegister
ForwardUnit
Input Selecting Mux
EX start logic
EX done logic
Functional Units
Bypass
LSU
ALU
MUL_DIV
FPU
BranchUnit
Exception Handler
CSR
Writeback stage
Write the value to Registers.
Modules and Logic Blocks
WB PipelineRegister
Writeback Mux
Write enable logic