Преглед на файлове

Changed behavour of IMMO

Changed for IMMO enable when CI0 is executed to when any other than
CI0,CI1,CI2 instruction is been executed.
Min преди 6 години
родител
ревизия
f78ed1d667
променени са 1 файла, в които са добавени 4 реда и са изтрити 4 реда
  1. 4 4
      src/risc/datapath.sv

+ 4 - 4
src/risc/datapath.sv

@@ -16,12 +16,14 @@ module datapath8(
 	// regiser file outputs
 	word r1, r2;
 	
-	// immidate overrride
+	// immidate override
 	word imo0, imo1, imo2;
-	reg imo0_en, imo1_en, imo2_en, imo_en;	
+	reg imo0_en, imo1_en, imo2_en, imo_en, imo_reg;	
 	reg [23:0] imm;
 
 	always_comb begin
+		imo_reg = imo0_en | imo1_en | imo2_en;
+		imo_en = imo_reg & (cdi.imoctl == IMO_NONE);
 		imm[7:0] = (imo_en & imo2_en) ? imo2 : immr[7:0];
 		imm[15:8] = (imo_en & imo1_en) ? imo1 : immr[15:8];
 		imm[23:16] = (imo_en & imo0_en) ? imo0 : immr[23:16];
@@ -32,12 +34,10 @@ module datapath8(
 			imo0_en <= 0;
 			imo1_en <= 0;
 			imo2_en <= 0;
-			imo_en <= 0;
 		end else case(cdi.imoctl)
 			IMO_0: begin
 				imo0 <= r1;
 				imo0_en <= 1;
-				imo_en <= 1;
 			end
 			IMO_1: begin
 				imo1 <= r1;