Worked on verification
diff --git a/.gitignore b/.gitignore
index 62b8813..144d6b6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,3 +6,4 @@
 *.elf
 *.bin
 *.vvp
+*.idx
diff --git a/macros/bm/sram_1rw1r_32_256_8_sky130.v b/macros/bm/sram_1rw1r_32_256_8_sky130.v
index fc0e454..d87acb8 100644
--- a/macros/bm/sram_1rw1r_32_256_8_sky130.v
+++ b/macros/bm/sram_1rw1r_32_256_8_sky130.v
@@ -54,12 +54,12 @@
     addr0_reg <= addr0;
     din0_reg <= din0;
     dout0 <= 32'bx;
-//`ifdef DBG
+`ifdef DBG1
     if ( !csb0_reg && web0_reg ) 
-      $display($time," Reading %m addr0=%b dout0=%b",addr0_reg,mem[addr0_reg]);
+      $display($time," Reading %m addr0=%X dout0=%X",addr0_reg,mem[addr0_reg]);
     if ( !csb0_reg && !web0_reg )
-      $display($time," Writing %m addr0=%b din0=%b wmask0=%b",addr0_reg,din0_reg,wmask0_reg);
-//`endif 
+      $display($time," Writing %m addr0=%X din0=%X wmask0=%b",addr0_reg,din0_reg,wmask0_reg);
+`endif
    end
 
   reg  csb1_reg;
diff --git a/verilog/dv/caravel/hs32_soc/core1test1/core1.c b/verilog/dv/caravel/hs32_soc/core1test1/core1.c
index 2a6b6a2..9a43a72 100644
--- a/verilog/dv/caravel/hs32_soc/core1test1/core1.c
+++ b/verilog/dv/caravel/hs32_soc/core1test1/core1.c
@@ -1,11 +1,5 @@
 #include "../../defs.h"
 
-/*
-	IO Test:
-		- Configures MPRJ lower 8-IO pins as outputs
-		- Observes counter value through the MPRJ lower 8 IO pins (in the testbench)
-*/
-
 void main()
 {
 	// Reset
@@ -13,6 +7,8 @@
 	reg_la1_ena = 0xFFFFFFFF;    // [63:32]
 	reg_la2_ena = 0xFFFFFFFF;    // [95:64]
 	reg_la3_ena = 0xFFFFFFFF;    // [127:96]
+	
+	// Reset and control bus
 	reg_la0_data = 0b01;
 	reg_la0_data = 0b00;
 
@@ -24,6 +20,10 @@
 	((volatile uint32_t*) 0x30000000)[4] = 0x22010000;
 	((volatile uint32_t*) 0x30000000)[5] = 0x21200000;
 
+	// Release control
+	reg_la0_data = 0b11;
+	reg_la0_data = 0b10;
+
 	// Configure lower 8-IOs as user output
 	// Observe counter value in the testbench
 	reg_mprj_io_0 =  GPIO_MODE_USER_STD_OUTPUT;
diff --git a/verilog/dv/caravel/hs32_soc/core1test1/core1_tb.v b/verilog/dv/caravel/hs32_soc/core1test1/core1_tb.v
index ac36b00..bd68e0d 100644
--- a/verilog/dv/caravel/hs32_soc/core1test1/core1_tb.v
+++ b/verilog/dv/caravel/hs32_soc/core1test1/core1_tb.v
@@ -1,3 +1,5 @@
+`define DBG1
+
 `default_nettype none
 
 `timescale 1 ns / 1 ns
diff --git a/verilog/rtl/hs32_user_proj/hs32_core1.v b/verilog/rtl/hs32_user_proj/hs32_core1.v
index 0883c3e..e940b14 100644
--- a/verilog/rtl/hs32_user_proj/hs32_core1.v
+++ b/verilog/rtl/hs32_user_proj/hs32_core1.v
@@ -116,8 +116,7 @@
     assign cpu_ack = bus_hold ? 0: ack;
 
     reg bsy;
-    assign ram_ce = ~bsy;
-`ifdef SIM
+    assign ram_ce = ~(stb | bsy);
     always @(posedge clk) if(rst)
         bsy <= 0;
     else begin
@@ -125,13 +124,15 @@
             bsy <= 1;
         end else if(ack && bsy) begin
             bsy <= 0;
-        end
-        /*if(!stb && !rw)
-            $display($time, " Reading %X %X", addr, dread);
-        if(!stb && rw)
-            $display($time, " Writing %X %X", addr, dwrite);*/
-    end
+`ifndef DBG1
+            if(rw) begin
+                $display($time, " Writing %X %X", addr, dwrite);
+            end else begin
+                $display($time, " Reading %X %X", addr, dread);
+            end
 `endif
+        end
+    end
 
     //===============================//
     // MMIO and Interrupts
diff --git a/verilog/rtl/hs32cpu b/verilog/rtl/hs32cpu
index 512eeba..0d18a8d 160000
--- a/verilog/rtl/hs32cpu
+++ b/verilog/rtl/hs32cpu
@@ -1 +1 @@
-Subproject commit 512eeba101ecedd60a5466e57a7ef15f5229cd83
+Subproject commit 0d18a8d624373d4b7929d92b7dfcbec2b6c3acd1