RTL updates to fix gl sim
diff --git a/verilog/rtl/caravel.v b/verilog/rtl/caravel.v
index 51d6529..08a6241 100644
--- a/verilog/rtl/caravel.v
+++ b/verilog/rtl/caravel.v
@@ -550,8 +550,8 @@
     // SDO).  The rest are configured to be default (input).
 
     gpio_control_block #(
-	.DM_INIT(3'b110),	// Mode = output, strong up/down
-	.OENB_INIT(1'b1)	// Enable output signaling from wire
+	.DM_INIT(`DM_INIT),	// Mode = output, strong up/down
+	.OENB_INIT(`OENB_INIT)	// Enable output signaling from wire
     ) gpio_control_bidir [1:0] (
     	`ifdef USE_POWER_PINS
 			.vccd(vccd),
diff --git a/verilog/rtl/defines.v b/verilog/rtl/defines.v
index a72f0c8..b9df2bd 100644
--- a/verilog/rtl/defines.v
+++ b/verilog/rtl/defines.v
@@ -21,4 +21,8 @@
 `define RAM_BLOCKS 2
 
 // Clock divisor default value
-`define CLK_DIV 3'b010
\ No newline at end of file
+`define CLK_DIV 3'b010
+
+// GPIO conrol default mode and enable
+`define DM_INIT 3'b110
+`define OENB_INIT 1'b1
\ No newline at end of file
diff --git a/verilog/rtl/gpio_control_block.v b/verilog/rtl/gpio_control_block.v
index 8ccdfdd..9f9ac7a 100644
--- a/verilog/rtl/gpio_control_block.v
+++ b/verilog/rtl/gpio_control_block.v
@@ -38,8 +38,8 @@
     parameter TRIP_INIT = 1'b0,
     parameter IB_INIT = 1'b0,
     parameter IENB_INIT = 1'b0,
-    parameter OENB_INIT = 1'b1,
-    parameter DM_INIT = 3'b001,
+    parameter OENB_INIT = `OENB_INIT,
+    parameter DM_INIT = `DM_INIT,
     parameter AENA_INIT = 1'b0,
     parameter ASEL_INIT = 1'b0,
     parameter APOL_INIT = 1'b0
diff --git a/verilog/rtl/picorv32.v b/verilog/rtl/picorv32.v
index f6e9203..17969b5 100644
--- a/verilog/rtl/picorv32.v
+++ b/verilog/rtl/picorv32.v
@@ -2269,6 +2269,7 @@
 		mul_finish <= 0;
 		if (!resetn) begin
 			mul_waiting <= 1;
+			mul_counter <= 0;
 		end else
 		if (mul_waiting) begin
 			if (instr_rs1_signed)