data/full_repos/permissive/519759804/test_delayslot/ForwardingUnit.v
1: b'%Warning-MULTITOP: data/full_repos/permissive/519759804/test_delayslot/ForwardingUnit.v:29: Multiple top level modules\n                                                                                          : ... Suggest see manual; fix the duplicates, or use --top-module to select top.\n                   ... Use "/* verilator lint_off MULTITOP */" and lint_on around source to disable this message.\n                                                                                          : ... Top module \'RAW_Forwarding\'\nmodule RAW_Forwarding(IDEX_Rs, IDEX_Rt, EXMEM_RegWr, EXMEM_RegWrAddr, MEMWB_RegWr, MEMWB_RegWrAddr, ForwardA, ForwardB);\n       ^~~~~~~~~~~~~~\n                                                                                          : ... Top module \'SAL_Forwarding\'\nmodule SAL_Forwarding(EXMEM_MemWr, EXMEM_Rt, MEMWB_MemRead, MEMWB_RegWrAddr, Forward);\n       ^~~~~~~~~~~~~~\n                                                                                          : ... Top module \'JAW_Forwarding\'\nmodule JAW_Forwarding(ID_OpCode, ID_Funct, ID_Rs, IDEX_RegWr, IDEX_RegWrAddr, EXMEM_MemtoReg, EXMEM_RegWr, EXMEM_RegWrAddr, Forward);\n       ^~~~~~~~~~~~~~\n%Error: Exiting due to 1 warning(s)\n'
module JAW_Forwarding(ID_OpCode, ID_Funct, ID_Rs, IDEX_RegWr, IDEX_RegWrAddr, EXMEM_MemtoReg, EXMEM_RegWr, EXMEM_RegWrAddr, Forward);
	input [5:0] ID_OpCode;
	input [5:0] ID_Funct;
	input [4:0] ID_Rs;
	input IDEX_RegWr;
	input [4:0] IDEX_RegWrAddr;
	input [1:0] EXMEM_MemtoReg;
	input EXMEM_RegWr;
	input [4:0] EXMEM_RegWrAddr;
	output [1:0] Forward;
	

	wire conditionjr=ID_OpCode == 6'b0 && (ID_Funct == 6'b001000 || ID_Funct == 6'b001001);

	wire condition1=(EXMEM_MemtoReg == 2'b10);

	wire condition2=(ID_Rs != 0 && EXMEM_RegWr && EXMEM_RegWrAddr == ID_Rs);

	wire condition3=(ID_Rs != 0 && IDEX_RegWr && IDEX_RegWrAddr == ID_Rs);
	assign Forward=!conditionjr?2'b00:
					(condition1?2'b01:
					condition2?2'b11:
					condition3?2'b10:2'b00);
endmodule
module JAW_Forwarding(ID_OpCode, ID_Funct, ID_Rs, IDEX_RegWr, IDEX_RegWrAddr, EXMEM_MemtoReg, EXMEM_RegWr, EXMEM_RegWrAddr, Forward);

	input [5:0] ID_OpCode;
	input [5:0] ID_Funct;
	input [4:0] ID_Rs;
	input IDEX_RegWr;
	input [4:0] IDEX_RegWrAddr;
	input [1:0] EXMEM_MemtoReg;
	input EXMEM_RegWr;
	input [4:0] EXMEM_RegWrAddr;
	output [1:0] Forward;
	

	wire conditionjr=ID_OpCode == 6'b0 && (ID_Funct == 6'b001000 || ID_Funct == 6'b001001);

	wire condition1=(EXMEM_MemtoReg == 2'b10);

	wire condition2=(ID_Rs != 0 && EXMEM_RegWr && EXMEM_RegWrAddr == ID_Rs);

	wire condition3=(ID_Rs != 0 && IDEX_RegWr && IDEX_RegWrAddr == ID_Rs);
	assign Forward=!conditionjr?2'b00:
					(condition1?2'b01:
					condition2?2'b11:
					condition3?2'b10:2'b00);
endmodule