StallF
StallD
+
+
PCSrcD1 PCSrcD0
BranchD JumpD
ForwardAD ForwardBD
FlushE
ForwardAE ForwardBE
MemtoRegE RegWriteE
RegWriteM
RegW riteW
ALU
EN
CLR
CLR EN
31:28
Instruction Memory
20:16 A2RD20 A3 Register 1
00 01 10
0 SrcBE
1 WriteDataE
Data
Memory
WD 1
4
PCPlus4F
PCPlus4D PCBranchD
25:21 20:16 15:11
RsD RtD RdE
RsE RtE RdE
ALUOutW WriteRegW 4:0
15:0
Sign Extend
SignImmD <<2
Control Unit
RegWriteD MemtoRegD MemWriteD ALUControlD2:0 ALUSrcD RegDstD JumpD BranchD
RegWriteE MemtoRegE MemWriteE ALUControlE2:0 ALUSrcE
RegWriteM MemtoRegM MemWriteM
RegWriteW MemtoRegW
31:26 Op 5:0 Funct
1
RegDstE
CLK
1 1 10
0 PC' 2
PCF
InstrD
25:21
00 01
CLK
CLK
A RD
ALUOutM
ReadDataW
25:0 <<2
WE3 A1RD10
=
SrcAE
WE A RD
WD3 File
WriteDataM
EqualD
CLK
PCSrcD1:0
CLK
CLK
CLK
0
Hazard Unit
0 1
WriteRegE 4:0 SignImmE
WriteRegM 4:0
ResultW
0