You are on page 1of 1

5 4 3 2 1

Br_Taken_ID

D clk D
brTaken
rst
clk clk clk
rst rst rst
instruction_31:26 controller controller
opCode
hazard_detected U1
hazard_detected_in 1
mux adderInput adder add4 register PCReg instructionMem instructions
hazard_detected 3 brTaken Br_Taken_ID brTaken_out Br_Taken_EXE
32'd4 sel
in1 in1 clk rst CU2and 2 brTaken_in
rst branchEn
PC PC_IF PC_ID EXE_CMD AND2 EXE_CMD EXE_CMD_ID EXE_CMD EXE_CMD_EXE
adderIn1 adderOut
out out regOut instruction PCIn PC EXE_CMD EXE_CMD_IN
v al2_ID brOf f ser branch_comm branch_comm
brOf f serTimes4 CU2Cond
in2 in2 regIn addr Branch_command
<<2 Is_Imm is_imm
is_imm_out
writeEn Is_Imm
instruction ST_or_BNE ST_or_BNE_out ST_or_BNE
ST_or_BNE
WB_EN WB_EN WB_EN_ID WB_EN WB_EN_EXE WB_EN WB_EN_MEM WB_EN WB_EN_WB
WB_EN WB_EN_IN WB_EN_IN WB_EN_IN
instruction inst_IF inst_ID MEM_R_EN MEM_R_EN MEM_R_EN_ID MEM_R_EN MEM_R_EN_EXE MEM_R_EN MEM_R_EN_MEM MEM_R_EN MEM_R_EN_WB
instructionIn
instruction MEM_R_EN MEM_R_EN_IN MEM_R_EN_IN MEM_R_EN_IN
MEM_W_EN MEM_W_EN MEM_W_EN_ID MEM_W_EN MEM_W_EN_EXE MEM_W_EN MEM_R_EN
dataMem dataMem
MEM_W_EN MEM_W_EN_IN MEM_W_EN_IN
reg1_ID reg1 v al1 v al1_ID v al1 v al1_EXE clk
~f reeze
f reeze v al1_IN rst clk
~f reezef lush rst
conditionChecker conditionChecker
MEM_W_EN_MEM
reg1
inst_ID_25:21 dest dest_EXE dest MEM_W_EN dest dest_WB
hazard_detected destIn v al1_sel v al1_sel destIn writeEn destIn
regFile regFile Cond2and
brCond MEM_R_EN
v al2_sel v al2_sel readEn
clk reg2 reg2_ID ST_v alue ST_v alue_EXE
hazard_detected rst reg2In ST_v al_sel ST_v al_sel dest_MEM

IF_Flush instruction_15:11 mux mux_src2


aluRes
sel
src1_ID in1 cuBranchComm EXE_CMD ALU_res
src1 reg1_ID PC_ID PC PC_EXE PC PC_MEM address WB_res WB_result
reg1 src2_regFile_ID PCIn PCIn
src2_regFile_ID mux_3input mux_val1 dataMem_out_MEM dataMem_out_WB
out v al1 dataMem_out memReadVal
instruction_25:21 sel ALU ALU ALURes_MEM
src2 src2_reg_f ile in1 dataOut memReadValIn memData
in2
ALURes_MEM ALU_res_MEM EXE_CMD ST_v alue
in2 out ALU_v al1 ALUResult ALURes_EXE dataIn
dest_WB instruction_20:16 src1 src1_ID src1_out src1_f orw_EXE aluOut ALURes
dest src1_in WB_result result_WB v al1 ALUResIn
in3
WB_result reg2_ID reg2
C
writeValreg2 v al2
mux_3input mux_val2 ALU_v al2
C
v al2
WB_EN_WB sel
in1
writeEn ALURes ALURes_WB
mux_src2_forw
ALUResIn
sel
in1 in2 out

src2_f orw src2_f orw_ID src2_out src2_f orw_EXE ST_v alue_EXE2MEM STVal ST_v alue_MEM
out src2_in in3 STValIn
5'd0 mux mux_val2
in2
sel
in1

v al2 v al2_ID v al2 v al2_EXE


out v al2In
mux_3input mux_ST_value
ST_v alue_in
sel
in2 in1
signExtend signExtend
ST_v alue_out
in2 out

instruction_15:0
signExt2Mux
in out in3

forwarding forwarding

src1_EXE

src2_EXE

v al1_sel ST_src_EXE

dest_MEM
v al2_sel
B B
dest_WB

ST_v al_sel
WB_EN_MEM

WB_EN_WB

A A

Title
<Title>

Size Document Number Rev


Custom<Doc> <Rev Code>

Date: Tuesday , January 12, 2021 Sheet 1 of 1


5 4 3 2 1

You might also like