QortalOS Brooklyn for Raspberry Pi 4
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

30 lines
887 B

`include "settings.h"
module Forwarding_Unit (
input enable,
input [`REG_FILE_DEPTH-1:0] src1,
input [`REG_FILE_DEPTH-1:0] src2,
input [`REG_FILE_DEPTH-1:0] MEM_dest,
input [`REG_FILE_DEPTH-1:0] WB_dest,
input MEM_WB_en,
input WB_WB_en,
output reg [1:0] sel_src1,
output reg [1:0] sel_src2
);
always @(*) begin
sel_src1 = `FORWARDING_SEL_NOP;
sel_src2 = `FORWARDING_SEL_NOP;
if(enable) begin
if ((src1 == MEM_dest) && (MEM_WB_en == 1'b1))
sel_src1 = `FORWARDING_SEL_MEM;
else if ((src1 == WB_dest) && (WB_WB_en == 1'b1))
sel_src1 = `FORWARDING_SEL_WB;
if ((src2 == MEM_dest) && (MEM_WB_en == 1'b1))
sel_src2 = `FORWARDING_SEL_MEM;
else if ((src2 == WB_dest) && (WB_WB_en == 1'b1))
sel_src2 = `FORWARDING_SEL_WB;
end
end
endmodule