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)