diff --git a/verilog/rtl/digital_core/filelist_rtl.f b/verilog/rtl/digital_core/filelist_rtl.f
index 6b23b18..d22f12e 100755
--- a/verilog/rtl/digital_core/filelist_rtl.f
+++ b/verilog/rtl/digital_core/filelist_rtl.f
@@ -20,6 +20,9 @@
 ../sdram_ctrl/src/core/sdrc_xfr_ctl.v 
 
 ../lib/wb_crossbar.v
+../lib/registers.v
+../lib/clk_ctl.v
+./src/glbl_cfg.sv
 ./src/digital_core.sv
 
 
diff --git a/verilog/rtl/digital_core/src/digital_core.sv b/verilog/rtl/digital_core/src/digital_core.sv
index bc5721a..44448ff 100644
--- a/verilog/rtl/digital_core/src/digital_core.sv
+++ b/verilog/rtl/digital_core/src/digital_core.sv
@@ -62,77 +62,44 @@
         parameter      SDR_BW   = 1,  // SDR Byte Width
 	parameter      WB_WIDTH = 32  // WB ADDRESS/DARA WIDTH
  ) (
-    input   logic                      clk,              // System clock
-    input   logic                      rtc_clk,          // Real-time clock
-    input   logic                      pwrup_rst_n,      // Power-Up Reset
-    input   logic                      cpu_rst_n,        // CPU Reset (Core Reset)
-    input logic                        rst_n,            // Regular Reset signal
+`ifdef USE_POWER_PINS
+    inout vdda1,	// User area 1 3.3V supply
+    inout vdda2,	// User area 2 3.3V supply
+    inout vssa1,	// User area 1 analog ground
+    inout vssa2,	// User area 2 analog ground
+    inout vccd1,	// User area 1 1.8V supply
+    inout vccd2,	// User area 2 1.8v supply
+    inout vssd1,	// User area 1 digital ground
+    inout vssd2,	// User area 2 digital ground
+`endif
+    input   logic                       clk             ,  // System clock
+    input   logic                       rtc_clk         ,  // Real-time clock
+    input   logic                       rst_n           ,  // Regular Reset signal
 
-`ifdef SCR1_DBG_EN
-    output  logic                      sys_rst_n_o,      // External System Reset output
-                                                         //   (for the processor cluster's components or
-                                                         //    external SOC (could be useful in small
-                                                         //    SCR-core-centric SOCs))
-    output  logic                      sys_rdc_qlfy_o,   // System-to-External SOC Reset Domain Crossing Qualifier
-`endif // SCR1_DBG_EN
-    // Fuses
-    input   logic [`SCR1_XLEN-1:0]     fuse_mhartid,     // Hart ID
+    input   logic                       wbd_ext_cyc_i   ,  // strobe/request
+    input   logic                       wbd_ext_stb_i   ,  // strobe/request
+    input   logic [WB_WIDTH-1:0]        wbd_ext_adr_i   ,  // address
+    input   logic                       wbd_ext_we_i    ,  // write
+    input   logic [WB_WIDTH-1:0]        wbd_ext_dat_i   ,  // data output
+    input   logic [3:0]                 wbd_ext_sel_i   ,  // byte enable
+    output  logic [WB_WIDTH-1:0]        wbd_ext_dat_o   ,  // data input
+    output  logic                       wbd_ext_ack_o   ,  // acknowlegement
+    output  logic                       wbd_ext_err_o   ,  // error
 
-`ifdef SCR1_DBG_EN
-    input   logic [31:0]               fuse_idcode,            // TAPC IDCODE
-`endif // SCR1_DBG_EN
-    // IRQ
-`ifdef SCR1_IPIC_EN
-    input   logic [SCR1_IRQ_LINES_NUM-1:0]          irq_lines,              // IRQ lines to IPIC
-`else // SCR1_IPIC_EN
-    input   logic                     ext_irq,                // External IRQ input
-`endif // SCR1_IPIC_EN
-    input   logic                     soft_irq,               // Software IRQ input
+ 
+    // Logic Analyzer Signals
+    input  logic [127:0]                la_data_in      ,
+    output logic [127:0]                la_data_out     ,
+    input  logic [127:0]                la_oenb         ,
+ 
 
-`ifdef SCR1_DBG_EN
-    // -- JTAG I/F
-    input   logic                       trst_n,
-    input   logic                       tck,
-    input   logic                       tms,
-    input   logic                       tdi,
-    output  logic                       tdo,
-    output  logic                       tdo_en,
-`endif // SCR1_DBG_EN
-    input   logic                       wbd_ext_stb_i, // strobe/request
-    input   logic [WB_WIDTH-1:0]        wbd_ext_adr_i, // address
-    input   logic                       wbd_ext_we_i,  // write
-    input   logic [WB_WIDTH-1:0]        wbd_ext_dat_i, // data output
-    input   logic [3:0]                 wbd_ext_sel_i, // byte enable
-    output  logic [WB_WIDTH-1:0]        wbd_ext_dat_o, // data input
-    output  logic                       wbd_ext_ack_o, // acknowlegement
-    output  logic                       wbd_ext_err_o,  // error
+    // IOs
+    input  logic  [37:0]                io_in           ,
+    output logic  [37:0]                io_out          ,
+    output logic  [37:0]                io_oeb          ,
 
-    /* Interface to SDRAMs */
-    output  logic                       sdr_cke,      // SDRAM CKE
-    output  logic			sdr_cs_n,     // SDRAM Chip Select
-    output  logic                       sdr_ras_n,    // SDRAM ras
-    output  logic                       sdr_cas_n,    // SDRAM cas
-    output  logic			sdr_we_n,     // SDRAM write enable
-    output  logic [SDR_BW-1:0] 	        sdr_dqm,      // SDRAM Data Mask
-    output  logic [1:0] 		sdr_ba,       // SDRAM Bank Enable
-    output  logic [12:0] 		sdr_addr,     // SDRAM Address
-    input   logic [SDR_DW-1:0] 	        pad_sdr_din,  // SDRA Data Input
-    output  logic [SDR_DW-1:0] 	        sdr_dout,     // SDRA Data output
-    output  logic [SDR_BW-1:0] 	        sdr_den_n,    // SDRAM Data Output enable
-    input                               sdram_pad_clk,// Sdram clock loop back from pad
+    output logic  [2:0]                 irq             
 
-    // SPI Master I/F
-    output logic                        spim_clk,
-    output logic                        spim_csn0,
-    output logic                        spim_csn1,
-    output logic                        spim_csn2,
-    output logic                        spim_csn3,
-    output logic       [1:0]            spim_mode,
-    input logic        [3:0]            spim_sdi, // SPI Master out
-    output logic       [3:0]            spim_sdo,  // SPI Master out
-    output logic                        spi_en_tx // SPI Pad directional control
-
-    //inout tri        [3:0]              spim_sdio // SPI Master in/out
 );
 
 //---------------------------------------------------
@@ -181,7 +148,7 @@
 //    SPI Master Wishbone Interface
 //---------------------------------------------------------------------
 logic                           wbd_sdram_stb_o ;
-logic [WB_WIDTH-1:0]            wbd_sdram_addr_o;
+logic [WB_WIDTH-1:0]            wbd_sdram_adr_o ;
 logic                           wbd_sdram_we_o  ; // 1 - Write, 0 - Read
 logic [WB_WIDTH-1:0]            wbd_sdram_dat_o ;
 logic [WB_WIDTH/8-1:0]          wbd_sdram_sel_o ; // Byte enable
@@ -194,7 +161,7 @@
 //    Global Register Wishbone Interface
 //---------------------------------------------------------------------
 logic                           wbd_glbl_stb_o; // strobe/request
-logic   [WB_WIDTH-1:0]          wbd_glbl_addr_o; // address
+logic   [WB_WIDTH-1:0]          wbd_glbl_adr_o; // address
 logic                           wbd_glbl_we_o;  // write
 logic   [WB_WIDTH-1:0]          wbd_glbl_dat_o; // data output
 logic   [3:0]                   wbd_glbl_sel_o; // byte enable
@@ -202,6 +169,19 @@
 logic   [WB_WIDTH-1:0]          wbd_glbl_dat_i; // data input
 logic                           wbd_glbl_ack_i; // acknowlegement
 logic                           wbd_glbl_err_i;  // error
+
+
+//----------------------------------------------------
+//  CPU Configuration
+//----------------------------------------------------
+logic                              cpu_rst_n     ;
+logic                              spi_rst_n     ;
+logic                              sdram_rst_n   ;
+
+logic [31:0]                       fuse_mhartid  ;
+logic [15:0]                       irq_lines     ;
+logic                              soft_irq      ;
+
 //------------------------------------------------
 // Configuration Parameter
 //------------------------------------------------
@@ -220,6 +200,50 @@
 logic [`SDR_RFSH_TIMER_W-1 : 0]    cfg_sdr_rfsh        ;
 logic [`SDR_RFSH_ROW_CNT_W -1 : 0] cfg_sdr_rfmax       ;
 
+//----------------------------------------------------------------------
+// Interface to SDRAMs 
+//--------------------------------------------------------------------------
+logic                              sdr_cke             ;  // SDRAM CKE
+logic			           sdr_cs_n            ;  // SDRAM Chip Select
+logic                              sdr_ras_n           ;  // SDRAM ras
+logic                              sdr_cas_n           ;  // SDRAM cas
+logic			           sdr_we_n            ;  // SDRAM write enable
+logic [SDR_BW-1:0] 	           sdr_dqm             ;  // SDRAM Data Mask
+logic [1:0] 		           sdr_ba              ;  // SDRAM Bank Enable
+logic [12:0] 		           sdr_addr            ;  // SDRAM Address
+logic [SDR_DW-1:0] 	           pad_sdr_din         ;  // SDRA Data Input
+logic [SDR_DW-1:0] 	           sdr_dout            ;  // SDRA Data output
+logic [SDR_BW-1:0] 	           sdr_den_n           ;  // SDRAM Data Output enable
+logic                              sdram_clk           ;  // Sdram clock loop back from pad
+logic                              pad_sdram_clk       ;  // Sdram clock loop back from pad
+
+
+assign pad_sdr_din[7:0]      =      io_in[7:0]         ;
+assign io_out     [7:0]      =      sdr_dout[7:0]      ;
+assign io_out     [20:8]     =      sdr_addr[12:0]     ;
+assign io_out     [22:21]    =      sdr_ba[1:0]        ;
+assign io_out     [23]       =      sdr_dqm[0]         ;
+assign io_out     [24]       =      sdr_we_n           ;
+assign io_out     [25]       =      sdr_cas_n          ;
+assign io_out     [26]       =      sdr_ras_n          ;
+assign io_out     [27]       =      sdr_cs_n           ;
+assign io_out     [28]       =      sdr_cke            ;
+assign io_out     [29]       =      sdram_clk          ;
+assign pad_sdram_clk         =      io_in[29]          ;
+
+assign io_oeb     [7:0]      =      sdr_den_n         ;
+assign io_oeb     [20:8]     =      {(13) {1'b0}}      ;
+assign io_oeb     [22:21]    =      {(2) {1'b0}}       ;
+assign io_oeb     [23]       =      1'b0               ;
+assign io_oeb     [24]       =      1'b0               ;
+assign io_oeb     [25]       =      1'b0               ;
+assign io_oeb     [26]       =      1'b0               ;
+assign io_oeb     [27]       =      1'b0               ;
+assign io_oeb     [28]       =      1'b0               ;
+assign io_oeb     [29]       =      1'b0               ;
+
+
+
 //-----------------------------------------------------------
 //  SPI I/F
 //  ////////////////////////////////////////////////////
@@ -231,32 +255,42 @@
 logic                          spim_sdi1               ; // SPI Master Data In[1]
 logic                          spim_sdi2               ; // SPI Master Data In[2]
 logic                          spim_sdi3               ; // SPI Master Data In[3]
+logic                          spim_clk                ;
+logic                          spim_csn                ;
+logic                          spi_en_tx               ;
 
-//`ifdef VERILATOR // Verilator has limited support for bi-di pad
-   assign  spim_sdi0 =   spim_sdi[0];
-   assign  spim_sdi1 =   spim_sdi[1];
-   assign  spim_sdi2 =   spim_sdi[2];
-   assign  spim_sdi3 =   spim_sdi[3];
+assign  spim_sdi0  =  io_in[32];
+assign  spim_sdi1  =  io_in[33];
+assign  spim_sdi2  =  io_in[34];
+assign  spim_sdi3  =  io_in[35];
+
+assign  io_out[30] =  spim_clk;
+assign  io_out[31] =  spim_csn;
+assign  io_out[32] =  spim_sdo0;
+assign  io_out[33] =  spim_sdo1;
+assign  io_out[34] =  spim_sdo2;
+assign  io_out[35] =  spim_sdo3;
    
-   assign  spim_sdo  =   {spim_sdo3,spim_sdo2,spim_sdo1,spim_sdo0};
-//`else 
-//   assign  spim_sdi0 =   spim_sdio[0];
-//   assign  spim_sdi1 =   spim_sdio[1];
-//   assign  spim_sdi2 =   spim_sdio[2];
-//   assign  spim_sdi3 =   spim_sdio[3];
-//
-//   assign  spim_sdio[0]  =  (spi_en_tx) ? spim_sdo0 : 1'bz;
-//   assign  spim_sdio[1]  =  (spi_en_tx) ? spim_sdo1 : 1'bz;
-//   assign  spim_sdio[2]  =  (spi_en_tx) ? spim_sdo2 : 1'bz;
-//   assign  spim_sdio[3]  =  (spi_en_tx) ? spim_sdo3 : 1'bz;
-//
-//`endif
+assign  io_oeb[30] =  1'b0;         // spi_clk
+assign  io_oeb[31] =  1'b0;         // spi_csn
+assign  io_oeb[32] =  !spi_en_tx;   // spi_dio0
+assign  io_oeb[33] =  !spi_en_tx;   // spi_dio1
+assign  io_oeb[34] =  !spi_en_tx;   // spi_dio2
+assign  io_oeb[35] =  !spi_en_tx;   // spi_dio3
+
+
+// for uart
+assign  io_oeb[36] =  1'b1; // Unused
+assign  io_oeb[37] =  1'b1; // Unused
+
+
+
 //------------------------------------------------------------------------------
 // RISC V Core instance
 //------------------------------------------------------------------------------
 scr1_top_wb u_riscv_top (
     // Reset
-    .pwrup_rst_n            (pwrup_rst_n               ),
+    .pwrup_rst_n            (rst_n                     ),
     .rst_n                  (rst_n                     ),
     .cpu_rst_n              (cpu_rst_n                 ),
 `ifdef SCR1_DBG_EN
@@ -276,11 +310,11 @@
 
     // IRQ
 `ifdef SCR1_IPIC_EN
-    .irq_lines              ('0                        ), // TODO - Interrupts
+    .irq_lines              (irq_lines                 ), 
 `else // SCR1_IPIC_EN
-    .ext_irq                ('0                        ), // TODO - Interrupts
+    .ext_irq                (ext_irq                   ), // TODO - Interrupts
 `endif // SCR1_IPIC_EN
-    .soft_irq               ('0                        ), // TODO - Interrupts
+    .soft_irq               (soft_irq                  ), // TODO - Interrupts
 
     // DFT
     .test_mode              (1'b0                      ),
@@ -332,7 +366,7 @@
 ) u_spi_master
 (
     .mclk                   (clk                       ),
-    .rst_n                  (rst_n                     ),
+    .rst_n                  (spi_rst_n                 ),
 
     .wbd_stb_i              (wbd_spim_stb_o            ),
     .wbd_adr_i              (wbd_spim_adr_o            ),
@@ -346,11 +380,11 @@
     .events_o               (                          ), // TODO - Need to connect to intr ?
 
     .spi_clk                (spim_clk                  ),
-    .spi_csn0               (spim_csn0                 ),
-    .spi_csn1               (spim_csn1                 ),
-    .spi_csn2               (spim_csn2                 ),
-    .spi_csn3               (spim_csn3                 ),
-    .spi_mode               (spim_mode                 ),
+    .spi_csn0               (spim_csn                  ),
+    .spi_csn1               (                          ),
+    .spi_csn2               (                          ),
+    .spi_csn3               (                          ),
+    .spi_mode               (                          ),
     .spi_sdo0               (spim_sdo0                 ),
     .spi_sdo1               (spim_sdo1                 ),
     .spi_sdo2               (spim_sdo2                 ),
@@ -373,11 +407,11 @@
     .cfg_colbits            (cfg_colbits               ),
                     
     // WB bus
-    .wb_rst_i               (rst_n                     ),
+    .wb_rst_i               (!rst_n                    ),
     .wb_clk_i               (clk                       ),
     
     .wb_stb_i               (wbd_sdram_stb_o            ),
-    .wb_addr_i              (wbd_sdram_addr_o           ),
+    .wb_addr_i              (wbd_sdram_adr_o            ),
     .wb_we_i                (wbd_sdram_we_o             ),
     .wb_dat_i               (wbd_sdram_dat_o            ),
     .wb_sel_i               (wbd_sdram_sel_o            ),
@@ -389,7 +423,7 @@
 		
     /* Interface to SDRAMs */
     .sdram_clk              (sdram_clk                 ),
-    .sdram_resetn           (sdram_resetn              ),
+    .sdram_resetn           (sdram_rst_n               ),
     .sdr_cs_n               (sdr_cs_n                  ),
     .sdr_cke                (sdr_cke                   ),
     .sdr_ras_n              (sdr_ras_n                 ),
@@ -401,7 +435,7 @@
     .pad_sdr_din            (pad_sdr_din               ), 
     .sdr_dout               (sdr_dout                  ), 
     .sdr_den_n              (sdr_den_n                 ),
-    .sdram_pad_clk          (sdram_pad_clk             ),
+    .sdram_pad_clk          (pad_sdram_clk             ),
                     
     /* Parameters */
     .sdr_init_done          (sdr_init_done             ),
@@ -427,94 +461,154 @@
 // 0x3000_0000 to 0x3000_00FF  - GLOBAL REGISTER
 //-----------------------------
 // 
-wire [3:0] wbd_riscv_imem_tar_id     = (wbd_riscv_imem_adr_i[31:28] == 4'b0000 ) ? 4'b0001 :
-                                       (wbd_riscv_imem_adr_i[31:28] == 4'b0001 ) ? 4'b0001 :
-                                       (wbd_riscv_imem_adr_i[31:28] == 4'b0010 ) ? 4'b0010 :
-                                       (wbd_riscv_imem_adr_i[31:28] == 4'b0011 ) ? 4'b0011 : 4'b0001;
+wire [3:0] wbd_riscv_imem_tar_id     = (wbd_riscv_imem_adr_i[31:16] == 16'h0000 ) ? 4'b0000 :
+                                       (wbd_riscv_imem_adr_i[31:16] == 16'h0041 ) ? 4'b0000 :
+                                       (wbd_riscv_imem_adr_i[31:16] == 16'h0048 ) ? 4'b0001 :// Todo: Temp fix for SDRAM
+                                       (wbd_riscv_imem_adr_i[31:16] == 16'h3000 ) ? 4'b0010 : 4'b0000;
 
-wire [3:0] wbd_riscv_dmem_tar_id     = (wbd_riscv_dmem_adr_i[31:28] == 4'b0000 ) ? 4'b0001 :
-                                       (wbd_riscv_dmem_adr_i[31:28] == 4'b0001 ) ? 4'b0001 :
-                                       (wbd_riscv_dmem_adr_i[31:28] == 4'b0010 ) ? 4'b0010 :
-                                       (wbd_riscv_dmem_adr_i[31:28] == 4'b0011 ) ? 4'b0011 : 4'b0001;
-
-wire [3:0] wbd_ext_tar_id            = (wbd_ext_adr_i[31:28] == 4'b0000 ) ? 4'b0001 :
-                                       (wbd_ext_adr_i[31:28] == 4'b0001 ) ? 4'b0001 :
-                                       (wbd_ext_adr_i[31:28] == 4'b0010 ) ? 4'b0010 :
-                                       (wbd_ext_adr_i[31:28] == 4'b0011 ) ? 4'b0011 : 4'b0001;
-wb_crossbar #(
-    .WB_SLAVE(3),
-    .WB_MASTER(3),
-    .D_WD(32),
-    .BE_WD(4),
-    .ADR_WD(32),
-    .TAR_WD(4)
-   ) u_wb_crossbar(
-
-    .rst_n               (rst_n               ), 
-    .clk                 (clk                 ),
+wire [3:0] wbd_riscv_dmem_tar_id     = (wbd_riscv_dmem_adr_i[31:16] == 16'h0000 ) ? 4'b0000 :
+                                       (wbd_riscv_dmem_adr_i[31:16] == 16'h0041 ) ? 4'b0000 :
+                                       (wbd_riscv_dmem_adr_i[31:16] == 16'h0048 ) ? 4'b0001 : // todo: Temp fix for SDRAM
+                                       (wbd_riscv_dmem_adr_i[31:16] == 16'h3000 ) ? 4'b0010 : 4'b0000;
 
 
-    // Master Interface Signal
-    .wbd_taddr_master    ({wbd_ext_tar_id,
-                           wbd_riscv_dmem_tar_id,
-	                   wbd_riscv_imem_tar_id}),
-    .wbd_din_master      ({wbd_ext_dat_i,
-                          wbd_riscv_dmem_dat_i,
-                          wbd_riscv_imem_dat_i}),
-    .wbd_dout_master     ({wbd_ext_dat_o,
-                          wbd_riscv_dmem_dat_o,
-                          wbd_riscv_imem_dat_o}),
-    .wbd_adr_master      ({wbd_ext_adr_i,
-                          wbd_riscv_dmem_adr_i,
-                          wbd_riscv_imem_adr_i}      ), 
-    .wbd_be_master       ({wbd_ext_sel_i,
-                          wbd_riscv_dmem_sel_i,
-                          wbd_riscv_imem_sel_i}), 
-    .wbd_we_master       ({wbd_ext_we_i,
-                          wbd_riscv_dmem_we_i,
-                          wbd_riscv_imem_we_i}), 
-    .wbd_ack_master      ({wbd_ext_ack_o,
-                          wbd_riscv_dmem_ack_o,
-                          wbd_riscv_imem_ack_o}),
-    .wbd_stb_master      ({wbd_ext_stb_i,
-                           wbd_riscv_dmem_stb_i,
-                           wbd_riscv_imem_stb_i}), 
-    .wbd_cyc_master      ({wbd_ext_stb_i,
-                          wbd_riscv_dmem_stb_i,
-	                  wbd_riscv_imem_stb_i}), 
-    .wbd_err_master      ({wbd_ext_err_o,
-                          wbd_riscv_dmem_err_o,
-                          wbd_riscv_imem_err_o}),
-    .wbd_rty_master      (                    ),
- 
-    // Slave Interface Signal
-    .wbd_din_slave       ({wbd_glbl_dat_o,
-	                  wbd_sdram_dat_o,
-                          wbd_spim_dat_o}     ), 
-    .wbd_dout_slave      ({wbd_glbl_dat_i,
-                          wbd_sdram_dat_i,
-                          wbd_spim_dat_i}     ),
-    .wbd_adr_slave       ({wbd_glbl_addr_o,
-                          wbd_sdram_addr_o,
-                          wbd_spim_adr_o}     ), 
-    .wbd_be_slave        ({wbd_glbl_sel_o,
-                          wbd_sdram_sel_o,
-                          wbd_spim_sel_o}     ), 
-    .wbd_we_slave        ({wbd_glbl_we_o,
-                          wbd_sdram_we_o,
-                          wbd_spim_we_o}      ), 
-    .wbd_ack_slave       ({wbd_glbl_ack_i,
-                          wbd_sdram_ack_i,
-                          wbd_spim_ack_i}     ),
-    .wbd_stb_slave       ({wbd_glbl_stb_o,
-                          wbd_sdram_stb_o,
-                          wbd_spim_stb_o}     ), 
-    .wbd_cyc_slave       ({wbd_glbl_cyc_o,
-                          wbd_sdram_cyc_o,
-                          wbd_spim_cyc_o}      ), 
-    .wbd_err_slave       (3'b0                ),
-    .wbd_rty_slave       (3'b0                )
-         );
+//-------------------------------------------------------------------
+// EXTERNAL MEMORY MAP
+// 0x3000_0000 to 0x3000_00FF -  GLOBAL REGISTER
+// 0x4000_0000 to 0x4FFF_FFFF -  SPI FLASH MEMORY
+// 0x5000_0000 to 0x5000_00FF -  SPI REGISTER
+// 0x6000_0000 to 0x6FFF_FFFF -  SDRAM
+//
+wire [3:0] wbd_ext_tar_id            = (wbd_ext_adr_i[31:28] == 4'b0100 ) ? 4'b0000 :
+                                       (wbd_ext_adr_i[31:28] == 4'b0101 ) ? 4'b0000 :
+                                       (wbd_ext_adr_i[31:28] == 4'b0110 ) ? 4'b0001 :
+                                       (wbd_ext_adr_i[31:28] == 4'b0011 ) ? 4'b0010 : 4'b0000;
+wb_interconnect  u_intercon (
+         .clk_i         (clk), 
+         .rst_n         (rst_n),
+         
+         // Master 0 Interface
+         .m0_wbd_dat_i  (wbd_riscv_imem_dat_i  ),
+         .m0_wbd_adr_i  (wbd_riscv_imem_adr_i  ),
+         .m0_wbd_sel_i  (wbd_riscv_imem_sel_i  ),
+         .m0_wbd_we_i   (wbd_riscv_imem_we_i   ),
+         .m0_wbd_cyc_i  (wbd_riscv_imem_stb_i  ),
+         .m0_wbd_stb_i  (wbd_riscv_imem_stb_i  ),
+         .m0_wbd_tid_i  (wbd_riscv_imem_tar_id ), // target id
+         .m0_wbd_dat_o  (wbd_riscv_imem_dat_o  ),
+         .m0_wbd_ack_o  (wbd_riscv_imem_ack_o  ),
+         .m0_wbd_err_o  (wbd_riscv_imem_err_o  ),
+         
+         // Master 1 Interface
+         .m1_wbd_dat_i  (wbd_riscv_dmem_dat_i  ),
+         .m1_wbd_adr_i  (wbd_riscv_dmem_adr_i  ),
+         .m1_wbd_sel_i  (wbd_riscv_dmem_sel_i  ),
+         .m1_wbd_we_i   (wbd_riscv_dmem_we_i   ),
+         .m1_wbd_cyc_i  (wbd_riscv_dmem_stb_i  ),
+         .m1_wbd_stb_i  (wbd_riscv_dmem_stb_i  ),
+         .m1_wbd_tid_i  (wbd_riscv_dmem_tar_id ), // target id
+         .m1_wbd_dat_o  (wbd_riscv_dmem_dat_o  ),
+         .m1_wbd_ack_o  (wbd_riscv_dmem_ack_o  ),
+         .m1_wbd_err_o  (wbd_riscv_dmem_err_o  ),
+         
+         // Master 2 Interface
+         .m2_wbd_dat_i  (wbd_ext_dat_i  ),
+         .m2_wbd_adr_i  (wbd_ext_adr_i  ),
+         .m2_wbd_sel_i  (wbd_ext_sel_i  ),
+         .m2_wbd_we_i   (wbd_ext_we_i   ),
+         .m2_wbd_cyc_i  (wbd_ext_cyc_i  ),
+         .m2_wbd_stb_i  (wbd_ext_stb_i  ),
+         .m2_wbd_tid_i  (wbd_ext_tar_id ), // target id
+         .m2_wbd_dat_o  (wbd_ext_dat_o  ),
+         .m2_wbd_ack_o  (wbd_ext_ack_o  ),
+         .m2_wbd_err_o  (wbd_ext_err_o  ),
+         
+         
+         // Slave 0 Interface
+         .s0_wbd_err_i  (1'b0           ),
+         .s0_wbd_dat_i  (wbd_spim_dat_i ),
+         .s0_wbd_ack_i  (wbd_spim_ack_i ),
+         .s0_wbd_dat_o  (wbd_spim_dat_o ),
+         .s0_wbd_adr_o  (wbd_spim_adr_o ),
+         .s0_wbd_sel_o  (wbd_spim_sel_o ),
+         .s0_wbd_we_o   (wbd_spim_we_o  ),  
+         .s0_wbd_cyc_o  (wbd_spim_cyc_o ),
+         .s0_wbd_stb_o  (wbd_spim_stb_o ),
+         
+         // Slave 1 Interface
+         .s1_wbd_err_i  (1'b0           ),
+         .s1_wbd_dat_i  (wbd_sdram_dat_i ),
+         .s1_wbd_ack_i  (wbd_sdram_ack_i ),
+         .s1_wbd_dat_o  (wbd_sdram_dat_o ),
+         .s1_wbd_adr_o  (wbd_sdram_adr_o ),
+         .s1_wbd_sel_o  (wbd_sdram_sel_o ),
+         .s1_wbd_we_o   (wbd_sdram_we_o  ),  
+         .s1_wbd_cyc_o  (wbd_sdram_cyc_o ),
+         .s1_wbd_stb_o  (wbd_sdram_stb_o ),
+         
+         // Slave 2 Interface
+         .s2_wbd_err_i  (1'b0           ),
+         .s2_wbd_dat_i  (wbd_glbl_dat_i ),
+         .s2_wbd_ack_i  (wbd_glbl_ack_i ),
+         .s2_wbd_dat_o  (wbd_glbl_dat_o ),
+         .s2_wbd_adr_o  (wbd_glbl_adr_o ),
+         .s2_wbd_sel_o  (wbd_glbl_sel_o ),
+         .s2_wbd_we_o   (wbd_glbl_we_o  ),  
+         .s2_wbd_cyc_o  (wbd_glbl_cyc_o ),
+         .s2_wbd_stb_o  (wbd_glbl_stb_o )
+	);
+
+glbl_cfg   u_glbl_cfg (
+
+       .mclk                   (clk                       ),
+       .reset_n                (rst_n                     ),
+       .device_idcode          (                          ),
+
+        // Reg Bus Interface Signal
+       .reg_cs                 (wbd_glbl_stb_o            ),
+       .reg_wr                 (wbd_glbl_we_o             ),
+       .reg_addr               (wbd_glbl_adr_o[5:2]       ),
+       .reg_wdata              (wbd_glbl_dat_o            ),
+       .reg_be                 (wbd_glbl_sel_o            ),
+
+       // Outputs
+       .reg_rdata              (wbd_glbl_dat_i            ),
+       .reg_ack                (wbd_glbl_ack_i            ),
+
+       // SDRAM Clock
+
+       .sdram_clk              (sdram_clk                 ),
+
+       // reset
+       .cpu_rst_n              (cpu_rst_n                 ),
+       .spi_rst_n              (spi_rst_n                 ),
+       .sdram_rst_n            (sdram_rst_n               ),
+
+       // Risc configuration
+       .fuse_mhartid           (fuse_mhartid              ),
+       .irq_lines              (irq_lines                 ), 
+       .soft_irq               (soft_irq                  ),
+
+       // SDRAM Config
+       .cfg_sdr_width          (cfg_sdr_width             ),
+       .cfg_colbits            (cfg_colbits               ),
+
+	/* Parameters */
+       .sdr_init_done          (sdr_init_done             ),
+       .cfg_req_depth          (cfg_req_depth             ), //how many req. buffer should hold
+       .cfg_sdr_en             (cfg_sdr_en                ),
+       .cfg_sdr_mode_reg       (cfg_sdr_mode_reg          ),
+       .cfg_sdr_tras_d         (cfg_sdr_tras_d            ),
+       .cfg_sdr_trp_d          (cfg_sdr_trp_d             ),
+       .cfg_sdr_trcd_d         (cfg_sdr_trcd_d            ),
+       .cfg_sdr_cas            (cfg_sdr_cas               ),
+       .cfg_sdr_trcar_d        (cfg_sdr_trcar_d           ),
+       .cfg_sdr_twr_d          (cfg_sdr_twr_d             ),
+       .cfg_sdr_rfsh           (cfg_sdr_rfsh              ),
+       .cfg_sdr_rfmax          (cfg_sdr_rfmax             )
+
+
+        );
 
 
 
diff --git a/verilog/rtl/lib/wb_crossbar.v b/verilog/rtl/lib/wb_crossbar.v
index ed7a5ae..76b9981 100644
--- a/verilog/rtl/lib/wb_crossbar.v
+++ b/verilog/rtl/lib/wb_crossbar.v
@@ -361,8 +361,9 @@
       for(i = 0; i < WB_MASTER; i = i + 1) begin
          if(master_busy[i] == 0) begin
             if(wbd_stb_master[i] & slave_busy[wbd_taddr_master_t[i]] == 0) begin
-               slave_busy[wbd_taddr_master_t[i]]   <= 1;
-               master_busy[i]              <= 1;
+	       $display("Locking Master Id: %d for tar_master: %d, Total Master: %x ", i, wbd_taddr_master_t[i], wbd_taddr_master);
+               slave_busy[wbd_taddr_master_t[i]]   = 1;
+               master_busy[i]              = 1;
             end
          end else if(wbd_cyc_master[i] == 0) begin
             master_busy[i]            <= 0;
@@ -380,13 +381,13 @@
                master_mx_id[n] <= wbd_taddr_master_t[n];
                slave_mx_id [wbd_taddr_master_t[n]] <= n;
                // synopsys translate_off
-               // $display("%m:%t: Locking Master : %d with Slave : %d",$time,i,wbd_taddr_master_t[n]);
+                $display("%m:%t: Locking Master : %d with Slave : %d",$time,i,wbd_taddr_master_t[n]);
                // synopsys translate_on
             end
          end else if(wbd_cyc_master[n] == 0) begin
 	    if(master_busy[n] == 1) begin
             // synopsys translate_off
-            //  $display("%m:%t: Releasing Master : %d with Slave : %d",$time,i,wbd_taddr_master_t[n]);
+              $display("%m:%t: Releasing Master : %d with Slave : %d",$time,i,wbd_taddr_master_t[n]);
             // synopsys translate_on
             end
          end
diff --git a/verilog/rtl/sdram_ctrl/src/core/sdrc_core.v b/verilog/rtl/sdram_ctrl/src/core/sdrc_core.v
index 82381d1..d4d9941 100755
--- a/verilog/rtl/sdram_ctrl/src/core/sdrc_core.v
+++ b/verilog/rtl/sdram_ctrl/src/core/sdrc_core.v
@@ -200,6 +200,30 @@
 // Internal Nets
    
 // SDR_REQ_GEN
+wire                    x2a_rdstart;
+wire                    x2a_wrstart;
+wire                    x2a_rdlast;
+wire                    x2a_wrlast;
+wire                    x2a_rdok;
+wire                    x2a_wrnext;
+wire                    x2b_ack;
+wire                    x2b_refresh;
+wire                    x2b_act_ok;
+wire                    x2b_rdok;
+wire                    x2b_wrok;
+wire                    b2x_idle;
+wire                    b2x_req;
+wire                    b2x_start;
+wire                    b2x_last;
+wire                    b2x_wrap;
+wire                    b2x_tras_ok;
+wire                    b2r_ack;
+wire                    b2r_arb_ok;
+wire                    r2b_req;
+wire                    r2b_start;
+wire                    r2b_last;
+wire                    r2b_wrap;
+wire                    r2b_write;
 wire [`SDR_REQ_ID_W-1:0]r2b_req_id;
 wire [1:0] 		r2b_ba;
 wire [12:0] 		r2b_raddr;
@@ -236,6 +260,8 @@
 wire [APP_BW-1:0]        app_wr_en_n;
 wire [SDR_BW-1:0]        a2x_wren_n;
 
+wire                     r2x_idle;
+
 //wire [31:0] app_rd_data;
 wire [SDR_DW-1:0]        x2a_rddt;
 
diff --git a/verilog/rtl/sdram_ctrl/src/core/sdrc_req_gen.v b/verilog/rtl/sdram_ctrl/src/core/sdrc_req_gen.v
index af7b506..3d9edf6 100755
--- a/verilog/rtl/sdram_ctrl/src/core/sdrc_req_gen.v
+++ b/verilog/rtl/sdram_ctrl/src/core/sdrc_req_gen.v
@@ -267,7 +267,7 @@
       r2b_req     = 1'b0;
       next_req_st = `REQ_IDLE;
 
-      case (req_st)      // synopsys full_case parallel_case
+      case (req_st)      
 
 	`REQ_IDLE : begin
 	   r2x_idle = ~req;
diff --git a/verilog/rtl/sdram_ctrl/src/core/sdrc_xfr_ctl.v b/verilog/rtl/sdram_ctrl/src/core/sdrc_xfr_ctl.v
index cd87d26..ef01b9d 100755
--- a/verilog/rtl/sdram_ctrl/src/core/sdrc_xfr_ctl.v
+++ b/verilog/rtl/sdram_ctrl/src/core/sdrc_xfr_ctl.v
@@ -638,7 +638,7 @@
 	     cntr1_tc or trcar_delay or rfsh_row_cnt or ref_req or sdr_init_done
 	     or precharge_ok or sdram_mode_reg) begin 
 
-      case (mgmt_st)          // synopsys full_case parallel_case
+      case (mgmt_st)         
 
 	`MGM_POWERUP : begin
 	   mgmt_idle = 1'b0;
diff --git a/verilog/rtl/spi_master/src/spim_clkgen.sv b/verilog/rtl/spi_master/src/spim_clkgen.sv
index 022b300..2c6b236 100644
--- a/verilog/rtl/spi_master/src/spim_clkgen.sv
+++ b/verilog/rtl/spi_master/src/spim_clkgen.sv
@@ -85,31 +85,46 @@
     	      if(clk_cnt == sck_half_period) 
     	      begin
     		 spi_clk    <= 1'b0;
+    	      end // if (clk_cnt == sck_half_period)
+    	      else if(clk_cnt == cfg_sck_period) begin
+    		    spi_clk    <= 1'b1;
+    	      end 
+    	   end else begin
+    	      spi_clk    <= 1'b1;
+    	   end // else: !if(en)
+    	end // else: !if(!reset_n)
+    end // always @ (posedge clk or negedge reset_n)
+
+    // Generate Free runnng spi_fall and rise pulse
+    // after en is asserted
+    always @(posedge clk or negedge rstn) begin
+    	if(!rstn) begin
+    	   clk_cnt    <= 'h1;
+	   spi_fall   <= 1'b0;
+	   spi_rise   <= 1'b0;
+    	end // if (!reset_n)
+    	else 
+    	begin
+    	   if(clk_cnt == sck_half_period) 
+    	   begin
+	      spi_fall   <= 1'b0;
+	      spi_rise   <= 1'b1;
+    	      clk_cnt    <= clk_cnt + 1'b1;
+    	   end // if (clk_cnt == sck_half_period)
+    	   else begin
+    	      if(clk_cnt == cfg_sck_period) 
+    	      begin
 	         spi_fall   <= 1'b1;
 	         spi_rise   <= 1'b0;
-    		 clk_cnt    <= clk_cnt + 1'b1;
-    	      end // if (clk_cnt == sck_half_period)
-    	      else begin
-    		 if(clk_cnt == cfg_sck_period) 
-    		 begin
-    		    spi_clk    <= 1'b1;
-	            spi_fall   <= 1'b0;
-	            spi_rise   <= 1'b1;
-    		    clk_cnt    <= 'h1;
-    		 end // if (clk_cnt == cfg_sck_period)
-    		 else 
-    		 begin
-    		    clk_cnt    <= clk_cnt + 1'b1;
-	            spi_fall   <= 1'b0;
-	            spi_rise   <= 1'b0;
-    		  end // else: !if(clk_cnt == cfg_sck_period)
-    	      end // else: !if(clk_cnt == sck_half_period)
-    	   end // if (en)
-    	   else begin
-    	      clk_cnt    <= 'h1;
-	      spi_fall   <= 1'b0; 
-	      spi_rise   <= 1'b0;
-    	   end // else: !if(en)
+    	         clk_cnt    <= 'h1;
+    	      end // if (clk_cnt == cfg_sck_period)
+    	      else 
+    	      begin
+    	         clk_cnt    <= clk_cnt + 1'b1;
+	         spi_fall   <= 1'b0;
+	         spi_rise   <= 1'b0;
+    	       end // else: !if(clk_cnt == cfg_sck_period)
+    	   end // else: !if(clk_cnt == sck_half_period)
     	end // else: !if(!reset_n)
     end // always @ (posedge clk or negedge reset_n)
 
diff --git a/verilog/rtl/spi_master/src/spim_ctrl.sv b/verilog/rtl/spi_master/src/spim_ctrl.sv
index 20d2515..95e3dd7 100644
--- a/verilog/rtl/spi_master/src/spim_ctrl.sv
+++ b/verilog/rtl/spi_master/src/spim_ctrl.sv
@@ -51,7 +51,7 @@
 
     input  logic                    [7:0] spi_clk_div,
     input  logic                          spi_clk_div_valid,
-    output logic                    [7:0] spi_status,
+    output logic                    [8:0] spi_status,
 
 
     input  logic                          spi_req,
@@ -133,7 +133,7 @@
 
   enum logic [2:0] {DATA_NULL,DATA_EMPTY,DATA_CMD,DATA_ADDR,DATA_MODE,DATA_FIFO} ctrl_data_mux;
 
-  enum logic [4:0] {IDLE,CMD,ADDR,MODE,DUMMY,DATA_TX,DATA_RX,WAIT_EDGE} state,state_next;
+  enum logic [4:0] {IDLE,CMD,ADDR,MODE,DUMMY_RX,DUMMY_TX,DATA_TX,DATA_RX,WAIT_EDGE} state,state_next;
 
   assign en_quad = spi_qrd | spi_qwr | en_quad_int;
   
@@ -169,7 +169,6 @@
     .data_ready     (                  ),
     .clk_en_o       ( tx_clk_en        )
   );
-
   spim_rx u_rxreg
   (
     .clk            ( clk                    ),
@@ -190,7 +189,6 @@
     .clk_en_o       ( rx_clk_en              )
   );
 
-
   
   always_comb
   begin
@@ -256,7 +254,7 @@
       begin
         spi_status[0] = 1'b1;
         s_spi_mode = SPI_QUAD_RX;
-        if (spi_req)
+        if (spi_req && spi_fall)
         begin
           spi_cs       = 1'b0;
           spi_clock_en = 1'b1;
@@ -299,17 +297,19 @@
                 s_spi_mode = (spi_qrd) ? SPI_QUAD_RX : SPI_STD;
                 if(spi_dummy_rd_len != 0)
                 begin
-                  counter_tx       = en_quad ? {2'b00,spi_dummy_rd_len[13:0]} : spi_dummy_rd_len;
-                  counter_tx_valid = 1'b1;
-                  spi_en_tx        = 1'b1;
+                  counter_rx       = en_quad ? {2'b00,spi_dummy_rd_len[13:0]} : spi_dummy_rd_len;
+                  counter_rx_valid = 1'b1;
+                  spi_en_rx        = 1'b1;
                   ctrl_data_mux    = DATA_EMPTY;
-                  state_next       = DUMMY;
+                  spi_clock_en     = rx_clk_en;
+                  state_next       = DUMMY_RX;
                 end
                 else
                 begin
                    counter_rx       = spi_data_len;
                    counter_rx_valid = 1'b1;
                    spi_en_rx        = 1'b1;
+                   spi_clock_en     = rx_clk_en;
                    state_next       = DATA_RX;
                 end
              end
@@ -322,7 +322,8 @@
                    counter_tx_valid = 1'b1;
                    ctrl_data_mux    = DATA_EMPTY;
                    spi_en_tx        = 1'b1;
-                   state_next       = DUMMY;
+                   spi_clock_en     = tx_clk_en;
+                   state_next       = DUMMY_TX;
                 end
                 else
                 begin
@@ -331,6 +332,7 @@
                    ctrl_data_mux    = DATA_FIFO;
                    ctrl_data_valid  = 1'b0;
                    spi_en_tx        = 1'b1;
+                   spi_clock_en     = tx_clk_en;
                    state_next       = DATA_TX;
                 end
              end
@@ -350,7 +352,7 @@
         spi_clock_en = 1'b1;
 //      s_spi_mode = (en_quad) ? SPI_QUAD_TX : SPI_STD;
         s_spi_mode = SPI_STD; // Command is always Standard Mode ?
-        if (tx_done)
+        if (tx_done && spi_fall)
         begin
           if (spi_addr_len != 0)
           begin
@@ -379,17 +381,19 @@
               s_spi_mode = (en_quad) ? SPI_QUAD_RX : SPI_STD;
               if(spi_dummy_rd_len != 0)
               begin
-                counter_tx       = en_quad ? {2'b00,spi_dummy_rd_len[13:0]} : spi_dummy_rd_len;
-                counter_tx_valid = 1'b1;
-                spi_en_tx        = 1'b1;
+                counter_rx       = en_quad ? {2'b00,spi_dummy_rd_len[13:0]} : spi_dummy_rd_len;
+                counter_rx_valid = 1'b1;
+                spi_en_rx        = 1'b1;
                 ctrl_data_mux    = DATA_EMPTY;
-                state_next       = DUMMY;
+                spi_clock_en     = rx_clk_en;
+                state_next       = DUMMY_RX;
               end
               else
               begin
                 counter_rx       = spi_data_len;
                 counter_rx_valid = 1'b1;
                 spi_en_rx        = 1'b1;
+                spi_clock_en     = rx_clk_en;
                 state_next       = DATA_RX;
               end
             end
@@ -402,7 +406,8 @@
                 counter_tx_valid = 1'b1;
                 ctrl_data_mux    = DATA_EMPTY;
                 spi_en_tx        = 1'b1;
-                state_next       = DUMMY;
+                spi_clock_en     = tx_clk_en;
+                state_next       = DUMMY_TX;
               end
               else
               begin
@@ -411,6 +416,7 @@
                 ctrl_data_mux    = DATA_FIFO;
                 ctrl_data_valid  = 1'b1;
                 spi_en_tx        = 1'b1;
+                spi_clock_en     = tx_clk_en;
                 state_next       = DATA_TX;
               end
             end
@@ -436,7 +442,7 @@
         spi_clock_en  = 1'b1;
         s_spi_mode    = (en_quad) ? SPI_QUAD_TX : SPI_STD;
 
-        if (tx_done)
+        if (tx_done && spi_fall)
         begin
           if (spi_mode_cmd_enb != 0)
           begin
@@ -455,17 +461,19 @@
               s_spi_mode = (en_quad) ? SPI_QUAD_RX : SPI_STD;
               if(spi_dummy_rd_len != 0)
               begin
-                counter_tx       = en_quad ? {2'b00,spi_dummy_rd_len[13:0]} : spi_dummy_rd_len;
-                counter_tx_valid = 1'b1;
-                spi_en_tx        = 1'b1;
+                counter_rx       = en_quad ? {2'b00,spi_dummy_rd_len[13:0]} : spi_dummy_rd_len;
+                counter_rx_valid = 1'b1;
+                spi_en_rx        = 1'b1;
                 ctrl_data_mux    = DATA_EMPTY;
-                state_next       = DUMMY;
+                spi_clock_en     = rx_clk_en;
+                state_next       = DUMMY_RX;
               end
               else
               begin
                 counter_rx       = spi_data_len;
                 counter_rx_valid = 1'b1;
                 spi_en_rx        = 1'b1;
+                spi_clock_en     = rx_clk_en;
                 state_next       = DATA_RX;
               end
             end
@@ -478,12 +486,14 @@
                 counter_tx       = en_quad ? {2'b00,spi_dummy_wr_len[13:0]} : spi_dummy_wr_len;
                 counter_tx_valid = 1'b1;
                 ctrl_data_mux    = DATA_EMPTY;
-                state_next       = DUMMY;
+                spi_clock_en     = tx_clk_en;
+                state_next       = DUMMY_TX;
               end else begin
                 counter_tx       = spi_data_len;
                 counter_tx_valid = 1'b1;
                 ctrl_data_mux    = DATA_FIFO;
                 ctrl_data_valid  = 1'b1;
+                spi_clock_en     = tx_clk_en;
                 state_next       = DATA_TX;
               end
             end
@@ -502,7 +512,7 @@
         spi_cs        = 1'b0;
         spi_clock_en  = 1'b1;
         s_spi_mode    = (en_quad) ? SPI_QUAD_TX : SPI_STD;
-        if (tx_done)
+        if (tx_done && spi_fall)
         begin
           if (spi_data_len != 0)
           begin
@@ -511,17 +521,19 @@
               s_spi_mode = (en_quad) ? SPI_QUAD_RX : SPI_STD;
               if(spi_dummy_rd_len != 0)
               begin
-                counter_tx       = en_quad ? {2'b00,spi_dummy_rd_len[13:0]} : spi_dummy_rd_len;
-                counter_tx_valid = 1'b1;
-                spi_en_tx        = 1'b1;
+                counter_rx       = en_quad ? {2'b00,spi_dummy_rd_len[13:0]} : spi_dummy_rd_len;
+                counter_rx_valid = 1'b1;
+                spi_en_rx        = 1'b1;
                 ctrl_data_mux    = DATA_EMPTY;
-                state_next       = DUMMY;
+                spi_clock_en     = rx_clk_en;
+                state_next       = DUMMY_RX;
               end
               else
               begin
                 counter_rx       = spi_data_len;
                 counter_rx_valid = 1'b1;
                 spi_en_rx        = 1'b1;
+                spi_clock_en     = rx_clk_en;
                 state_next       = DATA_RX;
               end
             end
@@ -534,12 +546,14 @@
                 counter_tx       = en_quad ? {2'b00,spi_dummy_wr_len[13:0]} : spi_dummy_wr_len;
                 counter_tx_valid = 1'b1;
                 ctrl_data_mux    = DATA_EMPTY;
-                state_next       = DUMMY;
+                spi_clock_en     = tx_clk_en;
+                state_next       = DUMMY_TX;
               end else begin
                 counter_tx       = spi_data_len;
                 counter_tx_valid = 1'b1;
                 ctrl_data_mux    = DATA_FIFO;
                 ctrl_data_valid  = 1'b1;
+                spi_clock_en     = tx_clk_en;
                 state_next       = DATA_TX;
               end
             end
@@ -551,7 +565,7 @@
         end
       end
 
-      DUMMY:
+      DUMMY_TX:
       begin
         spi_en_tx     = 1'b1;
         spi_status[4] = 1'b1;
@@ -559,12 +573,13 @@
         spi_clock_en  = 1'b1;
         s_spi_mode    = (en_quad) ? SPI_QUAD_RX : SPI_STD;
 
-        if (tx_done) begin
+        if (tx_done && spi_fall) begin
           if (spi_data_len != 0) begin
             if (do_rx) begin
               counter_rx       = spi_data_len;
               counter_rx_valid = 1'b1;
               spi_en_rx        = 1'b1;
+              spi_clock_en     = rx_clk_en;
               state_next       = DATA_RX;
             end else begin
               counter_tx       = spi_data_len;
@@ -586,21 +601,60 @@
         begin
           ctrl_data_mux = DATA_EMPTY;
           spi_en_tx     = 1'b1;
-          state_next    = DUMMY;
+          state_next    = DUMMY_TX;
         end
       end
 
+      DUMMY_RX:
+      begin
+        spi_en_rx     = 1'b1;
+        spi_status[5] = 1'b1;
+        spi_cs        = 1'b0;
+        spi_clock_en  = 1'b1;
+        s_spi_mode    = (en_quad) ? SPI_QUAD_RX : SPI_STD;
+
+        if (rx_done && spi_rise) begin
+          if (spi_data_len != 0) begin
+            if (do_rx) begin
+              counter_rx       = spi_data_len;
+              counter_rx_valid = 1'b1;
+              spi_en_rx        = 1'b1;
+              spi_clock_en     = rx_clk_en;
+              state_next       = DATA_RX;
+            end else begin
+              counter_tx       = spi_data_len;
+              counter_tx_valid = 1'b1;
+              s_spi_mode       = (en_quad) ? SPI_QUAD_TX : SPI_STD;
+
+              spi_clock_en     = tx_clk_en;
+              spi_en_tx        = 1'b1;
+              state_next       = DATA_TX;
+            end
+          end
+          else
+          begin
+            eot        = 1'b1;
+            state_next = WAIT_EDGE;
+          end
+        end
+        else
+        begin
+          ctrl_data_mux = DATA_EMPTY;
+          spi_en_tx     = 1'b1;
+          spi_clock_en  = rx_clk_en;
+          state_next    = DUMMY_RX;
+        end
+      end
       DATA_TX:
       begin
-        spi_status[5]    = 1'b1;
+        spi_status[6]    = 1'b1;
         spi_cs           = 1'b0;
         spi_clock_en     = tx_clk_en;
         ctrl_data_mux    = DATA_FIFO;
-        ctrl_data_valid  = 1'b1;
         spi_en_tx        = 1'b1;
         s_spi_mode       = (en_quad) ? SPI_QUAD_TX : SPI_STD;
 
-        if (tx_done) begin
+        if (tx_done && spi_fall) begin
           eot          = 1'b1;
           state_next   = WAIT_EDGE;
           spi_clock_en = 1'b0;
@@ -611,12 +665,12 @@
 
       DATA_RX:
       begin
-        spi_status[6] = 1'b1;
+        spi_status[7] = 1'b1;
         spi_cs        = 1'b0;
         spi_clock_en  = rx_clk_en;
         s_spi_mode    = (en_quad) ? SPI_QUAD_RX : SPI_STD;
 
-        if (rx_done) begin
+        if (rx_done && spi_rise) begin
           state_next = WAIT_EDGE;
         end else begin
           spi_en_rx  = 1'b1;
@@ -625,7 +679,7 @@
       end
       WAIT_EDGE:
       begin
-        spi_status[7] = 1'b1;
+        spi_status[8] = 1'b1;
         spi_cs        = 1'b0;
         spi_clock_en  = 1'b0;
         s_spi_mode    = (en_quad) ? SPI_QUAD_RX : SPI_STD;
@@ -635,7 +689,7 @@
     endcase
   end
 
-assign  spi_ack = ((spi_req ==1) && (state_next == WAIT_EDGE)) ? 1'b1 : 1'b0;
+assign  spi_ack = ((spi_req ==1) && (state == WAIT_EDGE)) ? 1'b1 : 1'b0;
 
 
   always_ff @(posedge clk, negedge rstn)
diff --git a/verilog/rtl/spi_master/src/spim_regs.sv b/verilog/rtl/spi_master/src/spim_regs.sv
index 7d06f3e..7e826b6 100644
--- a/verilog/rtl/spi_master/src/spim_regs.sv
+++ b/verilog/rtl/spi_master/src/spim_regs.sv
@@ -66,7 +66,7 @@
 
     output logic                   [7:0] spi_clk_div,
     output logic                         spi_clk_div_valid,
-    input logic                    [7:0] spi_status,
+    input logic                    [8:0] spi_status,
 
     // Towards SPI TX/RX FSM
 
@@ -107,10 +107,12 @@
 parameter REG_STATUS   = 4'b1000;
 
 // Init FSM
-parameter SPI_INIT_IDLE     = 3'b000;
-parameter SPI_INIT_CMD_WAIT = 3'b001;
-parameter SPI_INIT_WRR_CMD  = 3'b010;
-parameter SPI_INIT_WRR_WAIT = 3'b011;
+parameter SPI_INIT_IDLE      = 3'b000;
+parameter SPI_INIT_CMD_WAIT  = 3'b001;
+parameter SPI_INIT_WREN_CMD  = 3'b010;
+parameter SPI_INIT_WREN_WAIT = 3'b011;
+parameter SPI_INIT_WRR_CMD   = 3'b100;
+parameter SPI_INIT_WRR_WAIT  = 3'b101;
 
 //---------------------------------------------------------
 // Variable declartion
@@ -161,8 +163,8 @@
     assign  spi_mode_cmd      =  (spim_mem_req && !spim_wb_we) ? 8'h00                          : reg2spi_mode;       
     assign  spi_mode_cmd_enb  =  (spim_mem_req && !spim_wb_we) ? 1                              : reg2spi_mode_enb;   
     assign  spi_csreg         =  (spim_mem_req && !spim_wb_we) ? '1                             : reg2spi_csreg;     
-    assign  spi_data_len      =  (spim_mem_req && !spim_wb_we) ? 'h10                           : reg2spi_data_len;  
-    assign  spi_dummy_rd_len  =  (spim_mem_req && !spim_wb_we) ? 16                             : reg2spi_dummy_rd_len;  
+    assign  spi_data_len      =  (spim_mem_req && !spim_wb_we) ? 'h20                           : reg2spi_data_len;  
+    assign  spi_dummy_rd_len  =  (spim_mem_req && !spim_wb_we) ? 'h20                           : reg2spi_dummy_rd_len;  
     assign  spi_dummy_wr_len  =  (spim_mem_req && !spim_wb_we) ? 0                              : reg2spi_dummy_wr_len;  
     assign  spi_swrst         =  (spim_mem_req && !spim_wb_we) ? 0                              : reg2spi_swrst;     
     assign  spi_rd            =  (spim_mem_req && !spim_wb_we) ? 0                              : reg2spi_rd;        
@@ -200,27 +202,29 @@
         spim_wb_we    <= '0;
         spim_wb_ack   <= '0;
    end else begin
-        spim_wb_req   <= wbd_stb_i;
-        spim_wb_req_l <= spim_wb_req;
-        spim_wb_wdata <= wbd_dat_i;
-        spim_wb_addr  <= wbd_adr_i;
-        spim_wb_be    <= wbd_sel_i;
-        spim_wb_we    <= wbd_we_i;
-
-
-	// If there is Reg2Spi read Access, Register the Read Data
-	if(reg2spi_req && (reg2spi_rd || reg2spi_qrd ) && spi_ack) 
-             spim_reg_rdata <= spi_rdata;
-
-	if(!spim_wb_we && spim_wb_req && spi_ack) 
-           spim_wb_rdata <= spi_rdata;
-        else
-           spim_wb_rdata <= reg_rdata;
-
+	if(spi_init_done) begin // Wait for internal SPI Init Done
+            spim_wb_req   <= wbd_stb_i && (spi_ack == 0) && (spim_wb_ack==0);
+            spim_wb_req_l <= spim_wb_req;
+            spim_wb_wdata <= wbd_dat_i;
+            spim_wb_addr  <= wbd_adr_i;
+            spim_wb_be    <= wbd_sel_i;
+            spim_wb_we    <= wbd_we_i;
+    
+    
+    	// If there is Reg2Spi read Access, Register the Read Data
+    	if(reg2spi_req && (reg2spi_rd || reg2spi_qrd ) && spi_ack) 
+                 spim_reg_rdata <= spi_rdata;
+    
+    	if(!spim_wb_we && spim_wb_req && spi_ack) 
+               spim_wb_rdata <= spi_rdata;
+            else if (spim_reg_req)
+               spim_wb_rdata <= reg_rdata;
+    
         // For safer design, we have generated ack after 2 cycle latter to 
-	// cross-check current request is towards SPI or not
-        spim_wb_ack   <= (spi_req) ? spi_ack :
-		         ((spim_wb_ack==0) && spim_wb_req && spim_wb_req_l) ;
+    	// cross-check current request is towards SPI or not
+            spim_wb_ack   <= (spi_req && spim_wb_req) ? spi_ack :
+    		         ((spim_wb_ack==0) && spim_wb_req && spim_wb_req_l) ;
+       end
    end
 end
 
@@ -259,7 +263,7 @@
               reg2spi_qwr       <= 'h0;
               reg2spi_swrst     <= 'h0;
               reg2spi_csreg     <= 'h1;
-              reg2spi_cmd[7:0]  <= 'h6; // WREN command
+              reg2spi_cmd[7:0]  <= 'hAB; // POWER UP command
               reg2spi_mode[7:0] <= 'h0;
               reg2spi_cmd_len   <= 'h8;
               reg2spi_addr_len  <= 'h0;
@@ -272,6 +276,30 @@
 	   begin
 	      if(spi_ack)   begin
 	         reg2spi_req      <= 1'b0;
+                 spi_init_state    <=  SPI_INIT_WREN_CMD;
+	      end
+           end
+	   SPI_INIT_WREN_CMD:
+	   begin
+              reg2spi_rd        <= 'h0;
+              reg2spi_wr        <= 'h1; // SPI Write Req
+              reg2spi_qrd       <= 'h0;
+              reg2spi_qwr       <= 'h0;
+              reg2spi_swrst     <= 'h0;
+              reg2spi_csreg     <= 'h1;
+              reg2spi_cmd[7:0]  <= 'h6; // WREN command
+              reg2spi_mode[7:0] <= 'h0;
+              reg2spi_cmd_len   <= 'h8;
+              reg2spi_addr_len  <= 'h0;
+              reg2spi_data_len  <= 'h0;
+              reg2spi_wdata     <= 'h0;
+	      reg2spi_req       <= 'h1;
+              spi_init_state    <=  SPI_INIT_WREN_WAIT;
+	   end
+	   SPI_INIT_WREN_WAIT:
+	   begin
+	      if(spi_ack)   begin
+	         reg2spi_req      <= 1'b0;
                  spi_init_state    <=  SPI_INIT_WRR_CMD;
 	      end
 	   end
@@ -372,38 +400,43 @@
   end 
 
 
+
+  wire [3:0] reg_addr = spim_wb_addr[7:4];
+
   // implement slave model register read mux
   always_comb
     begin
       reg_rdata = '0;
-      case(spim_wb_addr[7:4])
-        REG_CTRL:
-                reg_rdata[31:0] =  { 20'h0, 
-		                     reg2spi_csreg,
-		                     3'b0,
-		                     reg2spi_swrst,
-		                     reg2spi_qwr,
-		                     reg2spi_qrd,
-		                     reg2spi_wr,
-		                     reg2spi_rd};
+      if(spim_reg_req) begin
+          case(reg_addr)
+            REG_CTRL:
+                    reg_rdata[31:0] =  { 20'h0, 
+            	                     reg2spi_csreg,
+            	                     3'b0,
+            	                     reg2spi_swrst,
+            	                     reg2spi_qwr,
+            	                     reg2spi_qrd,
+            	                     reg2spi_wr,
+            	                     reg2spi_rd};
 
-        REG_CLKDIV:
-                reg_rdata[31:0] = {24'h0,spi_clk_div};
-        REG_SPICMD:
-                reg_rdata[31:0] = {16'h0,reg2spi_mode,reg2spi_cmd};
-        REG_SPIADR:
-                reg_rdata[31:0] = reg2spi_addr;
-        REG_SPILEN:
-                reg_rdata[31:0] = {reg2spi_data_len,2'b00,reg2spi_addr_len,1'b0,reg2spi_mode_enb,reg2spi_cmd_len};
-        REG_SPIDUM:
-                reg_rdata[31:0] = {reg2spi_dummy_wr_len,reg2spi_dummy_rd_len};
-        REG_SPIWDATA:
-                reg_rdata[31:0] = reg2spi_wdata;
-        REG_SPIRDATA:
-                reg_rdata[31:0] = spim_reg_rdata;
-        REG_STATUS:
-                reg_rdata[31:0] = {24'h0,spi_status};
-      endcase
+            REG_CLKDIV:
+                    reg_rdata[31:0] = {24'h0,spi_clk_div};
+            REG_SPICMD:
+                    reg_rdata[31:0] = {16'h0,reg2spi_mode,reg2spi_cmd};
+            REG_SPIADR:
+                    reg_rdata[31:0] = reg2spi_addr;
+            REG_SPILEN:
+                    reg_rdata[31:0] = {reg2spi_data_len,2'b00,reg2spi_addr_len,1'b0,reg2spi_mode_enb,reg2spi_cmd_len};
+            REG_SPIDUM:
+                    reg_rdata[31:0] = {reg2spi_dummy_wr_len,reg2spi_dummy_rd_len};
+            REG_SPIWDATA:
+                    reg_rdata[31:0] = reg2spi_wdata;
+            REG_SPIRDATA:
+                    reg_rdata[31:0] = spim_reg_rdata;
+            REG_STATUS:
+                    reg_rdata[31:0] = {23'h0,spi_status};
+          endcase
+       end
     end 
 
 
diff --git a/verilog/rtl/spi_master/src/spim_rx.sv b/verilog/rtl/spi_master/src/spim_rx.sv
index f11c16b..ea0d8a9 100644
--- a/verilog/rtl/spi_master/src/spim_rx.sv
+++ b/verilog/rtl/spi_master/src/spim_rx.sv
@@ -72,7 +72,6 @@
   logic [15:0] counter;
   logic [15:0] counter_trgt;
   logic [15:0] counter_next;
-  logic [15:0] counter_trgt_next;
   logic        reg_done;
   enum logic [1:0] { IDLE, RECEIVE, WAIT_FIFO, WAIT_FIFO_DONE } rx_CS, rx_NS;
 
@@ -81,27 +80,17 @@
 
   // RISV is little endian, so data is converted to little endian format
   assign data = (ENDIEAN) ? data_int_next : {data_int_next[7:0],data_int_next[15:8],data_int_next[23:16],data_int_next[31:24]};
-  assign rx_done = (counter == (counter_trgt-1)) &  rx_edge;
 
-  always_comb
-  begin
-    if (counter_in_upd)
-      counter_trgt_next = (en_quad_in) ? {2'b00,counter_in[15:2]} : counter_in;
-    else
-      counter_trgt_next = counter_trgt;
-  end
 
   always_comb
   begin
     rx_NS         = rx_CS;
-    clk_en_o      = 1'b0;
     data_int_next = data_int;
     data_valid    = 1'b0;
     counter_next  = counter;
 
     case (rx_CS)
       IDLE: begin
-        clk_en_o = 1'b0;
 
         // check first if there is available space instead of later
         if (en) begin
@@ -110,7 +99,6 @@
       end
 
       RECEIVE: begin
-        clk_en_o = 1'b1;
 
         if (rx_edge) begin
           counter_next = counter + 1;
@@ -132,7 +120,6 @@
 
             if (~data_ready) begin
               // no space in the FIFO, wait for free space
-              clk_en_o = 1'b0;
               rx_NS    = WAIT_FIFO;
             end
           end
@@ -161,14 +148,22 @@
       counter      <= 0;
       counter_trgt <= 'h8;
       data_int     <= '0;
+      rx_done      <= '0;
+      clk_en_o     <= '0;
       rx_CS        <= IDLE;
     end
     else
     begin
-      counter      <= counter_next;
-      counter_trgt <= counter_trgt_next;
-      data_int     <= data_int_next;
-      rx_CS        <= rx_NS;
+      if (rx_edge) begin
+         counter      <= counter_next;
+         data_int     <= data_int_next;
+         rx_CS        <= rx_NS;
+         rx_done      <= (counter_next == (counter_trgt-1)) && (rx_NS == RECEIVE);
+         clk_en_o     <= (rx_NS == RECEIVE);
+      end
+       if (en && counter_in_upd) begin
+          counter_trgt <= (en_quad_in) ? {2'b00,counter_in[15:2]} : counter_in;
+	end
     end
   end
 
diff --git a/verilog/rtl/spi_master/src/spim_top.sv b/verilog/rtl/spi_master/src/spim_top.sv
index 079c7e9..67d09de 100644
--- a/verilog/rtl/spi_master/src/spim_top.sv
+++ b/verilog/rtl/spi_master/src/spim_top.sv
@@ -85,7 +85,8 @@
 
     logic   [7:0] spi_clk_div;
     logic         spi_clk_div_valid;
-    logic   [7:0] spi_status;
+    logic         spi_req;
+    logic         spi_ack;
     logic  [31:0] spi_addr;
     logic   [5:0] spi_addr_len;
     logic  [7:0]  spi_cmd;
@@ -109,7 +110,7 @@
     logic  [31:0] spi_data_rx;
     logic         spi_data_rx_valid;
     logic         spi_data_rx_ready;
-    logic   [7:0] spi_ctrl_status;
+    logic   [8:0] spi_ctrl_status;
     logic  [31:0] spi_ctrl_data_tx;
     logic         spi_ctrl_data_tx_valid;
     logic         spi_ctrl_data_tx_ready;
@@ -144,7 +145,7 @@
 
         .spi_clk_div                    (spi_clk_div                  ),
         .spi_clk_div_valid              (spi_clk_div_valid            ),
-        .spi_status                     (spi_status                   ),
+        .spi_status                     (spi_ctrl_status              ),
 
 
         .spi_req                        (spi_req                     ),
diff --git a/verilog/rtl/spi_master/src/spim_tx.sv b/verilog/rtl/spi_master/src/spim_tx.sv
index d3fd332..db6516e 100644
--- a/verilog/rtl/spi_master/src/spim_tx.sv
+++ b/verilog/rtl/spi_master/src/spim_tx.sv
@@ -80,15 +80,6 @@
 
   enum logic [0:0] { IDLE, TRANSMIT } tx_CS, tx_NS;
 
-  // Counter Exit condition, quad mode div-4 , else actual counter
-  always_comb
-  begin
-     counter_trgt = (en_quad_in) ? {2'b00,counter_in[15:2]} : counter_in;
-  end
-
-  //Indicate end of transmission of all the bytes
-  assign tx_done = (counter == counter_trgt) && tx_edge;
-
 
   // Indicate 32 bit data done, usefull for readining next 32b from txfifo
   assign tx32b_done  = (!en_quad && (counter[4:0] == 5'b11111)) || (en_quad && (counter[2:0] == 3'b111)) && tx_edge;
@@ -98,15 +89,14 @@
   always_comb
   begin
     tx_NS         = tx_CS;
-    clk_en_o      = 1'b0;
     data_int_next = data_int;
     data_ready    = 1'b0;
     counter_next  = counter;
 
     case (tx_CS)
       IDLE: begin
-        clk_en_o = 1'b0;
         data_int_next = txdata;
+        counter_next  = '0;
 
         if (en && data_valid) begin
           data_ready    = 1'b1;
@@ -115,27 +105,24 @@
       end
 
       TRANSMIT: begin
-        clk_en_o = 1'b1;
-        counter_next = counter + 1;
-        data_int_next = (en_quad) ? {data_int[27:0],4'b0000} : {data_int[30:0],1'b0};
+       counter_next = counter + 1;
+       data_int_next = (en_quad) ? {data_int[27:0],4'b0000} : {data_int[30:0],1'b0};
 
-        if (tx_done) begin
+      if (tx_done) begin
             counter_next = 0;
-	    // Check if there is next data
+            // Check if there is next data
             if (en && data_valid) begin 
               data_int_next = txdata;
               data_ready    = 1'b1;
               tx_NS         = TRANSMIT;
             end else begin
-              clk_en_o = 1'b0;
               tx_NS    = IDLE;
             end
-        end else if (tx32b_done) begin
+      end else if (tx32b_done) begin
             if (data_valid) begin
               data_int_next = txdata;
               data_ready    = 1'b1;
             end else begin
-              clk_en_o = 1'b0;
               tx_NS    = IDLE;
             end
         end
@@ -151,6 +138,13 @@
       data_int     <= 'h0;
       tx_CS        <= IDLE;
       en_quad      <= 0;
+      tx_done      <= '0;
+      clk_en_o     <= '0;
+      sdo0         <= '0;
+      sdo1         <= '0;
+      sdo2         <= '0;
+      sdo3         <= '0;
+      counter_trgt <= '0;
     end
     else
     begin
@@ -158,12 +152,18 @@
           counter      <= counter_next;
           data_int     <= data_int_next;
           sdo0         <= (en_quad_in) ? data_int_next[28] : data_int_next[31];
-          sdo1         <= (en_quad_in) ? data_int_next[29] : 1'b1;
-          sdo2         <= (en_quad_in) ? data_int_next[30] : 1'b1;
-          sdo3         <= (en_quad_in) ? data_int_next[31] : 1'b1;
+          sdo1         <= (en_quad_in) ? data_int_next[29] : 1'b0;
+          sdo2         <= (en_quad_in) ? data_int_next[30] : 1'b0;
+          sdo3         <= (en_quad_in) ? data_int_next[31] : 1'b0;
           tx_CS        <= tx_NS;
 	  en_quad      <= en_quad_in;
+          tx_done      <= (counter_next == (counter_trgt -1)) && (tx_NS == TRANSMIT);
+          clk_en_o     <= (tx_NS == TRANSMIT);
        end
-    end
+       // Counter Exit condition, quad mode div-4 , else actual counter
+       if (en && data_valid) begin
+          counter_trgt <= (en_quad_in) ? {2'b00,counter_in[15:2]} : counter_in;
+       end
+    end      
   end
 endmodule
diff --git a/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_exu.sv b/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_exu.sv
index b587fa0..9c76c7d 100644
--- a/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_exu.sv
+++ b/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_exu.sv
@@ -104,7 +104,7 @@
     // EXU <-> DMEM interface
     output  logic                               exu2dmem_req_o,             // Data memory request
     output  logic                               exu2dmem_cmd_o,             // Data memory command - cp.7
-    output  type_scr1_mem_width_e               exu2dmem_width_o,           // Data memory width
+    output  logic [1:0]                         exu2dmem_width_o,           // Data memory width
     output  logic [`SCR1_DMEM_AWIDTH-1:0]       exu2dmem_addr_o,            // Data memory address
     output  logic [`SCR1_DMEM_DWIDTH-1:0]       exu2dmem_wdata_o,           // Data memory write data
     input   logic                               dmem2exu_req_ack_i,         // Data memory request acknowledge
@@ -167,10 +167,10 @@
 // Local types declaration
 //------------------------------------------------------------------------------
 
-typedef enum logic {
-    SCR1_CSR_INIT,
-    SCR1_CSR_RDY
-} scr1_csr_access_e;
+//typedef enum logic {
+parameter     SCR1_CSR_INIT = 1'b0;
+parameter     SCR1_CSR_RDY  = 1'b1;
+//} scr1_csr_access_e;
 
 //------------------------------------------------------------------------------
 // Local signals declaration
@@ -280,8 +280,8 @@
 // CSR signals
 //------------------------------------------------------------------------------
 // CSR access register
-scr1_csr_access_e                   csr_access_ff;
-scr1_csr_access_e                   csr_access_next;
+logic                               csr_access_ff;
+logic                               csr_access_next;
 logic                               csr_access_init;
 
 //------------------------------------------------------------------------------
diff --git a/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_ialu.sv b/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_ialu.sv
index 393541d..0cc18e6 100644
--- a/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_ialu.sv
+++ b/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_ialu.sv
@@ -80,17 +80,17 @@
 } type_scr1_ialu_flags_s;
 
  `ifdef SCR1_RVM_EXT
-typedef enum logic [1:0] {
-    SCR1_IALU_MDU_FSM_IDLE,
-    SCR1_IALU_MDU_FSM_ITER,
-    SCR1_IALU_MDU_FSM_CORR
-} type_scr1_ialu_fsm_state;
+//typedef enum logic [1:0] {
+parameter    SCR1_IALU_MDU_FSM_IDLE  = 2'b00;
+parameter    SCR1_IALU_MDU_FSM_ITER  = 2'b01;
+parameter    SCR1_IALU_MDU_FSM_CORR  = 2'b10;
+//} type_scr1_ialu_fsm_state;
 
-typedef enum logic [1:0] {
-   SCR1_IALU_MDU_NONE,
-   SCR1_IALU_MDU_MUL,
-   SCR1_IALU_MDU_DIV
-} type_scr1_ialu_mdu_cmd;
+//typedef enum logic [1:0] {
+parameter   SCR1_IALU_MDU_NONE       = 2'b00;
+parameter   SCR1_IALU_MDU_MUL        = 2'b01;
+parameter   SCR1_IALU_MDU_DIV        = 2'b10;
+//} type_scr1_ialu_mdu_cmd;
  `endif // SCR1_RVM_EXT
 
 //-------------------------------------------------------------------------------
@@ -123,8 +123,8 @@
 logic                                       rem_corr_req;       // Correction request for REM(U) operations
 
 // MUL/DIV FSM signals
-type_scr1_ialu_fsm_state                    mdu_fsm_ff;         // Current FSM state
-type_scr1_ialu_fsm_state                    mdu_fsm_next;       // Next FSM state
+logic [1:0]                                 mdu_fsm_ff;         // Current FSM state
+logic [1:0]                                 mdu_fsm_next;       // Next FSM state
 logic                                       mdu_fsm_idle;       // MDU FSM is in IDLE state
 `ifdef SCR1_TRGT_SIMULATION
 logic                                       mdu_fsm_iter;       // MDU FSM is in ITER state
@@ -132,7 +132,7 @@
 logic                                       mdu_fsm_corr;       // MDU FSM is in CORR state
 
 // MDU command signals
-type_scr1_ialu_mdu_cmd                      mdu_cmd;            // MDU command: 00 - NONE, 01 - MUL,  10 - DIV
+logic [1:0]                                 mdu_cmd;            // MDU command: 00 - NONE, 01 - MUL,  10 - DIV
 logic                                       mdu_cmd_mul;        // MDU command is MUL(HSU)
 logic                                       mdu_cmd_div;        // MDU command is DIV(U)/REM(U)
 logic        [1:0]                          mul_cmd;            // MUL command: 00 - MUL,  01 - MULH, 10 - MULHSU, 11 - MULHU
diff --git a/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_idu.sv b/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_idu.sv
index 86b4d41..8b4ae76 100644
--- a/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_idu.sv
+++ b/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_idu.sv
@@ -57,8 +57,8 @@
 //-------------------------------------------------------------------------------
 
 logic [`SCR1_IMEM_DWIDTH-1:0]       instr;
-type_scr1_instr_type_e              instr_type;
-type_scr1_rvi_opcode_e              rvi_opcode;
+logic [1:0]                         instr_type;
+logic [6:2]                         rvi_opcode;
 logic                               rvi_illegal;
 logic [2:0]                         funct3;
 logic [6:0]                         funct7;
@@ -80,19 +80,10 @@
 assign instr          = ifu2idu_instr_i;
 
 // RVI / RVC
-`ifdef YOSYS
-assign instr_type   = 2'(instr[1:0]);
-`else 
-
-assign instr_type   = type_scr1_instr_type_e'(instr[1:0]);
-`endif
+assign instr_type   = instr[1:0];
 
 // RVI / RVC fields
-`ifdef YOSYS
-assign rvi_opcode   = 5'(instr[6:2]);                          // RVI
-`else 
-assign rvi_opcode   = type_scr1_rvi_opcode_e'(instr[6:2]);                          // RVI
-`endif
+assign rvi_opcode   = instr[6:2];                          // RVI
 assign funct3       = (instr_type == SCR1_INSTR_RVI) ? instr[14:12] : instr[15:13]; // RVI / RVC
 assign funct7       = instr[31:25];                                                 // RVI
 assign funct12      = instr[31:20];                                                 // RVI (SYSTEM)
diff --git a/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_ifu.sv b/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_ifu.sv
index c8f562b..98b5496 100644
--- a/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_ifu.sv
+++ b/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_ifu.sv
@@ -40,10 +40,10 @@
     // IFU <-> IMEM interface
     input   logic                                   imem2ifu_req_ack_i,         // Instruction memory request acknowledgement
     output  logic                                   ifu2imem_req_o,             // Instruction memory request
-    output  type_scr1_mem_cmd_e                     ifu2imem_cmd_o,             // Instruction memory command (READ/WRITE)
+    output  logic                                   ifu2imem_cmd_o,             // Instruction memory command (READ/WRITE)
     output  logic [`SCR1_IMEM_AWIDTH-1:0]           ifu2imem_addr_o,            // Instruction memory address
     input   logic [`SCR1_IMEM_DWIDTH-1:0]           imem2ifu_rdata_i,           // Instruction memory read data
-    input   type_scr1_mem_resp_e                    imem2ifu_resp_i,            // Instruction memory response
+    input   logic [1:0]                             imem2ifu_resp_i,            // Instruction memory response
 
     // IFU <-> EXU New PC interface
     input   logic                                   exu2ifu_pc_new_req_i,       // New PC request (jumps, branches, traps etc)
@@ -88,22 +88,22 @@
 // Local types declaration
 //------------------------------------------------------------------------------
 
-typedef enum logic {
-    SCR1_IFU_FSM_IDLE,
-    SCR1_IFU_FSM_FETCH
-} type_scr1_ifu_fsm_e;
+//typedef enum logic {
+parameter    SCR1_IFU_FSM_IDLE    = 1'b0;
+parameter    SCR1_IFU_FSM_FETCH   = 1'b1;
+//} type_scr1_ifu_fsm_e;
 
-typedef enum logic[1:0] {
-    SCR1_IFU_QUEUE_WR_NONE,      // No write to queue
-    SCR1_IFU_QUEUE_WR_FULL,      // Write 32 rdata bits to queue
-    SCR1_IFU_QUEUE_WR_HI         // Write 16 upper rdata bits to queue
-} type_scr1_ifu_queue_wr_e;
+//typedef enum logic[1:0] {
+parameter    SCR1_IFU_QUEUE_WR_NONE = 2'b00;  // No write to queue
+parameter    SCR1_IFU_QUEUE_WR_FULL = 2'b01;  // Write 32 rdata bits to queue
+parameter    SCR1_IFU_QUEUE_WR_HI   = 2'b10;  // Write 16 upper rdata bits to queue
+//} type_scr1_ifu_queue_wr_e;
 
-typedef enum logic[1:0] {
-    SCR1_IFU_QUEUE_RD_NONE,      // No queue read
-    SCR1_IFU_QUEUE_RD_HWORD,     // Read halfword
-    SCR1_IFU_QUEUE_RD_WORD       // Read word
-} type_scr1_ifu_queue_rd_e;
+//typedef enum logic[1:0] {
+parameter    SCR1_IFU_QUEUE_RD_NONE  = 2'b00; // No queue read
+parameter    SCR1_IFU_QUEUE_RD_HWORD = 2'b01; // Read halfword
+parameter    SCR1_IFU_QUEUE_RD_WORD  = 2'b10; // Read word
+//} type_scr1_ifu_queue_rd_e;
 
 `ifdef SCR1_NO_DEC_STAGE
 typedef enum logic[1:0] {
@@ -114,17 +114,17 @@
 } type_scr1_bypass_e;
 `endif // SCR1_NO_DEC_STAGE
 
-typedef enum logic [2:0] {
+//typedef enum logic [2:0] {
     // SCR1_IFU_INSTR_<UPPER_16_BITS>_<LOWER_16_BITS>
-    SCR1_IFU_INSTR_NONE,                // No valid instruction
-    SCR1_IFU_INSTR_RVI_HI_RVI_LO,       // Full RV32I instruction
-    SCR1_IFU_INSTR_RVC_RVC,
-    SCR1_IFU_INSTR_RVI_LO_RVC,
-    SCR1_IFU_INSTR_RVC_RVI_HI,
-    SCR1_IFU_INSTR_RVI_LO_RVI_HI,
-    SCR1_IFU_INSTR_RVC_NV,              // Instruction after unaligned new_pc
-    SCR1_IFU_INSTR_RVI_LO_NV            // Instruction after unaligned new_pc
-} type_scr1_ifu_instr_e;
+parameter     SCR1_IFU_INSTR_NONE           = 3'b000 ; // No valid instruction
+parameter     SCR1_IFU_INSTR_RVI_HI_RVI_LO  = 3'b001 ; // Full RV32I instruction
+parameter     SCR1_IFU_INSTR_RVC_RVC        = 3'b010 ;
+parameter     SCR1_IFU_INSTR_RVI_LO_RVC     = 3'b011 ;
+parameter     SCR1_IFU_INSTR_RVC_RVI_HI     = 3'b100 ;
+parameter     SCR1_IFU_INSTR_RVI_LO_RVI_HI  = 3'b101 ;
+parameter     SCR1_IFU_INSTR_RVC_NV         = 3'b110 ;  // Instruction after unaligned new_pc
+parameter     SCR1_IFU_INSTR_RVI_LO_NV      = 3'b111 ;  // Instruction after unaligned new_pc
+//} type_scr1_ifu_instr_e;
 
 //------------------------------------------------------------------------------
 // Local signals declaration
@@ -141,7 +141,7 @@
 // IMEM instruction type decoder
 logic                               instr_hi_is_rvi;
 logic                               instr_lo_is_rvi;
-type_scr1_ifu_instr_e               instr_type;
+logic [2:0]                         instr_type;
 
 // Register to store if the previous IMEM instruction had low part of RVI instruction
 // in its high part
@@ -149,11 +149,11 @@
 logic                               instr_hi_rvi_lo_next;
 
 // Queue read/write size decoders
-type_scr1_ifu_queue_rd_e            q_rd_size;
+logic [1:0]                         q_rd_size;
 logic                               q_rd_vd;
 logic                               q_rd_none;
 logic                               q_rd_hword;
-type_scr1_ifu_queue_wr_e            q_wr_size;
+logic [1:0]                         q_wr_size;
 logic                               q_wr_none;
 logic                               q_wr_full;
 
@@ -196,8 +196,8 @@
 logic                               ifu_fetch_req;
 logic                               ifu_stop_req;
 
-type_scr1_ifu_fsm_e                 ifu_fsm_curr;
-type_scr1_ifu_fsm_e                 ifu_fsm_next;
+logic                               ifu_fsm_curr;
+logic                               ifu_fsm_next;
 logic                               ifu_fsm_fetch;
 
 // IMEM signals
diff --git a/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_lsu.sv b/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_lsu.sv
index cb87993..3d75570 100644
--- a/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_lsu.sv
+++ b/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_lsu.sv
@@ -51,31 +51,31 @@
 
     // LSU <-> DMEM interface
     output  logic                               lsu2dmem_req_o,             // Data memory request
-    output  type_scr1_mem_cmd_e                 lsu2dmem_cmd_o,             // Data memory command (READ/WRITE)
-    output  type_scr1_mem_width_e               lsu2dmem_width_o,           // Data memory data width
+    output  logic                               lsu2dmem_cmd_o,             // Data memory command (READ/WRITE)
+    output  logic [1:0]                         lsu2dmem_width_o,           // Data memory data width
     output  logic [`SCR1_DMEM_AWIDTH-1:0]       lsu2dmem_addr_o,            // Data memory address
     output  logic [`SCR1_DMEM_DWIDTH-1:0]       lsu2dmem_wdata_o,           // Data memory write data
     input   logic                               dmem2lsu_req_ack_i,         // Data memory request acknowledge
     input   logic [`SCR1_DMEM_DWIDTH-1:0]       dmem2lsu_rdata_i,           // Data memory read data
-    input   type_scr1_mem_resp_e                dmem2lsu_resp_i             // Data memory response
+    input   logic [1:0]                         dmem2lsu_resp_i             // Data memory response
 );
 
 //------------------------------------------------------------------------------
 // Local types declaration
 //------------------------------------------------------------------------------
 
-typedef enum logic {
-    SCR1_LSU_FSM_IDLE,
-    SCR1_LSU_FSM_BUSY
-} type_scr1_lsu_fsm_e;
+//typedef enum logic {
+parameter  SCR1_LSU_FSM_IDLE = 1'b0;
+parameter  SCR1_LSU_FSM_BUSY = 1'b1;
+//} type_scr1_lsu_fsm_e;
 
 //------------------------------------------------------------------------------
 // Local signals declaration
 //------------------------------------------------------------------------------
 
 // LSU FSM signals
-type_scr1_lsu_fsm_e         lsu_fsm_curr;       // LSU FSM current state
-type_scr1_lsu_fsm_e         lsu_fsm_next;       // LSU FSM next state
+logic                       lsu_fsm_curr;       // LSU FSM current state
+logic                       lsu_fsm_next;       // LSU FSM next state
 logic                       lsu_fsm_idle;       // LSU FSM is in IDLE state
 
 // LSU Command register signals
diff --git a/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_mprf.sv b/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_mprf.sv
index 6cb2a34..89c0b3e 100644
--- a/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_mprf.sv
+++ b/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_mprf.sv
@@ -60,7 +60,7 @@
 logic   [`SCR1_XLEN-1:0]    mprf_int2  [1:`SCR1_MPRF_SIZE-1];
  `endif
 `else  // distributed logic implementation
-type_scr1_mprf_v [1:`SCR1_MPRF_SIZE-1]                  mprf_int;
+logic [`SCR1_XLEN-1:0]      mprf_int [1:`SCR1_MPRF_SIZE-1];
 `endif
 
 //------------------------------------------------------------------------------
diff --git a/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_top.sv b/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_top.sv
index 69ea0d1..4678a9a 100644
--- a/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_top.sv
+++ b/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_pipe_top.sv
@@ -3,6 +3,14 @@
 /// @brief      SCR1 pipeline top
 ///
 
+//----------------------------------------------------------------------------------
+//  project : YiFive
+// Rev: June 10, 2021, Dinesh A
+//           Bugfix- reset correction for scr1_pipe_tdu when debug is not enabled
+//           Note: previously reset rst_n is floating at simulation is failing
+//           when SCR1_DBG_EN is disabled
+//---------------------------------------------------------------------------------
+
 `include "scr1_arch_description.svh"
 `include "scr1_memif.svh"
 `include "scr1_riscv_isa_decoding.svh"
@@ -31,21 +39,21 @@
 
     // Instruction Memory Interface
     output  logic                                       pipe2imem_req_o,            // IMEM request
-    output  type_scr1_mem_cmd_e                         pipe2imem_cmd_o,            // IMEM command
+    output  logic                                       pipe2imem_cmd_o,            // IMEM command
     output  logic [`SCR1_IMEM_AWIDTH-1:0]               pipe2imem_addr_o,           // IMEM address
     input   logic                                       imem2pipe_req_ack_i,        // IMEM request acknowledge
     input   logic [`SCR1_IMEM_DWIDTH-1:0]               imem2pipe_rdata_i,          // IMEM read data
-    input   type_scr1_mem_resp_e                        imem2pipe_resp_i,           // IMEM response
+    input   logic [1:0]                                 imem2pipe_resp_i,           // IMEM response
 
     // Data Memory Interface
     output  logic                                       pipe2dmem_req_o,            // DMEM request
-    output  type_scr1_mem_cmd_e                         pipe2dmem_cmd_o,            // DMEM command
-    output  type_scr1_mem_width_e                       pipe2dmem_width_o,          // DMEM data width
+    output  logic                                       pipe2dmem_cmd_o,            // DMEM command
+    output  logic [1:0]                                 pipe2dmem_width_o,          // DMEM data width
     output  logic [`SCR1_DMEM_AWIDTH-1:0]               pipe2dmem_addr_o,           // DMEM address
     output  logic [`SCR1_DMEM_DWIDTH-1:0]               pipe2dmem_wdata_o,          // DMEM write data
     input   logic                                       dmem2pipe_req_ack_i,        // DMEM request acknowledge
     input   logic [`SCR1_DMEM_DWIDTH-1:0]               dmem2pipe_rdata_i,          // DMEM read data
-    input   type_scr1_mem_resp_e                        dmem2pipe_resp_i,           // DMEM response
+    input   logic [1:0]                                 dmem2pipe_resp_i,           // DMEM response
 
 `ifdef SCR1_DBG_EN
     // Debug interface:
@@ -167,7 +175,7 @@
 logic                                       exu2csr_take_exc;       // Take exception trap
 logic                                       exu2csr_mret_update;    // MRET update CSR
 logic                                       exu2csr_mret_instr;     // MRET instruction
-type_scr1_exc_code_e                        exu2csr_exc_code;       // Exception code (see scr1_arch_types.svh)
+logic [SCR1_EXC_CODE_WIDTH_E-1:0]           exu2csr_exc_code;       // Exception code (see scr1_arch_types.svh)
 logic [`SCR1_XLEN-1:0]                      exu2csr_trap_val;       // Trap value
 logic [`SCR1_XLEN-1:0]                      csr2exu_new_pc;         // Exception/IRQ/MRET new PC
 logic                                       csr2exu_irq;            // IRQ request
@@ -589,7 +597,7 @@
  `ifdef SCR1_DBG_EN
     .rst_n                      (dbg_rst_n             ),
  `else
-    .rst_n                      (rst_n                 ),
+    .rst_n                      (pipe_rst_n            ), // dinesh-a: Bugfix- reset correction when debug is not enabled
  `endif // SCR1_DBG_EN
     .clk                        (clk                   ),
     .clk_en                     (1'b1                  ),
diff --git a/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_tracelog.sv b/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_tracelog.sv
index 1d86001..5682cee 100644
--- a/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_tracelog.sv
+++ b/verilog/rtl/syntacore/scr1/src/core/pipeline/scr1_tracelog.sv
@@ -18,7 +18,7 @@
 `ifdef  SCR1_MPRF_RAM
     input   logic   [`SCR1_XLEN-1:0]            mprf2trace_int_i   [1:`SCR1_MPRF_SIZE-1], // MPRF registers content
 `else // SCR1_MPRF_RAM
-    input   type_scr1_mprf_v [1:`SCR1_MPRF_SIZE-1] mprf2trace_int_i,             // MPRF registers content
+    logic [`SCR1_XLEN-1:0]                      mprf2trace_int_i[1:`SCR1_MPRF_SIZE-1],             // MPRF registers content
 `endif // SCR1_MPRF_RAM
     input   logic                                 mprf2trace_wr_en_i,           // MPRF write enable
     input   logic [`SCR1_MPRF_AWIDTH-1:0]         mprf2trace_wr_addr_i,         // MPRF write address
@@ -48,7 +48,7 @@
     input   logic [`SCR1_XLEN-1:2]                csr2trace_mepc_i,             // CSR MEPC register
  `endif // SCR1_RVC_EXT
     input   logic                                 csr2trace_mcause_irq_i,       // CSR MCAUSE.interrupt bit
-    input   type_scr1_exc_code_e                  csr2trace_mcause_ec_i,        // CSR MCAUSE.exception_code bit
+    input   [SCR1_EXC_CODE_WIDTH_E-1:0]           csr2trace_mcause_ec_i,        // CSR MCAUSE.exception_code bit
     input   logic [`SCR1_XLEN-1:0]                csr2trace_mtval_i,            // CSR MTVAL register
     input   logic                                 csr2trace_mstatus_mie_up_i,   // CSR MSTATUS.mie update flag
 
@@ -430,7 +430,7 @@
 `else // SCR1_RVC_EXT
                               {csr2trace_mepc_i, 2'b00};
 `endif // SCR1_RVC_EXT
-    csr_trace1.mcause       = {csr2trace_mcause_irq_i, type_scr1_csr_mcause_ec_v'(csr2trace_mcause_ec_i)};
+    csr_trace1.mcause       = {csr2trace_mcause_irq_i, csr2trace_mcause_ec_i};
     csr_trace1.mtval        = csr2trace_mtval_i;
 
     csr_trace1.mstatus      = '0;
diff --git a/verilog/rtl/syntacore/scr1/src/core/scr1_core_top.sv b/verilog/rtl/syntacore/scr1/src/core/scr1_core_top.sv
index 582e4bb..ba156f3 100644
--- a/verilog/rtl/syntacore/scr1/src/core/scr1_core_top.sv
+++ b/verilog/rtl/syntacore/scr1/src/core/scr1_core_top.sv
@@ -63,20 +63,20 @@
     // Instruction Memory Interface
     input   logic                                   imem2core_req_ack_i,        // IMEM request acknowledge
     output  logic                                   core2imem_req_o,            // IMEM request
-    output  type_scr1_mem_cmd_e                     core2imem_cmd_o,            // IMEM command
+    output  logic                                   core2imem_cmd_o,            // IMEM command
     output  logic [`SCR1_IMEM_AWIDTH-1:0]           core2imem_addr_o,           // IMEM address
     input   logic [`SCR1_IMEM_DWIDTH-1:0]           imem2core_rdata_i,          // IMEM read data
-    input   type_scr1_mem_resp_e                    imem2core_resp_i,           // IMEM response
+    input   logic [1:0]                             imem2core_resp_i,           // IMEM response
 
     // Data Memory Interface
     input   logic                                   dmem2core_req_ack_i,        // DMEM request acknowledge
     output  logic                                   core2dmem_req_o,            // DMEM request
-    output  type_scr1_mem_cmd_e                     core2dmem_cmd_o,            // DMEM command
-    output  type_scr1_mem_width_e                   core2dmem_width_o,          // DMEM data width
+    output  logic                                   core2dmem_cmd_o,            // DMEM command
+    output  logic[1:0]                             core2dmem_width_o,          // DMEM data width
     output  logic [`SCR1_DMEM_AWIDTH-1:0]           core2dmem_addr_o,           // DMEM address
     output  logic [`SCR1_DMEM_DWIDTH-1:0]           core2dmem_wdata_o,          // DMEM write data
     input   logic [`SCR1_DMEM_DWIDTH-1:0]           dmem2core_rdata_i,          // DMEM read data
-    input   type_scr1_mem_resp_e                    dmem2core_resp_i            // DMEM response
+    input   logic [1:0]                             dmem2core_resp_i            // DMEM response
 );
 
 //-------------------------------------------------------------------------------
diff --git a/verilog/rtl/syntacore/scr1/src/core/scr1_dm.sv b/verilog/rtl/syntacore/scr1/src/core/scr1_dm.sv
index 642dd53..724d98d 100644
--- a/verilog/rtl/syntacore/scr1/src/core/scr1_dm.sv
+++ b/verilog/rtl/syntacore/scr1/src/core/scr1_dm.sv
@@ -113,13 +113,13 @@
     DHI_STATE_RESUME_RUN
 } type_scr1_dhi_fsm_e;
 
-typedef enum logic [SCR1_DBG_ABSTRACTCS_CMDERR_WDTH:0] {
-    ABS_ERR_NONE      = (SCR1_DBG_ABSTRACTCS_CMDERR_WDTH+1)'('d0),
-    ABS_ERR_BUSY      = (SCR1_DBG_ABSTRACTCS_CMDERR_WDTH+1)'('d1),
-    ABS_ERR_CMD       = (SCR1_DBG_ABSTRACTCS_CMDERR_WDTH+1)'('d2),
-    ABS_ERR_EXCEPTION = (SCR1_DBG_ABSTRACTCS_CMDERR_WDTH+1)'('d3),
-    ABS_ERR_NOHALT    = (SCR1_DBG_ABSTRACTCS_CMDERR_WDTH+1)'('d4)
-} type_scr1_abs_err_e;
+//typedef enum logic [SCR1_DBG_ABSTRACTCS_CMDERR_WDTH:0] {
+parameter    ABS_ERR_NONE      = (SCR1_DBG_ABSTRACTCS_CMDERR_WDTH+1)'('d0);
+parameter    ABS_ERR_BUSY      = (SCR1_DBG_ABSTRACTCS_CMDERR_WDTH+1)'('d1);
+parameter    ABS_ERR_CMD       = (SCR1_DBG_ABSTRACTCS_CMDERR_WDTH+1)'('d2);
+parameter    ABS_ERR_EXCEPTION = (SCR1_DBG_ABSTRACTCS_CMDERR_WDTH+1)'('d3);
+parameter    ABS_ERR_NOHALT    = (SCR1_DBG_ABSTRACTCS_CMDERR_WDTH+1)'('d4);
+//} type_scr1_abs_err_e;
 
 
 //------------------------------------------------------------------------------
@@ -362,8 +362,8 @@
 logic                                             abs_err_acc_busy_ff;
 logic                                             abs_err_acc_busy_next;
 
-type_scr1_abs_err_e                               abstractcs_cmderr_ff;
-type_scr1_abs_err_e                               abstractcs_cmderr_next;
+logic [SCR1_DBG_ABSTRACTCS_CMDERR_WDTH:0]         abstractcs_cmderr_ff;
+logic [SCR1_DBG_ABSTRACTCS_CMDERR_WDTH:0]         abstractcs_cmderr_next;
 
 // Abstract instruction signals
 //------------------------------------------------------------------------------
diff --git a/verilog/rtl/syntacore/scr1/src/includes/scr1_arch_types.svh b/verilog/rtl/syntacore/scr1/src/includes/scr1_arch_types.svh
index 62f1037..6f76889 100644
--- a/verilog/rtl/syntacore/scr1/src/includes/scr1_arch_types.svh
+++ b/verilog/rtl/syntacore/scr1/src/includes/scr1_arch_types.svh
@@ -20,8 +20,9 @@
   `define SCR1_MPRF_SIZE      32
 `endif // SCR1_RVE_EXT
 
-typedef logic [`SCR1_XLEN-1:0]  type_scr1_mprf_v;
-typedef logic [`SCR1_XLEN-1:0]  type_scr1_pc_v;
+// Masked due to iverilog issue
+//typedef logic [`SCR1_XLEN-1:0]  type_scr1_mprf_v;
+//typedef logic [`SCR1_XLEN-1:0]  type_scr1_pc_v;
 
 parameter int unsigned  SCR1_CSR_ADDR_WIDTH             = 12;
 parameter int unsigned  SCR1_CSR_MTVEC_BASE_ZERO_BITS   = 6;
diff --git a/verilog/rtl/syntacore/scr1/src/includes/scr1_memif.svh b/verilog/rtl/syntacore/scr1/src/includes/scr1_memif.svh
index 7235d1d..395403e 100644
--- a/verilog/rtl/syntacore/scr1/src/includes/scr1_memif.svh
+++ b/verilog/rtl/syntacore/scr1/src/includes/scr1_memif.svh
@@ -11,39 +11,39 @@
 //-------------------------------------------------------------------------------
 // Memory command enum
 //-------------------------------------------------------------------------------
-typedef enum logic {
-    SCR1_MEM_CMD_RD     = 1'b0,
-    SCR1_MEM_CMD_WR     = 1'b1
-`ifdef SCR1_XPROP_EN
-    ,
-    SCR1_MEM_CMD_ERROR  = 'x
-`endif // SCR1_XPROP_EN
-} type_scr1_mem_cmd_e;
+//typedef enum logic {
+parameter    SCR1_MEM_CMD_RD     = 1'b0;
+parameter    SCR1_MEM_CMD_WR     = 1'b1;
+//`ifdef SCR1_XPROP_EN
+//    ,
+parameter     SCR1_MEM_CMD_ERROR  = 'x;
+//`endif // SCR1_XPROP_EN
+//} type_scr1_mem_cmd_e;
 
 //-------------------------------------------------------------------------------
 // Memory data width enum
 //-------------------------------------------------------------------------------
-typedef enum logic[1:0] {
-    SCR1_MEM_WIDTH_BYTE     = 2'b00,
-    SCR1_MEM_WIDTH_HWORD    = 2'b01,
-    SCR1_MEM_WIDTH_WORD     = 2'b10
-`ifdef SCR1_XPROP_EN
-    ,
-    SCR1_MEM_WIDTH_ERROR    = 'x
-`endif // SCR1_XPROP_EN
-} type_scr1_mem_width_e;
+//typedef enum logic[1:0] {
+parameter    SCR1_MEM_WIDTH_BYTE     = 2'b00;
+parameter    SCR1_MEM_WIDTH_HWORD    = 2'b01;
+parameter    SCR1_MEM_WIDTH_WORD     = 2'b10;
+//`ifdef SCR1_XPROP_EN
+//    ,
+parameter    SCR1_MEM_WIDTH_ERROR    = 'x;
+//`endif // SCR1_XPROP_EN
+//} type_scr1_mem_width_e;
 
 //-------------------------------------------------------------------------------
 // Memory response enum
 //-------------------------------------------------------------------------------
-typedef enum logic[1:0] {
-    SCR1_MEM_RESP_NOTRDY    = 2'b00,
-    SCR1_MEM_RESP_RDY_OK    = 2'b01,
-    SCR1_MEM_RESP_RDY_ER    = 2'b10
-`ifdef SCR1_XPROP_EN
-    ,
-    SCR1_MEM_RESP_ERROR     = 'x
-`endif // SCR1_XPROP_EN
-} type_scr1_mem_resp_e;
+//typedef enum logic[1:0] {
+parameter    SCR1_MEM_RESP_NOTRDY    = 2'b00;
+parameter    SCR1_MEM_RESP_RDY_OK    = 2'b01;
+parameter    SCR1_MEM_RESP_RDY_ER    = 2'b10;
+//`ifdef SCR1_XPROP_EN
+//    ,
+parameter    SCR1_MEM_RESP_ERROR     = 'x;
+//`endif // SCR1_XPROP_EN
+//} type_scr1_mem_resp_e;
 
 `endif // SCR1_MEMIF_SVH
diff --git a/verilog/rtl/syntacore/scr1/src/includes/scr1_riscv_isa_decoding.svh b/verilog/rtl/syntacore/scr1/src/includes/scr1_riscv_isa_decoding.svh
index e143d89..890807a 100644
--- a/verilog/rtl/syntacore/scr1/src/includes/scr1_riscv_isa_decoding.svh
+++ b/verilog/rtl/syntacore/scr1/src/includes/scr1_riscv_isa_decoding.svh
@@ -12,29 +12,29 @@
 //-------------------------------------------------------------------------------
 // Instruction types
 //-------------------------------------------------------------------------------
-typedef enum logic [1:0] {
-    SCR1_INSTR_RVC0     = 2'b00,
-    SCR1_INSTR_RVC1     = 2'b01,
-    SCR1_INSTR_RVC2     = 2'b10,
-    SCR1_INSTR_RVI      = 2'b11
-} type_scr1_instr_type_e;
+//typedef enum logic [1:0] {
+parameter    SCR1_INSTR_RVC0     = 2'b00;
+parameter    SCR1_INSTR_RVC1     = 2'b01;
+parameter    SCR1_INSTR_RVC2     = 2'b10;
+parameter    SCR1_INSTR_RVI      = 2'b11;
+//} type_scr1_instr_type_e;
 
 //-------------------------------------------------------------------------------
 // RV32I opcodes (bits 6:2)
 //-------------------------------------------------------------------------------
-typedef enum logic [6:2] {
-    SCR1_OPCODE_LOAD        = 5'b00000,
-    SCR1_OPCODE_MISC_MEM    = 5'b00011,
-    SCR1_OPCODE_OP_IMM      = 5'b00100,
-    SCR1_OPCODE_AUIPC       = 5'b00101,
-    SCR1_OPCODE_STORE       = 5'b01000,
-    SCR1_OPCODE_OP          = 5'b01100,
-    SCR1_OPCODE_LUI         = 5'b01101,
-    SCR1_OPCODE_BRANCH      = 5'b11000,
-    SCR1_OPCODE_JALR        = 5'b11001,
-    SCR1_OPCODE_JAL         = 5'b11011,
-    SCR1_OPCODE_SYSTEM      = 5'b11100
-} type_scr1_rvi_opcode_e;
+//typedef enum logic [6:2] {
+parameter    SCR1_OPCODE_LOAD        = 5'b00000;
+parameter    SCR1_OPCODE_MISC_MEM    = 5'b00011;
+parameter    SCR1_OPCODE_OP_IMM      = 5'b00100;
+parameter    SCR1_OPCODE_AUIPC       = 5'b00101;
+parameter    SCR1_OPCODE_STORE       = 5'b01000;
+parameter    SCR1_OPCODE_OP          = 5'b01100;
+parameter    SCR1_OPCODE_LUI         = 5'b01101;
+parameter    SCR1_OPCODE_BRANCH      = 5'b11000;
+parameter    SCR1_OPCODE_JALR        = 5'b11001;
+parameter    SCR1_OPCODE_JAL         = 5'b11011;
+parameter    SCR1_OPCODE_SYSTEM      = 5'b11100;
+//} type_scr1_rvi_opcode_e;
 
 
 //-------------------------------------------------------------------------------
diff --git a/verilog/rtl/syntacore/scr1/src/includes/scr1_scu.svh b/verilog/rtl/syntacore/scr1/src/includes/scr1_scu.svh
index ab19386..35659d5 100644
--- a/verilog/rtl/syntacore/scr1/src/includes/scr1_scu.svh
+++ b/verilog/rtl/syntacore/scr1/src/includes/scr1_scu.svh
@@ -16,6 +16,7 @@
 localparam int unsigned         SCR1_SCU_DR_SYSCTRL_OP_WIDTH        = 2;
 localparam int unsigned         SCR1_SCU_DR_SYSCTRL_ADDR_WIDTH      = 2;
 localparam int unsigned         SCR1_SCU_DR_SYSCTRL_DATA_WIDTH      = 4;
+localparam int unsigned         SCR1_SCU_DR_SYSCTRL_WIDTH      = SCR1_SCU_DR_SYSCTRL_OP_WIDTH+SCR1_SCU_DR_SYSCTRL_ADDR_WIDTH+SCR1_SCU_DR_SYSCTRL_DATA_WIDTH; // cp.3
 
 //==============================================================================
 // Types
@@ -73,6 +74,7 @@
     logic                                           dm_rst_bhv;
 } type_scr1_scu_sysctrl_mode_reg_s;
 
+localparam bit [31:0]    SCR1_SCU_SYSCTRL_STATUS_REG_WIDTH        = 4; // cp.3
 typedef struct packed {
     logic                                           hdu_reset;
     logic                                           dm_reset;
diff --git a/verilog/rtl/syntacore/scr1/src/top/scr1_dmem_ahb.sv b/verilog/rtl/syntacore/scr1/src/top/scr1_dmem_ahb.sv
index 5b06660..f1a8f00 100644
--- a/verilog/rtl/syntacore/scr1/src/top/scr1_dmem_ahb.sv
+++ b/verilog/rtl/syntacore/scr1/src/top/scr1_dmem_ahb.sv
@@ -14,12 +14,12 @@
     // Core Interface
     output  logic                           dmem_req_ack,
     input   logic                           dmem_req,
-    input   type_scr1_mem_cmd_e             dmem_cmd,
-    input   type_scr1_mem_width_e           dmem_width,
+    input   logic                           dmem_cmd,
+    input   logic [1:0]                     dmem_width,
     input   logic   [SCR1_AHB_WIDTH-1:0]    dmem_addr,
     input   logic   [SCR1_AHB_WIDTH-1:0]    dmem_wdata,
     output  logic   [SCR1_AHB_WIDTH-1:0]    dmem_rdata,
-    output  type_scr1_mem_resp_e            dmem_resp,
+    output  logic [1:0]                     dmem_resp,
 
     // AHB Interface
     output  logic   [3:0]                   hprot,
@@ -78,7 +78,7 @@
 // Local functions
 //-------------------------------------------------------------------------------
 function automatic logic   [2:0] scr1_conv_mem2ahb_width (
-    input   type_scr1_mem_width_e    dmem_width
+    input   logic [1:0]              dmem_width
 );
     logic   [2:0]   tmp;
 begin
@@ -102,7 +102,7 @@
 
 function automatic logic[SCR1_AHB_WIDTH-1:0] scr1_conv_mem2ahb_wdata (
     input   logic   [1:0]                   dmem_addr,
-    input   type_scr1_mem_width_e           dmem_width,
+    input   logic [1:0]                     dmem_width,
     input   logic   [SCR1_AHB_WIDTH-1:0]    dmem_wdata
 );
     logic   [SCR1_AHB_WIDTH-1:0]  tmp;
diff --git a/verilog/rtl/syntacore/scr1/src/top/scr1_dmem_router.sv b/verilog/rtl/syntacore/scr1/src/top/scr1_dmem_router.sv
index afef729..badd8cd 100644
--- a/verilog/rtl/syntacore/scr1/src/top/scr1_dmem_router.sv
+++ b/verilog/rtl/syntacore/scr1/src/top/scr1_dmem_router.sv
@@ -20,42 +20,42 @@
     // Core interface
     output  logic                           dmem_req_ack,
     input   logic                           dmem_req,
-    input   type_scr1_mem_cmd_e             dmem_cmd,
-    input   type_scr1_mem_width_e           dmem_width,
+    input   logic                           dmem_cmd,
+    input   logic [1:0]                     dmem_width,
     input   logic [`SCR1_DMEM_AWIDTH-1:0]   dmem_addr,
     input   logic [`SCR1_DMEM_DWIDTH-1:0]   dmem_wdata,
     output  logic [`SCR1_DMEM_DWIDTH-1:0]   dmem_rdata,
-    output  type_scr1_mem_resp_e            dmem_resp,
+    output  logic [1:0]                     dmem_resp,
 
     // PORT0 interface
     input   logic                           port0_req_ack,
     output  logic                           port0_req,
-    output  type_scr1_mem_cmd_e             port0_cmd,
-    output  type_scr1_mem_width_e           port0_width,
+    output  logic                           port0_cmd,
+    output  logic [1:0]                     port0_width,
     output  logic [`SCR1_DMEM_AWIDTH-1:0]   port0_addr,
     output  logic [`SCR1_DMEM_DWIDTH-1:0]   port0_wdata,
     input   logic [`SCR1_DMEM_DWIDTH-1:0]   port0_rdata,
-    input   type_scr1_mem_resp_e            port0_resp,
+    input   logic [1:0]                     port0_resp,
 
     // PORT1 interface
     input   logic                           port1_req_ack,
     output  logic                           port1_req,
-    output  type_scr1_mem_cmd_e             port1_cmd,
-    output  type_scr1_mem_width_e           port1_width,
+    output  logic                           port1_cmd,
+    output  logic [1:0]                     port1_width,
     output  logic [`SCR1_DMEM_AWIDTH-1:0]   port1_addr,
     output  logic [`SCR1_DMEM_DWIDTH-1:0]   port1_wdata,
     input   logic [`SCR1_DMEM_DWIDTH-1:0]   port1_rdata,
-    input   type_scr1_mem_resp_e            port1_resp,
+    input   logic [1:0]                     port1_resp,
 
     // PORT2 interface
     input   logic                           port2_req_ack,
     output  logic                           port2_req,
-    output  type_scr1_mem_cmd_e             port2_cmd,
-    output  type_scr1_mem_width_e           port2_width,
+    output  logic                           port2_cmd,
+    output  logic [1:0]                     port2_width,
     output  logic [`SCR1_DMEM_AWIDTH-1:0]   port2_addr,
     output  logic [`SCR1_DMEM_DWIDTH-1:0]   port2_wdata,
     input   logic [`SCR1_DMEM_DWIDTH-1:0]   port2_rdata,
-    input   type_scr1_mem_resp_e            port2_resp
+    input   logic [1:0]                     port2_resp
 );
 
 //-------------------------------------------------------------------------------
@@ -79,7 +79,7 @@
 type_scr1_sel_e                 port_sel;
 type_scr1_sel_e                 port_sel_r;
 logic [`SCR1_DMEM_DWIDTH-1:0]   sel_rdata;
-type_scr1_mem_resp_e            sel_resp;
+logic [1:0]                     sel_resp;
 logic                           sel_req_ack;
 
 //-------------------------------------------------------------------------------
diff --git a/verilog/rtl/syntacore/scr1/src/top/scr1_dmem_wb.sv b/verilog/rtl/syntacore/scr1/src/top/scr1_dmem_wb.sv
index 24691d4..85a0c5c 100644
--- a/verilog/rtl/syntacore/scr1/src/top/scr1_dmem_wb.sv
+++ b/verilog/rtl/syntacore/scr1/src/top/scr1_dmem_wb.sv
@@ -17,6 +17,10 @@
 ////  Revision :                                                  ////
 ////     v0:    June 7, 2021, Dinesh A                            ////
 ////             wishbone integration                             ////
+////     v1:    June 9, 2021, Dinesh A                            ////
+////              On power up, wishbone output are unkown as it   ////
+////              driven from fifo output. To avoid unknown       ////
+////              propgation, we are driving 'h0 when fifo empty  ////
 ////                                                              ////
 //////////////////////////////////////////////////////////////////////
 ////                                                              ////
@@ -62,12 +66,12 @@
     // Core Interface
     output  logic                           dmem_req_ack,
     input   logic                           dmem_req,
-    input   type_scr1_mem_cmd_e             dmem_cmd,
-    input   type_scr1_mem_width_e           dmem_width,
+    input   logic                           dmem_cmd,
+    input   logic [1:0]                     dmem_width,
     input   logic   [SCR1_WB_WIDTH-1:0]     dmem_addr,
     input   logic   [SCR1_WB_WIDTH-1:0]     dmem_wdata,
     output  logic   [SCR1_WB_WIDTH-1:0]     dmem_rdata,
-    output  type_scr1_mem_resp_e            dmem_resp,
+    output  logic [1:0]                     dmem_resp,
 
     // WB Interface
     output  logic                           wbd_stb_o, // strobe/request
@@ -106,7 +110,6 @@
 } type_scr1_req_fifo_s;
 
 typedef struct packed {
-    logic                           hwrite;
     logic   [2:0]                   hwidth;
     logic   [1:0]                   haddr;
 } type_scr1_data_fifo_s;
@@ -122,7 +125,7 @@
 // Local functions
 //-------------------------------------------------------------------------------
 function automatic logic   [2:0] scr1_conv_mem2wb_width (
-    input   type_scr1_mem_width_e    dmem_width
+    input   logic [1:0]              dmem_width
 );
     logic   [2:0]   tmp;
 begin
@@ -146,7 +149,7 @@
 
 function automatic logic[SCR1_WB_WIDTH-1:0] scr1_conv_mem2wb_wdata (
     input   logic   [1:0]                   dmem_addr,
-    input   type_scr1_mem_width_e           dmem_width,
+    input   logic [1:0]                     dmem_width,
     input   logic   [SCR1_WB_WIDTH-1:0]    dmem_wdata
 );
     logic   [SCR1_WB_WIDTH-1:0]  tmp;
@@ -259,7 +262,7 @@
 assign dmem_req_ack = ~req_fifo_full;
 assign req_fifo_wr  = ~req_fifo_full & dmem_req;
 
-assign dmem_rdata = scr1_conv_wb2mem_rdata(resp_fifo.hwidth, resp_fifo.haddr, resp_fifo.hrdata);
+assign dmem_rdata = (resp_fifo_hready) ? scr1_conv_wb2mem_rdata(resp_fifo.hwidth, resp_fifo.haddr, resp_fifo.hrdata) : 'h0;
 
 assign dmem_resp = (resp_fifo_hready)
                     ? (resp_fifo.hresp == 1'b1)
@@ -429,18 +432,20 @@
 always_ff @(posedge clk) begin
     if (wbd_ack_i) begin
         resp_fifo.hresp  <= (wbd_err_i) ? 1'b0 : 1'b1;
-        resp_fifo.hwidth <= data_fifo.hwidth;
-        resp_fifo.haddr  <= data_fifo.haddr;
-        resp_fifo.hrdata <= wbd_dat_i;
+        resp_fifo.hwidth <= hwidth_out;
+        resp_fifo.haddr  <= haddr_out[1:0];
+        resp_fifo.hrdata <= (wbd_we_o) ? 'h0: wbd_dat_i;
     end
 end
 
 
 assign wbd_stb_o    = ~req_fifo_empty;
-assign wbd_adr_o    = haddr_out;
-assign wbd_we_o     = hwrite_out;
-assign wbd_dat_o    = hwdata_out;
-assign wbd_sel_o    = hbel_out;
+
+// To avoid unknown progating the design, driven zero when fifo is empty
+assign wbd_adr_o    = (req_fifo_empty) ? 'h0 : haddr_out;
+assign wbd_we_o     = (req_fifo_empty) ? 'h0 : hwrite_out;
+assign wbd_dat_o    = (req_fifo_empty) ? 'h0 : hwdata_out;
+assign wbd_sel_o    = (req_fifo_empty) ? 'h0 : hbel_out;
 
 `endif // SCR1_DMEM_WB_IN_BP
 
diff --git a/verilog/rtl/syntacore/scr1/src/top/scr1_imem_ahb.sv b/verilog/rtl/syntacore/scr1/src/top/scr1_imem_ahb.sv
index e749f9d..47ad399 100644
--- a/verilog/rtl/syntacore/scr1/src/top/scr1_imem_ahb.sv
+++ b/verilog/rtl/syntacore/scr1/src/top/scr1_imem_ahb.sv
@@ -16,7 +16,7 @@
     input   logic                           imem_req,
     input   logic   [SCR1_AHB_WIDTH-1:0]    imem_addr,
     output  logic   [SCR1_AHB_WIDTH-1:0]    imem_rdata,
-    output  type_scr1_mem_resp_e            imem_resp,
+    output  logic [1:0]                     imem_resp,
 
     // AHB Interface
     output  logic   [3:0]                   hprot,
diff --git a/verilog/rtl/syntacore/scr1/src/top/scr1_imem_router.sv b/verilog/rtl/syntacore/scr1/src/top/scr1_imem_router.sv
index dd76f25..7652201 100644
--- a/verilog/rtl/syntacore/scr1/src/top/scr1_imem_router.sv
+++ b/verilog/rtl/syntacore/scr1/src/top/scr1_imem_router.sv
@@ -18,26 +18,26 @@
     // Core interface
     output  logic                           imem_req_ack,
     input   logic                           imem_req,
-    input   type_scr1_mem_cmd_e             imem_cmd,
+    input   logic                           imem_cmd,
     input   logic [`SCR1_IMEM_AWIDTH-1:0]   imem_addr,
     output  logic [`SCR1_IMEM_DWIDTH-1:0]   imem_rdata,
-    output  type_scr1_mem_resp_e            imem_resp,
+    output  logic [1:0]                     imem_resp,
 
     // PORT0 interface
     input   logic                           port0_req_ack,
     output  logic                           port0_req,
-    output  type_scr1_mem_cmd_e             port0_cmd,
+    output  logic                           port0_cmd,
     output  logic [`SCR1_IMEM_AWIDTH-1:0]   port0_addr,
     input   logic [`SCR1_IMEM_DWIDTH-1:0]   port0_rdata,
-    input   type_scr1_mem_resp_e            port0_resp,
+    input   logic [1:0]                     port0_resp,
 
     // PORT1 interface
     input   logic                           port1_req_ack,
     output  logic                           port1_req,
-    output  type_scr1_mem_cmd_e             port1_cmd,
+    output  logic                           port1_cmd,
     output  logic [`SCR1_IMEM_AWIDTH-1:0]   port1_addr,
     input   logic [`SCR1_IMEM_DWIDTH-1:0]   port1_rdata,
-    input   type_scr1_mem_resp_e            port1_resp
+    input   logic [1:0]                     port1_resp
 );
 
 //-------------------------------------------------------------------------------
@@ -55,7 +55,7 @@
 logic                           port_sel;
 logic                           port_sel_r;
 logic [`SCR1_IMEM_DWIDTH-1:0]   sel_rdata;
-type_scr1_mem_resp_e            sel_resp;
+logic [1:0]                     sel_resp;
 logic                           sel_req_ack;
 
 //-------------------------------------------------------------------------------
diff --git a/verilog/rtl/syntacore/scr1/src/top/scr1_imem_wb.sv b/verilog/rtl/syntacore/scr1/src/top/scr1_imem_wb.sv
index c2a5349..d91c9e3 100644
--- a/verilog/rtl/syntacore/scr1/src/top/scr1_imem_wb.sv
+++ b/verilog/rtl/syntacore/scr1/src/top/scr1_imem_wb.sv
@@ -17,6 +17,10 @@
 ////  Revision :                                                  ////
 ////     v0:    June 7, 2021, Dinesh A                            ////
 ////             wishbone integration                             ////
+////     v1:    June 9, 2021, Dinesh A                            ////
+////              On power up, wishbone output are unkown as it   ////
+////              driven from fifo output. To avoid unknown       ////
+////              propgation, we are driving 'h0 when fifo empty  ////
 ////                                                              ////
 //////////////////////////////////////////////////////////////////////
 ////                                                              ////
@@ -64,7 +68,7 @@
     input   logic                           imem_req,
     input   logic   [SCR1_WB_WIDTH-1:0]     imem_addr,
     output  logic   [SCR1_WB_WIDTH-1:0]     imem_rdata,
-    output  type_scr1_mem_resp_e            imem_resp,
+    output  logic [1:0]                     imem_resp,
 
     // WB Interface
     output  logic                           wbd_stb_o, // strobe/request
@@ -227,7 +231,8 @@
 end
 
 assign wbd_stb_o    = ~req_fifo_empty;
-assign wbd_adr_o    = req_fifo_dout;
+// On Power, to avoid unknow propgating the value
+assign wbd_adr_o    = (req_fifo_empty) ? 'h0 : req_fifo_dout; 
 assign wbd_we_o     = 0; // Only Read supported
 assign wbd_dat_o    = 32'h0; // No Write
 assign wbd_sel_o    = 4'b1111; // Only Read allowed in imem i/f
diff --git a/verilog/rtl/syntacore/scr1/src/top/scr1_mem_axi.sv b/verilog/rtl/syntacore/scr1/src/top/scr1_mem_axi.sv
index f6bb7ea..1b9155d 100644
--- a/verilog/rtl/syntacore/scr1/src/top/scr1_mem_axi.sv
+++ b/verilog/rtl/syntacore/scr1/src/top/scr1_mem_axi.sv
@@ -23,12 +23,12 @@
     output  logic                           core_idle,
     output  logic                           core_req_ack,
     input   logic                           core_req,
-    input   type_scr1_mem_cmd_e             core_cmd,
-    input   type_scr1_mem_width_e           core_width,
+    input   logic                           core_cmd,
+    input   logic [1:0]                     core_width,
     input   logic [SCR1_ADDR_WIDTH-1:0]     core_addr,
     input   logic [31:0]                    core_wdata,
     output  logic [31:0]                    core_rdata,
-    output  type_scr1_mem_resp_e            core_resp,
+    output  logic [1:0]                     core_resp,
 
     // AXI
     output  logic [SCR1_AXI_IDWIDTH-1:0]    awid,
@@ -80,7 +80,7 @@
 
 // Local functions
 function automatic logic [2:0] width2axsize (
-    input   type_scr1_mem_width_e    width );
+    input   logic [1:0]              width );
     logic [2:0] axsize;
 begin
     case (width)
@@ -95,7 +95,7 @@
 endfunction
 
 typedef struct packed {
-    type_scr1_mem_width_e                               axi_width;
+    logic [1:0]                                         axi_width;
     logic                    [SCR1_ADDR_WIDTH-1:0]      axi_addr;
     logic                                   [31:0]      axi_wdata;
 } type_scr1_request_s;
@@ -129,7 +129,7 @@
 logic               [$clog2(SCR1_REQ_BUF_SIZE)-1:0]     req_done_ptr;
 logic                                                   rresp_err;
 logic                                       [31:0]      rcvd_rdata;
-type_scr1_mem_resp_e                                    rcvd_resp;
+logic [1:0]                                             rcvd_resp;
 logic                                                   force_read;
 logic                                                   force_write;
 
@@ -308,6 +308,8 @@
 assign wdata = (force_write)?                       core_wdata << (8*                       core_addr[1:0]) :
                               req_fifo_axi_wdata[req_proc_ptr] << (8* bShift1);
 
+wire [SCR1_ADDR_WIDTH-1:0] CurAddr2 = req_fifo_axi_addr[req_done_ptr];
+wire [1:0]  bShift2 = CurAddr2[1:0];
 
 // Read data adaptation
 always_comb begin
diff --git a/verilog/rtl/syntacore/scr1/src/top/scr1_tcm.sv b/verilog/rtl/syntacore/scr1/src/top/scr1_tcm.sv
index 97376cf..82a8b06 100644
--- a/verilog/rtl/syntacore/scr1/src/top/scr1_tcm.sv
+++ b/verilog/rtl/syntacore/scr1/src/top/scr1_tcm.sv
@@ -21,17 +21,17 @@
     input   logic                           imem_req,
     input   logic [`SCR1_IMEM_AWIDTH-1:0]   imem_addr,
     output  logic [`SCR1_IMEM_DWIDTH-1:0]   imem_rdata,
-    output  type_scr1_mem_resp_e            imem_resp,
+    output  logic [1:0]                     imem_resp,
 
     // Core data interface
     output  logic                           dmem_req_ack,
     input   logic                           dmem_req,
-    input   type_scr1_mem_cmd_e             dmem_cmd,
-    input   type_scr1_mem_width_e           dmem_width,
+    input   logic                           dmem_cmd,
+    input   logic [1:0]                     dmem_width,
     input   logic [`SCR1_DMEM_AWIDTH-1:0]   dmem_addr,
     input   logic [`SCR1_DMEM_DWIDTH-1:0]   dmem_wdata,
     output  logic [`SCR1_DMEM_DWIDTH-1:0]   dmem_rdata,
-    output  type_scr1_mem_resp_e            dmem_resp
+    output  logic [1:0]                     dmem_resp
 );
 
 //-------------------------------------------------------------------------------
diff --git a/verilog/rtl/syntacore/scr1/src/top/scr1_timer.sv b/verilog/rtl/syntacore/scr1/src/top/scr1_timer.sv
index 343a93a..6787754 100644
--- a/verilog/rtl/syntacore/scr1/src/top/scr1_timer.sv
+++ b/verilog/rtl/syntacore/scr1/src/top/scr1_timer.sv
@@ -14,13 +14,13 @@
 
     // Memory interface
     input   logic                                   dmem_req,
-    input   type_scr1_mem_cmd_e                     dmem_cmd,
-    input   type_scr1_mem_width_e                   dmem_width,
+    input   logic                                   dmem_cmd,
+    input   logic [1:0]                             dmem_width,
     input   logic [`SCR1_DMEM_AWIDTH-1:0]           dmem_addr,
     input   logic [`SCR1_DMEM_DWIDTH-1:0]           dmem_wdata,
     output  logic                                   dmem_req_ack,
     output  logic [`SCR1_DMEM_DWIDTH-1:0]           dmem_rdata,
-    output  type_scr1_mem_resp_e                    dmem_resp,
+    output  logic [1:0]                             dmem_resp,
 
     // Timer interface
     output  logic [63:0]                            timer_val,
@@ -268,4 +268,4 @@
 //-------------------------------------------------------------------------------
 assign timer_val    = mtime_reg;
 
-endmodule : scr1_timer
\ No newline at end of file
+endmodule : scr1_timer
diff --git a/verilog/rtl/syntacore/scr1/src/top/scr1_top_ahb.sv b/verilog/rtl/syntacore/scr1/src/top/scr1_top_ahb.sv
index 2268a7d..288d15e 100644
--- a/verilog/rtl/syntacore/scr1/src/top/scr1_top_ahb.sv
+++ b/verilog/rtl/syntacore/scr1/src/top/scr1_top_ahb.sv
@@ -100,68 +100,68 @@
 // Instruction memory interface from core to router
 logic                                               core_imem_req_ack;
 logic                                               core_imem_req;
-type_scr1_mem_cmd_e                                 core_imem_cmd;
+logic                                               core_imem_cmd;
 logic [`SCR1_IMEM_AWIDTH-1:0]                       core_imem_addr;
 logic [`SCR1_IMEM_DWIDTH-1:0]                       core_imem_rdata;
-type_scr1_mem_resp_e                                core_imem_resp;
+logic [1:0]                                         core_imem_resp;
 
 // Data memory interface from core to router
 logic                                               core_dmem_req_ack;
 logic                                               core_dmem_req;
-type_scr1_mem_cmd_e                                 core_dmem_cmd;
-type_scr1_mem_width_e                               core_dmem_width;
+logic                                               core_dmem_cmd;
+logic [1:0]                                         core_dmem_width;
 logic [`SCR1_DMEM_AWIDTH-1:0]                       core_dmem_addr;
 logic [`SCR1_DMEM_DWIDTH-1:0]                       core_dmem_wdata;
 logic [`SCR1_DMEM_DWIDTH-1:0]                       core_dmem_rdata;
-type_scr1_mem_resp_e                                core_dmem_resp;
+logic [1:0]                                         core_dmem_resp;
 
 // Instruction memory interface from router to AHB bridge
 logic                                               ahb_imem_req_ack;
 logic                                               ahb_imem_req;
-type_scr1_mem_cmd_e                                 ahb_imem_cmd;
+logic                                               ahb_imem_cmd;
 logic [`SCR1_IMEM_AWIDTH-1:0]                       ahb_imem_addr;
 logic [`SCR1_IMEM_DWIDTH-1:0]                       ahb_imem_rdata;
-type_scr1_mem_resp_e                                ahb_imem_resp;
+logic [1:0]                                         ahb_imem_resp;
 
 // Data memory interface from router to AHB bridge
 logic                                               ahb_dmem_req_ack;
 logic                                               ahb_dmem_req;
-type_scr1_mem_cmd_e                                 ahb_dmem_cmd;
-type_scr1_mem_width_e                               ahb_dmem_width;
+logic                                               ahb_dmem_cmd;
+logic [1:0]                                         ahb_dmem_width;
 logic [`SCR1_DMEM_AWIDTH-1:0]                       ahb_dmem_addr;
 logic [`SCR1_DMEM_DWIDTH-1:0]                       ahb_dmem_wdata;
 logic [`SCR1_DMEM_DWIDTH-1:0]                       ahb_dmem_rdata;
-type_scr1_mem_resp_e                                ahb_dmem_resp;
+logic [1:0]                                         ahb_dmem_resp;
 
 `ifdef SCR1_TCM_EN
 // Instruction memory interface from router to TCM
 logic                                               tcm_imem_req_ack;
 logic                                               tcm_imem_req;
-type_scr1_mem_cmd_e                                 tcm_imem_cmd;
+logic                                               tcm_imem_cmd;
 logic [`SCR1_IMEM_AWIDTH-1:0]                       tcm_imem_addr;
 logic [`SCR1_IMEM_DWIDTH-1:0]                       tcm_imem_rdata;
-type_scr1_mem_resp_e                                tcm_imem_resp;
+logic [1:0]                                         tcm_imem_resp;
 
 // Data memory interface from router to TCM
 logic                                               tcm_dmem_req_ack;
 logic                                               tcm_dmem_req;
-type_scr1_mem_cmd_e                                 tcm_dmem_cmd;
-type_scr1_mem_width_e                               tcm_dmem_width;
+logic                                               tcm_dmem_cmd;
+logic [1:0]                                         tcm_dmem_width;
 logic [`SCR1_DMEM_AWIDTH-1:0]                       tcm_dmem_addr;
 logic [`SCR1_DMEM_DWIDTH-1:0]                       tcm_dmem_wdata;
 logic [`SCR1_DMEM_DWIDTH-1:0]                       tcm_dmem_rdata;
-type_scr1_mem_resp_e                                tcm_dmem_resp;
+logic [1:0]                                         tcm_dmem_resp;
 `endif // SCR1_TCM_EN
 
 // Data memory interface from router to memory-mapped timer
 logic                                               timer_dmem_req_ack;
 logic                                               timer_dmem_req;
-type_scr1_mem_cmd_e                                 timer_dmem_cmd;
-type_scr1_mem_width_e                               timer_dmem_width;
+logic                                               timer_dmem_cmd;
+logic [1:0]                                         timer_dmem_width;
 logic [`SCR1_DMEM_AWIDTH-1:0]                       timer_dmem_addr;
 logic [`SCR1_DMEM_DWIDTH-1:0]                       timer_dmem_wdata;
 logic [`SCR1_DMEM_DWIDTH-1:0]                       timer_dmem_rdata;
-type_scr1_mem_resp_e                                timer_dmem_resp;
+logic [1:0]                                         timer_dmem_resp;
 
 logic                                               timer_irq;
 logic [63:0]                                        timer_val;
diff --git a/verilog/rtl/syntacore/scr1/src/top/scr1_top_axi.sv b/verilog/rtl/syntacore/scr1/src/top/scr1_top_axi.sv
index 735b902..bbcc30d 100644
--- a/verilog/rtl/syntacore/scr1/src/top/scr1_top_axi.sv
+++ b/verilog/rtl/syntacore/scr1/src/top/scr1_top_axi.sv
@@ -168,68 +168,68 @@
 // Instruction memory interface from core to router
 logic                                               core_imem_req_ack;
 logic                                               core_imem_req;
-type_scr1_mem_cmd_e                                 core_imem_cmd;
+logic                                               core_imem_cmd;
 logic [`SCR1_IMEM_AWIDTH-1:0]                       core_imem_addr;
 logic [`SCR1_IMEM_DWIDTH-1:0]                       core_imem_rdata;
-type_scr1_mem_resp_e                                core_imem_resp;
+logic [1:0]                                         core_imem_resp;
 
 // Data memory interface from core to router
 logic                                               core_dmem_req_ack;
 logic                                               core_dmem_req;
-type_scr1_mem_cmd_e                                 core_dmem_cmd;
-type_scr1_mem_width_e                               core_dmem_width;
+logic                                               core_dmem_cmd;
+logic [1:0]                                         core_dmem_width;
 logic [`SCR1_DMEM_AWIDTH-1:0]                       core_dmem_addr;
 logic [`SCR1_DMEM_DWIDTH-1:0]                       core_dmem_wdata;
 logic [`SCR1_DMEM_DWIDTH-1:0]                       core_dmem_rdata;
-type_scr1_mem_resp_e                                core_dmem_resp;
+logic [1:0]                                         core_dmem_resp;
 
 // Instruction memory interface from router to AXI bridge
 logic                                               axi_imem_req_ack;
 logic                                               axi_imem_req;
-type_scr1_mem_cmd_e                                 axi_imem_cmd;
+logic                                               axi_imem_cmd;
 logic [`SCR1_IMEM_AWIDTH-1:0]                       axi_imem_addr;
 logic [`SCR1_IMEM_DWIDTH-1:0]                       axi_imem_rdata;
-type_scr1_mem_resp_e                                axi_imem_resp;
+logic [1:0]                                         axi_imem_resp;
 
 // Data memory interface from router to AXI bridge
 logic                                               axi_dmem_req_ack;
 logic                                               axi_dmem_req;
-type_scr1_mem_cmd_e                                 axi_dmem_cmd;
-type_scr1_mem_width_e                               axi_dmem_width;
+logic                                               axi_dmem_cmd;
+logic [1:0]                                         axi_dmem_width;
 logic [`SCR1_DMEM_AWIDTH-1:0]                       axi_dmem_addr;
 logic [`SCR1_DMEM_DWIDTH-1:0]                       axi_dmem_wdata;
 logic [`SCR1_DMEM_DWIDTH-1:0]                       axi_dmem_rdata;
-type_scr1_mem_resp_e                                axi_dmem_resp;
+logic [1:0]                                         axi_dmem_resp;
 
 `ifdef SCR1_TCM_EN
 // Instruction memory interface from router to TCM
 logic                                               tcm_imem_req_ack;
 logic                                               tcm_imem_req;
-type_scr1_mem_cmd_e                                 tcm_imem_cmd;
+logic                                               tcm_imem_cmd;
 logic [`SCR1_IMEM_AWIDTH-1:0]                       tcm_imem_addr;
 logic [`SCR1_IMEM_DWIDTH-1:0]                       tcm_imem_rdata;
-type_scr1_mem_resp_e                                tcm_imem_resp;
+logic [1:0]                                         tcm_imem_resp;
 
 // Data memory interface from router to TCM
 logic                                               tcm_dmem_req_ack;
 logic                                               tcm_dmem_req;
-type_scr1_mem_cmd_e                                 tcm_dmem_cmd;
-type_scr1_mem_width_e                               tcm_dmem_width;
+logic                                               tcm_dmem_cmd;
+logic [1:0]                                         tcm_dmem_width;
 logic [`SCR1_DMEM_AWIDTH-1:0]                       tcm_dmem_addr;
 logic [`SCR1_DMEM_DWIDTH-1:0]                       tcm_dmem_wdata;
 logic [`SCR1_DMEM_DWIDTH-1:0]                       tcm_dmem_rdata;
-type_scr1_mem_resp_e                                tcm_dmem_resp;
+logic [1:0]                                         tcm_dmem_resp;
 `endif // SCR1_TCM_EN
 
 // Data memory interface from router to memory-mapped timer
 logic                                               timer_dmem_req_ack;
 logic                                               timer_dmem_req;
-type_scr1_mem_cmd_e                                 timer_dmem_cmd;
-type_scr1_mem_width_e                               timer_dmem_width;
+logic                                               timer_dmem_cmd;
+logic [1:0]                                         timer_dmem_width;
 logic [`SCR1_DMEM_AWIDTH-1:0]                       timer_dmem_addr;
 logic [`SCR1_DMEM_DWIDTH-1:0]                       timer_dmem_wdata;
 logic [`SCR1_DMEM_DWIDTH-1:0]                       timer_dmem_rdata;
-type_scr1_mem_resp_e                                timer_dmem_resp;
+logic [1:0]                                         timer_dmem_resp;
 
 // Misc
 logic                                               timer_irq;
diff --git a/verilog/rtl/syntacore/scr1/src/top/scr1_top_wb.sv b/verilog/rtl/syntacore/scr1/src/top/scr1_top_wb.sv
index 87e6607..97f565c 100644
--- a/verilog/rtl/syntacore/scr1/src/top/scr1_top_wb.sv
+++ b/verilog/rtl/syntacore/scr1/src/top/scr1_top_wb.sv
@@ -144,68 +144,68 @@
 // Instruction memory interface from core to router
 logic                                               core_imem_req_ack;
 logic                                               core_imem_req;
-type_scr1_mem_cmd_e                                 core_imem_cmd;
+logic                                               core_imem_cmd;
 logic [`SCR1_IMEM_AWIDTH-1:0]                       core_imem_addr;
 logic [`SCR1_IMEM_DWIDTH-1:0]                       core_imem_rdata;
-type_scr1_mem_resp_e                                core_imem_resp;
+logic [1:0]                                         core_imem_resp;
 
 // Data memory interface from core to router
 logic                                               core_dmem_req_ack;
 logic                                               core_dmem_req;
-type_scr1_mem_cmd_e                                 core_dmem_cmd;
-type_scr1_mem_width_e                               core_dmem_width;
+logic                                               core_dmem_cmd;
+logic [1:0]                                         core_dmem_width;
 logic [`SCR1_DMEM_AWIDTH-1:0]                       core_dmem_addr;
 logic [`SCR1_DMEM_DWIDTH-1:0]                       core_dmem_wdata;
 logic [`SCR1_DMEM_DWIDTH-1:0]                       core_dmem_rdata;
-type_scr1_mem_resp_e                                core_dmem_resp;
+logic [1:0]                                         core_dmem_resp;
 
 // Instruction memory interface from router to WB bridge
 logic                                               wb_imem_req_ack;
 logic                                               wb_imem_req;
-type_scr1_mem_cmd_e                                 wb_imem_cmd;
+logic                                               wb_imem_cmd;
 logic [`SCR1_IMEM_AWIDTH-1:0]                       wb_imem_addr;
 logic [`SCR1_IMEM_DWIDTH-1:0]                       wb_imem_rdata;
-type_scr1_mem_resp_e                                wb_imem_resp;
+logic [1:0]                                         wb_imem_resp;
 
 // Data memory interface from router to WB bridge
 logic                                               wb_dmem_req_ack;
 logic                                               wb_dmem_req;
-type_scr1_mem_cmd_e                                 wb_dmem_cmd;
-type_scr1_mem_width_e                               wb_dmem_width;
+logic                                               wb_dmem_cmd;
+logic [1:0]                                         wb_dmem_width;
 logic [`SCR1_DMEM_AWIDTH-1:0]                       wb_dmem_addr;
 logic [`SCR1_DMEM_DWIDTH-1:0]                       wb_dmem_wdata;
 logic [`SCR1_DMEM_DWIDTH-1:0]                       wb_dmem_rdata;
-type_scr1_mem_resp_e                                wb_dmem_resp;
+logic [1:0]                                         wb_dmem_resp;
 
 `ifdef SCR1_TCM_EN
 // Instruction memory interface from router to TCM
 logic                                               tcm_imem_req_ack;
 logic                                               tcm_imem_req;
-type_scr1_mem_cmd_e                                 tcm_imem_cmd;
+logic                                               tcm_imem_cmd;
 logic [`SCR1_IMEM_AWIDTH-1:0]                       tcm_imem_addr;
 logic [`SCR1_IMEM_DWIDTH-1:0]                       tcm_imem_rdata;
-type_scr1_mem_resp_e                                tcm_imem_resp;
+logic [1:0]                                         tcm_imem_resp;
 
 // Data memory interface from router to TCM
 logic                                               tcm_dmem_req_ack;
 logic                                               tcm_dmem_req;
-type_scr1_mem_cmd_e                                 tcm_dmem_cmd;
-type_scr1_mem_width_e                               tcm_dmem_width;
+logic                                               tcm_dmem_cmd;
+logic [1:0]                                         tcm_dmem_width;
 logic [`SCR1_DMEM_AWIDTH-1:0]                       tcm_dmem_addr;
 logic [`SCR1_DMEM_DWIDTH-1:0]                       tcm_dmem_wdata;
 logic [`SCR1_DMEM_DWIDTH-1:0]                       tcm_dmem_rdata;
-type_scr1_mem_resp_e                                tcm_dmem_resp;
+logic [1:0]                                         tcm_dmem_resp;
 `endif // SCR1_TCM_EN
 
 // Data memory interface from router to memory-mapped timer
 logic                                               timer_dmem_req_ack;
 logic                                               timer_dmem_req;
-type_scr1_mem_cmd_e                                 timer_dmem_cmd;
-type_scr1_mem_width_e                               timer_dmem_width;
+logic                                               timer_dmem_cmd;
+logic [1:0]                                         timer_dmem_width;
 logic [`SCR1_DMEM_AWIDTH-1:0]                       timer_dmem_addr;
 logic [`SCR1_DMEM_DWIDTH-1:0]                       timer_dmem_wdata;
 logic [`SCR1_DMEM_DWIDTH-1:0]                       timer_dmem_rdata;
-type_scr1_mem_resp_e                                timer_dmem_resp;
+logic [1:0]                                         timer_dmem_resp;
 
 logic                                               timer_irq;
 logic [63:0]                                        timer_val;
@@ -474,7 +474,7 @@
     .port1_width    (                    ),
     .port1_addr     (                    ),
     .port1_wdata    (                    ),
-    .port1_rdata    ('0                  ),
+    .port1_rdata    (32'h0               ),
     .port1_resp     (SCR1_MEM_RESP_RDY_ER),
 `endif // SCR1_TCM_EN
     // Interface to memory-mapped timer
diff --git a/verilog/rtl/uprj_netlists.v b/verilog/rtl/uprj_netlists.v
index 3537de8..b97154e 100644
--- a/verilog/rtl/uprj_netlists.v
+++ b/verilog/rtl/uprj_netlists.v
@@ -24,5 +24,59 @@
     `include "gl/user_proj_example.v"
 `else
     `include "user_project_wrapper.v"
-    `include "user_proj_example.v"
-`endif
\ No newline at end of file
+    `include "spi_master/src/spim_top.sv"
+    `include "spi_master/src/spim_regs.sv"
+    `include "spi_master/src/spim_clkgen.sv"
+    `include "spi_master/src/spim_ctrl.sv"
+    `include "spi_master/src/spim_rx.sv"
+    `include "spi_master/src/spim_tx.sv"
+
+     `include "sdram_ctrl/src/top/sdrc_top.v" 
+     `include "sdram_ctrl/src/wb2sdrc/wb2sdrc.v" 
+     `include "lib/async_fifo.sv"  
+     `include "sdram_ctrl/src/core/sdrc_core.v"
+     `include "sdram_ctrl/src/core/sdrc_bank_ctl.v"
+     `include "sdram_ctrl/src/core/sdrc_bank_fsm.v"
+     `include "sdram_ctrl/src/core/sdrc_bs_convert.v"
+     `include "sdram_ctrl/src/core/sdrc_req_gen.v"
+     `include "sdram_ctrl/src/core/sdrc_xfr_ctl.v"
+
+     `include "lib/registers.v"
+     `include "lib/clk_ctl.v"
+     `include "digital_core/src/glbl_cfg.sv"
+     `include "digital_core/src/digital_core.sv"
+
+     `include "wb_interconnect/src/wb_arb.sv"
+     `include "wb_interconnect/src/wb_interconnect.sv"
+
+     `include "syntacore/scr1/src/core/pipeline/scr1_pipe_hdu.sv"
+     `include "syntacore/scr1/src/core/pipeline/scr1_pipe_tdu.sv"
+     `include "syntacore/scr1/src/core/pipeline/scr1_ipic.sv"
+     `include "syntacore/scr1/src/core/pipeline/scr1_pipe_csr.sv"
+     `include "syntacore/scr1/src/core/pipeline/scr1_pipe_exu.sv"
+     `include "syntacore/scr1/src/core/pipeline/scr1_pipe_ialu.sv"
+     `include "syntacore/scr1/src/core/pipeline/scr1_pipe_idu.sv"
+     `include "syntacore/scr1/src/core/pipeline/scr1_pipe_ifu.sv"
+     `include "syntacore/scr1/src/core/pipeline/scr1_pipe_lsu.sv"
+     `include "syntacore/scr1/src/core/pipeline/scr1_pipe_mprf.sv"
+     `include "syntacore/scr1/src/core/pipeline/scr1_pipe_top.sv"
+     `include "syntacore/scr1/src/core/primitives/scr1_reset_cells.sv"
+     `include "syntacore/scr1/src/core/primitives/scr1_cg.sv"
+     `include "syntacore/scr1/src/core/scr1_clk_ctrl.sv"
+     `include "syntacore/scr1/src/core/scr1_tapc_shift_reg.sv"
+     `include "syntacore/scr1/src/core/scr1_tapc.sv"
+     `include "syntacore/scr1/src/core/scr1_tapc_synchronizer.sv"
+     `include "syntacore/scr1/src/core/scr1_core_top.sv"
+     `include "syntacore/scr1/src/core/scr1_dm.sv"
+     `include "syntacore/scr1/src/core/scr1_dmi.sv"
+     `include "syntacore/scr1/src/core/scr1_scu.sv"
+      
+     `include "syntacore/scr1/src/top/scr1_dmem_router.sv"
+     `include "syntacore/scr1/src/top/scr1_dp_memory.sv"
+     `include "syntacore/scr1/src/top/scr1_tcm.sv"
+     `include "syntacore/scr1/src/top/scr1_timer.sv"
+     `include "syntacore/scr1/src/top/scr1_dmem_wb.sv"
+     `include "syntacore/scr1/src/top/scr1_imem_wb.sv"
+     `include "syntacore/scr1/src/top/scr1_top_wb.sv"
+     `include "lib/sync_fifo.sv"
+`endif
diff --git a/verilog/rtl/user_project_wrapper.v b/verilog/rtl/user_project_wrapper.v
index 2a3462b..0ff3294 100644
--- a/verilog/rtl/user_project_wrapper.v
+++ b/verilog/rtl/user_project_wrapper.v
@@ -28,7 +28,7 @@
  *
  *-------------------------------------------------------------
  */
-
+`default_nettype wire
 module user_project_wrapper #(
     parameter BITS = 32
 ) (
@@ -78,11 +78,12 @@
     output [2:0] user_irq
 );
 
+
 /*--------------------------------------*/
 /* User project is instantiated  here   */
 /*--------------------------------------*/
 
-user_proj_example mprj (
+digital_core u_core (
     `ifdef USE_POWER_PINS
 	.vdda1(vdda1),	// User area 1 3.3V power
 	.vdda2(vdda2),	// User area 2 3.3V power
@@ -94,19 +95,21 @@
 	.vssd2(vssd2),	// User area 2 digital ground
     `endif
 
-    .wb_clk_i(wb_clk_i),
-    .wb_rst_i(wb_rst_i),
+    .clk(wb_clk_i),
+    .rst_n(!wb_rst_i),
+    .rtc_clk(user_clock2),
 
     // MGMT SoC Wishbone Slave
 
-    .wbs_cyc_i(wbs_cyc_i),
-    .wbs_stb_i(wbs_stb_i),
-    .wbs_we_i(wbs_we_i),
-    .wbs_sel_i(wbs_sel_i),
-    .wbs_adr_i(wbs_adr_i),
-    .wbs_dat_i(wbs_dat_i),
-    .wbs_ack_o(wbs_ack_o),
-    .wbs_dat_o(wbs_dat_o),
+    .wbd_ext_cyc_i(wbs_cyc_i),
+    .wbd_ext_stb_i(wbs_stb_i),
+    .wbd_ext_we_i(wbs_we_i),
+    .wbd_ext_sel_i(wbs_sel_i),
+    .wbd_ext_adr_i(wbs_adr_i),
+    .wbd_ext_dat_i(wbs_dat_i),
+    .wbd_ext_ack_o(wbs_ack_o),
+    .wbd_ext_dat_o(wbs_dat_o),
+    .wbd_ext_err_o(),
 
     // Logic Analyzer
 
diff --git a/verilog/rtl/wb_interconnect/src/wb_arb.sv b/verilog/rtl/wb_interconnect/src/wb_arb.sv
new file mode 100644
index 0000000..b127d5c
--- /dev/null
+++ b/verilog/rtl/wb_interconnect/src/wb_arb.sv
@@ -0,0 +1,117 @@
+//////////////////////////////////////////////////////////////////////
+////                                                              ////
+////  Wishbone Arbitor                                            ////
+////                                                              ////
+////  This file is part of the YIFive cores project               ////
+////  http://www.opencores.org/cores/yifive/                      ////
+////                                                              ////
+////  Description                                                 ////
+////      This block implement simple round robine request        ////
+//        arbitor for wishbone interface.                         ////
+////                                                              ////
+////  To Do:                                                      ////
+////    nothing                                                   ////
+////                                                              ////
+////  Author(s):                                                  ////
+////      - Dinesh Annayya, dinesha@opencores.org                 ////
+////                                                              ////
+////  Revision :                                                  ////
+////    0.1 - 12th June 2021, Dinesh A                            ////
+////                                                              ////
+//////////////////////////////////////////////////////////////////////
+////                                                              ////
+//// Copyright (C) 2000 Authors and OPENCORES.ORG                 ////
+////                                                              ////
+//// This source file may be used and distributed without         ////
+//// restriction provided that this copyright statement is not    ////
+//// removed from the file and that any derivative work contains  ////
+//// the original copyright notice and the associated disclaimer. ////
+////                                                              ////
+//// This source file is free software; you can redistribute it   ////
+//// and/or modify it under the terms of the GNU Lesser General   ////
+//// Public License as published by the Free Software Foundation; ////
+//// either version 2.1 of the License, or (at your option) any   ////
+//// later version.                                               ////
+////                                                              ////
+//// This source is distributed in the hope that it will be       ////
+//// useful, but WITHOUT ANY WARRANTY; without even the implied   ////
+//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      ////
+//// PURPOSE.  See the GNU Lesser General Public License for more ////
+//// details.                                                     ////
+////                                                              ////
+//// You should have received a copy of the GNU Lesser General    ////
+//// Public License along with this source; if not, download it   ////
+//// from http://www.opencores.org/lgpl.shtml                     ////
+////                                                              ////
+//////////////////////////////////////////////////////////////////////
+
+
+module wb_arb(clk, rstn, req, gnt);
+
+input		clk;
+input		rstn;
+input	[2:0]	req;	// Req input
+output	[1:0]	gnt; 	// Grant output
+
+///////////////////////////////////////////////////////////////////////
+//
+// Parameters
+//
+
+
+parameter	[1:0]
+                grant0 = 3'h0,
+                grant1 = 3'h1,
+                grant2 = 3'h2;
+
+///////////////////////////////////////////////////////////////////////
+// Local Registers and Wires
+//////////////////////////////////////////////////////////////////////
+
+reg [1:0]	state, next_state;
+
+///////////////////////////////////////////////////////////////////////
+//  Misc Logic 
+//////////////////////////////////////////////////////////////////////
+
+assign	gnt = state;
+
+always@(posedge clk or negedge rstn)
+	if(!rstn)       state <= grant0;
+	else		state <= next_state;
+
+///////////////////////////////////////////////////////////////////////
+//
+// Next State Logic 
+//   - implements round robin arbitration algorithm
+//   - switches grant if current req is dropped or next is asserted
+//   - parks at last grant
+//////////////////////////////////////////////////////////////////////
+
+always@(state or req )
+   begin
+      next_state = state;	// Default Keep State
+      case(state)		
+         grant0:
+      	// if this req is dropped or next is asserted, check for other req's
+      	if(!req[0] ) begin
+      		if(req[1])	next_state = grant1;
+      		else if(req[2])	next_state = grant2;
+      	end
+         grant1:
+      	// if this req is dropped or next is asserted, check for other req's
+      	if(!req[1] ) begin
+      		if(req[2])	next_state = grant2;
+      		else if(req[0])	next_state = grant0;
+      	end
+         grant2:
+      	// if this req is dropped or next is asserted, check for other req's
+      	if(!req[2] ) begin
+      	   if(req[0])	next_state = grant0;
+      	   else if(req[1])	next_state = grant1;
+      	end
+      endcase
+   end
+
+endmodule 
+
diff --git a/verilog/rtl/wb_interconnect/src/wb_interconnect.sv b/verilog/rtl/wb_interconnect/src/wb_interconnect.sv
new file mode 100644
index 0000000..d626b95
--- /dev/null
+++ b/verilog/rtl/wb_interconnect/src/wb_interconnect.sv
@@ -0,0 +1,303 @@
+//////////////////////////////////////////////////////////////////////
+////                                                              ////
+////  Wishbone Interconnect                                       ////
+////                                                              ////
+////  This file is part of the YIFive cores project               ////
+////  http://www.opencores.org/cores/yifive/                      ////
+////                                                              ////
+////  Description                                                 ////
+////	1. 3 masters and 3 slaves share bus Wishbone connection   ////
+////	2. This block implement simple round robine request       ////
+////                                                              ////
+////  To Do:                                                      ////
+////    nothing                                                   ////
+////                                                              ////
+////  Author(s):                                                  ////
+////      - Dinesh Annayya, dinesha@opencores.org                 ////
+////                                                              ////
+////  Revision :                                                  ////
+////    0.1 - 12th June 2021, Dinesh A                            ////
+////                                                              ////
+//////////////////////////////////////////////////////////////////////
+////                                                              ////
+//// Copyright (C) 2000 Authors and OPENCORES.ORG                 ////
+////                                                              ////
+//// This source file may be used and distributed without         ////
+//// restriction provided that this copyright statement is not    ////
+//// removed from the file and that any derivative work contains  ////
+//// the original copyright notice and the associated disclaimer. ////
+////                                                              ////
+//// This source file is free software; you can redistribute it   ////
+//// and/or modify it under the terms of the GNU Lesser General   ////
+//// Public License as published by the Free Software Foundation; ////
+//// either version 2.1 of the License, or (at your option) any   ////
+//// later version.                                               ////
+////                                                              ////
+//// This source is distributed in the hope that it will be       ////
+//// useful, but WITHOUT ANY WARRANTY; without even the implied   ////
+//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      ////
+//// PURPOSE.  See the GNU Lesser General Public License for more ////
+//// details.                                                     ////
+////                                                              ////
+//// You should have received a copy of the GNU Lesser General    ////
+//// Public License along with this source; if not, download it   ////
+//// from http://www.opencores.org/lgpl.shtml                     ////
+////                                                              ////
+//////////////////////////////////////////////////////////////////////
+
+
+
+module wb_interconnect(
+         input logic		clk_i, 
+         input logic            rst_n,
+         
+         // Master 0 Interface
+         input   logic	[31:0]	m0_wbd_dat_i,
+         input   logic  [31:0]	m0_wbd_adr_i,
+         input   logic  [3:0]	m0_wbd_sel_i,
+         input   logic  	m0_wbd_we_i,
+         input   logic  	m0_wbd_cyc_i,
+         input   logic  	m0_wbd_stb_i,
+         input   logic [3:0] 	m0_wbd_tid_i, // target id
+         output  logic	[31:0]	m0_wbd_dat_o,
+         output  logic		m0_wbd_ack_o,
+         output  logic		m0_wbd_err_o,
+         
+         // Master 1 Interface
+         input	logic [31:0]	m1_wbd_dat_i,
+         input	logic [31:0]	m1_wbd_adr_i,
+         input	logic [3:0]	m1_wbd_sel_i,
+         input	logic 	        m1_wbd_we_i,
+         input	logic 	        m1_wbd_cyc_i,
+         input	logic 	        m1_wbd_stb_i,
+         input  logic [3:0] 	m1_wbd_tid_i, // target id
+         output	logic [31:0]	m1_wbd_dat_o,
+         output	logic 	        m1_wbd_ack_o,
+         output	logic 	        m1_wbd_err_o,
+         
+         // Master 2 Interface
+         input	logic [31:0]	m2_wbd_dat_i,
+         input	logic [31:0]	m2_wbd_adr_i,
+         input	logic [3:0]	m2_wbd_sel_i,
+         input	logic 	        m2_wbd_we_i,
+         input	logic 	        m2_wbd_cyc_i,
+         input	logic 	        m2_wbd_stb_i,
+         input  logic [3:0] 	m2_wbd_tid_i, // target id
+         output	logic [31:0]	m2_wbd_dat_o,
+         output	logic 	        m2_wbd_ack_o,
+         output	logic 	        m2_wbd_err_o,
+         
+         
+         // Slave 0 Interface
+         input	logic [31:0]	s0_wbd_dat_i,
+         input	logic 	        s0_wbd_ack_i,
+         input	logic 	        s0_wbd_err_i,
+         output	logic [31:0]	s0_wbd_dat_o,
+         output	logic [31:0]	s0_wbd_adr_o,
+         output	logic [3:0]	s0_wbd_sel_o,
+         output	logic 	        s0_wbd_we_o,
+         output	logic 	        s0_wbd_cyc_o,
+         output	logic 	        s0_wbd_stb_o,
+         
+         // Slave 1 Interface
+         input	logic [31:0]	s1_wbd_dat_i,
+         input	logic 	        s1_wbd_ack_i,
+         input	logic 	        s1_wbd_err_i,
+         output	logic [31:0]	s1_wbd_dat_o,
+         output	logic [31:0]	s1_wbd_adr_o,
+         output	logic [3:0]	s1_wbd_sel_o,
+         output	logic 	        s1_wbd_we_o,
+         output	logic 	        s1_wbd_cyc_o,
+         output	logic 	        s1_wbd_stb_o,
+         
+         // Slave 2 Interface
+         input	logic [31:0]	s2_wbd_dat_i,
+         input	logic 	        s2_wbd_ack_i,
+         input	logic 	        s2_wbd_err_i,
+         output	logic [31:0]	s2_wbd_dat_o,
+         output	logic [31:0]	s2_wbd_adr_o,
+         output	logic [3:0]	s2_wbd_sel_o,
+         output	logic 	        s2_wbd_we_o,
+         output	logic 	        s2_wbd_cyc_o,
+         output	logic 	        s2_wbd_stb_o
+	);
+
+////////////////////////////////////////////////////////////////////
+//
+// Type define
+//
+
+
+// WishBone Wr Interface
+typedef struct packed { 
+  logic	[31:0]	wbd_dat;
+  logic  [31:0]	wbd_adr;
+  logic  [3:0]	wbd_sel;
+  logic  	wbd_we;
+  logic  	wbd_cyc;
+  logic  	wbd_stb;
+  logic [3:0] 	wbd_tid; // target id
+} type_wb_wr_intf;
+
+// WishBone Rd Interface
+typedef struct packed { 
+  logic	[31:0]	wbd_dat;
+  logic  	wbd_ack;
+  logic  	wbd_err;
+} type_wb_rd_intf;
+
+
+// Master Write Interface
+type_wb_wr_intf  m0_wb_wr;
+type_wb_wr_intf  m1_wb_wr;
+type_wb_wr_intf  m2_wb_wr;
+
+// Master Read Interface
+type_wb_rd_intf  m0_wb_rd;
+type_wb_rd_intf  m1_wb_rd;
+type_wb_rd_intf  m2_wb_rd;
+
+// Slave Write Interface
+type_wb_wr_intf  s0_wb_wr;
+type_wb_wr_intf  s1_wb_wr;
+type_wb_wr_intf  s2_wb_wr;
+
+// Slave Read Interface
+type_wb_rd_intf  s0_wb_rd;
+type_wb_rd_intf  s1_wb_rd;
+type_wb_rd_intf  s2_wb_rd;
+
+
+type_wb_wr_intf  i_bus_m;  // Multiplexed Master I/F
+type_wb_rd_intf  i_bus_s;  // Multiplexed Slave I/F
+
+
+//----------------------------------------
+// Master Mapping
+// -------------------------------------
+assign m0_wb_wr.wbd_dat = m0_wbd_dat_i;
+assign m0_wb_wr.wbd_adr = m0_wbd_adr_i;
+assign m0_wb_wr.wbd_sel = m0_wbd_sel_i;
+assign m0_wb_wr.wbd_we  = m0_wbd_we_i;
+assign m0_wb_wr.wbd_cyc = m0_wbd_cyc_i;
+assign m0_wb_wr.wbd_stb = m0_wbd_stb_i;
+assign m0_wb_wr.wbd_tid = m0_wbd_tid_i;
+
+assign m1_wb_wr.wbd_dat = m1_wbd_dat_i;
+assign m1_wb_wr.wbd_adr = m1_wbd_adr_i;
+assign m1_wb_wr.wbd_sel = m1_wbd_sel_i;
+assign m1_wb_wr.wbd_we  = m1_wbd_we_i;
+assign m1_wb_wr.wbd_cyc = m1_wbd_cyc_i;
+assign m1_wb_wr.wbd_stb = m1_wbd_stb_i;
+assign m1_wb_wr.wbd_tid = m1_wbd_tid_i;
+
+assign m2_wb_wr.wbd_dat = m2_wbd_dat_i;
+assign m2_wb_wr.wbd_adr = m2_wbd_adr_i;
+assign m2_wb_wr.wbd_sel = m2_wbd_sel_i;
+assign m2_wb_wr.wbd_we  = m2_wbd_we_i;
+assign m2_wb_wr.wbd_cyc = m2_wbd_cyc_i;
+assign m2_wb_wr.wbd_stb = m2_wbd_stb_i;
+assign m2_wb_wr.wbd_tid = m2_wbd_tid_i;
+
+assign m0_wbd_dat_o  =  m0_wb_rd.wbd_dat;
+assign m0_wbd_ack_o  =  m0_wb_rd.wbd_ack;
+assign m0_wbd_err_o  =  m0_wb_rd.wbd_err;
+
+assign m1_wbd_dat_o  =  m1_wb_rd.wbd_dat;
+assign m1_wbd_ack_o  =  m1_wb_rd.wbd_ack;
+assign m1_wbd_err_o  =  m1_wb_rd.wbd_err;
+
+assign m2_wbd_dat_o  =  m2_wb_rd.wbd_dat;
+assign m2_wbd_ack_o  =  m2_wb_rd.wbd_ack;
+assign m2_wbd_err_o  =  m2_wb_rd.wbd_err;
+
+assign s0_wb_rd.wbd_dat  = s0_wbd_dat_i ;
+assign s0_wb_rd.wbd_ack  = s0_wbd_ack_i ;
+assign s0_wb_rd.wbd_err  = s0_wbd_err_i ;
+
+assign s1_wb_rd.wbd_dat  = s1_wbd_dat_i ;
+assign s1_wb_rd.wbd_ack  = s1_wbd_ack_i ;
+assign s1_wb_rd.wbd_err  = s1_wbd_err_i ;
+
+assign s2_wb_rd.wbd_dat  = s2_wbd_dat_i ;
+assign s2_wb_rd.wbd_ack  = s2_wbd_ack_i ;
+assign s2_wb_rd.wbd_err  = s2_wbd_err_i ;
+
+
+//----------------------------------------
+// Slave Mapping
+// -------------------------------------
+
+assign  s0_wbd_dat_o =  s0_wb_wr.wbd_dat ;
+assign  s0_wbd_adr_o =  s0_wb_wr.wbd_adr ;
+assign  s0_wbd_sel_o =  s0_wb_wr.wbd_sel ;
+assign  s0_wbd_we_o  =  s0_wb_wr.wbd_we  ;
+assign  s0_wbd_cyc_o =  s0_wb_wr.wbd_cyc ;
+assign  s0_wbd_stb_o =  s0_wb_wr.wbd_stb ;
+                     
+assign  s1_wbd_dat_o =  s1_wb_wr.wbd_dat ;
+assign  s1_wbd_adr_o =  s1_wb_wr.wbd_adr ;
+assign  s1_wbd_sel_o =  s1_wb_wr.wbd_sel ;
+assign  s1_wbd_we_o  =  s1_wb_wr.wbd_we  ;
+assign  s1_wbd_cyc_o =  s1_wb_wr.wbd_cyc ;
+assign  s1_wbd_stb_o =  s1_wb_wr.wbd_stb ;
+                     
+assign  s2_wbd_dat_o =  s2_wb_wr.wbd_dat ;
+assign  s2_wbd_adr_o =  s2_wb_wr.wbd_adr ;
+assign  s2_wbd_sel_o =  s2_wb_wr.wbd_sel ;
+assign  s2_wbd_we_o  =  s2_wb_wr.wbd_we  ;
+assign  s2_wbd_cyc_o =  s2_wb_wr.wbd_cyc ;
+assign  s2_wbd_stb_o =  s2_wb_wr.wbd_stb ;
+
+//
+// arbitor 
+//
+logic [1:0]  gnt;
+
+wb_arb	u_wb_arb(
+	.clk(clk_i), 
+	.rstn(rst_n),
+	.req({	m2_wbd_cyc_i,
+		m1_wbd_cyc_i,
+		m0_wbd_cyc_i}),
+	.gnt(gnt)
+);
+
+
+// Generate Multiplexed Master Interface based on grant
+always_comb begin
+     case(gnt)
+        3'h0:	   i_bus_m = m0_wb_wr;
+        3'h1:	   i_bus_m = m1_wb_wr;
+        3'h2:	   i_bus_m = m2_wb_wr;
+        default:   i_bus_m = m0_wb_wr;
+     endcase			
+end
+
+
+// Generate Multiplexed Slave Interface based on target Id
+wire [3:0] wbd_tid =  i_bus_m.wbd_tid; // to fix iverilog warning
+always_comb begin
+     case(wbd_tid)
+        3'h0:	   i_bus_s = s0_wb_rd;
+        3'h1:	   i_bus_s = s1_wb_rd;
+        3'h2:	   i_bus_s = s2_wb_rd;
+        default:   i_bus_s = s0_wb_rd;
+     endcase			
+end
+
+
+// Connect Master => Slave
+assign  s0_wb_wr = (i_bus_m.wbd_tid == 2'b00) ? i_bus_m : 'h0;
+assign  s1_wb_wr = (i_bus_m.wbd_tid == 2'b01) ? i_bus_m : 'h0;
+assign  s2_wb_wr = (i_bus_m.wbd_tid == 2'b10) ? i_bus_m : 'h0;
+
+// Connect Slave to Master
+assign  m0_wb_rd = (gnt == 2'b00) ? i_bus_s : 'h0;
+assign  m1_wb_rd = (gnt == 2'b01) ? i_bus_s : 'h0;
+assign  m2_wb_rd = (gnt == 2'b10) ? i_bus_s : 'h0;
+
+
+
+endmodule
+
