Seperated mgmt and user storage blocks base addresses
diff --git a/verilog/dv/wb_utests/storage_wb/storage_wb_tb.v b/verilog/dv/wb_utests/storage_wb/storage_wb_tb.v
index ccfdf95..4d86f29 100644
--- a/verilog/dv/wb_utests/storage_wb/storage_wb_tb.v
+++ b/verilog/dv/wb_utests/storage_wb/storage_wb_tb.v
@@ -1,17 +1,20 @@
 
 `define MGMT_BLOCKS 2
 `define USER_BLOCKS 4
+`define MGMT_BASE_ADR 32'h 0100_0000
+`define USER_BASE_ADR 32'h 0200_0000
 
-`define BASE_ADR { \
-    {8'h07, {24{1'b0}} }, \   
-    {8'h06, {24{1'b0}} }, \     
-    {8'h05, {24{1'b0}} }, \    
-    {8'h04, {24{1'b0}} }, \    
-    {8'h03, {24{1'b0}} }, \    
-    {8'h02, {24{1'b0}} }, \
-    {8'h01, {24{1'b0}} }  \
+`define MGMT_BLOCKS_ADR { \
+    {24'h 10_0000}, \     
+    {24'h 00_0000} \   
 }\
 
+`define USER_BLOCKS_ADR { \
+    {24'h 00_0000}, \
+    {24'h 10_0000}, \
+    {24'h 20_0000}, \
+    {24'h 30_0000} \    
+}\
 
 // `define DBG
 `include "sram_1rw1r_32_256_8_sky130.v"
@@ -95,7 +98,10 @@
     end
 
     reg [31:0] ref_data [255: 0];
-    reg [32*(`MGMT_BLOCKS+`USER_BLOCKS)-1:0] base_adr = `BASE_ADR;
+    reg [24*(`MGMT_BLOCKS)-1:0] mgmt_blocks_adr = `MGMT_BLOCKS_ADR;
+    reg [24*(`USER_BLOCKS)-1:0] user_blocks_adr = `USER_BLOCKS_ADR;
+
+
     reg [31:0] block_adr;
     integer i,j;
 
@@ -112,7 +118,7 @@
                 if (i == 0) begin
                     ref_data[j] = $urandom_range(0, 2**30);
                 end
-                block_adr = base_adr[32*i+:32] + j;
+                block_adr = mgmt_blocks_adr[24*i+:24] + j | `MGMT_BASE_ADR;
                 mgmt_write(block_adr, ref_data[j]);
                 #2;
             end
@@ -120,7 +126,7 @@
         
         for (i = 0; i< `MGMT_BLOCKS; i = i +1) begin
             for ( j = 0; j < 100; j = j + 1) begin 
-                block_adr = base_adr[32*i+:32] + j;
+                block_adr = mgmt_blocks_adr[24*i+:24] + j | `MGMT_BASE_ADR;
                 mgmt_read(block_adr, 0);
                 if (wb_mgmt_dat_o !== ref_data[j]) begin
                     $display("Monitor: MGMT R/W Operation Failed");
@@ -155,7 +161,7 @@
                     $finish;
                 end
 
-                block_adr = base_adr[32*(i+`MGMT_BLOCKS)+:32] + j;
+                block_adr = user_blocks_adr[24*i+:24] + j | `USER_BASE_ADR;
                 mgmt_read(block_adr,1);
                 if(wb_user_dat_o !== ref_data[j])begin
                     $display("Monitor: MGMT RO Operation Failed");
@@ -264,7 +270,10 @@
     storage_bridge_wb #(
         .USER_BLOCKS(`USER_BLOCKS),
         .MGMT_BLOCKS(`MGMT_BLOCKS),
-        .BASE_ADDR(`BASE_ADR)
+        .MGMT_BASE_ADR(`MGMT_BASE_ADR),
+        .USER_BASE_ADR(`USER_BASE_ADR),
+        .MGMT_BLOCKS_ADR(`MGMT_BLOCKS_ADR),
+        .USER_BLOCKS_ADR(`USER_BLOCKS_ADR)
     ) wb_bridge (
         .wb_clk_i(wb_clk_i),
         .wb_rst_i(wb_rst_i),
diff --git a/verilog/rtl/storage_bridge_wb.v b/verilog/rtl/storage_bridge_wb.v
index 1c89ca5..b8bf2c8 100644
--- a/verilog/rtl/storage_bridge_wb.v
+++ b/verilog/rtl/storage_bridge_wb.v
@@ -1,8 +1,10 @@
 module storage_bridge_wb #(
     parameter USER_BLOCKS = 4, 
-    parameter MGMT_BLOCKS = 2
+    parameter MGMT_BLOCKS = 2,
+    parameter MGMT_BASE_ADR = 32'h 0100_0000,
+    parameter USER_BASE_ADR = 32'h 0200_0000
 ) (
-    // MGMT_AREA R/W WB Interface (#of WB Slaves = MGMT_BLOCKS )
+    // MGMT_AREA R/W WB Interface
     input wb_clk_i,
     input wb_rst_i,
 
@@ -15,7 +17,7 @@
     output reg [1:0] wb_ack_o,
     output reg [31:0] wb_mgmt_dat_o,
 
-    // MGMT_AREA RO WB Interface (USER_BLOCKS)  
+    // MGMT_AREA RO WB Interface   
     output reg [31:0] wb_user_dat_o,
 
     // MGMT Area native memory interface
@@ -26,25 +28,25 @@
     output [31:0] mgmt_wdata,
     input  [(MGMT_BLOCKS*32)-1:0] mgmt_rdata,
 
-    // MGMT_AREA RO Interface (USER_BLOCKS)
+    // MGMT_AREA RO Interface 
     output [USER_BLOCKS-1:0] mgmt_user_ena,
     output [7:0] mgmt_user_addr,
     input  [(USER_BLOCKS*32)-1:0] mgmt_user_rdata
 );
 
-    localparam RAM_BLOCKS = USER_BLOCKS + MGMT_BLOCKS; 
-    parameter [(RAM_BLOCKS*32)-1:0] BASE_ADDR = {
-        // User partition
-        {32'h 0700_0000},
-        {32'h 0600_0000},
-        {32'h 0500_0000},
-        {32'h 0400_0000},
-        {32'h 0300_0000},
-        // MGMT partition
-        {32'h 0200_0000},
-        {32'h 0100_0000}
+    parameter [(MGMT_BLOCKS*24)-1:0] MGMT_BLOCKS_ADR = {
+        {24'h 10_0000},
+        {24'h 00_0000}
     };
-    parameter ADR_MASK = 32'h FF00_0000;
+
+    parameter [(USER_BLOCKS*24)-1:0] USER_BLOCKS_ADR = {
+        {24'h 30_0000},
+        {24'h 20_0000},
+        {24'h 10_0000},
+        {24'h 00_0000}
+    };
+
+    parameter ADR_MASK = 24'h FF_0000;
 
     wire [1:0] valid;
     wire [1:0] wen;
@@ -68,24 +70,30 @@
     end
     
     // Address decoding
-    wire [RAM_BLOCKS-1: 0] ram_sel;
+    wire [MGMT_BLOCKS-1: 0] mgmt_sel;
+    wire [USER_BLOCKS-1: 0] user_sel;
+
+    wire [23:0] test = (wb_adr_i[23:0] & ADR_MASK);
+    wire iste = test ==  MGMT_BLOCKS_ADR[23:0];
     genvar iS;
     generate
-        for (iS = 0; iS < RAM_BLOCKS; iS = iS + 1) begin
-            assign ram_sel[iS] = 
-                ((wb_adr_i & ADR_MASK) == BASE_ADDR[(iS+1)*32-1:iS*32]);
+        for (iS = 0; iS < MGMT_BLOCKS; iS = iS + 1) begin
+            assign mgmt_sel[iS] = 
+                ((wb_adr_i[23:0] & ADR_MASK) == MGMT_BLOCKS_ADR[(iS+1)*24-1:iS*24]);
+        end
+        for (iS = 0; iS < USER_BLOCKS; iS = iS + 1) begin
+            assign user_sel[iS] = 
+                ((wb_adr_i[23:0] & ADR_MASK) == USER_BLOCKS_ADR[(iS+1)*24-1:iS*24]);
         end
     endgenerate
 
     // Management SoC interface
-    assign mgmt_ena = valid[0] ? ~ram_sel[1:0] : {MGMT_BLOCKS{1'b1}}; 
+    assign mgmt_ena = valid[0] ? ~mgmt_sel : {MGMT_BLOCKS{1'b1}}; 
     assign mgmt_wen = ~{MGMT_BLOCKS{wen[0]}};
     assign mgmt_wen_mask = {MGMT_BLOCKS{wen_mask[3:0]}};
     assign mgmt_addr = wb_adr_i[7:0];
     assign mgmt_wdata = wb_dat_i[31:0];
 
-    wire [1:0] mgmt_sel = ram_sel[1:0];
-
     integer i;
     always @(*) begin
         wb_mgmt_dat_o = {32{1'b0}};
@@ -94,11 +102,9 @@
     end
 
     // User Interface
-    assign mgmt_user_ena = valid[1] ? ~ram_sel[5:2] : {USER_BLOCKS{1'b1}}; 
+    assign mgmt_user_ena = valid[1] ? ~user_sel : {USER_BLOCKS{1'b1}}; 
     assign mgmt_user_addr = wb_adr_i[7:0];
     
-    wire [3:0] user_sel = ram_sel [5:2];
-
     integer j;
     always @(*) begin
         wb_user_dat_o = {32{1'b0}};