Removed unnecessary stall when MatchDE was driven 1 by RdE == 0.

This commit is contained in:
Ross Thompson 2022-12-23 11:45:42 -06:00
parent 98ecd9c77d
commit 30dd86d146

View File

@ -57,7 +57,7 @@ module forward(
end
// Stall on dependent operations that finish in Mem Stage and can't bypass in time
assign MatchDE = (Rs1D == RdE) | (Rs2D == RdE); // Decode-stage instruction source depends on result from execute stage instruction
assign MatchDE = ((Rs1D == RdE) | (Rs2D == RdE)) & (RdE != 5'b0); // Decode-stage instruction source depends on result from execute stage instruction
assign FCvtIntStallD = FCvtIntE & MatchDE; // FPU to Integer transfers have single-cycle latency except fcvt
assign LoadStallD = (MemReadE|SCE) & MatchDE;
assign MDUStallD = MDUE & MatchDE;