module BranchForwardingUnit(Clk, IDEXrd, IFIDrs, IFIDrt, IDEXRegWrite, ForwardC, ForwardD );
input Clk;
input [4:0] IFIDrs, IFIDrt, IDEXrd;
input IDEXRegWrite;
output reg [1:0] ForwardC, ForwardD;
initial begin
ForwardC = 0;
ForwardD = 0;
end
always @(IDEXrd, IFIDrs, IFIDrt, IDEXRegWrite) begin
ForwardC = 0;
ForwardD = 0;
//EX Hazard
if (IDEXRegWrite == 1)
if (IDEXrd != 0)
if (IDEXrd == IFIDrs)
ForwardC = 2'b10;
else if (IDEXrd == IFIDrt)
ForwardD = 2'b10;
endmodule