@@ -44,8 +44,8 @@ module ForwardUnit
44
44
wire shouldForward2FromExe;
45
45
wire shouldForward1FromMem;
46
46
wire shouldForward2FromMem;
47
- wire shouldForwardMemFromExe ;
48
- wire shouldForwardMemFromMem ;
47
+ wire shouldForwardMemWriteFromExe ;
48
+ wire shouldForwardMemWriteFromMem ;
49
49
reg [31 :0 ] srcOut1;
50
50
reg [31 :0 ] srcOut2;
51
51
reg [31 :0 ] memOut;
@@ -58,10 +58,10 @@ module ForwardUnit
58
58
59
59
assign shouldForward1FromExe = ! ( src1 ^ dest1 ) & WB_En1 & | dest1;
60
60
assign shouldForward2FromExe = ! ( src2 ^ dest1 ) & WB_En1 & (~ Is_Imm | ! (BR_Type ^ BNE_Code)) & | dest1;
61
- assign shouldForwardMemFromExe = ! ( src2 ^ dest1 ) & WB_En1 & mem_W_En & | dest1;
61
+ assign shouldForwardMemWriteFromExe = ! ( src2 ^ dest1 ) & WB_En1 & mem_W_En & | dest1; // st
62
62
assign shouldForward1FromMem = ! ( src1 ^ dest2 ) & WB_En2 & | dest2;
63
63
assign shouldForward2FromMem = ! ( src2 ^ dest2 ) & WB_En2 & (~ Is_Imm | ! (BR_Type ^ BNE_Code)) & | dest2;
64
- assign shouldForwardMemFromMem = ! ( src2 ^ dest2 ) & WB_En2 & mem_W_En & | dest2;
64
+ assign shouldForwardMemWriteFromMem = ! ( src2 ^ dest2 ) & WB_En2 & mem_W_En & | dest2; // st
65
65
assign shouldForward1 = shouldForward1FromExe | shouldForward1FromMem;
66
66
assign shouldForward2 = shouldForward2FromExe | shouldForward2FromMem;
67
67
// build module
@@ -87,10 +87,10 @@ module ForwardUnit
87
87
srcOut2 <= aluResult2;
88
88
end
89
89
90
- if (shouldForwardMemFromExe )
90
+ if (shouldForwardMemWriteFromExe )
91
91
memOut <= aluResult1;
92
92
else
93
- if (shouldForwardMemFromMem )
93
+ if (shouldForwardMemWriteFromMem )
94
94
memOut <= aluResult2;
95
95
else
96
96
memOut <= readdata2;
0 commit comments