diff --git a/.gitmodules b/.gitmodules
index 7c54d50..e422cb9 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,6 +1,6 @@
-[submodule "verilog/rtl/yifive/ycr1c"]
-	path = verilog/rtl/yifive/ycr1c
-	url = https://github.com/dineshannayya/ycr1c.git
 [submodule "verilog/rtl/qspim"]
 	path = verilog/rtl/qspim
 	url = https://github.com/dineshannayya/qspim.git
+[submodule "verilog/rtl/yifive/ycr1cr"]
+	path = verilog/rtl/yifive/ycr1c
+	url = https://github.com/dineshannayya/ycr1cr.git
diff --git a/openlane/pinmux/pin_order.cfg b/openlane/pinmux/pin_order.cfg
index ffdf50f..512813f 100644
--- a/openlane/pinmux/pin_order.cfg
+++ b/openlane/pinmux/pin_order.cfg
@@ -63,40 +63,6 @@
 pinmux_debug\[31\]
 
 #W
-bist_error_cnt3\[3\]    000 0 2
-bist_error_cnt3\[2\]
-bist_error_cnt3\[1\]
-bist_error_cnt3\[0\]
-bist_correct\[3\]
-bist_error\[3\]
-
-bist_error_cnt2\[3\]   
-bist_error_cnt2\[2\]
-bist_error_cnt2\[1\]
-bist_error_cnt2\[0\]
-bist_correct\[2\]
-bist_error\[2\]
-
-bist_error_cnt1\[3\]   
-bist_error_cnt1\[2\]
-bist_error_cnt1\[1\]
-bist_error_cnt1\[0\]
-bist_correct\[1\]
-bist_error\[1\]
-
-bist_error_cnt0\[3\]
-bist_error_cnt0\[2\]
-bist_error_cnt0\[1\]
-bist_error_cnt0\[0\]
-bist_correct\[0\]
-bist_error\[0\]
-bist_done
-bist_sdo
-bist_shift
-bist_sdi
-bist_load
-bist_run
-bist_en
 
 soft_irq            
 irq_lines\[15\]     
diff --git a/openlane/user_project_wrapper/config.tcl b/openlane/user_project_wrapper/config.tcl
index 2895ec4..1a720a6 100644
--- a/openlane/user_project_wrapper/config.tcl
+++ b/openlane/user_project_wrapper/config.tcl
@@ -69,11 +69,10 @@
         $proj_dir/../../verilog/gl/qspim.v \
         $proj_dir/../../verilog/gl/wb_interconnect.v \
         $proj_dir/../../verilog/gl/pinmux.v     \
-        $proj_dir/../../verilog/gl/mbist_wrapper.v     \
         $proj_dir/../../verilog/gl/uart_i2cm_usb_spi.v     \
 	$proj_dir/../../verilog/gl/wb_host.v \
 	$proj_dir/../../verilog/gl/yifive.v \
-	$proj_dir/../../verilog/rtl/sram_macros/sky130_sram_2kbyte_1rw1r_32x512_8.v \
+	$proj_dir/../../verilog/gl/DFFRAM.v \
 	"
 
 set ::env(EXTRA_LEFS) "\
@@ -82,9 +81,8 @@
 	$lef_root/wb_interconnect.lef \
 	$lef_root/uart_i2cm_usb_spi.lef \
 	$lef_root/wb_host.lef \
-	$lef_root/mbist_wrapper.lef \
 	$lef_root/yifive.lef \
-	$lef_root/sky130_sram_2kbyte_1rw1r_32x512_8.lef \
+	$lef_root/DFFRAM.lef \
 	"
 
 set ::env(EXTRA_GDS_FILES) "\
@@ -93,9 +91,8 @@
 	$gds_root/wb_interconnect.gds \
 	$gds_root/uart_i2cm_usb_spi.gds \
 	$gds_root/wb_host.gds \
-	$gds_root/mbist_wrapper.gds \
 	$gds_root/yifive.gds \
-	$gds_root/sky130_sram_2kbyte_1rw1r_32x512_8.gds \
+	$gds_root/DFFRAM.gds \
 	"
 
 set ::env(SYNTH_DEFINES) [list SYNTHESIS ]
@@ -118,53 +115,32 @@
 set ::env(VDD_PIN) "vccd1"
 set ::env(GND_PIN) "vssd1"
 
-set ::env(GLB_RT_OBS) " li1   150 2100  833.1  2516.54,\
-	                met1  150 2100  833.1  2516.54,\
-	                met2  150 2100  833.1  2516.54,\
-                        met3  150 2100  833.1  2516.54,\
-                        li1   950 2100 1633.1  2516.54,\
-                        met1  950 2100 1633.1  2516.54,\
-                        met2  950 2100 1633.1  2516.54,\
-                        met3  950 2100 1633.1  2516.54,\
-                        li1   150 3000  833.1 3416.54,\
-                        met1  150 3000  833.1 3416.54,\
-                        met2  150 3000  833.1 3416.54,\
-                        met3  150 3000  833.1 3416.54,\
-                        li1   950 3000 1633.1 3416.54,\
-                        met1  950 3000 1633.1 3416.54,\
-                        met2  950 3000 1633.1 3416.54,\
-                        met3  950 3000 1633.1 3416.54,\
-                        li1  150  1400  833.1  1816.54,\
-                        met1 150  1400  833.1  1816.54,\
-                        met2 150  1400  833.1  1816.54,\
-                        met3 150  1400  833.1  1816.54,\
-                        li1  150  800  833.1   1216.54,\
-                        met1 150  800  833.1   1216.54,\
-                        met2 150  800  833.1   1216.54,\
-                        met3 150  800  833.1   1216.54,\
-                        li1  150  200  833.1   616.54,\
-                        met1 150  200  833.1   616.54,\
-                        met2 150  200  833.1   616.54,\
-                        met3 150  200  833.1   616.54,\
-	                met5  0 0 2920 3520"
-
+set ::env(GLB_RT_OBS) " met5  0    0    2920   3520, \
+	                met4  125  950   675   1640, \
+	                met4  125  1800  675   2540, \
+	                met4  125  100   675    840, \
+	                met4  850  100  1400    840, \
+	                met4  325  2650  875  3400, \
+	                met4  1050 2650 1600  3400 \
+	              "
+                      
 set ::env(FP_PDN_POWER_STRAPS) "vccd1 vssd1 1, vccd2 vssd2 0, vdda1 vssa1 0, vdda2 vssa2 0"
 
-set ::env(FP_PDN_MACRO_HOOKS) " \
-	u_intercon vccd1 vssd1 \
-	u_pinmux vccd1 vssd1 \
-	u_qspi_master vccd1 vssd1 \
-	u_riscv_top vccd1 vssd1 \
-	u_tsram0_2kb vccd1 vssd1 \
-	u_icache_2kb vccd1 vssd1 \
-	u_dcache_2kb vccd1 vssd1 \
-	u_mbist vccd1 vssd1 \
-	u_sram0_2kb vccd1 vssd1 \
-	u_sram1_2kb vccd1 vssd1 \
-	u_sram2_2kb vccd1 vssd1 \
-	u_sram3_2kb vccd1 vssd1 \
-	u_uart_i2c_usb_spi vccd1 vssd1 \
-	u_wb_host vccd1 vssd1 "
+#set ::env(FP_PDN_MACRO_HOOKS) " \
+#	u_intercon vccd1 vssd1 \
+#	u_pinmux vccd1 vssd1 \
+#	u_qspi_master vccd1 vssd1 \
+#	u_riscv_top vccd1 vssd1 \
+#	u_tsram0_2kb vccd1 vssd1 \
+#	u_icache_2kb vccd1 vssd1 \
+#	u_dcache_2kb vccd1 vssd1 \
+#	u_mbist vccd1 vssd1 \
+#	u_sram0_2kb vccd1 vssd1 \
+#	u_sram1_2kb vccd1 vssd1 \
+#	u_sram2_2kb vccd1 vssd1 \
+#	u_sram3_2kb vccd1 vssd1 \
+#	u_uart_i2c_usb_spi vccd1 vssd1 \
+#	u_wb_host vccd1 vssd1 "
 
 
 # The following is because there are no std cells in the example wrapper project.
@@ -184,13 +160,13 @@
 set ::env(CLOCK_TREE_SYNTH) 0
 
 set ::env(QUIT_ON_LVS_ERROR) "0"
-set ::env(QUIT_ON_MAGIC_DRC) "0"
+set ::env(QUIT_ON_MAGIC_DRC) "1"
 set ::env(QUIT_ON_NEGATIVE_WNS) "0"
 set ::env(QUIT_ON_SLEW_VIOLATIONS) "0"
 set ::env(QUIT_ON_TIMING_VIOLATIONS) "0"
 set ::env(QUIT_ON_TR_DRC) "0"
 
-set ::env(FP_PDN_IRDROP) "1"
+set ::env(FP_PDN_IRDROP) "0"
 set ::env(FP_PDN_HORIZONTAL_HALO) "10"
 set ::env(FP_PDN_VERTICAL_HALO) "10"
 
@@ -199,10 +175,8 @@
 set ::env(FP_PDN_VSPACING) "15.5"
 set ::env(FP_PDN_VWIDTH) "3.1"
 
-set ::env(FP_PDN_HOFFSET) "10"
-set ::env(FP_PDN_HPITCH) "120"
-set ::env(FP_PDN_HSPACING) "10"
-set ::env(FP_PDN_HWIDTH) "3.1"
+set ::env(FP_PDN_HOFFSET) "16.65"
+set ::env(FP_PDN_HPITCH) "130"
 
 
 
diff --git a/openlane/user_project_wrapper/interactive.tcl b/openlane/user_project_wrapper/interactive.tcl
index 45668cd..2842c9f 100644
--- a/openlane/user_project_wrapper/interactive.tcl
+++ b/openlane/user_project_wrapper/interactive.tcl
@@ -223,7 +223,7 @@
 					set ground [lindex $hooks 1]			 
 					if { $power == $::env(VDD_NET) && $ground == $::env(GND_NET) } {
 						set ::env(FP_PDN_ENABLE_MACROS_GRID) 1
-                                                set ::env(FP_PDN_IRDROP) "1"
+                                                set ::env(FP_PDN_IRDROP) "0"
 						puts_info "Connecting $instance_name to $power and $ground nets."
 						lappend ::env(FP_PDN_MACROS) $instance_name
 					}
@@ -344,7 +344,7 @@
 	}
 
     set LVS_ENABLED 1
-    set DRC_ENABLED 0
+    set DRC_ENABLED 1
     set ANTENNACHECK_ENABLED 1
 
     set steps [dict create \
diff --git a/openlane/user_project_wrapper/macro.cfg b/openlane/user_project_wrapper/macro.cfg
index 729781f..6f35c2f 100644
--- a/openlane/user_project_wrapper/macro.cfg
+++ b/openlane/user_project_wrapper/macro.cfg
@@ -1,18 +1,15 @@
 u_qspi_master           2225             700           N
 u_uart_i2c_usb_spi      2225            1400           N
 u_pinmux                2225            2300           N
-u_sram2_2kb             150             3000           N
-u_sram3_2kb             950             3000           N
 
-u_mbist                 150             2650           N
-u_sram0_2kb             150             2100           N
-u_sram1_2kb             950             2100           N
+u_tcm_1KB_mem0          125             945            N 
+u_tcm_1KB_mem1          125             1790           N 
+u_riscv_top	        850	        945	       N
+u_icache_1KB_mem0       125             100            N
+u_icache_1KB_mem1       850             100            N
 
-u_riscv_top	        950	        450	       N
-u_dcache_2kb            150             1400           N
-u_icache_2kb            150             800            N
-u_tsram0_2kb            150             200            N
-
+u_dcache_1KB_mem0       325             2635           N
+u_dcache_1KB_mem1       1050            2635           N
 
 u_intercon              1850            700            N
-u_wb_host               1450            100            N
+u_wb_host               1650            200            N
diff --git a/openlane/wb_host/config.tcl b/openlane/wb_host/config.tcl
index fcd1da4..ff38b49 100755
--- a/openlane/wb_host/config.tcl
+++ b/openlane/wb_host/config.tcl
@@ -75,7 +75,7 @@
 set ::env(FP_PIN_ORDER_CFG) $::env(DESIGN_DIR)/pin_order.cfg
 
 set ::env(FP_SIZING) absolute
-set ::env(DIE_AREA) "0 0 800 200"
+set ::env(DIE_AREA) "0 0 350 400"
 
 
 # If you're going to use multiple power domains, then keep this disabled.
@@ -85,7 +85,7 @@
 
 
 set ::env(PL_TIME_DRIVEN) 1
-set ::env(PL_TARGET_DENSITY) "0.35"
+set ::env(PL_TARGET_DENSITY) "0.38"
 
 
 
diff --git a/openlane/wb_host/pin_order.cfg b/openlane/wb_host/pin_order.cfg
index a29f24b..540187b 100644
--- a/openlane/wb_host/pin_order.cfg
+++ b/openlane/wb_host/pin_order.cfg
@@ -146,7 +146,7 @@
 wbm_dat_o\[31\]  
 wbm_err_o        
 
-la_data_in\[0\]    300 0 2
+la_data_in\[0\]    250 0 2
 la_data_in\[1\]    
 la_data_in\[2\]    
 la_data_in\[3\]    
@@ -172,7 +172,7 @@
 
 
 #N
-wbd_int_rst_n         0400 0 2
+wbd_int_rst_n         0100 0 2
 cfg_clk_ctrl2\[31\]
 cfg_clk_ctrl2\[30\]
 cfg_clk_ctrl2\[29\]
@@ -232,7 +232,7 @@
 
 
 
-wbs_stb_o       460 0 2 
+wbs_stb_o       160 0 2 
 wbs_we_o         
 wbs_adr_o\[31\]  
 wbs_adr_o\[30\]  
diff --git a/openlane/wb_interconnect/config.tcl b/openlane/wb_interconnect/config.tcl
index 85fe0e5..bc25fd0 100755
--- a/openlane/wb_interconnect/config.tcl
+++ b/openlane/wb_interconnect/config.tcl
@@ -23,7 +23,6 @@
 
 
 set ::env(DESIGN_IS_CORE) "0"
-set ::env(FP_PDN_CORE_RING) "0"
 
 # Timing configuration
 set ::env(CLOCK_PERIOD) "10"
@@ -50,8 +49,8 @@
 
 set ::env(SYNTH_DEFINES) [list SYNTHESIS ]
 
-set ::env(SYNTH_PARAMS) "CH_CLK_WD 8,\
-	                 CH_DATA_WD 116 \
+set ::env(SYNTH_PARAMS) "CH_CLK_WD 4,\
+	                 CH_DATA_WD 69 \
 			 "
 
 set ::env(SYNTH_READ_BLACKBOX_LIB) 1
@@ -78,6 +77,14 @@
 
 #set ::env(PDN_CFG) $script_dir/pdn.tcl
 
+## PDN
+set ::env(FP_PDN_CORE_RING) 0
+set ::env(FP_PDN_VPITCH) 120
+set ::env(FP_PDN_HPITCH) 120
+
+set ::env(FP_PDN_VWIDTH) 1.6
+set ::env(FP_PDN_CORE_RING_VWIDTH) 1.6
+
 
 set ::env(PL_TIME_DRIVEN) 1
 set ::env(PL_TARGET_DENSITY) "0.30"
diff --git a/openlane/wb_interconnect/pin_order.cfg b/openlane/wb_interconnect/pin_order.cfg
index 9f2007f..ae3e4b5 100644
--- a/openlane/wb_interconnect/pin_order.cfg
+++ b/openlane/wb_interconnect/pin_order.cfg
@@ -4,30 +4,6 @@
 
 #S
 rst_n                000  0 2
-dcache_remap\[3\]
-dcache_remap\[2\]
-dcache_remap\[1\]
-dcache_remap\[0\]
-boot_remap\[3\]
-boot_remap\[2\]
-boot_remap\[1\]
-boot_remap\[0\]
-ch_data_in\[35\]
-ch_data_in\[34\]
-ch_data_in\[33\]
-ch_data_in\[32\]
-ch_data_in\[31\]
-ch_data_in\[30\]
-ch_data_in\[29\]
-ch_data_in\[28\]
-ch_data_in\[27\]
-ch_data_in\[26\]
-ch_data_in\[25\]
-ch_data_in\[24\]
-ch_data_in\[23\]
-ch_data_in\[22\]
-ch_data_in\[21\]
-ch_data_in\[20\]
 ch_data_in\[19\]
 ch_data_in\[18\]
 ch_data_in\[17\]
@@ -52,10 +28,6 @@
 cfg_cska_wi\[2\]     
 cfg_cska_wi\[1\]     
 cfg_cska_wi\[0\] 
-ch_clk_in\[7\]
-ch_clk_in\[6\]
-ch_clk_in\[5\]
-ch_clk_in\[4\]
 ch_clk_in\[3\]
 ch_clk_in\[2\]
 ch_clk_in\[1\]
@@ -175,55 +147,55 @@
 
 
 #W
-ch_data_out\[84\]   0250 0 2
-ch_data_out\[83\]   
-ch_data_out\[82\]   
-ch_data_out\[81\]   
-ch_data_out\[80\]   
-ch_data_out\[79\]   
-ch_data_out\[78\]   
-ch_data_out\[77\]   
-ch_data_out\[76\]   
-ch_data_out\[75\]   
-ch_data_out\[74\]   
-ch_data_out\[73\]   
-ch_data_out\[72\]   
-ch_data_out\[71\]   
-ch_data_out\[70\]   
-ch_data_out\[69\]   
-ch_data_out\[68\]   
-ch_data_out\[67\]   
-ch_data_out\[66\]   
-ch_data_out\[65\]   
-ch_data_out\[64\]   
-ch_data_out\[63\]   
-ch_data_out\[62\]   
-ch_data_out\[61\]   
-ch_data_out\[60\]   
-ch_data_out\[59\]   
-ch_data_out\[58\]   
-ch_data_out\[57\]   
-ch_data_out\[56\]   
-ch_data_out\[55\]   
-ch_data_out\[54\]   
-ch_data_out\[53\]   
-ch_data_out\[52\]   
-ch_data_out\[51\]   
-ch_data_out\[50\]   
-ch_data_out\[49\]   
-ch_data_out\[48\]   
-ch_data_out\[47\]   
-ch_data_out\[46\]   
-ch_data_out\[45\]   
-ch_data_out\[44\]   
-ch_data_out\[43\]   
-ch_data_out\[42\]   
-ch_data_out\[41\]   
-ch_data_out\[40\]   
-ch_data_out\[39\]   
-ch_data_out\[38\]   
-ch_data_out\[37\]   
-ch_data_out\[36\]   
+ch_data_out\[68\]   0750 0 2
+ch_data_out\[67\] 
+ch_data_out\[66\] 
+ch_data_out\[65\] 
+ch_data_out\[64\] 
+ch_data_out\[63\] 
+ch_data_out\[62\] 
+ch_data_out\[61\] 
+ch_data_out\[60\] 
+ch_data_out\[59\] 
+ch_data_out\[58\] 
+ch_data_out\[57\] 
+ch_data_out\[56\] 
+ch_data_out\[55\] 
+ch_data_out\[54\] 
+ch_data_out\[53\] 
+ch_data_out\[52\] 
+ch_data_out\[51\] 
+ch_data_out\[50\] 
+ch_data_out\[49\] 
+ch_data_out\[48\] 
+ch_data_out\[47\] 
+ch_data_out\[46\] 
+ch_data_out\[45\] 
+ch_data_out\[44\] 
+ch_data_out\[43\] 
+ch_data_out\[42\] 
+ch_data_out\[41\] 
+ch_data_out\[40\] 
+ch_data_out\[39\] 
+ch_data_out\[38\] 
+ch_data_out\[37\] 
+ch_data_out\[36\] 
+ch_data_out\[35\] 
+ch_data_out\[34\] 
+ch_data_out\[33\] 
+ch_data_out\[32\] 
+ch_data_out\[31\] 
+ch_data_out\[30\] 
+ch_data_out\[29\] 
+ch_data_out\[28\] 
+ch_data_out\[27\] 
+ch_data_out\[26\] 
+ch_data_out\[25\] 
+ch_data_out\[24\] 
+ch_data_out\[23\] 
+ch_data_out\[22\] 
+ch_data_out\[21\] 
+ch_data_out\[20\] 
 
 ch_data_out\[3\]   
 ch_data_out\[2\]
@@ -232,7 +204,7 @@
 
 ch_clk_out\[0\]
 
-m1_wbd_stb_i         0450 0 2 
+m1_wbd_stb_i         0950 0 2 
 m1_wbd_we_i         
 m1_wbd_adr_i\[31\]  
 m1_wbd_adr_i\[30\]  
@@ -339,7 +311,7 @@
 m1_wbd_err_o        
 m1_wbd_cyc_i        
 
-m2_wbd_stb_i        0650 0 2
+m2_wbd_stb_i        1150 0 2
 m2_wbd_we_i         
 m2_wbd_adr_i\[31\]  
 m2_wbd_adr_i\[30\]  
@@ -457,7 +429,7 @@
 m2_wbd_err_o        
 m2_wbd_cyc_i       
 
-m3_wbd_stb_i        0850 0 2
+m3_wbd_stb_i        1350 0 2
 m3_wbd_we_i         
 m3_wbd_adr_i\[31\]  
 m3_wbd_adr_i\[30\]  
@@ -543,159 +515,6 @@
 m3_wbd_err_o        
 m3_wbd_cyc_i       
 
-ch_data_out\[23\]   1950 0 2
-ch_data_out\[22\]
-ch_data_out\[21\]
-ch_data_out\[20\]
-ch_clk_out\[4\]     
-
-s3_wbd_cyc_o        1975 0 2
-s3_wbd_stb_o        
-s3_wbd_we_o         
-s3_wbd_adr_o\[12\]   
-s3_wbd_adr_o\[11\]   
-s3_wbd_adr_o\[10\]   
-s3_wbd_adr_o\[9\]   
-s3_wbd_adr_o\[8\]   
-s3_wbd_adr_o\[7\]   
-s3_wbd_adr_o\[6\]   
-s3_wbd_adr_o\[5\]   
-s3_wbd_adr_o\[4\]   
-s3_wbd_adr_o\[3\]   
-s3_wbd_adr_o\[2\]   
-s3_wbd_adr_o\[1\]   
-s3_wbd_adr_o\[0\]   
-s3_wbd_dat_o\[31\]  
-s3_wbd_dat_o\[30\]  
-s3_wbd_dat_o\[29\]  
-s3_wbd_dat_o\[28\]  
-s3_wbd_dat_o\[27\]  
-s3_wbd_dat_o\[26\]  
-s3_wbd_dat_o\[25\]  
-s3_wbd_dat_o\[24\]  
-s3_wbd_dat_o\[23\]  
-s3_wbd_dat_o\[22\]  
-s3_wbd_dat_o\[21\]  
-s3_wbd_dat_o\[20\]  
-s3_wbd_dat_o\[19\]  
-s3_wbd_dat_o\[18\]  
-s3_wbd_dat_o\[17\]  
-s3_wbd_dat_o\[16\]  
-s3_wbd_dat_o\[15\]  
-s3_wbd_dat_o\[14\]  
-s3_wbd_dat_o\[13\]  
-s3_wbd_dat_o\[12\]  
-s3_wbd_dat_o\[11\]  
-s3_wbd_dat_o\[10\]  
-s3_wbd_dat_o\[9\]   
-s3_wbd_dat_o\[8\]   
-s3_wbd_dat_o\[7\]   
-s3_wbd_dat_o\[6\]   
-s3_wbd_dat_o\[5\]   
-s3_wbd_dat_o\[4\]   
-s3_wbd_dat_o\[3\]   
-s3_wbd_dat_o\[2\]   
-s3_wbd_dat_o\[1\]   
-s3_wbd_dat_o\[0\]   
-s3_wbd_sel_o\[3\]   
-s3_wbd_sel_o\[2\]   
-s3_wbd_sel_o\[1\]   
-s3_wbd_sel_o\[0\]   
-s3_wbd_bl_o\[9\]   
-s3_wbd_bl_o\[8\]   
-s3_wbd_bl_o\[7\]   
-s3_wbd_bl_o\[6\]   
-s3_wbd_bl_o\[5\]   
-s3_wbd_bl_o\[4\]   
-s3_wbd_bl_o\[3\]   
-s3_wbd_bl_o\[2\]   
-s3_wbd_bl_o\[1\]   
-s3_wbd_bl_o\[0\]   
-s3_wbd_bry_o
-s3_wbd_dat_i\[31\]  
-s3_wbd_dat_i\[30\]  
-s3_wbd_dat_i\[29\]  
-s3_wbd_dat_i\[28\]  
-s3_wbd_dat_i\[27\]  
-s3_wbd_dat_i\[26\]  
-s3_wbd_dat_i\[25\]  
-s3_wbd_dat_i\[24\]  
-s3_wbd_dat_i\[23\]  
-s3_wbd_dat_i\[22\] 
-s3_wbd_dat_i\[21\]  
-s3_wbd_dat_i\[20\]  
-s3_wbd_dat_i\[19\]  
-s3_wbd_dat_i\[18\]  
-s3_wbd_dat_i\[17\]  
-s3_wbd_dat_i\[16\]  
-s3_wbd_dat_i\[15\]  
-s3_wbd_dat_i\[14\]  
-s3_wbd_dat_i\[13\]  
-s3_wbd_dat_i\[12\]  
-s3_wbd_dat_i\[11\]  
-s3_wbd_dat_i\[10\]  
-s3_wbd_dat_i\[9\]   
-s3_wbd_dat_i\[8\]   
-s3_wbd_dat_i\[7\]   
-s3_wbd_dat_i\[6\]   
-s3_wbd_dat_i\[5\]   
-s3_wbd_dat_i\[4\]   
-s3_wbd_dat_i\[3\]   
-s3_wbd_dat_i\[2\]   
-s3_wbd_dat_i\[1\]   
-s3_wbd_dat_i\[0\]   
-s3_wbd_ack_i        
-s3_wbd_lack_i        
-
-ch_data_in\[115\]   2110 0 2
-ch_data_in\[114\] 
-ch_data_in\[113\] 
-ch_data_in\[112\] 
-ch_data_in\[111\] 
-ch_data_in\[110\] 
-ch_data_in\[109\] 
-ch_data_in\[108\] 
-ch_data_in\[107\] 
-ch_data_in\[106\] 
-ch_data_in\[105\] 
-ch_data_in\[104\] 
-ch_data_in\[103\] 
-ch_data_in\[102\] 
-ch_data_in\[101\] 
-ch_data_in\[100\] 
-ch_data_in\[99\] 
-ch_data_in\[98\] 
-ch_data_in\[97\] 
-ch_data_in\[96\] 
-ch_data_in\[95\] 
-ch_data_in\[94\] 
-ch_data_in\[93\] 
-ch_data_in\[92\] 
-ch_data_in\[91\] 
-ch_data_in\[90\] 
-ch_data_out\[89\] 
-ch_data_out\[88\] 
-ch_data_out\[87\] 
-ch_data_out\[86\] 
-ch_data_out\[85\] 
-
-
-
-ch_clk_out\[5\]    2200 0 2
-ch_clk_out\[6\]
-ch_clk_out\[7\]
-ch_data_out\[24\]
-ch_data_out\[25\]
-ch_data_out\[26\]
-ch_data_out\[27\]
-ch_data_out\[28\]
-ch_data_out\[29\]
-ch_data_out\[30\]
-ch_data_out\[31\]
-ch_data_out\[32\]
-ch_data_out\[33\]
-ch_data_out\[34\]
-ch_data_out\[35\]
 
 #E
 ch_data_out\[19\]   0000 0  2  
@@ -913,55 +732,7 @@
 s1_wbd_ack_i        
 s1_wbd_cyc_o  
 
-ch_data_out\[115\]  1600 0 2  
-ch_data_out\[114\]
-ch_data_out\[113\]
-ch_data_out\[112\]
-ch_data_out\[111\]
-ch_data_out\[110\]
-ch_data_out\[109\]
-ch_data_out\[108\]
-ch_data_out\[107\]
-ch_data_out\[106\]
-ch_data_out\[105\]
-ch_data_out\[104\]
-ch_data_out\[103\]
-ch_data_out\[102\]
-ch_data_out\[101\]
-ch_data_out\[100\]
-ch_data_out\[99\]
-ch_data_out\[98\]
-ch_data_out\[97\]
-ch_data_out\[96\]
-ch_data_out\[95\]
-ch_data_out\[94\]
-ch_data_out\[93\]
-ch_data_out\[92\]
-ch_data_out\[91\]
-ch_data_out\[90\]
-ch_data_in\[89\]
-ch_data_in\[88\]
-ch_data_in\[87\]
-ch_data_in\[86\]
-ch_data_in\[85\]
-
-ch_data_in\[84\]
-ch_data_in\[83\]
-ch_data_in\[82\]
-ch_data_in\[81\]
-ch_data_in\[80\]
-ch_data_in\[79\]
-ch_data_in\[78\]
-ch_data_in\[77\]
-ch_data_in\[76\]  
-ch_data_in\[75\]
-ch_data_in\[74\]
-ch_data_in\[73\]
-ch_data_in\[72\]
-ch_data_in\[71\]
-ch_data_in\[70\]
-ch_data_in\[69\]
-ch_data_in\[68\]
+ch_data_in\[68\]  1600 0 2  
 ch_data_in\[67\]
 ch_data_in\[66\]
 ch_data_in\[65\]
@@ -994,6 +765,22 @@
 ch_data_in\[38\]
 ch_data_in\[37\]
 ch_data_in\[36\]
+ch_data_in\[35\]
+ch_data_in\[34\]
+ch_data_in\[33\]
+ch_data_in\[32\]
+ch_data_in\[31\]
+ch_data_in\[30\]
+ch_data_in\[29\]
+ch_data_in\[28\]
+ch_data_in\[27\]
+ch_data_in\[26\]
+ch_data_in\[25\]
+ch_data_in\[24\]
+ch_data_in\[23\]
+ch_data_in\[22\]
+ch_data_in\[21\]
+ch_data_in\[20\]
 
 ch_data_out\[15\]    
 ch_data_out\[14\]
diff --git a/openlane/yifive/base.sdc b/openlane/yifive/base.sdc
index 375538d..d2293b6 100644
--- a/openlane/yifive/base.sdc
+++ b/openlane/yifive/base.sdc
@@ -2,17 +2,18 @@
 # Timing Constraints
 ###############################################################################
 create_clock -name core_clk -period 20.0000 [get_ports {core_clk}]
+create_clock -name core_clk_mclk -period 20.0000 [get_ports {core_clk_mclk}]
 create_clock -name rtc_clk -period 40.0000 [get_ports {rtc_clk}]
 create_clock -name wb_clk -period 10.0000 [get_ports {wb_clk}]
 
-create_generated_clock -name sram0_clk0 -add -source [get_ports {core_clk}] -master_clock [get_clocks core_clk] -divide_by 1 -comment {tcm sram clock0} [get_ports sram0_clk0]
-create_generated_clock -name sram0_clk1 -add -source [get_ports {core_clk}] -master_clock [get_clocks core_clk] -divide_by 1 -comment {tcm sram clock1} [get_ports sram0_clk1]
+create_generated_clock -name tcm_dffram_clk0 -add -source [get_ports {core_clk_mclk}] -master_clock [get_clocks core_clk_mclk] -divide_by 1 -comment {tcm clock0} [get_ports tcm_dffram_clk0]
+create_generated_clock -name tcm_dffram_clk1 -add -source [get_ports {core_clk_mclk}] -master_clock [get_clocks core_clk_mclk] -divide_by 1 -comment {tcm clock1} [get_ports tcm_dffram_clk1]
 
-create_generated_clock -name icache_mem_clk0 -add -source [get_ports {core_clk}] -master_clock [get_clocks core_clk] -divide_by 1 -comment {icache clock0} [get_ports icache_mem_clk0]
-create_generated_clock -name icache_mem_clk1 -add -source [get_ports {core_clk}] -master_clock [get_clocks core_clk] -divide_by 1 -comment {icache clock1} [get_ports icache_mem_clk1]
+create_generated_clock -name icache_dffram_clk0 -add -source [get_ports {core_clk_mclk}] -master_clock [get_clocks core_clk_mclk] -divide_by 1 -comment {icache clock0} [get_ports icache_dffram_clk0]
+create_generated_clock -name icache_dffram_clk1 -add -source [get_ports {core_clk_mclk}] -master_clock [get_clocks core_clk_mclk] -divide_by 1 -comment {icache clock1} [get_ports icache_dffram_clk1]
 
-create_generated_clock -name dcache_mem_clk0 -add -source [get_ports {core_clk}] -master_clock [get_clocks core_clk] -divide_by 1 -comment {dcache clock0} [get_ports dcache_mem_clk0]
-create_generated_clock -name dcache_mem_clk1 -add -source [get_ports {core_clk}] -master_clock [get_clocks core_clk] -divide_by 1 -comment {dcache clock1} [get_ports dcache_mem_clk1]
+create_generated_clock -name dcache_dffram_clk0 -add -source [get_ports {core_clk_mclk}] -master_clock [get_clocks core_clk_mclk] -divide_by 1 -comment {dcache clock0} [get_ports dcache_dffram_clk0]
+create_generated_clock -name dcache_dffram_clk1 -add -source [get_ports {core_clk_mclk}] -master_clock [get_clocks core_clk_mclk] -divide_by 1 -comment {dcache clock1} [get_ports dcache_dffram_clk1]
 
 set_clock_transition 0.1500 [all_clocks]
 set_clock_uncertainty -setup 0.2500 [all_clocks]
@@ -27,7 +28,7 @@
 set_timing_derate -late [expr {1+$::env(SYNTH_TIMING_DERATE)}]
 
 set_clock_groups -name async_clock -asynchronous \
- -group [get_clocks {core_clk sram0_clk0 sram0_clk1 icache_mem_clk0 icache_mem_clk1 dcache_mem_clk0 dcache_mem_clk1} ]\
+ -group [get_clocks {core_clk core_clk_mclk tcm_dffram_clk0 tcm_dffram_clk1 icache_dffram_clk0 icache_dffram_clk1 dcache_dffram_clk0 dcache_dffram_clk1} ]\
  -group [get_clocks {rtc_clk}]\
  -group [get_clocks {wb_clk}] -comment {Async Clock group}
 
@@ -43,76 +44,92 @@
 set_max_delay 3.5 -from wbd_clk_int -to wbd_clk_riscv
 
 #TCM Memory
-set_input_delay -max 6.0000 -clock [get_clocks {sram0_clk0}] -add_delay [get_ports {sram0_dout0[*]}]
-set_input_delay -min 3.0000 -clock [get_clocks {sram0_clk0}] -add_delay [get_ports {sram0_dout0[*]}]
+set_input_delay -max 6.0000 -clock [get_clocks {tcm_dffram_clk0}] -add_delay [get_ports {tcm_dffram_dout0[*]}]
+set_input_delay -min 3.0000 -clock [get_clocks {tcm_dffram_clk0}] -add_delay [get_ports {tcm_dffram_dout0[*]}]
 
-set_input_delay -max 6.0000 -clock [get_clocks {sram0_clk1}] -add_delay [get_ports {sram0_dout1[*]}]
-set_input_delay -min 3.0000 -clock [get_clocks {sram0_clk1}] -add_delay [get_ports {sram0_dout1[*]}]
+set_output_delay -max 4.5000 -clock [get_clocks {tcm_dffram_clk0}] -add_delay [get_ports {tcm_dffram_cs0}]
+set_output_delay -max 4.5000 -clock [get_clocks {tcm_dffram_clk0}] -add_delay [get_ports {tcm_dffram_addr0[*]}]
+set_output_delay -max 4.5000 -clock [get_clocks {tcm_dffram_clk0}] -add_delay [get_ports {tcm_dffram_wmask0[*]}]
+set_output_delay -max 4.5000 -clock [get_clocks {tcm_dffram_clk0}] -add_delay [get_ports {tcm_dffram_din0[*]}]
 
-set_output_delay -max 4.5000 -clock [get_clocks {sram0_clk1}] -add_delay [get_ports {sram0_addr1[*]}]
-set_output_delay -max 4.5000 -clock [get_clocks {sram0_clk1}] -add_delay [get_ports {sram0_csb1}]
+set_output_delay -min -0.5000 -clock [get_clocks {tcm_dffram_clk0}] -add_delay [get_ports {tcm_dffram_cs0}]
+set_output_delay -min -0.5000 -clock [get_clocks {tcm_dffram_clk0}] -add_delay [get_ports {tcm_dffram_addr0[*]}]
+set_output_delay -min -0.5000 -clock [get_clocks {tcm_dffram_clk0}] -add_delay [get_ports {tcm_dffram_wmask0[*]}]
+set_output_delay -min -3.5000 -clock [get_clocks {tcm_dffram_clk0}] -add_delay [get_ports {tcm_dffram_din0[*]}]
 
-set_output_delay -min 2.0000 -clock [get_clocks {sram0_clk1}] -add_delay [get_ports {sram0_addr1[*]}]
-set_output_delay -min 2.0000 -clock [get_clocks {sram0_clk1}] -add_delay [get_ports {sram0_csb1}]
+# mem1
+set_input_delay -max 6.0000 -clock [get_clocks  {tcm_dffram_clk1}] -add_delay [get_ports  {tcm_dffram_dout1[*]}]
+set_input_delay -min 3.0000 -clock [get_clocks  {tcm_dffram_clk1}] -add_delay [get_ports  {tcm_dffram_dout1[*]}]
 
-set_output_delay -max 4.5000 -clock [get_clocks {sram0_clk0}] -add_delay [get_ports {sram0_addr0[*]}]
-set_output_delay -max 4.5000 -clock [get_clocks {sram0_clk0}] -add_delay [get_ports {sram0_csb0}]
-set_output_delay -max 4.5000 -clock [get_clocks {sram0_clk0}] -add_delay [get_ports {sram0_din0[*]}]
-set_output_delay -max 4.5000 -clock [get_clocks {sram0_clk0}] -add_delay [get_ports {sram0_web0}]
-set_output_delay -max 4.5000 -clock [get_clocks {sram0_clk0}] -add_delay [get_ports {sram0_wmask0[*]}]
+set_output_delay -max 4.5000 -clock [get_clocks {tcm_dffram_clk1}] -add_delay [get_ports  {tcm_dffram_cs1}]
+set_output_delay -max 4.5000 -clock [get_clocks {tcm_dffram_clk1}] -add_delay [get_ports  {tcm_dffram_addr1[*]}]
+set_output_delay -max 4.5000 -clock [get_clocks {tcm_dffram_clk1}] -add_delay [get_ports  {tcm_dffram_wmask1[*]}]
+set_output_delay -max 4.5000 -clock [get_clocks {tcm_dffram_clk1}] -add_delay [get_ports  {tcm_dffram_din1[*]}]
 
-set_output_delay -min 2.0000 -clock [get_clocks {sram0_clk0}] -add_delay [get_ports {sram0_addr0[*]}]
-set_output_delay -min 2.0000 -clock [get_clocks {sram0_clk0}] -add_delay [get_ports {sram0_csb0}]
-set_output_delay -min 2.0000 -clock [get_clocks {sram0_clk0}] -add_delay [get_ports {sram0_din0[*]}]
-set_output_delay -min 2.0000 -clock [get_clocks {sram0_clk0}] -add_delay [get_ports {sram0_web0}]
-set_output_delay -min 2.0000 -clock [get_clocks {sram0_clk0}] -add_delay [get_ports {sram0_wmask0[*]}]
+set_output_delay -min -0.5000 -clock [get_clocks {tcm_dffram_clk1}] -add_delay [get_ports {tcm_dffram_cs1}]
+set_output_delay -min -0.5000 -clock [get_clocks {tcm_dffram_clk1}] -add_delay [get_ports {tcm_dffram_addr1[*]}]
+set_output_delay -min -1.0000 -clock [get_clocks {tcm_dffram_clk1}] -add_delay [get_ports {tcm_dffram_wmask1[*]}]
+set_output_delay -min -3.5000 -clock [get_clocks {tcm_dffram_clk1}] -add_delay [get_ports {tcm_dffram_din1[*]}]
 
 #icache memory
-set_input_delay -max 6.0000 -clock [get_clocks {icache_mem_clk1}] -add_delay [get_ports {icache_mem_dout1[*]}]
-set_input_delay -min 3.0000 -clock [get_clocks {icache_mem_clk1}] -add_delay [get_ports {icache_mem_dout1[*]}]
+set_input_delay -max 6.0000 -clock [get_clocks   {icache_dffram_clk0}] -add_delay [get_ports  {icache_dffram_dout0[*]}]
+set_input_delay -min 3.0000 -clock [get_clocks   {icache_dffram_clk0}] -add_delay [get_ports  {icache_dffram_dout0[*]}]
 
-set_output_delay -max 4.5000 -clock [get_clocks {icache_mem_clk1}] -add_delay [get_ports {icache_mem_addr1[*]}]
-set_output_delay -max 4.5000 -clock [get_clocks {icache_mem_clk1}] -add_delay [get_ports {icache_mem_csb1}]
+set_output_delay -max 4.5000 -clock [get_clocks  {icache_dffram_clk0}] -add_delay [get_ports  {icache_dffram_cs0}]
+set_output_delay -max 4.5000 -clock [get_clocks  {icache_dffram_clk0}] -add_delay [get_ports  {icache_dffram_addr0[*]}]
+set_output_delay -max 4.5000 -clock [get_clocks  {icache_dffram_clk0}] -add_delay [get_ports  {icache_dffram_wmask0[*]}]
+set_output_delay -max 4.5000 -clock [get_clocks  {icache_dffram_clk0}] -add_delay [get_ports  {icache_dffram_din0[*]}]
 
-set_output_delay -min -0.5000 -clock [get_clocks {icache_mem_clk1}] -add_delay [get_ports {icache_mem_addr1[*]}]
-set_output_delay -min -0.5000 -clock [get_clocks {icache_mem_clk1}] -add_delay [get_ports {icache_mem_csb1}]
+set_output_delay -min -0.5000 -clock [get_clocks {icache_dffram_clk0}] -add_delay [get_ports  {icache_dffram_cs0}]
+set_output_delay -min -0.5000 -clock [get_clocks {icache_dffram_clk0}] -add_delay [get_ports  {icache_dffram_addr0[*]}]
+set_output_delay -min -0.5000 -clock [get_clocks {icache_dffram_clk0}] -add_delay [get_ports  {icache_dffram_wmask0[*]}]
+set_output_delay -min -3.5000 -clock [get_clocks {icache_dffram_clk0}] -add_delay [get_ports  {icache_dffram_din0[*]}]
 
-set_output_delay -max 4.5000 -clock [get_clocks {icache_mem_clk0}] -add_delay [get_ports {icache_mem_addr0[*]}]
-set_output_delay -max 4.5000 -clock [get_clocks {icache_mem_clk0}] -add_delay [get_ports {icache_mem_csb0}]
-set_output_delay -max 4.5000 -clock [get_clocks {icache_mem_clk0}] -add_delay [get_ports {icache_mem_din0[*]}]
-set_output_delay -max 4.5000 -clock [get_clocks {icache_mem_clk0}] -add_delay [get_ports {icache_mem_web0}]
-set_output_delay -max 4.5000 -clock [get_clocks {icache_mem_clk0}] -add_delay [get_ports {icache_mem_wmask0[*]}]
+# mem1
+set_input_delay -max 6.0000 -clock [get_clocks   {icache_dffram_clk1}] -add_delay [get_ports  {icache_dffram_dout1[*]}]
+set_input_delay -min 3.0000 -clock [get_clocks   {icache_dffram_clk1}] -add_delay [get_ports  {icache_dffram_dout1[*]}]
 
-set_output_delay -min -0.5000 -clock [get_clocks {icache_mem_clk0}] -add_delay [get_ports {icache_mem_addr0[*]}]
-set_output_delay -min -0.5000 -clock [get_clocks {icache_mem_clk0}] -add_delay [get_ports {icache_mem_csb0}]
-set_output_delay -min -0.5000 -clock [get_clocks {icache_mem_clk0}] -add_delay [get_ports {icache_mem_din0[*]}]
-set_output_delay -min -0.5000 -clock [get_clocks {icache_mem_clk0}] -add_delay [get_ports {icache_mem_web0}]
-set_output_delay -min -0.5000 -clock [get_clocks {icache_mem_clk0}] -add_delay [get_ports {icache_mem_wmask0[*]}]
+set_output_delay -max 4.5000 -clock [get_clocks  {icache_dffram_clk1}] -add_delay [get_ports  {icache_dffram_cs1}]
+set_output_delay -max 4.5000 -clock [get_clocks  {icache_dffram_clk1}] -add_delay [get_ports  {icache_dffram_addr1[*]}]
+set_output_delay -max 4.5000 -clock [get_clocks  {icache_dffram_clk1}] -add_delay [get_ports  {icache_dffram_wmask1[*]}]
+set_output_delay -max 4.5000 -clock [get_clocks  {icache_dffram_clk1}] -add_delay [get_ports  {icache_dffram_din1[*]}]
+
+set_output_delay -min -0.5000 -clock [get_clocks {icache_dffram_clk1}] -add_delay [get_ports  {icache_dffram_cs1}]
+set_output_delay -min -0.5000 -clock [get_clocks {icache_dffram_clk1}] -add_delay [get_ports  {icache_dffram_addr1[*]}]
+set_output_delay -min -0.5000 -clock [get_clocks {icache_dffram_clk1}] -add_delay [get_ports  {icache_dffram_wmask1[*]}]
+set_output_delay -min -3.5000 -clock [get_clocks {icache_dffram_clk1}] -add_delay [get_ports  {icache_dffram_din1[*]}]
 
 #dcache memory
-set_input_delay -max 6.0000 -clock [get_clocks {dcache_mem_clk0}] -add_delay [get_ports {dcache_mem_dout0[*]}]
-set_input_delay -min 3.0000 -clock [get_clocks {dcache_mem_clk0}] -add_delay [get_ports {dcache_mem_dout0[*]}]
 
-set_input_delay -max 6.0000 -clock [get_clocks {dcache_mem_clk1}] -add_delay [get_ports {dcache_mem_dout1[*]}]
-set_input_delay -min 3.0000 -clock [get_clocks {dcache_mem_clk1}] -add_delay [get_ports {dcache_mem_dout1[*]}]
+set_input_delay -max 6.0000 -clock [get_clocks   {dcache_dffram_clk0}] -add_delay [get_ports  {dcache_dffram_dout0[*]}]
+set_input_delay -min 3.0000 -clock [get_clocks   {dcache_dffram_clk0}] -add_delay [get_ports  {dcache_dffram_dout0[*]}]
 
-set_output_delay -max 4.5000 -clock [get_clocks {dcache_mem_clk1}] -add_delay [get_ports {dcache_mem_addr1[*]}]
-set_output_delay -max 4.5000 -clock [get_clocks {dcache_mem_clk1}] -add_delay [get_ports {dcache_mem_csb1}]
+set_output_delay -max 4.5000 -clock [get_clocks  {dcache_dffram_clk0}] -add_delay [get_ports  {dcache_dffram_cs0}]
+set_output_delay -max 4.5000 -clock [get_clocks  {dcache_dffram_clk0}] -add_delay [get_ports  {dcache_dffram_addr0[*]}]
+set_output_delay -max 4.5000 -clock [get_clocks  {dcache_dffram_clk0}] -add_delay [get_ports  {dcache_dffram_wmask0[*]}]
+set_output_delay -max 4.5000 -clock [get_clocks  {dcache_dffram_clk0}] -add_delay [get_ports  {dcache_dffram_din0[*]}]
 
-set_output_delay -min -0.500 -clock [get_clocks {dcache_mem_clk1}] -add_delay [get_ports {dcache_mem_addr1[*]}]
-set_output_delay -min -0.500 -clock [get_clocks {dcache_mem_clk1}] -add_delay [get_ports {dcache_mem_csb1}]
+set_output_delay -min -0.5000 -clock [get_clocks {dcache_dffram_clk0}] -add_delay [get_ports  {dcache_dffram_cs0}]
+set_output_delay -min -0.5000 -clock [get_clocks {dcache_dffram_clk0}] -add_delay [get_ports  {dcache_dffram_addr0[*]}]
+set_output_delay -min -2.5000 -clock [get_clocks {dcache_dffram_clk0}] -add_delay [get_ports  {dcache_dffram_wmask0[*]}]
+set_output_delay -min -3.5000 -clock [get_clocks {dcache_dffram_clk0}] -add_delay [get_ports  {dcache_dffram_din0[*]}]
 
-set_output_delay -max 4.5000 -clock [get_clocks {dcache_mem_clk0}] -add_delay [get_ports {dcache_mem_addr0[*]}]
-set_output_delay -max 4.5000 -clock [get_clocks {dcache_mem_clk0}] -add_delay [get_ports {dcache_mem_csb0}]
-set_output_delay -max 4.5000 -clock [get_clocks {dcache_mem_clk0}] -add_delay [get_ports {dcache_mem_din0[*]}]
-set_output_delay -max 4.5000 -clock [get_clocks {dcache_mem_clk0}] -add_delay [get_ports {dcache_mem_web0}]
-set_output_delay -max 4.5000 -clock [get_clocks {dcache_mem_clk0}] -add_delay [get_ports {dcache_mem_wmask0[*]}]
+# mem1
+set_input_delay -max 6.0000 -clock [get_clocks   {dcache_dffram_clk1}] -add_delay [get_ports  {dcache_dffram_dout1[*]}]
+set_input_delay -min 3.0000 -clock [get_clocks   {dcache_dffram_clk1}] -add_delay [get_ports  {dcache_dffram_dout1[*]}]
 
-set_output_delay -min -0.500 -clock [get_clocks {dcache_mem_clk0}] -add_delay [get_ports {dcache_mem_addr0[*]}]
-set_output_delay -min -0.500 -clock [get_clocks {dcache_mem_clk0}] -add_delay [get_ports {dcache_mem_csb0}]
-set_output_delay -min -0.500 -clock [get_clocks {dcache_mem_clk0}] -add_delay [get_ports {dcache_mem_din0[*]}]
-set_output_delay -min -0.500 -clock [get_clocks {dcache_mem_clk0}] -add_delay [get_ports {dcache_mem_web0}]
-set_output_delay -min -0.500 -clock [get_clocks {dcache_mem_clk0}] -add_delay [get_ports {dcache_mem_wmask0[*]}]
+set_output_delay -max 4.5000 -clock [get_clocks  {dcache_dffram_clk1}] -add_delay [get_ports  {dcache_dffram_cs1}]
+set_output_delay -max 4.5000 -clock [get_clocks  {dcache_dffram_clk1}] -add_delay [get_ports  {dcache_dffram_addr1[*]}]
+set_output_delay -max 4.5000 -clock [get_clocks  {dcache_dffram_clk1}] -add_delay [get_ports  {dcache_dffram_wmask1[*]}]
+set_output_delay -max 4.5000 -clock [get_clocks  {dcache_dffram_clk1}] -add_delay [get_ports  {dcache_dffram_din1[*]}]
+
+set_output_delay -min -0.5000 -clock [get_clocks {dcache_dffram_clk1}] -add_delay [get_ports  {dcache_dffram_cs1}]
+set_output_delay -min -0.5000 -clock [get_clocks {dcache_dffram_clk1}] -add_delay [get_ports  {dcache_dffram_addr1[*]}]
+set_output_delay -min -2.5000 -clock [get_clocks {dcache_dffram_clk1}] -add_delay [get_ports  {dcache_dffram_wmask1[*]}]
+set_output_delay -min -3.5000 -clock [get_clocks {dcache_dffram_clk1}] -add_delay [get_ports  {dcache_dffram_din1[*]}]
+
+
+
 
 set_input_delay -max 5.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_rst_n}]
 
@@ -138,56 +155,56 @@
 set_output_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_dmem_we_o}]
 
 #Wishbone icache
-set_input_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_icache_lack_i}]
-set_input_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_icache_ack_i}]
-set_input_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_icache_dat_i[*]}]
-set_input_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_icache_err_i}]
+set_input_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_icache_lack_i}]
+set_input_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_icache_ack_i}]
+set_input_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_icache_dat_i[*]}]
+set_input_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_icache_err_i}]
 
-set_input_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_icache_lack_i}]
-set_input_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_icache_ack_i}]
-set_input_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_icache_dat_i[*]}]
-set_input_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_icache_dat_i[*]}]
+set_input_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_icache_lack_i}]
+set_input_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_icache_ack_i}]
+set_input_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_icache_dat_i[*]}]
+set_input_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_icache_dat_i[*]}]
 
-set_output_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_icache_adr_o[*]}]
-set_output_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_icache_sel_o[*]}]
-set_output_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_icache_bl_o[*]}]
-set_output_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_icache_bry_o}]
-set_output_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_icache_stb_o}]
-set_output_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_icache_we_o}]
+set_output_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_icache_adr_o[*]}]
+set_output_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_icache_sel_o[*]}]
+set_output_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_icache_bl_o[*]}]
+set_output_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_icache_bry_o}]
+set_output_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_icache_stb_o}]
+set_output_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_icache_we_o}]
 
-set_output_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_icache_adr_o[*]}]
-set_output_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_icache_sel_o[*]}]
-set_output_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_icache_bl_o[*]}]
-set_output_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_icache_bry_o}]
-set_output_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_icache_stb_o}]
-set_output_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_icache_we_o}]
+set_output_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_icache_adr_o[*]}]
+set_output_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_icache_sel_o[*]}]
+set_output_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_icache_bl_o[*]}]
+set_output_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_icache_bry_o}]
+set_output_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_icache_stb_o}]
+set_output_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_icache_we_o}]
 
 #Wishbone dcache
-set_input_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_dcache_lack_i}]
-set_input_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_dcache_ack_i}]
-set_input_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_dcache_dat_i[*]}]
-set_input_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_dcache_err_i}]
+set_input_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_dcache_lack_i}]
+set_input_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_dcache_ack_i}]
+set_input_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_dcache_dat_i[*]}]
+set_input_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_dcache_err_i}]
 
-set_input_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_dcache_lack_i}]
-set_input_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_dcache_ack_i}]
-set_input_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_dcache_dat_i[*]}]
-set_input_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_dcache_dat_i[*]}]
+set_input_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_dcache_lack_i}]
+set_input_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_dcache_ack_i}]
+set_input_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_dcache_dat_i[*]}]
+set_input_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_dcache_dat_i[*]}]
 
-set_output_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_dcache_adr_o[*]}]
-set_output_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_dcache_dat_o[*]}]
-set_output_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_dcache_sel_o[*]}]
-set_output_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_dcache_bl_o[*]}]
-set_output_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_dcache_bry_o}]
-set_output_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_dcache_stb_o}]
-set_output_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_dcache_we_o}]
+set_output_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_dcache_adr_o[*]}]
+set_output_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_dcache_dat_o[*]}]
+set_output_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_dcache_sel_o[*]}]
+set_output_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_dcache_bl_o[*]}]
+set_output_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_dcache_bry_o}]
+set_output_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_dcache_stb_o}]
+set_output_delay -max 4.5000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_dcache_we_o}]
 
-set_output_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_dcache_adr_o[*]}]
-set_output_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_dcache_dat_o[*]}]
-set_output_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_dcache_sel_o[*]}]
-set_output_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_dcache_bl_o[*]}]
-set_output_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_dcache_bry_o}]
-set_output_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_dcache_stb_o}]
-set_output_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wbd_dcache_we_o}]
+set_output_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_dcache_adr_o[*]}]
+set_output_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_dcache_dat_o[*]}]
+set_output_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_dcache_sel_o[*]}]
+set_output_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_dcache_bl_o[*]}]
+set_output_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_dcache_bry_o}]
+set_output_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_dcache_stb_o}]
+set_output_delay -min 2.0000 -clock [get_clocks {wb_clk}] -add_delay [get_ports {wb_dcache_we_o}]
 
 set_false_path\
     -from [get_ports {soft_irq}]
diff --git a/openlane/yifive/config.tcl b/openlane/yifive/config.tcl
index 1f117a8..c0a0db0 100755
--- a/openlane/yifive/config.tcl
+++ b/openlane/yifive/config.tcl
@@ -67,7 +67,7 @@
 	$script_dir/../../verilog/rtl/yifive/ycr1c/src/top/ycr1_imem_router.sv   \
 	$script_dir/../../verilog/rtl/yifive/ycr1c/src/top/ycr1_icache_router.sv \
 	$script_dir/../../verilog/rtl/yifive/ycr1c/src/top/ycr1_dcache_router.sv \
-	$script_dir/../../verilog/rtl/yifive/ycr1c/src/top/ycr1_tcm.sv   \
+	$script_dir/../../verilog/rtl/yifive/ycr1c/src/top/ycr1_tcm_router.sv   \
 	$script_dir/../../verilog/rtl/yifive/ycr1c/src/top/ycr1_timer.sv   \
 	$script_dir/../../verilog/rtl/yifive/ycr1c/src/top/ycr1_top_wb.sv   \
 	$script_dir/../../verilog/rtl/yifive/ycr1c/src/top/ycr1_dmem_wb.sv   \
@@ -106,7 +106,7 @@
 set ::env(FP_PIN_ORDER_CFG) $::env(DESIGN_DIR)/pin_order.cfg
 
 set ::env(FP_SIZING) absolute
-set ::env(DIE_AREA) [list 0.0 0.0 725.0 1550.0]
+set ::env(DIE_AREA) [list 0.0 0.0 825.0 1550.0]
 
 
 # If you're going to use multiple power domains, then keep this disabled.
@@ -116,21 +116,15 @@
 
 
 set ::env(PL_TIME_DRIVEN) 1
-set ::env(PL_TARGET_DENSITY) "0.35"
+set ::env(PL_TARGET_DENSITY) "0.34"
 set ::env(FP_CORE_UTIL) "50"
 
-# helps in anteena fix
-set ::env(USE_ARC_ANTENNA_CHECK) "0"
 
-set ::env(FP_IO_VEXTEND) 4
-set ::env(FP_IO_HEXTEND) 4
 
-set ::env(FP_PDN_VPITCH) 100
-set ::env(FP_PDN_HPITCH) 100
-set ::env(FP_PDN_VWIDTH) 3
-set ::env(FP_PDN_HWIDTH) 3
+## Routing
 
-set ::env(GLB_RT_MAXLAYER) 6
+
+set ::env(GLB_RT_MAXLAYER) 5
 set ::env(GLB_RT_MAX_DIODE_INS_ITERS) 10
 set ::env(DIODE_INSERTION_STRATEGY) 4
 
diff --git a/openlane/yifive/pin_order.cfg b/openlane/yifive/pin_order.cfg
index e168c5f..8a9b2a8 100644
--- a/openlane/yifive/pin_order.cfg
+++ b/openlane/yifive/pin_order.cfg
@@ -371,358 +371,486 @@
 wb_icache_err_i      
 
 #W
-sram0_clk1          0000 0 2
-sram0_csb1
-sram0_addr1\[8\]
-sram0_addr1\[7\]
-sram0_addr1\[6\]
-sram0_addr1\[5\]
-sram0_addr1\[4\]
-sram0_addr1\[3\]
-sram0_addr1\[2\]
-sram0_addr1\[1\]
-sram0_addr1\[0\]
 
-sram0_dout1\[0\]     0200 0 2
-sram0_dout1\[1\]
-sram0_dout1\[2\]
-sram0_dout1\[3\]
-sram0_dout1\[4\]
-sram0_dout1\[5\]
-sram0_dout1\[6\]
-sram0_dout1\[7\]
-sram0_dout1\[8\]
-sram0_dout1\[9\]
-sram0_dout1\[10\]
-sram0_dout1\[11\]
-sram0_dout1\[12\]
-sram0_dout1\[13\]
-sram0_dout1\[14\]
-sram0_dout1\[15\]
-sram0_dout1\[16\]
-sram0_dout1\[17\]
-sram0_dout1\[18\]
-sram0_dout1\[19\]
-sram0_dout1\[20\]
-sram0_dout1\[21\]
-sram0_dout1\[22\]
-sram0_dout1\[23\]
-sram0_dout1\[24\]
-sram0_dout1\[25\]
-sram0_dout1\[26\]
-sram0_dout1\[27\]
-sram0_dout1\[28\]
-sram0_dout1\[29\]
-sram0_dout1\[30\]
-sram0_dout1\[31\]
+tcm_dffram_clk0          0000 0 2
+tcm_dffram_cs0
+tcm_dffram_addr0\[7\]
+tcm_dffram_addr0\[6\]
+tcm_dffram_addr0\[5\]
+tcm_dffram_addr0\[4\]
+tcm_dffram_addr0\[3\]
+tcm_dffram_addr0\[2\]
+tcm_dffram_addr0\[1\]
+tcm_dffram_addr0\[0\]
+tcm_dffram_wmask0\[3\]
+tcm_dffram_wmask0\[2\]
+tcm_dffram_wmask0\[1\]
+tcm_dffram_wmask0\[0\]
+tcm_dffram_din0\[31\]
+tcm_dffram_din0\[30\]
+tcm_dffram_din0\[29\]
+tcm_dffram_din0\[28\]
+tcm_dffram_din0\[27\]
+tcm_dffram_din0\[26\]
+tcm_dffram_din0\[25\]
+tcm_dffram_din0\[24\]
+tcm_dffram_din0\[23\]
+tcm_dffram_din0\[22\]
+tcm_dffram_din0\[21\]
+tcm_dffram_din0\[20\]
+tcm_dffram_din0\[19\]
+tcm_dffram_din0\[18\]
+tcm_dffram_din0\[17\]
+tcm_dffram_din0\[16\]
+tcm_dffram_din0\[15\]
+tcm_dffram_din0\[14\]
+tcm_dffram_din0\[13\]
+tcm_dffram_din0\[12\]
+tcm_dffram_din0\[11\]
+tcm_dffram_din0\[10\]
+tcm_dffram_din0\[9\]
+tcm_dffram_din0\[8\]
+tcm_dffram_din0\[7\]
+tcm_dffram_din0\[6\]
+tcm_dffram_din0\[5\]
+tcm_dffram_din0\[4\]
+tcm_dffram_din0\[3\]
+tcm_dffram_din0\[2\]
+tcm_dffram_din0\[1\]
+tcm_dffram_din0\[0\]
 
-icache_mem_clk0          300 0 2
-icache_mem_csb0
-icache_mem_web0
-icache_mem_addr0\[0\]
-icache_mem_addr0\[1\]
-icache_mem_addr0\[2\]
-icache_mem_addr0\[3\]
-icache_mem_addr0\[4\]
-icache_mem_addr0\[5\]
-icache_mem_addr0\[6\]
-icache_mem_addr0\[7\]
-icache_mem_addr0\[8\]
-icache_mem_wmask0\[0\]
-icache_mem_wmask0\[1\]
-icache_mem_wmask0\[2\]
-icache_mem_wmask0\[3\]
-icache_mem_din0\[0\]
-icache_mem_din0\[1\]
-icache_mem_din0\[2\]
-icache_mem_din0\[3\]
-icache_mem_din0\[4\]
-icache_mem_din0\[5\]
-icache_mem_din0\[6\]
-icache_mem_din0\[7\]
-icache_mem_din0\[8\]
-icache_mem_din0\[9\]
-icache_mem_din0\[10\]
-icache_mem_din0\[11\]
-icache_mem_din0\[12\]
-icache_mem_din0\[13\]
-icache_mem_din0\[14\]
-icache_mem_din0\[15\]
-icache_mem_din0\[16\]
-icache_mem_din0\[17\]
-icache_mem_din0\[18\]
-icache_mem_din0\[19\]
-icache_mem_din0\[20\]
-icache_mem_din0\[21\]
-icache_mem_din0\[22\]
-icache_mem_din0\[23\]
-icache_mem_din0\[24\]
-icache_mem_din0\[25\]
-icache_mem_din0\[26\]
-icache_mem_din0\[27\]
-icache_mem_din0\[28\]
-icache_mem_din0\[29\]
-icache_mem_din0\[30\]
-icache_mem_din0\[31\]
+tcm_dffram_dout0\[31\]  750 0 2
+tcm_dffram_dout0\[30\]
+tcm_dffram_dout0\[29\]
+tcm_dffram_dout0\[28\]
+tcm_dffram_dout0\[27\]
+tcm_dffram_dout0\[26\]
+tcm_dffram_dout0\[25\]
+tcm_dffram_dout0\[24\]
+tcm_dffram_dout0\[23\]
+tcm_dffram_dout0\[22\]
+tcm_dffram_dout0\[21\]
+tcm_dffram_dout0\[20\]
+tcm_dffram_dout0\[19\]
+tcm_dffram_dout0\[18\]
+tcm_dffram_dout0\[17\]
+tcm_dffram_dout0\[16\]
+tcm_dffram_dout0\[15\]
+tcm_dffram_dout0\[14\]
+tcm_dffram_dout0\[13\]
+tcm_dffram_dout0\[12\]
+tcm_dffram_dout0\[11\]
+tcm_dffram_dout0\[10\]
+tcm_dffram_dout0\[9\]
+tcm_dffram_dout0\[8\]
+tcm_dffram_dout0\[7\]
+tcm_dffram_dout0\[6\]
+tcm_dffram_dout0\[5\]
+tcm_dffram_dout0\[4\]
+tcm_dffram_dout0\[3\]
+tcm_dffram_dout0\[2\]
+tcm_dffram_dout0\[1\]
+tcm_dffram_dout0\[0\]
 
-icache_mem_clk1          0400 0 2
-icache_mem_csb1
-icache_mem_addr1\[8\]
-icache_mem_addr1\[7\]
-icache_mem_addr1\[6\]
-icache_mem_addr1\[5\]
-icache_mem_addr1\[4\]
-icache_mem_addr1\[3\]
-icache_mem_addr1\[2\]
-icache_mem_addr1\[1\]
-icache_mem_addr1\[0\]
+tcm_dffram_clk1          0800 0 2
+tcm_dffram_cs1
+tcm_dffram_addr1\[0\]
+tcm_dffram_addr1\[1\]
+tcm_dffram_addr1\[2\]
+tcm_dffram_addr1\[3\]
+tcm_dffram_addr1\[4\]
+tcm_dffram_addr1\[5\]
+tcm_dffram_addr1\[6\]
+tcm_dffram_addr1\[7\]
+tcm_dffram_wmask1\[0\]
+tcm_dffram_wmask1\[1\]
+tcm_dffram_wmask1\[2\]
+tcm_dffram_wmask1\[3\]
+tcm_dffram_din1\[0\]
+tcm_dffram_din1\[1\]
+tcm_dffram_din1\[2\]
+tcm_dffram_din1\[3\]
+tcm_dffram_din1\[4\]
+tcm_dffram_din1\[5\]
+tcm_dffram_din1\[6\]
+tcm_dffram_din1\[7\]
+tcm_dffram_din1\[8\]
+tcm_dffram_din1\[9\]
+tcm_dffram_din1\[10\]
+tcm_dffram_din1\[11\]
+tcm_dffram_din1\[12\]
+tcm_dffram_din1\[13\]
+tcm_dffram_din1\[14\]
+tcm_dffram_din1\[15\]
+tcm_dffram_din1\[16\]
+tcm_dffram_din1\[17\]
+tcm_dffram_din1\[18\]
+tcm_dffram_din1\[19\]
+tcm_dffram_din1\[20\]
+tcm_dffram_din1\[21\]
+tcm_dffram_din1\[22\]
+tcm_dffram_din1\[23\]
+tcm_dffram_din1\[24\]
+tcm_dffram_din1\[25\]
+tcm_dffram_din1\[26\]
+tcm_dffram_din1\[27\]
+tcm_dffram_din1\[28\]
+tcm_dffram_din1\[29\]
+tcm_dffram_din1\[30\]
+tcm_dffram_din1\[31\]
 
-icache_mem_dout1\[0\]     0450 0 2
-icache_mem_dout1\[1\]
-icache_mem_dout1\[2\]
-icache_mem_dout1\[3\]
-icache_mem_dout1\[4\]
-icache_mem_dout1\[5\]
-icache_mem_dout1\[6\]
-icache_mem_dout1\[7\]
-icache_mem_dout1\[8\]
-icache_mem_dout1\[9\]
-icache_mem_dout1\[10\]
-icache_mem_dout1\[11\]
-icache_mem_dout1\[12\]
-icache_mem_dout1\[13\]
-icache_mem_dout1\[14\]
-icache_mem_dout1\[15\]
-icache_mem_dout1\[16\]
-icache_mem_dout1\[17\]
-icache_mem_dout1\[18\]
-icache_mem_dout1\[19\]
-icache_mem_dout1\[20\]
-icache_mem_dout1\[21\]
-icache_mem_dout1\[22\]
-icache_mem_dout1\[23\]
-icache_mem_dout1\[24\]
-icache_mem_dout1\[25\]
-icache_mem_dout1\[26\]
-icache_mem_dout1\[27\]
-icache_mem_dout1\[28\]
-icache_mem_dout1\[29\]
-icache_mem_dout1\[30\]
-icache_mem_dout1\[31\]
+tcm_dffram_dout1\[31\] 1450 0 2
+tcm_dffram_dout1\[30\]
+tcm_dffram_dout1\[29\]
+tcm_dffram_dout1\[28\]
+tcm_dffram_dout1\[27\]
+tcm_dffram_dout1\[26\]
+tcm_dffram_dout1\[25\]
+tcm_dffram_dout1\[24\]
+tcm_dffram_dout1\[23\]
+tcm_dffram_dout1\[22\]
+tcm_dffram_dout1\[21\]
+tcm_dffram_dout1\[20\]
+tcm_dffram_dout1\[19\]
+tcm_dffram_dout1\[18\]
+tcm_dffram_dout1\[17\]
+tcm_dffram_dout1\[16\]
+tcm_dffram_dout1\[15\]
+tcm_dffram_dout1\[14\]
+tcm_dffram_dout1\[13\]
+tcm_dffram_dout1\[12\]
+tcm_dffram_dout1\[11\]
+tcm_dffram_dout1\[10\]
+tcm_dffram_dout1\[9\]
+tcm_dffram_dout1\[8\]
+tcm_dffram_dout1\[7\]
+tcm_dffram_dout1\[6\]
+tcm_dffram_dout1\[5\]
+tcm_dffram_dout1\[4\]
+tcm_dffram_dout1\[3\]
+tcm_dffram_dout1\[2\]
+tcm_dffram_dout1\[1\]
+tcm_dffram_dout1\[0\]
 
-dcache_mem_clk0            850 0 2
-dcache_mem_csb0
-dcache_mem_web0
-dcache_mem_addr0\[0\]
-dcache_mem_addr0\[1\]
-dcache_mem_addr0\[2\]
-dcache_mem_addr0\[3\]
-dcache_mem_addr0\[4\]
-dcache_mem_addr0\[5\]
-dcache_mem_addr0\[6\]
-dcache_mem_addr0\[7\]
-dcache_mem_addr0\[8\]
-dcache_mem_wmask0\[0\]
-dcache_mem_wmask0\[1\]
-dcache_mem_wmask0\[2\]
-dcache_mem_wmask0\[3\]
-dcache_mem_din0\[0\]
-dcache_mem_din0\[1\]
-dcache_mem_din0\[2\]
-dcache_mem_din0\[3\]
-dcache_mem_din0\[4\]
-dcache_mem_din0\[5\]
-dcache_mem_din0\[6\]
-dcache_mem_din0\[7\]
-dcache_mem_din0\[8\]
-dcache_mem_din0\[9\]
-dcache_mem_din0\[10\]
-dcache_mem_din0\[11\]
-dcache_mem_din0\[12\]
-dcache_mem_din0\[13\]
-dcache_mem_din0\[14\]
-dcache_mem_din0\[15\]
-dcache_mem_din0\[16\]
-dcache_mem_din0\[17\]
-dcache_mem_din0\[18\]
-dcache_mem_din0\[19\]
-dcache_mem_din0\[20\]
-dcache_mem_din0\[21\]
-dcache_mem_din0\[22\]
-dcache_mem_din0\[23\]
-dcache_mem_din0\[24\]
-dcache_mem_din0\[25\]
-dcache_mem_din0\[26\]
-dcache_mem_din0\[27\]
-dcache_mem_din0\[28\]
-dcache_mem_din0\[29\]
-dcache_mem_din0\[30\]
-dcache_mem_din0\[31\]
+#N
+dcache_dffram_clk0          0000 0 2
+dcache_dffram_din0\[0\]
+dcache_dffram_din0\[1\]
+dcache_dffram_din0\[2\]
+dcache_dffram_din0\[3\]
+dcache_dffram_din0\[4\]
+dcache_dffram_din0\[5\]
+dcache_dffram_din0\[6\]
+dcache_dffram_din0\[7\]
+dcache_dffram_din0\[8\]
+dcache_dffram_din0\[9\]
+dcache_dffram_din0\[10\]
+dcache_dffram_din0\[11\]
+dcache_dffram_din0\[12\]
+dcache_dffram_din0\[13\]
+dcache_dffram_din0\[14\]
+dcache_dffram_din0\[15\]
+dcache_dffram_din0\[16\]
+dcache_dffram_din0\[17\]
+dcache_dffram_din0\[18\]
+dcache_dffram_din0\[19\]
+dcache_dffram_din0\[20\]
+dcache_dffram_din0\[21\]
+dcache_dffram_din0\[22\]
+dcache_dffram_din0\[23\]
+dcache_dffram_din0\[24\]
+dcache_dffram_din0\[25\]
+dcache_dffram_din0\[26\]
+dcache_dffram_din0\[27\]
+dcache_dffram_din0\[28\]
+dcache_dffram_din0\[29\]
+dcache_dffram_din0\[30\]
+dcache_dffram_din0\[31\]
+dcache_dffram_cs0
+dcache_dffram_addr0\[7\]
+dcache_dffram_addr0\[6\]
+dcache_dffram_addr0\[5\]
+dcache_dffram_addr0\[4\]
+dcache_dffram_addr0\[3\]
+dcache_dffram_addr0\[2\]
+dcache_dffram_addr0\[1\]
+dcache_dffram_addr0\[0\]
+dcache_dffram_wmask0\[3\]
+dcache_dffram_wmask0\[2\]
+dcache_dffram_wmask0\[1\]
+dcache_dffram_wmask0\[0\]
+dcache_dffram_dout0\[0\]
+dcache_dffram_dout0\[1\]
+dcache_dffram_dout0\[2\]
+dcache_dffram_dout0\[3\]
+dcache_dffram_dout0\[4\]
+dcache_dffram_dout0\[5\]
+dcache_dffram_dout0\[6\]
+dcache_dffram_dout0\[7\]
+dcache_dffram_dout0\[8\]
+dcache_dffram_dout0\[9\]
+dcache_dffram_dout0\[10\]
+dcache_dffram_dout0\[11\]
+dcache_dffram_dout0\[12\]
+dcache_dffram_dout0\[13\]
+dcache_dffram_dout0\[14\]
+dcache_dffram_dout0\[15\]
+dcache_dffram_dout0\[16\]
+dcache_dffram_dout0\[17\]
+dcache_dffram_dout0\[18\]
+dcache_dffram_dout0\[19\]
+dcache_dffram_dout0\[20\]
+dcache_dffram_dout0\[21\]
+dcache_dffram_dout0\[22\]
+dcache_dffram_dout0\[23\]
+dcache_dffram_dout0\[24\]
+dcache_dffram_dout0\[25\]
+dcache_dffram_dout0\[26\]
+dcache_dffram_dout0\[27\]
+dcache_dffram_dout0\[28\]
+dcache_dffram_dout0\[29\]
+dcache_dffram_dout0\[30\]
+dcache_dffram_dout0\[31\]
 
-
-dcache_mem_dout0\[0\]   950 0 2
-dcache_mem_dout0\[1\]
-dcache_mem_dout0\[2\]
-dcache_mem_dout0\[3\]
-dcache_mem_dout0\[4\]
-dcache_mem_dout0\[5\]
-dcache_mem_dout0\[6\]
-dcache_mem_dout0\[7\]
-dcache_mem_dout0\[8\]
-dcache_mem_dout0\[9\]
-dcache_mem_dout0\[10\]
-dcache_mem_dout0\[11\]
-dcache_mem_dout0\[12\]
-dcache_mem_dout0\[13\]
-dcache_mem_dout0\[14\]
-dcache_mem_dout0\[15\]
-dcache_mem_dout0\[16\]
-dcache_mem_dout0\[17\]
-dcache_mem_dout0\[18\]
-dcache_mem_dout0\[19\]
-dcache_mem_dout0\[20\]
-dcache_mem_dout0\[21\]
-dcache_mem_dout0\[22\]
-dcache_mem_dout0\[23\]
-dcache_mem_dout0\[24\]
-dcache_mem_dout0\[25\]
-dcache_mem_dout0\[26\]
-dcache_mem_dout0\[27\]
-dcache_mem_dout0\[28\]
-dcache_mem_dout0\[29\]
-dcache_mem_dout0\[30\]
-dcache_mem_dout0\[31\]
-
-dcache_mem_clk1         1000 0 2
-dcache_mem_csb1
-dcache_mem_addr1\[8\]
-dcache_mem_addr1\[7\]
-dcache_mem_addr1\[6\]
-dcache_mem_addr1\[5\]
-dcache_mem_addr1\[4\]
-dcache_mem_addr1\[3\]
-dcache_mem_addr1\[2\]
-dcache_mem_addr1\[1\]
-dcache_mem_addr1\[0\]
-
-dcache_mem_dout1\[0\]   1050 0 2
-dcache_mem_dout1\[1\]
-dcache_mem_dout1\[2\]
-dcache_mem_dout1\[3\]
-dcache_mem_dout1\[4\]
-dcache_mem_dout1\[5\]
-dcache_mem_dout1\[6\]
-dcache_mem_dout1\[7\]
-dcache_mem_dout1\[8\]
-dcache_mem_dout1\[9\]
-dcache_mem_dout1\[10\]
-dcache_mem_dout1\[11\]
-dcache_mem_dout1\[12\]
-dcache_mem_dout1\[13\]
-dcache_mem_dout1\[14\]
-dcache_mem_dout1\[15\]
-dcache_mem_dout1\[16\]
-dcache_mem_dout1\[17\]
-dcache_mem_dout1\[18\]
-dcache_mem_dout1\[19\]
-dcache_mem_dout1\[20\]
-dcache_mem_dout1\[21\]
-dcache_mem_dout1\[22\]
-dcache_mem_dout1\[23\]
-dcache_mem_dout1\[24\]
-dcache_mem_dout1\[25\]
-dcache_mem_dout1\[26\]
-dcache_mem_dout1\[27\]
-dcache_mem_dout1\[28\]
-dcache_mem_dout1\[29\]
-dcache_mem_dout1\[30\]
-dcache_mem_dout1\[31\]
+dcache_dffram_clk1          0300 0 2
+dcache_dffram_din1\[0\]
+dcache_dffram_din1\[1\]
+dcache_dffram_din1\[2\]
+dcache_dffram_din1\[3\]
+dcache_dffram_din1\[4\]
+dcache_dffram_din1\[5\]
+dcache_dffram_din1\[6\]
+dcache_dffram_din1\[7\]
+dcache_dffram_din1\[8\]
+dcache_dffram_din1\[9\]
+dcache_dffram_din1\[10\]
+dcache_dffram_din1\[11\]
+dcache_dffram_din1\[12\]
+dcache_dffram_din1\[13\]
+dcache_dffram_din1\[14\]
+dcache_dffram_din1\[15\]
+dcache_dffram_din1\[16\]
+dcache_dffram_din1\[17\]
+dcache_dffram_din1\[18\]
+dcache_dffram_din1\[19\]
+dcache_dffram_din1\[20\]
+dcache_dffram_din1\[21\]
+dcache_dffram_din1\[22\]
+dcache_dffram_din1\[23\]
+dcache_dffram_din1\[24\]
+dcache_dffram_din1\[25\]
+dcache_dffram_din1\[26\]
+dcache_dffram_din1\[27\]
+dcache_dffram_din1\[28\]
+dcache_dffram_din1\[29\]
+dcache_dffram_din1\[30\]
+dcache_dffram_din1\[31\]
+dcache_dffram_cs1
+dcache_dffram_addr1\[7\]
+dcache_dffram_addr1\[6\]
+dcache_dffram_addr1\[5\]
+dcache_dffram_addr1\[4\]
+dcache_dffram_addr1\[3\]
+dcache_dffram_addr1\[2\]
+dcache_dffram_addr1\[1\]
+dcache_dffram_addr1\[0\]
+dcache_dffram_wmask1\[3\]
+dcache_dffram_wmask1\[2\]
+dcache_dffram_wmask1\[1\]
+dcache_dffram_wmask1\[0\]
+dcache_dffram_dout1\[0\]
+dcache_dffram_dout1\[1\]
+dcache_dffram_dout1\[2\]
+dcache_dffram_dout1\[3\]
+dcache_dffram_dout1\[4\]
+dcache_dffram_dout1\[5\]
+dcache_dffram_dout1\[6\]
+dcache_dffram_dout1\[7\]
+dcache_dffram_dout1\[8\]
+dcache_dffram_dout1\[9\]
+dcache_dffram_dout1\[10\]
+dcache_dffram_dout1\[11\]
+dcache_dffram_dout1\[12\]
+dcache_dffram_dout1\[13\]
+dcache_dffram_dout1\[14\]
+dcache_dffram_dout1\[15\]
+dcache_dffram_dout1\[16\]
+dcache_dffram_dout1\[17\]
+dcache_dffram_dout1\[18\]
+dcache_dffram_dout1\[19\]
+dcache_dffram_dout1\[20\]
+dcache_dffram_dout1\[21\]
+dcache_dffram_dout1\[22\]
+dcache_dffram_dout1\[23\]
+dcache_dffram_dout1\[24\]
+dcache_dffram_dout1\[25\]
+dcache_dffram_dout1\[26\]
+dcache_dffram_dout1\[27\]
+dcache_dffram_dout1\[28\]
+dcache_dffram_dout1\[29\]
+dcache_dffram_dout1\[30\]
+dcache_dffram_dout1\[31\]
 
 #S
-sram0_clk0              0 0 2
-sram0_csb0
-sram0_web0
-sram0_addr0\[0\]
-sram0_addr0\[1\]
-sram0_addr0\[2\]
-sram0_addr0\[3\]
-sram0_addr0\[4\]
-sram0_addr0\[5\]
-sram0_addr0\[6\]
-sram0_addr0\[7\]
-sram0_addr0\[8\]
-sram0_wmask0\[0\]
-sram0_wmask0\[1\]
-sram0_wmask0\[2\]
-sram0_wmask0\[3\]
-sram0_din0\[0\]
-sram0_din0\[1\]
-sram0_din0\[2\]
-sram0_din0\[3\]
-sram0_din0\[4\]
-sram0_din0\[5\]
-sram0_din0\[6\]
-sram0_din0\[7\]
-sram0_din0\[8\]
-sram0_din0\[9\]
-sram0_din0\[10\]
-sram0_din0\[11\]
-sram0_din0\[12\]
-sram0_din0\[13\]
-sram0_din0\[14\]
-sram0_din0\[15\]
-sram0_din0\[16\]
-sram0_din0\[17\]
-sram0_din0\[18\]
-sram0_din0\[19\]
-sram0_din0\[20\]
-sram0_din0\[21\]
-sram0_din0\[22\]
-sram0_din0\[23\]
-sram0_din0\[24\]
-sram0_din0\[25\]
-sram0_din0\[26\]
-sram0_din0\[27\]
-sram0_din0\[28\]
-sram0_din0\[29\]
-sram0_din0\[30\]
-sram0_din0\[31\]
+icache_dffram_clk0        0000 0 2
+icache_dffram_dout0\[0\]  
+icache_dffram_dout0\[1\]
+icache_dffram_dout0\[2\]
+icache_dffram_dout0\[3\]
+icache_dffram_dout0\[4\]
+icache_dffram_dout0\[5\]
+icache_dffram_dout0\[6\]
+icache_dffram_dout0\[7\]
+icache_dffram_dout0\[8\]
+icache_dffram_dout0\[9\]
+icache_dffram_dout0\[10\]
+icache_dffram_dout0\[11\]
+icache_dffram_dout0\[12\]
+icache_dffram_dout0\[13\]
+icache_dffram_dout0\[14\]
+icache_dffram_dout0\[15\]
+icache_dffram_dout0\[16\]
+icache_dffram_dout0\[17\]
+icache_dffram_dout0\[18\]
+icache_dffram_dout0\[19\]
+icache_dffram_dout0\[20\]
+icache_dffram_dout0\[21\]
+icache_dffram_dout0\[22\]
+icache_dffram_dout0\[23\]
+icache_dffram_dout0\[24\]
+icache_dffram_dout0\[25\]
+icache_dffram_dout0\[26\]
+icache_dffram_dout0\[27\]
+icache_dffram_dout0\[28\]
+icache_dffram_dout0\[29\]
+icache_dffram_dout0\[30\]
+icache_dffram_dout0\[31\]
+icache_dffram_cs0
+icache_dffram_addr0\[7\]
+icache_dffram_addr0\[6\]
+icache_dffram_addr0\[5\]
+icache_dffram_addr0\[4\]
+icache_dffram_addr0\[3\]
+icache_dffram_addr0\[2\]
+icache_dffram_addr0\[1\]
+icache_dffram_addr0\[0\]
+icache_dffram_wmask0\[3\]
+icache_dffram_wmask0\[2\]
+icache_dffram_wmask0\[1\]
+icache_dffram_wmask0\[0\]
+icache_dffram_din0\[0\]
+icache_dffram_din0\[1\]
+icache_dffram_din0\[2\]
+icache_dffram_din0\[3\]
+icache_dffram_din0\[4\]
+icache_dffram_din0\[5\]
+icache_dffram_din0\[6\]
+icache_dffram_din0\[7\]
+icache_dffram_din0\[8\]
+icache_dffram_din0\[9\]
+icache_dffram_din0\[10\]
+icache_dffram_din0\[11\]
+icache_dffram_din0\[12\]
+icache_dffram_din0\[13\]
+icache_dffram_din0\[14\]
+icache_dffram_din0\[15\]
+icache_dffram_din0\[16\]
+icache_dffram_din0\[17\]
+icache_dffram_din0\[18\]
+icache_dffram_din0\[19\]
+icache_dffram_din0\[20\]
+icache_dffram_din0\[21\]
+icache_dffram_din0\[22\]
+icache_dffram_din0\[23\]
+icache_dffram_din0\[24\]
+icache_dffram_din0\[25\]
+icache_dffram_din0\[26\]
+icache_dffram_din0\[27\]
+icache_dffram_din0\[28\]
+icache_dffram_din0\[29\]
+icache_dffram_din0\[30\]
+icache_dffram_din0\[31\]
 
+icache_dffram_clk1          0300 0 2
+icache_dffram_dout1\[0\]
+icache_dffram_dout1\[1\]
+icache_dffram_dout1\[2\]
+icache_dffram_dout1\[3\]
+icache_dffram_dout1\[4\]
+icache_dffram_dout1\[5\]
+icache_dffram_dout1\[6\]
+icache_dffram_dout1\[7\]
+icache_dffram_dout1\[8\]
+icache_dffram_dout1\[9\]
+icache_dffram_dout1\[10\]
+icache_dffram_dout1\[11\]
+icache_dffram_dout1\[12\]
+icache_dffram_dout1\[13\]
+icache_dffram_dout1\[14\]
+icache_dffram_dout1\[15\]
+icache_dffram_dout1\[16\]
+icache_dffram_dout1\[17\]
+icache_dffram_dout1\[18\]
+icache_dffram_dout1\[19\]
+icache_dffram_dout1\[20\]
+icache_dffram_dout1\[21\]
+icache_dffram_dout1\[22\]
+icache_dffram_dout1\[23\]
+icache_dffram_dout1\[24\]
+icache_dffram_dout1\[25\]
+icache_dffram_dout1\[26\]
+icache_dffram_dout1\[27\]
+icache_dffram_dout1\[28\]
+icache_dffram_dout1\[29\]
+icache_dffram_dout1\[30\]
+icache_dffram_dout1\[31\]
+icache_dffram_cs1
+icache_dffram_addr1\[7\]
+icache_dffram_addr1\[6\]
+icache_dffram_addr1\[5\]
+icache_dffram_addr1\[4\]
+icache_dffram_addr1\[3\]
+icache_dffram_addr1\[2\]
+icache_dffram_addr1\[1\]
+icache_dffram_addr1\[0\]
+icache_dffram_wmask1\[3\]
+icache_dffram_wmask1\[2\]
+icache_dffram_wmask1\[1\]
+icache_dffram_wmask1\[0\]
+icache_dffram_din1\[0\]
+icache_dffram_din1\[1\]
+icache_dffram_din1\[2\]
+icache_dffram_din1\[3\]
+icache_dffram_din1\[4\]
+icache_dffram_din1\[5\]
+icache_dffram_din1\[6\]
+icache_dffram_din1\[7\]
+icache_dffram_din1\[8\]
+icache_dffram_din1\[9\]
+icache_dffram_din1\[10\]
+icache_dffram_din1\[11\]
+icache_dffram_din1\[12\]
+icache_dffram_din1\[13\]
+icache_dffram_din1\[14\]
+icache_dffram_din1\[15\]
+icache_dffram_din1\[16\]
+icache_dffram_din1\[17\]
+icache_dffram_din1\[18\]
+icache_dffram_din1\[19\]
+icache_dffram_din1\[20\]
+icache_dffram_din1\[21\]
+icache_dffram_din1\[22\]
+icache_dffram_din1\[23\]
+icache_dffram_din1\[24\]
+icache_dffram_din1\[25\]
+icache_dffram_din1\[26\]
+icache_dffram_din1\[27\]
+icache_dffram_din1\[28\]
+icache_dffram_din1\[29\]
+icache_dffram_din1\[30\]
+icache_dffram_din1\[31\]
 
-sram0_dout0\[0\]  0100 0 2
-sram0_dout0\[1\]
-sram0_dout0\[2\]
-sram0_dout0\[3\]
-sram0_dout0\[4\]
-sram0_dout0\[5\]
-sram0_dout0\[6\]
-sram0_dout0\[7\]
-sram0_dout0\[8\]
-sram0_dout0\[9\]
-sram0_dout0\[10\]
-sram0_dout0\[11\]
-sram0_dout0\[12\]
-sram0_dout0\[13\]
-sram0_dout0\[14\]
-sram0_dout0\[15\]
-sram0_dout0\[16\]
-sram0_dout0\[17\]
-sram0_dout0\[18\]
-sram0_dout0\[19\]
-sram0_dout0\[20\]
-sram0_dout0\[21\]
-sram0_dout0\[22\]
-sram0_dout0\[23\]
-sram0_dout0\[24\]
-sram0_dout0\[25\]
-sram0_dout0\[26\]
-sram0_dout0\[27\]
-sram0_dout0\[28\]
-sram0_dout0\[29\]
-sram0_dout0\[30\]
-sram0_dout0\[31\]
-
-riscv_debug\[0\]      300  0 2
+riscv_debug\[0\]      600  0 2
 riscv_debug\[1\]
 riscv_debug\[2\]
 riscv_debug\[3\]
@@ -788,9 +916,10 @@
 riscv_debug\[63\]
 
 
-wb_rst_n          500 0 2
+wb_rst_n          700 0 2
 pwrup_rst_n       
 rst_n        
 core_clk              
+core_clk_mclk              
 rtc_clk             
 cpu_rst_n           
diff --git a/signoff/pinmux/final_summary_report.csv b/signoff/pinmux/final_summary_report.csv
index 7337820..35e8e08 100644
--- a/signoff/pinmux/final_summary_report.csv
+++ b/signoff/pinmux/final_summary_report.csv
@@ -1,2 +1,2 @@
 ,design,design_name,config,flow_status,total_runtime,routed_runtime,(Cell/mm^2)/Core_Util,DIEAREA_mm^2,CellPer_mm^2,OpenDP_Util,Peak_Memory_Usage_MB,cell_count,tritonRoute_violations,Short_violations,MetSpc_violations,OffGrid_violations,MinHole_violations,Other_violations,Magic_violations,antenna_violations,lvs_total_errors,cvc_total_errors,klayout_violations,wire_length,vias,wns,pl_wns,optimized_wns,fastroute_wns,spef_wns,tns,pl_tns,optimized_tns,fastroute_tns,spef_tns,HPWL,routing_layer1_pct,routing_layer2_pct,routing_layer3_pct,routing_layer4_pct,routing_layer5_pct,routing_layer6_pct,wires_count,wire_bits,public_wires_count,public_wire_bits,memories_count,memory_bits,processes_count,cells_pre_abc,AND,DFF,NAND,NOR,OR,XOR,XNOR,MUX,inputs,outputs,level,EndCaps,TapCells,Diodes,Total_Physical_Cells,suggested_clock_frequency,suggested_clock_period,CLOCK_PERIOD,SYNTH_STRATEGY,SYNTH_MAX_FANOUT,FP_CORE_UTIL,FP_ASPECT_RATIO,FP_PDN_VPITCH,FP_PDN_HPITCH,PL_TARGET_DENSITY,GLB_RT_ADJUSTMENT,STD_CELL_LIBRARY,CELL_PAD,DIODE_INSERTION_STRATEGY
-0,/project/openlane/pinmux,pinmux,pinmux,flow_completed,0h16m12s,-1,46109.09090909091,0.2475,23054.545454545456,27.07,714.13,5706,0,0,0,0,0,0,-1,1,0,-1,-1,434666,61807,0.0,-0.01,-1,0.0,-1,0.0,-0.03,-1,0.0,-1,320204079.0,5.99,43.88,33.8,11.89,0.3,-1,3574,8564,543,5532,0,0,0,4202,0,0,0,0,0,0,0,4,1343,1339,16,314,3259,0,3573,90.9090909090909,11,10,AREA 0,4,50,1,100,100,0.3,0.0,sky130_fd_sc_hd,4,4
+0,/project/openlane/pinmux,pinmux,pinmux,flow_completed,0h19m18s,-1,42496.969696969696,0.2475,21248.484848484848,25.12,683.6,5259,0,0,0,0,0,0,-1,1,0,-1,-1,386276,55331,0.0,0.0,-1,0.0,-1,0.0,0.0,-1,0.0,-1,284511398.0,1.83,41.67,29.27,8.61,0.36,-1,3370,8310,523,5463,0,0,0,3952,0,0,0,0,0,0,0,4,1188,1209,11,314,3259,0,3573,90.9090909090909,11,10,AREA 0,4,50,1,100,100,0.3,0.0,sky130_fd_sc_hd,4,4
diff --git a/signoff/user_project_wrapper/final_summary_report.csv b/signoff/user_project_wrapper/final_summary_report.csv
index a731e6b..5600253 100644
--- a/signoff/user_project_wrapper/final_summary_report.csv
+++ b/signoff/user_project_wrapper/final_summary_report.csv
@@ -1,2 +1,2 @@
 ,design,design_name,config,flow_status,total_runtime,routed_runtime,(Cell/mm^2)/Core_Util,DIEAREA_mm^2,CellPer_mm^2,OpenDP_Util,Peak_Memory_Usage_MB,cell_count,tritonRoute_violations,Short_violations,MetSpc_violations,OffGrid_violations,MinHole_violations,Other_violations,Magic_violations,antenna_violations,lvs_total_errors,cvc_total_errors,klayout_violations,wire_length,vias,wns,pl_wns,optimized_wns,fastroute_wns,spef_wns,tns,pl_tns,optimized_tns,fastroute_tns,spef_tns,HPWL,routing_layer1_pct,routing_layer2_pct,routing_layer3_pct,routing_layer4_pct,routing_layer5_pct,routing_layer6_pct,wires_count,wire_bits,public_wires_count,public_wire_bits,memories_count,memory_bits,processes_count,cells_pre_abc,AND,DFF,NAND,NOR,OR,XOR,XNOR,MUX,inputs,outputs,level,EndCaps,TapCells,Diodes,Total_Physical_Cells,suggested_clock_frequency,suggested_clock_period,CLOCK_PERIOD,SYNTH_STRATEGY,SYNTH_MAX_FANOUT,FP_CORE_UTIL,FP_ASPECT_RATIO,FP_PDN_VPITCH,FP_PDN_HPITCH,PL_TARGET_DENSITY,GLB_RT_ADJUSTMENT,STD_CELL_LIBRARY,CELL_PAD,DIODE_INSERTION_STRATEGY
-0,/project/openlane/user_project_wrapper,user_project_wrapper,user_project_wrapper,flow completed,0h49m56s0ms,0h3m54s0ms,-2.0,-1,-1,-1,556.96,14,0,0,0,0,0,0,-1,0,1,-1,-1,1417872,9018,0.0,-1,-1,0.0,0.0,0.0,-1,-1,0.0,0.0,-1,0.0,6.67,6.71,1.05,1.33,-1,313,2877,313,2877,0,0,0,14,0,0,0,0,0,0,0,0,-1,-1,-1,0,0,0,0,100.0,10.0,10,AREA 0,5,50,1,80,120,0.55,0.3,sky130_fd_sc_hd,4,0
+0,/project/openlane/user_project_wrapper,user_project_wrapper,user_project_wrapper,flow completed,1h31m29s0ms,0h5m4s0ms,-2.0,-1,-1,-1,542.86,12,0,0,0,0,0,0,0,0,2,-1,-1,1256382,6969,0.0,-1,-1,0.0,0.0,0.0,-1,-1,0.0,0.0,-1,0.0,5.83,7.29,0.62,0.23,-1,225,2313,225,2313,0,0,0,12,0,0,0,0,0,0,0,0,-1,-1,-1,0,0,0,0,100.0,10.0,10,AREA 0,5,50,1,80,130,0.55,0.3,sky130_fd_sc_hd,4,0
diff --git a/signoff/wb_host/final_summary_report.csv b/signoff/wb_host/final_summary_report.csv
index 7be1787..d1c2680 100644
--- a/signoff/wb_host/final_summary_report.csv
+++ b/signoff/wb_host/final_summary_report.csv
@@ -1,2 +1,2 @@
 ,design,design_name,config,flow_status,total_runtime,routed_runtime,(Cell/mm^2)/Core_Util,DIEAREA_mm^2,CellPer_mm^2,OpenDP_Util,Peak_Memory_Usage_MB,cell_count,tritonRoute_violations,Short_violations,MetSpc_violations,OffGrid_violations,MinHole_violations,Other_violations,Magic_violations,antenna_violations,lvs_total_errors,cvc_total_errors,klayout_violations,wire_length,vias,wns,pl_wns,optimized_wns,fastroute_wns,spef_wns,tns,pl_tns,optimized_tns,fastroute_tns,spef_tns,HPWL,routing_layer1_pct,routing_layer2_pct,routing_layer3_pct,routing_layer4_pct,routing_layer5_pct,routing_layer6_pct,wires_count,wire_bits,public_wires_count,public_wire_bits,memories_count,memory_bits,processes_count,cells_pre_abc,AND,DFF,NAND,NOR,OR,XOR,XNOR,MUX,inputs,outputs,level,EndCaps,TapCells,Diodes,Total_Physical_Cells,suggested_clock_frequency,suggested_clock_period,CLOCK_PERIOD,SYNTH_STRATEGY,SYNTH_MAX_FANOUT,FP_CORE_UTIL,FP_ASPECT_RATIO,FP_PDN_VPITCH,FP_PDN_HPITCH,PL_TARGET_DENSITY,GLB_RT_ADJUSTMENT,STD_CELL_LIBRARY,CELL_PAD,DIODE_INSERTION_STRATEGY
-0,/project/openlane/wb_host,wb_host,wb_host,flow_completed,0h10m23s,-1,51962.5,0.16,25981.25,34.69,645.3,4157,0,0,0,0,0,0,0,5,0,0,-1,329531,47752,0.0,-0.23,-1,0.0,-1,0.0,-26.36,-1,0.0,-1,265017619.0,4.63,61.49,19.26,29.21,0.09,-1,3490,6163,1024,3553,0,0,0,3793,0,0,0,0,0,0,0,4,1233,1205,17,130,2043,0,2173,90.9090909090909,11,10,AREA 0,4,50,1,100,100,0.35,0.0,sky130_fd_sc_hd,4,4
+0,/project/openlane/wb_host,wb_host,wb_host,flow_completed,0h7m6s,-1,59385.714285714275,0.14,29692.857142857138,37.96,637.61,4157,0,0,0,0,0,0,0,5,0,0,-1,217151,39662,0.0,0.0,-1,0.0,-1,0.0,0.0,-1,0.0,-1,160154988.0,8.33,37.43,36.42,1.44,1.04,-1,3490,6163,1024,3553,0,0,0,3793,0,0,0,0,0,0,0,4,1233,1205,17,278,1833,0,2111,90.9090909090909,11,10,AREA 0,4,50,1,100,100,0.38,0.0,sky130_fd_sc_hd,4,4
diff --git a/signoff/wb_interconnect/final_summary_report.csv b/signoff/wb_interconnect/final_summary_report.csv
index 5f2f6ea..dc04ace 100644
--- a/signoff/wb_interconnect/final_summary_report.csv
+++ b/signoff/wb_interconnect/final_summary_report.csv
@@ -1,2 +1,2 @@
 ,design,design_name,config,flow_status,total_runtime,routed_runtime,(Cell/mm^2)/Core_Util,DIEAREA_mm^2,CellPer_mm^2,OpenDP_Util,Peak_Memory_Usage_MB,cell_count,tritonRoute_violations,Short_violations,MetSpc_violations,OffGrid_violations,MinHole_violations,Other_violations,Magic_violations,antenna_violations,lvs_total_errors,cvc_total_errors,klayout_violations,wire_length,vias,wns,pl_wns,optimized_wns,fastroute_wns,spef_wns,tns,pl_tns,optimized_tns,fastroute_tns,spef_tns,HPWL,routing_layer1_pct,routing_layer2_pct,routing_layer3_pct,routing_layer4_pct,routing_layer5_pct,routing_layer6_pct,wires_count,wire_bits,public_wires_count,public_wire_bits,memories_count,memory_bits,processes_count,cells_pre_abc,AND,DFF,NAND,NOR,OR,XOR,XNOR,MUX,inputs,outputs,level,EndCaps,TapCells,Diodes,Total_Physical_Cells,suggested_clock_frequency,suggested_clock_period,CLOCK_PERIOD,SYNTH_STRATEGY,SYNTH_MAX_FANOUT,FP_CORE_UTIL,FP_ASPECT_RATIO,FP_PDN_VPITCH,FP_PDN_HPITCH,PL_TARGET_DENSITY,GLB_RT_ADJUSTMENT,STD_CELL_LIBRARY,CELL_PAD,DIODE_INSERTION_STRATEGY
-0,/project/openlane/wb_interconnect,wb_interconnect,wb_interconnect,flow_completed,0h18m24s,-1,19852.173913043476,0.46,9926.086956521738,9.27,726.88,4566,0,-1,-1,-1,-1,0,-1,1,0,-1,-1,848196,51567,-0.9,-9.3,-1,-1.34,-1,-99.69,-2508.48,-1,-173.72,-1,745063608.0,0.0,15.97,52.54,2.07,42.24,0.0,1776,5292,252,3767,0,0,0,2682,0,0,0,0,0,0,0,4,1192,1079,18,1674,5873,0,7547,90.9090909090909,11,10,AREA 0,2,50,1,153.6,153.18,0.3,0,sky130_fd_sc_hd,4,4
+0,/project/openlane/wb_interconnect,wb_interconnect,wb_interconnect,flow_completed,0h8m15s,-1,17786.95652173913,0.46,8893.478260869564,8.68,721.65,4091,0,-1,-1,-1,-1,0,-1,1,0,-1,-1,640876,41064,-0.73,-6.41,-1,-1.56,-1,-52.16,-1603.55,-1,-180.97,-1,557971394.0,0.0,10.49,40.22,1.32,33.74,0.0,1458,4661,237,3439,0,0,0,2319,0,0,0,0,0,0,0,4,1150,1018,18,1674,5873,0,7547,90.9090909090909,11,10,AREA 0,2,50,1,120,120,0.3,0,sky130_fd_sc_hd,4,4
diff --git a/signoff/yifive/final_summary_report.csv b/signoff/yifive/final_summary_report.csv
index 1468984..4a26323 100644
--- a/signoff/yifive/final_summary_report.csv
+++ b/signoff/yifive/final_summary_report.csv
@@ -1,2 +1,2 @@
 ,design,design_name,config,flow_status,total_runtime,routed_runtime,(Cell/mm^2)/Core_Util,DIEAREA_mm^2,CellPer_mm^2,OpenDP_Util,Peak_Memory_Usage_MB,cell_count,tritonRoute_violations,Short_violations,MetSpc_violations,OffGrid_violations,MinHole_violations,Other_violations,Magic_violations,antenna_violations,lvs_total_errors,cvc_total_errors,klayout_violations,wire_length,vias,wns,pl_wns,optimized_wns,fastroute_wns,spef_wns,tns,pl_tns,optimized_tns,fastroute_tns,spef_tns,HPWL,routing_layer1_pct,routing_layer2_pct,routing_layer3_pct,routing_layer4_pct,routing_layer5_pct,routing_layer6_pct,wires_count,wire_bits,public_wires_count,public_wire_bits,memories_count,memory_bits,processes_count,cells_pre_abc,AND,DFF,NAND,NOR,OR,XOR,XNOR,MUX,inputs,outputs,level,EndCaps,TapCells,Diodes,Total_Physical_Cells,suggested_clock_frequency,suggested_clock_period,CLOCK_PERIOD,SYNTH_STRATEGY,SYNTH_MAX_FANOUT,FP_CORE_UTIL,FP_ASPECT_RATIO,FP_PDN_VPITCH,FP_PDN_HPITCH,PL_TARGET_DENSITY,GLB_RT_ADJUSTMENT,STD_CELL_LIBRARY,CELL_PAD,DIODE_INSERTION_STRATEGY
-0,/project/openlane/yifive,ycr1_top_wb,yifive,flow_completed,1h15m29s,-1,60431.59065628477,1.12375,30215.795328142383,34.22,1576.42,33955,0,-1,-1,-1,-1,0,-1,1,0,-1,-1,2627806,392238,-14.85,-43.3,-1,-1.42,-1,-32507.17,-16836.69,-1,-10.35,-1,1924632372.0,11.2,42.7,59.54,6.88,11.31,0.0,28631,47773,1744,20479,0,0,0,34029,0,0,0,0,0,0,0,4,8317,8690,56,1122,15482,0,16604,90.9090909090909,11,10,AREA 0,4,50,1,100,100,0.35,0.0,sky130_fd_sc_hd,4,4
+0,/project/openlane/yifive,ycr1_top_wb,yifive,flow_completed,1h0m15s,-1,53775.953079178886,1.27875,26887.976539589443,30.43,1603.14,34383,0,-1,-1,-1,-1,0,-1,-1,0,-1,-1,2656544,381348,-15.47,-42.07,-1,-2.29,-1,-34148.14,-19180.15,-1,-43.72,-1,1952929426.0,10.78,39.67,51.49,5.51,10.2,-1,28691,48378,1777,21057,0,0,0,34243,0,0,0,0,0,0,0,4,8316,8735,54,1122,17734,0,18856,90.9090909090909,11,10,AREA 0,4,50,1,153.6,153.18,0.34,0.0,sky130_fd_sc_hd,4,4
diff --git a/sta/scripts/caravel_timing.tcl b/sta/scripts/caravel_timing.tcl
index f78d21e..1eb1445 100644
--- a/sta/scripts/caravel_timing.tcl
+++ b/sta/scripts/caravel_timing.tcl
@@ -1,7 +1,9 @@
 
         set ::env(USER_ROOT)    "/home/dinesha/workarea/opencore/git/riscduino"
-        set ::env(CARAVEL_ROOT) "/home/dinesha/workarea/efabless/MPW-4/caravel_openframe"
-        set ::env(CARAVEL_PDK_ROOT)     "/opt/pdk_mpw4"
+        #set ::env(CARAVEL_ROOT) "/home/dinesha/workarea/efabless/MPW-4/caravel_openframe"
+        #set ::env(CARAVEL_PDK_ROOT)  "/opt/pdk_mpw4"
+        set ::env(CARAVEL_ROOT) "/home/dinesha/workarea/efabless/MPW-5/caravel"
+        set ::env(CARAVEL_PDK_ROOT)  "/opt/pdk_mpw4"
 
         read_liberty $::env(CARAVEL_PDK_ROOT)/sky130A/libs.ref/sky130_fd_sc_hd/lib/sky130_fd_sc_hd__tt_025C_1v80.lib	
 	read_liberty $::env(CARAVEL_PDK_ROOT)/sky130A/libs.ref/sky130_sram_macros/lib/sky130_sram_2kbyte_1rw1r_32x512_8_TT_1p8V_25C.lib	
@@ -49,7 +51,6 @@
         read_verilog $::env(USER_ROOT)/verilog/gl/wb_host.v  
         read_verilog $::env(USER_ROOT)/verilog/gl/wb_interconnect.v
         read_verilog $::env(USER_ROOT)/verilog/gl/pinmux.v
-        read_verilog $::env(USER_ROOT)/verilog/gl/mbist_wrapper.v
         read_verilog $::env(USER_ROOT)/verilog/gl/user_project_wrapper.v  
 
 
@@ -144,14 +145,18 @@
 	read_spef -path gpio_defaults_block_37              $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef	
 
 	## User Project Spef
-        read_spef -path mprj/u_mbist                       $::env(USER_ROOT)/spef/mbist_wrapper.spef
-
         read_spef -path mprj/u_riscv_top         $::env(USER_ROOT)/spef/ycr1_top_wb.spef
         read_spef -path mprj/u_pinmux            $::env(USER_ROOT)/spef/pinmux.spef
         read_spef -path mprj/u_qspi_master       $::env(USER_ROOT)/spef/qspim_top.spef
         read_spef -path mprj/u_uart_i2c_usb_spi  $::env(USER_ROOT)/spef/uart_i2c_usb_spi_top.spef
         read_spef -path mprj/u_wb_host           $::env(USER_ROOT)/spef/wb_host.spef
         read_spef -path mprj/u_intercon          $::env(USER_ROOT)/spef/wb_interconnect.spef
+        read_spef -path mprj/u_tcm_1KB_mem0      $::env(CARAVEL_ROOT)/mgmt_core_wrapper/spef/DFFRAM.spef
+        read_spef -path mprj/u_tcm_1KB_mem1      $::env(CARAVEL_ROOT)/mgmt_core_wrapper/spef/DFFRAM.spef
+        read_spef -path mprj/u_icache_1KB_mem0   $::env(CARAVEL_ROOT)/mgmt_core_wrapper/spef/DFFRAM.spef
+        read_spef -path mprj/u_icache_1KB_mem1   $::env(CARAVEL_ROOT)/mgmt_core_wrapper/spef/DFFRAM.spef
+        read_spef -path mprj/u_dcache_1KB_mem0   $::env(CARAVEL_ROOT)/mgmt_core_wrapper/spef/DFFRAM.spef
+        read_spef -path mprj/u_dcache_1KB_mem1   $::env(CARAVEL_ROOT)/mgmt_core_wrapper/spef/DFFRAM.spef
         read_spef -path mprj                     $::env(USER_ROOT)/spef/user_project_wrapper.spef  
 
 
@@ -182,4 +187,80 @@
 	   echo "Wishbone Interface Timing for [get_full_name $pin]" >> wb.min.rpt
            report_checks -path_delay min -fields {slew cap input nets fanout} -through $pin  >> wb.min.rpt
         }
+
+	#Min Delay check around DFFRAM
+	echo "DFFRAM Interface Min Timing.................." > mprj.dffram.min.rpt
+        report_checks -path_delay min -fields {slew cap input nets fanout} -through mprj/u_tcm_1KB_mem0/WE[*]     >> mprj.dffram.min.rpt
+        report_checks -path_delay min -fields {slew cap input nets fanout} -through mprj/u_tcm_1KB_mem0/EN        >> mprj.dffram.min.rpt
+        report_checks -path_delay min -fields {slew cap input nets fanout} -through mprj/u_tcm_1KB_mem0/Di[*]     >> mprj.dffram.min.rpt 
+        report_checks -path_delay min -fields {slew cap input nets fanout} -through mprj/u_tcm_1KB_mem0/A[*]      >> mprj.dffram.min.rpt
+        report_checks -path_delay min -fields {slew cap input nets fanout} -through mprj/u_tcm_1KB_mem0/Do[*]     >> mprj.dffram.min.rpt 
+
+        report_checks -path_delay min -fields {slew cap input nets fanout} -through mprj/u_tcm_1KB_mem1/WE[*]     >> mprj.dffram.min.rpt
+        report_checks -path_delay min -fields {slew cap input nets fanout} -through mprj/u_tcm_1KB_mem1/EN        >> mprj.dffram.min.rpt
+        report_checks -path_delay min -fields {slew cap input nets fanout} -through mprj/u_tcm_1KB_mem1/Di[*]     >> mprj.dffram.min.rpt
+        report_checks -path_delay min -fields {slew cap input nets fanout} -through mprj/u_tcm_1KB_mem1/A[*]      >> mprj.dffram.min.rpt
+        report_checks -path_delay min -fields {slew cap input nets fanout} -through mprj/u_tcm_1KB_mem1/Do[*]     >> mprj.dffram.min.rpt
+
+	report_checks -path_delay min -fields {slew cap input nets fanout} -through mprj/u_icache_1KB_mem0/WE[*]  >> mprj.dffram.min.rpt
+        report_checks -path_delay min -fields {slew cap input nets fanout} -through mprj/u_icache_1KB_mem0/EN     >> mprj.dffram.min.rpt
+        report_checks -path_delay min -fields {slew cap input nets fanout} -through mprj/u_icache_1KB_mem0/Di[*]  >> mprj.dffram.min.rpt 
+        report_checks -path_delay min -fields {slew cap input nets fanout} -through mprj/u_icache_1KB_mem0/A[*]   >> mprj.dffram.min.rpt
+        report_checks -path_delay min -fields {slew cap input nets fanout} -through mprj/u_icache_1KB_mem0/Do[*]  >> mprj.dffram.min.rpt 
+
+	report_checks -path_delay min -fields {slew cap input nets fanout} -through mprj/u_icache_1KB_mem1/WE[*]  >> mprj.dffram.min.rpt 
+        report_checks -path_delay min -fields {slew cap input nets fanout} -through mprj/u_icache_1KB_mem1/EN     >> mprj.dffram.min.rpt
+        report_checks -path_delay min -fields {slew cap input nets fanout} -through mprj/u_icache_1KB_mem1/Di[*]  >> mprj.dffram.min.rpt 
+        report_checks -path_delay min -fields {slew cap input nets fanout} -through mprj/u_icache_1KB_mem1/A[*]   >> mprj.dffram.min.rpt
+        report_checks -path_delay min -fields {slew cap input nets fanout} -through mprj/u_icache_1KB_mem1/Do[*]  >> mprj.dffram.min.rpt
+
+	report_checks -path_delay min -fields {slew cap input nets fanout} -through mprj/u_dcache_1KB_mem0/WE[*]  >> mprj.dffram.min.rpt
+        report_checks -path_delay min -fields {slew cap input nets fanout} -through mprj/u_dcache_1KB_mem0/EN     >> mprj.dffram.min.rpt
+        report_checks -path_delay min -fields {slew cap input nets fanout} -through mprj/u_dcache_1KB_mem0/Di[*]  >> mprj.dffram.min.rpt 
+        report_checks -path_delay min -fields {slew cap input nets fanout} -through mprj/u_dcache_1KB_mem0/A[*]   >> mprj.dffram.min.rpt
+        report_checks -path_delay min -fields {slew cap input nets fanout} -through mprj/u_dcache_1KB_mem0/A[*]   >> mprj.dffram.min.rpt
+
+	report_checks -path_delay min -fields {slew cap input nets fanout} -through mprj/u_dcache_1KB_mem1/WE[*]  >> mprj.dffram.min.rpt 
+        report_checks -path_delay min -fields {slew cap input nets fanout} -through mprj/u_dcache_1KB_mem1/EN     >> mprj.dffram.min.rpt
+        report_checks -path_delay min -fields {slew cap input nets fanout} -through mprj/u_dcache_1KB_mem1/Di[*]  >> mprj.dffram.min.rpt 
+        report_checks -path_delay min -fields {slew cap input nets fanout} -through mprj/u_dcache_1KB_mem1/A[*]   >> mprj.dffram.min.rpt
+        report_checks -path_delay min -fields {slew cap input nets fanout} -through mprj/u_dcache_1KB_mem1/Do[*]  >> mprj.dffram.min.rpt 
+
+	#Max Delay check around DFFRAM
+	echo "DFFRAM Interface Max Timing.................." > mprj.dffram.max.rpt
+        report_checks -path_delay max -fields {slew cap input nets fanout} -through mprj/u_tcm_1KB_mem0/WE[*]     >> mprj.dffram.max.rpt
+        report_checks -path_delay max -fields {slew cap input nets fanout} -through mprj/u_tcm_1KB_mem0/EN        >> mprj.dffram.max.rpt
+        report_checks -path_delay max -fields {slew cap input nets fanout} -through mprj/u_tcm_1KB_mem0/Di[*]     >> mprj.dffram.max.rpt
+        report_checks -path_delay max -fields {slew cap input nets fanout} -through mprj/u_tcm_1KB_mem0/A[*]      >> mprj.dffram.max.rpt
+        report_checks -path_delay max -fields {slew cap input nets fanout} -through mprj/u_tcm_1KB_mem0/Do[*]     >> mprj.dffram.max.rpt
+
+        report_checks -path_delay max -fields {slew cap input nets fanout} -through mprj/u_tcm_1KB_mem1/WE[*]     >> mprj.dffram.max.rpt
+        report_checks -path_delay max -fields {slew cap input nets fanout} -through mprj/u_tcm_1KB_mem1/EN        >> mprj.dffram.max.rpt
+        report_checks -path_delay max -fields {slew cap input nets fanout} -through mprj/u_tcm_1KB_mem1/Di[*]     >> mprj.dffram.max.rpt
+        report_checks -path_delay max -fields {slew cap input nets fanout} -through mprj/u_tcm_1KB_mem1/A[*]      >> mprj.dffram.max.rpt
+        report_checks -path_delay max -fields {slew cap input nets fanout} -through mprj/u_tcm_1KB_mem1/Do[*]     >> mprj.dffram.max.rpt
+
+	report_checks -path_delay max -fields {slew cap input nets fanout} -through mprj/u_icache_1KB_mem0/WE[*]  >> mprj.dffram.max.rpt 
+        report_checks -path_delay max -fields {slew cap input nets fanout} -through mprj/u_icache_1KB_mem0/EN     >> mprj.dffram.max.rpt
+        report_checks -path_delay max -fields {slew cap input nets fanout} -through mprj/u_icache_1KB_mem0/Di[*]  >> mprj.dffram.max.rpt
+        report_checks -path_delay max -fields {slew cap input nets fanout} -through mprj/u_icache_1KB_mem0/A[*]   >> mprj.dffram.max.rpt
+        report_checks -path_delay max -fields {slew cap input nets fanout} -through mprj/u_icache_1KB_mem0/Do[*]  >> mprj.dffram.max.rpt
+
+	report_checks -path_delay max -fields {slew cap input nets fanout} -through mprj/u_icache_1KB_mem1/WE[*]  >> mprj.dffram.max.rpt 
+        report_checks -path_delay max -fields {slew cap input nets fanout} -through mprj/u_icache_1KB_mem1/EN     >> mprj.dffram.max.rpt
+        report_checks -path_delay max -fields {slew cap input nets fanout} -through mprj/u_icache_1KB_mem1/Di[*]  >> mprj.dffram.max.rpt 
+        report_checks -path_delay max -fields {slew cap input nets fanout} -through mprj/u_icache_1KB_mem1/A[*]   >> mprj.dffram.max.rpt
+        report_checks -path_delay max -fields {slew cap input nets fanout} -through mprj/u_icache_1KB_mem1/Do[*]  >> mprj.dffram.max.rpt
+
+	report_checks -path_delay max -fields {slew cap input nets fanout} -through mprj/u_dcache_1KB_mem0/WE[*]  >> mprj.dffram.max.rpt 
+        report_checks -path_delay max -fields {slew cap input nets fanout} -through mprj/u_dcache_1KB_mem0/EN     >> mprj.dffram.max.rpt
+        report_checks -path_delay max -fields {slew cap input nets fanout} -through mprj/u_dcache_1KB_mem0/Di[*]  >> mprj.dffram.max.rpt 
+        report_checks -path_delay max -fields {slew cap input nets fanout} -through mprj/u_dcache_1KB_mem0/A[*]   >> mprj.dffram.max.rpt
+        report_checks -path_delay max -fields {slew cap input nets fanout} -through mprj/u_dcache_1KB_mem0/A[*]   >> mprj.dffram.max.rpt
+
+	report_checks -path_delay max -fields {slew cap input nets fanout} -through mprj/u_dcache_1KB_mem1/WE[*]  >> mprj.dffram.max.rpt
+        report_checks -path_delay max -fields {slew cap input nets fanout} -through mprj/u_dcache_1KB_mem1/EN     >> mprj.dffram.max.rpt
+        report_checks -path_delay max -fields {slew cap input nets fanout} -through mprj/u_dcache_1KB_mem1/Di[*]  >> mprj.dffram.max.rpt 
+        report_checks -path_delay max -fields {slew cap input nets fanout} -through mprj/u_dcache_1KB_mem1/A[*]   >> mprj.dffram.max.rpt
+        report_checks -path_delay max -fields {slew cap input nets fanout} -through mprj/u_dcache_1KB_mem1/Do[*]  >> mprj.dffram.max.rpt 
         
diff --git a/sta/sdc/caravel.sdc b/sta/sdc/caravel.sdc
index 711014a..48d5279 100644
--- a/sta/sdc/caravel.sdc
+++ b/sta/sdc/caravel.sdc
@@ -22,10 +22,6 @@
 create_clock -name uarts_clk   -period 100.0000 [get_pins {mprj/u_uart_i2c_usb_spi/u_uart_core.u_lineclk_buf.u_mux/X}]
 create_clock -name uartm_clk   -period 100.0000 [get_pins {mprj/u_wb_host/u_uart2wb.u_core.u_uart_clk.u_mux/X}]
 
-create_generated_clock -name mem_clk0 -add -source [get_pins {mprj/u_wb_host/wbs_clk_out}] -master_clock [get_clocks wbs_clk_i] -divide_by 1 -comment {memory Clock} [get_pins mprj/u_mbist/u_mbist.mem_no[0].u_mem_sel.u_mem_clk_sel.u_mux/X]
-create_generated_clock -name mem_clk1 -add -source [get_pins {mprj/u_wb_host/wbs_clk_out}] -master_clock [get_clocks wbs_clk_i] -divide_by 1 -comment {memory Clock} [get_pins mprj/u_mbist/u_mbist.mem_no[1].u_mem_sel.u_mem_clk_sel.u_mux/X]
-create_generated_clock -name mem_clk2 -add -source [get_pins {mprj/u_wb_host/wbs_clk_out}] -master_clock [get_clocks wbs_clk_i] -divide_by 1 -comment {memory Clock} [get_pins mprj/u_mbist/u_mbist.mem_no[2].u_mem_sel.u_mem_clk_sel.u_mux/X]
-create_generated_clock -name mem_clk3 -add -source [get_pins {mprj/u_wb_host/wbs_clk_out}] -master_clock [get_clocks wbs_clk_i] -divide_by 1 -comment {memory Clock} [get_pins mprj/u_mbist/u_mbist.mem_no[3].u_mem_sel.u_mem_clk_sel.u_mux/X]
 
 ## Case analysis
 
@@ -64,10 +60,6 @@
 set_case_analysis 1 [get_pins {mprj/u_uart_i2c_usb_spi/cfg_cska_uart[2]}]
 set_case_analysis 0 [get_pins {mprj/u_uart_i2c_usb_spi/cfg_cska_uart[3]}]
 
-set_case_analysis 0 [get_pins {mprj/u_mbist/cfg_cska_mbist[0]}]
-set_case_analysis 0 [get_pins {mprj/u_mbist/cfg_cska_mbist[1]}]
-set_case_analysis 0 [get_pins {mprj/u_mbist/cfg_cska_mbist[2]}]
-set_case_analysis 1 [get_pins {mprj/u_mbist/cfg_cska_mbist[3]}]
 
 
 #disable clock gating check at static clock select pins
diff --git a/verilog/dv/Makefile b/verilog/dv/Makefile
index 4ee38f8..c721d0f 100644
--- a/verilog/dv/Makefile
+++ b/verilog/dv/Makefile
@@ -19,7 +19,7 @@
 .SUFFIXES:
 .SILENT: clean all
 
-PATTERNS = wb_port risc_boot user_risc_boot user_uart user_spi user_i2cm riscv_regress user_basic user_mbist_test1 user_risc_soft_boot user_uart_master uart_master
+PATTERNS = wb_port risc_boot user_risc_boot user_uart user_spi user_i2cm riscv_regress user_basic user_uart_master uart_master
 
 all:  ${PATTERNS}
 	for i in ${PATTERNS}; do \
diff --git a/verilog/dv/model/spiram.v b/verilog/dv/model/is62wvs1288.v
similarity index 99%
rename from verilog/dv/model/spiram.v
rename to verilog/dv/model/is62wvs1288.v
index cd33c11..c938977 100644
--- a/verilog/dv/model/spiram.v
+++ b/verilog/dv/model/is62wvs1288.v
@@ -42,7 +42,7 @@
 //    WRMR          0x01    Write Mode Register
 //
 
-module spiram #(
+module is62wvs1288 #(
 	parameter mem_file_name = "firmware.hex"
 )(
 	input csb,
diff --git a/verilog/dv/riscv_regress/user_risc_regress_tb.v b/verilog/dv/riscv_regress/user_risc_regress_tb.v
index ca9ee0a..2bc1cfb 100644
--- a/verilog/dv/riscv_regress/user_risc_regress_tb.v
+++ b/verilog/dv/riscv_regress/user_risc_regress_tb.v
@@ -76,7 +76,7 @@
 `include "s25fl256s.sv"
 `include "uprj_netlists.v"
 `include "mt48lc8m8a2.v"
-`include "spiram.v"
+`include "is62wvs1288.v"
 
 localparam [31:0]      YCR1_SIM_EXIT_ADDR      = 32'h0000_00F8;
 localparam [31:0]      YCR1_SIM_PRINT_ADDR     = 32'hF000_0000;
@@ -418,7 +418,7 @@
 
    wire spiram_csb = io_out[26];
 
-   spiram #(.mem_file_name("none"))
+   is62wvs1288 #(.mem_file_name("none"))
 	u_sram (
          // Data Inputs/Outputs
            .io0     (flash_io0),
diff --git a/verilog/dv/user_basic/Makefile b/verilog/dv/user_basic/Makefile
index e1558d4..e9e1108 100644
--- a/verilog/dv/user_basic/Makefile
+++ b/verilog/dv/user_basic/Makefile
@@ -61,7 +61,7 @@
 %.vvp: %_tb.v
 ifeq ($(SIM),RTL)
    ifeq ($(DUMP),OFF)
-	iverilog -g2005-sv -DFUNCTIONAL -DSIM -I $(PDK_PATH) \
+	iverilog -g2012 -DFUNCTIONAL -DSIM -I $(PDK_PATH) \
 	-I $(CARAVEL_BEHAVIOURAL_MODELS) -I $(CARAVEL_RTL_PATH) \
 	-I $(UPRJ_BEHAVIOURAL_MODELS)    -I $(UPRJ_RTL_PATH) -I $(UPRJ_VERILOG_PATH) \
 	-I $(UPRJ_BEHAVIOURAL_AGENTS)    \
@@ -69,7 +69,7 @@
 	-I $(UPRJ_INCLUDE_PATH4) -I $(UPRJ_INCLUDE_PATH5) \
 	$< -o $@ 
     else  
-	iverilog -g2005-sv -DWFDUMP -DFUNCTIONAL -DSIM -I $(PDK_PATH) \
+	iverilog -g2012 -DWFDUMP -DFUNCTIONAL -DSIM -I $(PDK_PATH) \
 	-I $(CARAVEL_BEHAVIOURAL_MODELS) -I $(CARAVEL_RTL_PATH) \
 	-I $(UPRJ_BEHAVIOURAL_MODELS)    -I $(UPRJ_RTL_PATH) -I $(UPRJ_VERILOG_PATH) \
 	-I $(UPRJ_BEHAVIOURAL_AGENTS)    \
@@ -78,7 +78,7 @@
 	$< -o $@ 
    endif
 else  
-	iverilog -g2005-sv -DFUNCTIONAL -DSIM -DGL -I $(PDK_PATH) \
+	iverilog -g2012 -DFUNCTIONAL -DSIM -DGL -I $(PDK_PATH) \
 	-I $(CARAVEL_BEHAVIOURAL_MODELS) -I $(CARAVEL_RTL_PATH) -I $(CARAVEL_VERILOG_PATH) \
 	-I $(UPRJ_BEHAVIOURAL_MODELS) -I $(UPRJ_GL_PATH) \
 	-I $(UPRJ_BEHAVIOURAL_AGENTS)    \
diff --git a/verilog/dv/user_basic/user_basic_tb.v b/verilog/dv/user_basic/user_basic_tb.v
index 70d9821..8f6d96f 100644
--- a/verilog/dv/user_basic/user_basic_tb.v
+++ b/verilog/dv/user_basic/user_basic_tb.v
@@ -242,8 +242,8 @@
          wb_user_core_write('h3080_0000,'h1);
 
 	 wb_user_core_read_check(32'h30020058,read_data,32'h8273_8343);
-	 wb_user_core_read_check(32'h3002005C,read_data,32'h1402_2022);
-	 wb_user_core_read_check(32'h30020060,read_data,32'h0003_4000);
+	 wb_user_core_read_check(32'h3002005C,read_data,32'h1602_2022);
+	 wb_user_core_read_check(32'h30020060,read_data,32'h0003_5000);
 
       end
    
diff --git a/verilog/dv/user_mbist_test1/Makefile b/verilog/dv/user_mbist_test1/Makefile
deleted file mode 100644
index 685d6ba..0000000
--- a/verilog/dv/user_mbist_test1/Makefile
+++ /dev/null
@@ -1,109 +0,0 @@
-# SPDX-FileCopyrightText: 2020 Efabless Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# SPDX-License-Identifier: Apache-2.0
-
-## Caravel Pointers
-CARAVEL_ROOT ?= ../../../caravel
-CARAVEL_PATH ?= $(CARAVEL_ROOT)
-CARAVEL_FIRMWARE_PATH = $(CARAVEL_PATH)/verilog/dv/caravel
-CARAVEL_VERILOG_PATH  = $(CARAVEL_PATH)/verilog
-CARAVEL_RTL_PATH = $(CARAVEL_VERILOG_PATH)/rtl
-CARAVEL_BEHAVIOURAL_MODELS = $(CARAVEL_VERILOG_PATH)/dv/caravel
-
-
-## User Project Pointers
-UPRJ_VERILOG_PATH ?= ../../../verilog
-UPRJ_RTL_PATH = $(UPRJ_VERILOG_PATH)/rtl
-UPRJ_GL_PATH = $(UPRJ_VERILOG_PATH)/gl
-UPRJ_BEHAVIOURAL_MODELS = ../model
-UPRJ_BEHAVIOURAL_AGENTS = ../agents
-UPRJ_INCLUDE_PATH1 = $(UPRJ_RTL_PATH)/yifive/ycr1c/src/includes
-UPRJ_INCLUDE_PATH2 = $(UPRJ_RTL_PATH)/sdram_ctrl/src/defs
-UPRJ_INCLUDE_PATH3 = $(UPRJ_RTL_PATH)/i2cm/src/includes
-UPRJ_INCLUDE_PATH4 = $(UPRJ_RTL_PATH)/usb1_host/src/includes
-UPRJ_INCLUDE_PATH5 = $(UPRJ_RTL_PATH)/mbist/include
-
-## YIFIVE FIRMWARE
-YIFIVE_FIRMWARE_PATH = $(UPRJ_VERILOG_PATH)/dv/firmware
-GCC64_PREFIX?=riscv64-unknown-elf
-
-## RISCV GCC 
-GCC_PATH?=/ef/apps/bin
-GCC_PREFIX?=riscv32-unknown-elf
-PDK_PATH?=/ef/tech/SW/sky130A
-
-## Simulation mode: RTL/GL
-SIM?=RTL
-DUMP?=OFF
-
-.SUFFIXES:
-
-PATTERN = user_mbist_test1
-
-all:  ${PATTERN:=.vcd}
-
-vvp:  ${PATTERN:=.vvp}
-
-%.vvp: %_tb.v 
-ifeq ($(SIM),RTL)
-   ifeq ($(DUMP),OFF)
-	iverilog -g2005-sv -DFUNCTIONAL -DSIM -I $(PDK_PATH) \
-	-I $(CARAVEL_BEHAVIOURAL_MODELS) -I $(CARAVEL_RTL_PATH) \
-	-I $(UPRJ_BEHAVIOURAL_MODELS)    -I $(UPRJ_RTL_PATH) -I $(UPRJ_VERILOG_PATH) \
-	-I $(UPRJ_BEHAVIOURAL_AGENTS)    \
-	-I $(UPRJ_INCLUDE_PATH1)    -I $(UPRJ_INCLUDE_PATH2) -I $(UPRJ_INCLUDE_PATH3) \
-	-I $(UPRJ_INCLUDE_PATH4) -I $(UPRJ_INCLUDE_PATH5) \
-	$< -o $@ 
-    else  
-	iverilog -g2005-sv -DWFDUMP -DFUNCTIONAL -DSIM -I $(PDK_PATH) \
-	-I $(CARAVEL_BEHAVIOURAL_MODELS) -I $(CARAVEL_RTL_PATH) \
-	-I $(UPRJ_BEHAVIOURAL_MODELS)    -I $(UPRJ_RTL_PATH) -I $(UPRJ_VERILOG_PATH) \
-	-I $(UPRJ_BEHAVIOURAL_AGENTS)    \
-	-I $(UPRJ_INCLUDE_PATH1)    -I $(UPRJ_INCLUDE_PATH2) -I $(UPRJ_INCLUDE_PATH3) \
-	-I $(UPRJ_INCLUDE_PATH4) -I $(UPRJ_INCLUDE_PATH5) \
-	$< -o $@ 
-   endif
-else  
-	iverilog -g2005-sv -DFUNCTIONAL -DSIM -DGL -I $(PDK_PATH) \
-	-I $(CARAVEL_BEHAVIOURAL_MODELS) -I $(CARAVEL_RTL_PATH) -I $(CARAVEL_VERILOG_PATH) \
-	-I $(UPRJ_BEHAVIOURAL_MODELS) -I $(UPRJ_GL_PATH) \
-	-I $(UPRJ_BEHAVIOURAL_AGENTS)    \
-	$< -o $@ 
-endif
-
-%.vcd: %.vvp
-	vvp $<  | tee sim_result.log
-
-check-env:
-ifndef PDK_ROOT
-	$(error PDK_ROOT is undefined, please export it before running make)
-endif
-ifeq (,$(wildcard $(PDK_ROOT)/sky130A))
-	$(error $(PDK_ROOT)/sky130A not found, please install pdk before running make)
-endif
-#ifeq (,$(wildcard $(GCC64_PREFIX)-gcc ))
-#	$(error $(GCC64_PREFIX)-gcc is not found, please export GCC_PATH and GCC_PREFIX before running make)
-#endif
-# check for efabless style installation
-ifeq (,$(wildcard $(PDK_ROOT)/sky130A/libs.ref/*/verilog))
-SIM_DEFINES := ${SIM_DEFINES} -DEF_STYLE
-endif
-
-# ---- Clean ----
-
-clean:
-	rm -f *.vvp *.vcd *.log
-
-.PHONY: clean all
diff --git a/verilog/dv/user_mbist_test1/run_iverilog b/verilog/dv/user_mbist_test1/run_iverilog
deleted file mode 100755
index e66b863..0000000
--- a/verilog/dv/user_mbist_test1/run_iverilog
+++ /dev/null
@@ -1,31 +0,0 @@
-# //////////////////////////////////////////////////////////////////////////////
-# // SPDX-FileCopyrightText: 2021, Dinesh Annayya
-# // 
-# // Licensed under the Apache License, Version 2.0 (the "License");
-# // you may not use this file except in compliance with the License.
-# // You may obtain a copy of the License at
-# //
-# //      http://www.apache.org/licenses/LICENSE-2.0
-# //
-# // Unless required by applicable law or agreed to in writing, software
-# // distributed under the License is distributed on an "AS IS" BASIS,
-# // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# // See the License for the specific language governing permissions and
-# // limitations under the License.
-# // SPDX-License-Identifier: Apache-2.0
-# // SPDX-FileContributor: Dinesh Annayya <dinesha@opencores.org>
-# // //////////////////////////////////////////////////////////////////////////
-
-#iverilog without Dump
-#
-iverilog -g2005-sv -DWFDUMP -DFUNCTIONAL -DSIM -I /home/dinesha/workarea/efabless/MPW-3/pdk/sky130A \
--I /home/dinesha/workarea/opencore/git/riscduino/caravel/verilog/dv/caravel \
--I /home/dinesha/workarea/opencore/git/riscduino/caravel/verilog/rtl \
--I ../    -I ../../../verilog/rtl \
--I ../../../verilog/rtl/mbist/include \
-user_mbist_test1_tb.v -o user_mbist_test1.vvp
-
-
-vvp user_mbist_test1.vvp | tee test.log
-
-\rm -rf user_mbist_test1.vvp
diff --git a/verilog/dv/user_mbist_test1/user_mbist_test1_tb.v b/verilog/dv/user_mbist_test1/user_mbist_test1_tb.v
deleted file mode 100644
index c570e18..0000000
--- a/verilog/dv/user_mbist_test1/user_mbist_test1_tb.v
+++ /dev/null
@@ -1,1139 +0,0 @@
-////////////////////////////////////////////////////////////////////////////
-// SPDX-FileCopyrightText:  2021 , Dinesh Annayya
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-// SPDX-License-Identifier: Apache-2.0
-// SPDX-FileContributor: Modified by Dinesh Annayya <dinesha@opencores.org>
-//////////////////////////////////////////////////////////////////////
-////                                                              ////
-////  Standalone User validation Test bench                       ////
-////                                                              ////
-////                                                              ////
-////  Description                                                 ////
-////   This is a standalone test bench to validate the            ////
-////   Digital core MBIST logic through External WB i/F.          ////
-////                                                              ////
-////  To Do:                                                      ////
-////    nothing                                                   ////
-////                                                              ////
-////  Author(s):                                                  ////
-////      - Dinesh Annayya, dinesha@opencores.org                 ////
-////                                                              ////
-////  Revision :                                                  ////
-////    0.1 - 18 Oct 2021, Dinesh A                               ////
-////                                                              ////
-//////////////////////////////////////////////////////////////////////
-
-`default_nettype wire
-
-`timescale 1 ns / 1 ns
-
-`include "uprj_netlists.v"
-
-`define WB_MAP           `30080_0000
-`define GLBL_FUNC_MAP    'h3002_0000
-`define MBIST1_FUNC_MAP  'h3003_0000  // 0x3003_0000 to 0x3003_07FF
-`define MBIST2_FUNC_MAP  'h3003_0800  // 0x3003_0800 to 0x3003_0FFF
-`define MBIST3_FUNC_MAP  'h3003_1000  // 0x3003_1000 to 0x3003_17FF
-`define MBIST4_FUNC_MAP  'h3003_1800  // 0x3003_1800 to 0x3003_1FFF
-
-`define GLBL_BIST_CTRL1  'h3002_0070    
-`define GLBL_BIST_STAT1  'h3002_0074
-`define GLBL_BIST_SWDATA 'h3002_0078
-`define GLBL_BIST_SRDATA 'h3002_007C
-`define GLBL_BIST_SPDATA 'h3002_0078  #
-
-`define WB_GLBL_CTRL     'h3080_0000
-
-`define NO_SRAM          4 // 8
-
-
-
-module user_mbist_test1_tb;
-	reg clock;
-	reg wb_rst_i;
-	reg power1, power2;
-	reg power3, power4;
-
-        reg        wbd_ext_cyc_i;  // strobe/request
-        reg        wbd_ext_stb_i;  // strobe/request
-        reg [31:0] wbd_ext_adr_i;  // address
-        reg        wbd_ext_we_i;  // write
-        reg [31:0] wbd_ext_dat_i;  // data output
-        reg [3:0]  wbd_ext_sel_i;  // byte enable
-
-        wire [31:0] wbd_ext_dat_o;  // data input
-        wire        wbd_ext_ack_o;  // acknowlegement
-        wire        wbd_ext_err_o;  // error
-
-	// User I/O
-	wire [37:0] io_oeb;
-	wire [37:0] io_out;
-	wire [37:0] io_in;
-
-	wire gpio;
-	wire [37:0] mprj_io;
-	wire [7:0] mprj_io_0;
-	reg        test_fail;
-	reg [31:0] read_data;
-        reg [31:0] writemem [0:511];
-        reg [8:0]  faultaddr [0:7];
-        integer i;
-        event      error_insert;
-
-
-	// External clock is used by default.  Make this artificially fast for the
-	// simulation.  Normally this would be a slow clock and the digital PLL
-	// would be the fast clock.
-
-	always #12.5 clock <= (clock === 1'b0);
-
-	initial begin
-		clock = 0;
-                wbd_ext_cyc_i ='h0;  // strobe/request
-                wbd_ext_stb_i ='h0;  // strobe/request
-                wbd_ext_adr_i ='h0;  // address
-                wbd_ext_we_i  ='h0;  // write
-                wbd_ext_dat_i ='h0;  // data output
-                wbd_ext_sel_i ='h0;  // byte enable
-	end
-
-	`ifdef WFDUMP
-	   initial begin
-	   	$dumpfile("simx.vcd");
-	   	$dumpvars(2, user_mbist_test1_tb);
-	   	$dumpvars(0, user_mbist_test1_tb.u_top.u_mbist);
-	   	$dumpvars(0, user_mbist_test1_tb.u_top.u_intercon);
-		$dumpoff;
-	   end
-       `endif
-
-	initial begin
-		wb_rst_i <= 1'b1;
-		#100;
-		wb_rst_i <= 1'b0;	    	// Release reset
-
-		#200; // Wait for reset removal
-	        repeat (10) @(posedge clock);
-		$display("Monitor: Standalone User Test Started");
-
-		test_fail = 0;
-		// Remove Wb Reset
-		wb_user_core_write(`WB_GLBL_CTRL,'h1);
-
-		$dumpoff;
-	    	$display("###################################################");
-	    	$display(" MBIST Test with Without Address Failure");
-	    	$display("###################################################");
-
-		// Check Is there is any BIST Error
-		// [0]   - Bist Done      - 1
-		// [1]   - Bist Error     - 0
-		// [2]   - Bist Correct   - 0
-		// [3]   - Reserved       - 0
-		// [7:4] - Bist Error Cnt - 4'h0
-		insert_fault(0,0,0,0,0,32'h01010101);
-
-          	if(test_fail == 0) begin
-	    	    $display("Monitor: Step-1: BIST Test without any Memory Error insertion test Passed");
-	        end else begin
-	    	    $display("Monitor: Step-1: BIST Test without any Memory Error insertion test Failed");
-		end
-	    	$display("###################################################");
-	    	
-		$display("#########################################################");
-	    	$display(" MBIST Test with With Single Address Failure for MEM-0");
-	    	$display("#########################################################");
-
-		// Check Is there is any BIST Error
-		// [0]   - Bist Done      - 1
-		// [1]   - Bist Error     - 0
-		// [2]   - Bist Correct   - 1
-		// [3]   - Reserved       - 0
-		// [7:4] - Bist Error Cnt - 4'h1
-		faultaddr[0] = 9'h10;
-		faultaddr[1] = 9'h20;
-		faultaddr[2] = 9'h30;
-		faultaddr[3] = 9'h40;
-		insert_fault(1,0,0,0,0,32'h01010115);
-
-          	if(test_fail == 0) begin
-	    	    $display("Monitor: Step-2.1: BIST Test with Single Address Failure at MEM0 Error insertion test Passed");
-	        end else begin
-	    	    $display("Monitor: Step-2.1: BIST Test with Single Address Failure at MEM0 Error insertion test Failed");
-		end
-		$display("##########################################################");
-	    	$display(" MBIST Test with With Single Address Failure for MEM-0/1");
-	    	$display("##########################################################");
-
-		// Check Is there is any BIST Error
-		// [0]   - Bist Done      - 1
-		// [1]   - Bist Error     - 0
-		// [2]   - Bist Correct   - 1
-		// [3]   - Reserved       - 0
-		// [7:4] - Bist Error Cnt - 4'h1
-		faultaddr[0] = 9'h10;
-		faultaddr[1] = 9'h20;
-		faultaddr[2] = 9'h30;
-		faultaddr[3] = 9'h40;
-		insert_fault(1,1,0,0,0,32'h01011515);
-
-          	if(test_fail == 0) begin
-	    	    $display("Monitor: Step-2.2: BIST Test with Single Address Failure at MEM0/1 Error insertion test Passed");
-	        end else begin
-	    	    $display("Monitor: Step-2.2: BIST Test with Single Address Failure at MEM0/1 Error insertion test Failed");
-		end
-		$display("##########################################################");
-	    	$display(" MBIST Test with With Single Address Failure for MEM-0/1/2");
-	    	$display("##########################################################");
-
-		// Check Is there is any BIST Error
-		// [0]   - Bist Done      - 1
-		// [1]   - Bist Error     - 0
-		// [2]   - Bist Correct   - 1
-		// [3]   - Reserved       - 0
-		// [7:4] - Bist Error Cnt - 4'h1
-		faultaddr[0] = 9'h10;
-		faultaddr[1] = 9'h20;
-		faultaddr[2] = 9'h30;
-		faultaddr[3] = 9'h40;
-		insert_fault(1,1,1,0,0,32'h01151515);
-
-          	if(test_fail == 0) begin
-	    	    $display("Monitor: Step-2.3: BIST Test with Single Address Failure at MEM0/1/2 Error insertion test Passed");
-	        end else begin
-	    	    $display("Monitor: Step-2.3: BIST Test with Single Address Failure at MEM0/1/2 Error insertion test Failed");
-		end
-
-	    	$display("###################################################");
-	    	$display(" MBIST Test with Single Address Failure to All Memory");
-	    	$display("###################################################");
-		   // Check Is there is any BIST Error
-		   // [0]   - Bist Done      - 1
-		   // [1]   - Bist Error     - 0
-		   // [2]   - Bist Correct   - 1
-		   // [3]   - Reserved       - 0
-		   // [7:4] - Bist Error Cnt - 4'h1
-		   //if(read_data[6:0]  != 7'b0001101) test_fail = 1; // Bist correct = 1 and Bist Err Cnt - 0x1
-		faultaddr[0] = 9'h10;
-		faultaddr[1] = 9'h20;
-		faultaddr[2] = 9'h30;
-		faultaddr[3] = 9'h40;
-		insert_fault(1,1,1,1,1,32'h15151515);
-
-          	if(test_fail == 0) begin
-	    	    $display("Monitor: Step-2.4: BIST Test with One Memory Error insertion test Passed");
-	        end else begin
-	    	    $display("Monitor: Step-2.4: BIST Test with One Memory Error insertion test Failed");
-		end
-	    	$display("###################################################");
-
-		$display("#########################################################");
-	    	$display(" MBIST Test with With Two Address Failure for MEM-0");
-	    	$display("#########################################################");
-
-		// Check Is there is any BIST Error
-		// [0]   - Bist Done      - 1
-		// [1]   - Bist Error     - 0
-		// [2]   - Bist Correct   - 1
-		// [3]   - Reserved       - 0
-		// [7:4] - Bist Error Cnt - 4'h2
-		faultaddr[0] = 9'h10;
-		faultaddr[1] = 9'h20;
-		faultaddr[2] = 9'h30;
-		faultaddr[3] = 9'h40;
-		insert_fault(2,0,0,0,0,32'h01010125);
-
-          	if(test_fail == 0) begin
-	    	    $display("Monitor: Step-3.1: BIST Test with Two Address Failure at MEM0 Error insertion test Passed");
-	        end else begin
-	    	    $display("Monitor: Step-3.1: BIST Test with Two Address Failure at MEM0 Error insertion test Failed");
-		end
-		$display("##########################################################");
-	    	$display(" MBIST Test with With Two Address Failure for MEM-0/1");
-	    	$display("##########################################################");
-
-		// Check Is there is any BIST Error
-		// [0]   - Bist Done      - 1
-		// [1]   - Bist Error     - 0
-		// [2]   - Bist Correct   - 1
-		// [3]   - Reserved       - 0
-		// [7:4] - Bist Error Cnt - 4'h2
-		faultaddr[0] = 9'h10;
-		faultaddr[1] = 9'h20;
-		faultaddr[2] = 9'h30;
-		faultaddr[3] = 9'h40;
-		insert_fault(2,2,0,0,0,32'h01012525);
-
-          	if(test_fail == 0) begin
-	    	    $display("Monitor: Step-3.2: BIST Test with Two Address Failure at MEM0/1 Error insertion test Passed");
-	        end else begin
-	    	    $display("Monitor: Step-3.2: BIST Test with Two Address Failure at MEM0/1 Error insertion test Failed");
-		end
-		$display("##########################################################");
-	    	$display(" MBIST Test with With Two Address Failure for MEM-0/1/2");
-	    	$display("##########################################################");
-
-		// Check Is there is any BIST Error
-		// [0]   - Bist Done      - 1
-		// [1]   - Bist Error     - 0
-		// [2]   - Bist Correct   - 1
-		// [3]   - Reserved       - 0
-		// [7:4] - Bist Error Cnt - 4'h2
-		faultaddr[0] = 9'h10;
-		faultaddr[1] = 9'h20;
-		faultaddr[2] = 9'h30;
-		faultaddr[3] = 9'h40;
-		insert_fault(2,2,2,0,0,32'h01252525);
-
-          	if(test_fail == 0) begin
-	    	    $display("Monitor: Step-3.3: BIST Test with Two Address Failure at MEM0/1/2 Error insertion test Passed");
-	        end else begin
-	    	    $display("Monitor: Step-3.3: BIST Test with Two Address Failure at MEM0/1/2 Error insertion test Failed");
-		end
-
-	    	$display("###################################################");
-	    	$display(" MBIST Test with Two Address Failure to All Memory");
-	    	$display("###################################################");
-		// Check Is there is any BIST Error
-		// [0]   - Bist Done      - 1
-		// [1]   - Bist Error     - 0
-		// [2]   - Bist Correct   - 1
-		// [3]   - Reserved       - 0
-		// [7:4] - Bist Error Cnt - 4'h2
-		   //if(read_data[6:0]  != 7'b0001101) test_fail = 1; // Bist correct = 1 and Bist Err Cnt - 0x1
-		faultaddr[0] = 9'h10;
-		faultaddr[1] = 9'h20;
-		faultaddr[2] = 9'h30;
-		faultaddr[3] = 9'h40;
-		insert_fault(2,2,2,2,1,32'h25252525);
-
-          	if(test_fail == 0) begin
-	    	    $display("Monitor: Step-3.4: BIST Test with Two Memory Error insertion test Passed");
-	        end else begin
-	    	    $display("Monitor: Step-3.4: BIST Test with Two Memory Error insertion test Failed");
-		end
-	    	$display("###################################################");
-
-		$display("#########################################################");
-	    	$display(" MBIST Test with With Three Address Failure for MEM-0");
-	    	$display("#########################################################");
-
-		// Check Is there is any BIST Error
-		// [0]   - Bist Done      - 1
-		// [1]   - Bist Error     - 0
-		// [2]   - Bist Correct   - 1
-		// [3]   - Reserved       - 0
-		// [7:4] - Bist Error Cnt - 4'h3
-		faultaddr[0] = 9'h10;
-		faultaddr[1] = 9'h20;
-		faultaddr[2] = 9'h30;
-		faultaddr[3] = 9'h40;
-		insert_fault(3,0,0,0,0,32'h01010135);
-
-          	if(test_fail == 0) begin
-	    	    $display("Monitor: Step-4.1: BIST Test with Three Address Failure at MEM0 Error insertion test Passed");
-	        end else begin
-	    	    $display("Monitor: Step-4.1: BIST Test with Three Address Failure at MEM0 Error insertion test Failed");
-		end
-		$display("##########################################################");
-	    	$display(" MBIST Test with With Three Address Failure for MEM-0/1");
-	    	$display("##########################################################");
-
-		// Check Is there is any BIST Error
-		// [0]   - Bist Done      - 1
-		// [1]   - Bist Error     - 0
-		// [2]   - Bist Correct   - 1
-		// [3]   - Reserved       - 0
-		// [7:4] - Bist Error Cnt - 4'h3
-		faultaddr[0] = 9'h10;
-		faultaddr[1] = 9'h20;
-		faultaddr[2] = 9'h30;
-		faultaddr[3] = 9'h40;
-		insert_fault(3,3,0,0,0,32'h01013535);
-
-          	if(test_fail == 0) begin
-	    	    $display("Monitor: Step-4.2: BIST Test with Three Address Failure at MEM0/1 Error insertion test Passed");
-	        end else begin
-	    	    $display("Monitor: Step-4.2: BIST Test with Three Address Failure at MEM0/1 Error insertion test Failed");
-		end
-		$display("##########################################################");
-	    	$display(" MBIST Test with With Three Address Failure for MEM-0/1/2");
-	    	$display("##########################################################");
-
-		// Check Is there is any BIST Error
-		// [0]   - Bist Done      - 1
-		// [1]   - Bist Error     - 0
-		// [2]   - Bist Correct   - 1
-		// [3]   - Reserved       - 0
-		// [7:4] - Bist Error Cnt - 4'h3
-		faultaddr[0] = 9'h10;
-		faultaddr[1] = 9'h20;
-		faultaddr[2] = 9'h30;
-		faultaddr[3] = 9'h40;
-		insert_fault(3,3,3,0,0,32'h01353535);
-
-          	if(test_fail == 0) begin
-	    	    $display("Monitor: Step-4.3: BIST Test with Three Address Failure at MEM0/1/2 Error insertion test Passed");
-	        end else begin
-	    	    $display("Monitor: Step-4.3: BIST Test with Three Address Failure at MEM0/1/2 Error insertion test Failed");
-		end
-
-	    	$display("###################################################");
-	    	$display(" MBIST Test with Three Address Failure to All Memory");
-	    	$display("###################################################");
-		   // Check Is there is any BIST Error
-		   // [0]   - Bist Done      - 1
-		   // [1]   - Bist Error     - 0
-		   // [2]   - Bist Correct   - 1
-		   // [3]   - Reserved       - 0
-		   // [7:4] - Bist Error Cnt - 4'h3
-		   //if(read_data[6:0]  != 7'b0001101) test_fail = 1; // Bist correct = 1 and Bist Err Cnt - 0x1
-		faultaddr[0] = 9'h10;
-		faultaddr[1] = 9'h20;
-		faultaddr[2] = 9'h30;
-		faultaddr[3] = 9'h40;
-		insert_fault(3,3,3,3,1,32'h35353535);
-
-          	if(test_fail == 0) begin
-	    	    $display("Monitor: Step-4.4: BIST Test with Three Memory Error insertion test Passed");
-	        end else begin
-	    	    $display("Monitor: Step-4.4: BIST Test with Three Memory Error insertion test Failed");
-		end
-	    	$display("###################################################");
-
-		$display("#########################################################");
-	    	$display(" MBIST Test with With Four Address Failure for MEM-0");
-	    	$display("#########################################################");
-
-		// Check Is there is any BIST Error
-		// [0]   - Bist Done      - 1
-		// [1]   - Bist Error     - 0
-		// [2]   - Bist Correct   - 1
-		// [3]   - Reserved       - 0
-		// [7:4] - Bist Error Cnt - 4'h4
-		faultaddr[0] = 9'h10;
-		faultaddr[1] = 9'h20;
-		faultaddr[2] = 9'h30;
-		faultaddr[3] = 9'h40;
-		insert_fault(4,0,0,0,0,32'h01010145);
-
-          	if(test_fail == 0) begin
-	    	    $display("Monitor: Step-4.1: BIST Test with Four Address Failure at MEM0 Error insertion test Passed");
-	        end else begin
-	    	    $display("Monitor: Step-4.1: BIST Test with Four Address Failure at MEM0 Error insertion test Failed");
-		end
-		$display("##########################################################");
-	    	$display(" MBIST Test with With Four Address Failure for MEM-0/1");
-	    	$display("##########################################################");
-
-		// Check Is there is any BIST Error
-		// [0]   - Bist Done      - 1
-		// [1]   - Bist Error     - 0
-		// [2]   - Bist Correct   - 1
-		// [3]   - Reserved       - 0
-		// [7:4] - Bist Error Cnt - 4'h4
-		faultaddr[0] = 9'h10;
-		faultaddr[1] = 9'h20;
-		faultaddr[2] = 9'h30;
-		faultaddr[3] = 9'h40;
-		insert_fault(4,4,0,0,0,32'h01014545);
-
-          	if(test_fail == 0) begin
-	    	    $display("Monitor: Step-4.2: BIST Test with Four Address Failure at MEM0/1 Error insertion test Passed");
-	        end else begin
-	    	    $display("Monitor: Step-4.2: BIST Test with Four Address Failure at MEM0/1 Error insertion test Failed");
-		end
-		$display("##########################################################");
-	    	$display(" MBIST Test with With Four Address Failure for MEM-0/1/2");
-	    	$display("##########################################################");
-
-		// Check Is there is any BIST Error
-		// [0]   - Bist Done      - 1
-		// [1]   - Bist Error     - 0
-		// [2]   - Bist Correct   - 1
-		// [3]   - Reserved       - 0
-		// [7:4] - Bist Error Cnt - 4'h3
-		faultaddr[0] = 9'h10;
-		faultaddr[1] = 9'h20;
-		faultaddr[2] = 9'h30;
-		faultaddr[3] = 9'h40;
-		insert_fault(4,4,4,0,0,32'h01454545);
-
-          	if(test_fail == 0) begin
-	    	    $display("Monitor: Step-4.3: BIST Test with Four Address Failure at MEM0/1/2 Error insertion test Passed");
-	        end else begin
-	    	    $display("Monitor: Step-4.3: BIST Test with Four Address Failure at MEM0/1/2 Error insertion test Failed");
-		end
-
-	    	$display("###################################################");
-	    	$display(" MBIST Test with Four Address Failure to All Memory");
-	    	$display("###################################################");
-		   // Check Is there is any BIST Error
-		   // [0]   - Bist Done      - 1
-		   // [1]   - Bist Error     - 0
-		   // [2]   - Bist Correct   - 1
-		   // [3]   - Reserved       - 0
-		   // [7:4] - Bist Error Cnt - 4'h3
-		   //if(read_data[6:0]  != 7'b0001101) test_fail = 1; // Bist correct = 1 and Bist Err Cnt - 0x1
-		faultaddr[0] = 9'h10;
-		faultaddr[1] = 9'h20;
-		faultaddr[2] = 9'h30;
-		faultaddr[3] = 9'h40;
-		insert_fault(4,4,4,4,1,32'h45454545);
-
-          	if(test_fail == 0) begin
-	    	    $display("Monitor: Step-4.4: BIST Test with Four Memory Error insertion test Passed");
-	        end else begin
-	    	    $display("Monitor: Step-4.4: BIST Test with Four Memory Error insertion test Failed");
-		end
-	    	$display("###################################################");
-
-
-	    	$display("###################################################");
-	    	$display(" MBIST Test with Fours Address(Continous Starting Addrsess) Failure");
-	    	$display("###################################################");
-		// Check Is there is any BIST Error
-		// [0]   - Bist Done      - 1
-		// [1]   - Bist Error     - 0
-		// [2]   - Bist Correct   - 1
-		// [3]   - Reserved       - 0
-		// [7:4] - Bist Error Cnt - 4'h4
-		//if(read_data[6:0]  != 7'b0100101) test_fail = 1; // Bist correct = 1 and Bist Err Cnt - 0x4
-		faultaddr[0] = 9'h0;
-		faultaddr[1] = 9'h1;
-		faultaddr[2] = 9'h2;
-		faultaddr[3] = 9'h3;
-		insert_fault(4,4,4,4,0,32'h45454545);
-
-          	if(test_fail == 0) begin
-	    	    $display("Monitor: Step-5.1: BIST Test with Four Memory Error insertion test Passed");
-	        end else begin
-	    	    $display("Monitor: Step-5.1: BIST Test with Four Memory Error insertion test Failed");
-		end
-
-	    	$display("###################################################");
-	    	$display(" MBIST Test with Fours Address(Last Addrsess) Failure");
-	    	$display("###################################################");
-		// Check Is there is any BIST Error
-		// [0]   - Bist Done      - 1
-		// [1]   - Bist Error     - 0
-		// [2]   - Bist Correct   - 1
-		// [3]   - Reserved       - 0
-		// [7:4] - Bist Error Cnt - 4'h4
-		//if(read_data[6:0]  != 7'b0100101) test_fail = 1; // Bist correct = 1 and Bist Err Cnt - 0x4
-		faultaddr[0] = 9'hF0;
-		faultaddr[1] = 9'hF1;
-		faultaddr[2] = 9'hF2;
-		faultaddr[3] = 9'hF3;
-		insert_fault(4,4,4,4,0,32'h45454545);
-
-          	if(test_fail == 0) begin
-	    	    $display("Monitor: Step-5.2: BIST Test with Four Memory Error insertion test Passed");
-	        end else begin
-	    	    $display("Monitor: Step-5.2: BIST Test with Four Memory Error insertion test Failed");
-		end
-	    	
-		$display("###################################################");
-	    	$display(" MBIST Test with Five Address Failure for MEM0");
-	    	$display("###################################################");
-		// Check Is there is any BIST Error
-		// [0]   - Bist Done      - 1
-		// [1]   - Bist Error     - 1
-		// [2]   - Bist Correct   - 1
-		// [3]   - Reserved       - 0
-		// [7:4] - Bist Error Cnt - 4'h4
-		//if(read_data[6:0]  != 7'b0100101) test_fail = 1; // Bist correct = 1 and Bist Err Cnt - 0x4
-		faultaddr[0] = 9'h10;
-		faultaddr[1] = 9'h20;
-		faultaddr[2] = 9'h30;
-		faultaddr[3] = 9'h40;
-		faultaddr[4] = 9'h50;
-		insert_fault(5,0,0,0,1,32'h01010147);
-
-          	if(test_fail == 0) begin
-	    	    $display("Monitor: Step-6.1: BIST Test with Five Memory Error insertion for MEM0 test Passed");
-	        end else begin
-	    	    $display("Monitor: Step-6.1: BIST Test with Five Memory Error insertion for MEM0 test Failed");
-		 end
-
-		$display("###################################################");
-	    	$display(" MBIST Test with Five Address Failure for MEM0/1");
-	    	$display("###################################################");
-		// Check Is there is any BIST Error
-		// [0]   - Bist Done      - 1
-		// [1]   - Bist Error     - 1
-		// [2]   - Bist Correct   - 1
-		// [3]   - Reserved       - 0
-		// [7:4] - Bist Error Cnt - 4'h4
-		//if(read_data[6:0]  != 7'b0100101) test_fail = 1; // Bist correct = 1 and Bist Err Cnt - 0x4
-		faultaddr[0] = 9'h10;
-		faultaddr[1] = 9'h20;
-		faultaddr[2] = 9'h30;
-		faultaddr[3] = 9'h40;
-		faultaddr[4] = 9'h50;
-		insert_fault(5,5,0,0,1,32'h01014747);
-
-          	if(test_fail == 0) begin
-	    	    $display("Monitor: Step-6.2: BIST Test with Five Memory Error insertion for MEM0/1 test Passed");
-	        end else begin
-	    	    $display("Monitor: Step-6.2: BIST Test with Five Memory Error insertion for MEM0/1 test Failed");
-		 end
-
-        	$display("###################################################");
-	    	$display(" MBIST Test with Five Address Failure for MEM0/1/2");
-	    	$display("###################################################");
-		// Check Is there is any BIST Error
-		// [0]   - Bist Done      - 1
-		// [1]   - Bist Error     - 1
-		// [2]   - Bist Correct   - 1
-		// [3]   - Reserved       - 0
-		// [7:4] - Bist Error Cnt - 4'h4
-		//if(read_data[6:0]  != 7'b0100101) test_fail = 1; // Bist correct = 1 and Bist Err Cnt - 0x4
-		faultaddr[0] = 9'h10;
-		faultaddr[1] = 9'h20;
-		faultaddr[2] = 9'h30;
-		faultaddr[3] = 9'h40;
-		faultaddr[4] = 9'h50;
-		insert_fault(5,5,5,0,1,32'h01474747);
-
-          	if(test_fail == 0) begin
-	    	    $display("Monitor: Step-6.3: BIST Test with Five Memory Error insertion for MEM0/1/2 test Passed");
-	        end else begin
-	    	    $display("Monitor: Step-6.3: BIST Test with Five Memory Error insertion for MEM0/1/2 test Failed");
-		 end
-
-	    	$display("###################################################");
-	    	$display(" MBIST Test with Five Address Failure for All Memory");
-	    	$display("###################################################");
-		// Check Is there is any BIST Error
-		// [0]   - Bist Done      - 1
-		// [1]   - Bist Error     - 1
-		// [2]   - Bist Correct   - 1
-		// [3]   - Reserved       - 0
-		// [7:4] - Bist Error Cnt - 4'h4
-		//if(read_data[6:0]  != 7'b0100101) test_fail = 1; // Bist correct = 1 and Bist Err Cnt - 0x4
-		faultaddr[0] = 9'h10;
-		faultaddr[1] = 9'h20;
-		faultaddr[2] = 9'h30;
-		faultaddr[3] = 9'h40;
-		faultaddr[4] = 9'h50;
-		insert_fault(5,5,5,5,1,32'h47474747);
-
-          	if(test_fail == 0) begin
-	    	    $display("Monitor: Step-6.4: BIST Test with Five Memory Error insertion test Passed");
-	        end else begin
-	    	    $display("Monitor: Step-6.4: BIST Test with Five Memory Error insertion test Failed");
-		 end
-		$dumpon;
-	    	$display("###################################################");
-	    	$display(" MBIST Test with Functional Access, continuation of previous MBIST Signature");
-	    	$display("###################################################");
-		fork
-		begin
-		    // Remove the Bist Enable and Bist Run
-                    wb_user_core_write(`GLBL_BIST_CTRL1,'h000);
-                    // Remove WB and BIST RESET
-                    wb_user_core_write(`WB_GLBL_CTRL,'h081);
-  
-	            // Fill Random Data	
-		    for (i=0; i< 9'h1FC; i=i+1) begin
-   	                writemem[i] = $random;
-                        wb_user_core_write(`MBIST1_FUNC_MAP+(i*4),writemem[i]);
-                        wb_user_core_write(`MBIST2_FUNC_MAP+(i*4),writemem[i]);
-                        wb_user_core_write(`MBIST3_FUNC_MAP+(i*4),writemem[i]);
-                        wb_user_core_write(`MBIST4_FUNC_MAP+(i*4),writemem[i]);
-		        //if(i < 9'h0FC) begin // SRAM5-SRAM8 are 1KB
-                        //   wb_user_core_write(`MBIST5_FUNC_MAP+(i*4),writemem[i]);
-                        //   wb_user_core_write(`MBIST6_FUNC_MAP+(i*4),writemem[i]);
-                        //   wb_user_core_write(`MBIST7_FUNC_MAP+(i*4),writemem[i]);
-                        //   wb_user_core_write(`MBIST8_FUNC_MAP+(i*4),writemem[i]);
-	                //end
-		    end
-		    // Read back data
-		    for (i=0; i< 9'h1FC; i=i+1) begin
-                        wb_user_core_read_check(`MBIST1_FUNC_MAP+(i*4),read_data,writemem[i],32'hFFFFFFFF);
-                        wb_user_core_read_check(`MBIST2_FUNC_MAP+(i*4),read_data,writemem[i],32'hFFFFFFFF);
-                        wb_user_core_read_check(`MBIST3_FUNC_MAP+(i*4),read_data,writemem[i],32'hFFFFFFFF);
-                        wb_user_core_read_check(`MBIST4_FUNC_MAP+(i*4),read_data,writemem[i],32'hFFFFFFFF);
-		        //if(i < 9'h0FC) begin // SRAM5 - SRAM8 are 1KB
-                        //   wb_user_core_read_check(`MBIST5_FUNC_MAP+(i*4),read_data,writemem[i],32'hFFFFFFFF);
-                        //   wb_user_core_read_check(`MBIST6_FUNC_MAP+(i*4),read_data,writemem[i],32'hFFFFFFFF);
-                        //   wb_user_core_read_check(`MBIST7_FUNC_MAP+(i*4),read_data,writemem[i],32'hFFFFFFFF);
-                        //   wb_user_core_read_check(`MBIST8_FUNC_MAP+(i*4),read_data,writemem[i],32'hFFFFFFFF);
-	                //end
-		    end
-
-		    // Cross-check Reducency address hold the failure address data
-		    // Is last Error inserted address are 0x10,0x20,0x30,0x40
-		    // So Address 0x1FC = Data[0x10], 0x1FD = Data[0x20]
-		    //    Address 0x1FE = Data[0x30], 0x1FF = Data[0x40]
-		    // Check 2kb SRAM1
-                    wb_user_core_read_check(`MBIST1_FUNC_MAP + (9'h1FC *4),read_data,writemem[9'h10],32'hFFFFFFFF);
-                    wb_user_core_read_check(`MBIST1_FUNC_MAP + (9'h1FD *4),read_data,writemem[9'h20],32'hFFFFFFFF);
-                    wb_user_core_read_check(`MBIST1_FUNC_MAP + (9'h1FE *4),read_data,writemem[9'h30],32'hFFFFFFFF);
-                    wb_user_core_read_check(`MBIST1_FUNC_MAP + (9'h1FF *4),read_data,writemem[9'h40],32'hFFFFFFFF);
-
-		    // Check 2kb SRAM2
-                    wb_user_core_read_check(`MBIST2_FUNC_MAP + (9'h1FC *4),read_data,writemem[9'h11],32'hFFFFFFFF);
-                    wb_user_core_read_check(`MBIST2_FUNC_MAP + (9'h1FD *4),read_data,writemem[9'h21],32'hFFFFFFFF);
-                    wb_user_core_read_check(`MBIST2_FUNC_MAP + (9'h1FE *4),read_data,writemem[9'h31],32'hFFFFFFFF);
-                    wb_user_core_read_check(`MBIST2_FUNC_MAP + (9'h1FF *4),read_data,writemem[9'h41],32'hFFFFFFFF);
-
-		    //// Check 2kb SRAM3
-                    wb_user_core_read_check(`MBIST3_FUNC_MAP + (9'h1FC *4),read_data,writemem[9'h12],32'hFFFFFFFF);
-                    wb_user_core_read_check(`MBIST3_FUNC_MAP + (9'h1FD *4),read_data,writemem[9'h22],32'hFFFFFFFF);
-                    wb_user_core_read_check(`MBIST3_FUNC_MAP + (9'h1FE *4),read_data,writemem[9'h32],32'hFFFFFFFF);
-                    wb_user_core_read_check(`MBIST3_FUNC_MAP + (9'h1FF *4),read_data,writemem[9'h42],32'hFFFFFFFF);
-
-		    //// Check 2kb SRAM4
-                    wb_user_core_read_check(`MBIST4_FUNC_MAP + (9'h1FC *4),read_data,writemem[9'h13],32'hFFFFFFFF);
-                    wb_user_core_read_check(`MBIST4_FUNC_MAP + (9'h1FD *4),read_data,writemem[9'h23],32'hFFFFFFFF);
-                    wb_user_core_read_check(`MBIST4_FUNC_MAP + (9'h1FE *4),read_data,writemem[9'h33],32'hFFFFFFFF);
-                    wb_user_core_read_check(`MBIST4_FUNC_MAP + (9'h1FF *4),read_data,writemem[9'h43],32'hFFFFFFFF);
-
-		    //// Check 1kb SRAM5
-                    //wb_user_core_read_check(`MBIST5_FUNC_MAP + (8'hFC *4),read_data,writemem[9'h14],32'hFFFFFFFF);
-                    //wb_user_core_read_check(`MBIST5_FUNC_MAP + (8'hFD *4),read_data,writemem[9'h24],32'hFFFFFFFF);
-                    //wb_user_core_read_check(`MBIST5_FUNC_MAP + (8'hFE *4),read_data,writemem[9'h34],32'hFFFFFFFF);
-                    //wb_user_core_read_check(`MBIST5_FUNC_MAP + (8'hFF *4),read_data,writemem[9'h44],32'hFFFFFFFF);
-
-		    //// Check 1kb SRAM6
-                    //wb_user_core_read_check(`MBIST6_FUNC_MAP + (8'hFC *4),read_data,writemem[9'h15],32'hFFFFFFFF);
-                    //wb_user_core_read_check(`MBIST6_FUNC_MAP + (8'hFD *4),read_data,writemem[9'h25],32'hFFFFFFFF);
-                    //wb_user_core_read_check(`MBIST6_FUNC_MAP + (8'hFE *4),read_data,writemem[9'h35],32'hFFFFFFFF);
-                    //wb_user_core_read_check(`MBIST6_FUNC_MAP + (8'hFF *4),read_data,writemem[9'h45],32'hFFFFFFFF);
-
-		    //// Check 1kb SRAM7
-                    //wb_user_core_read_check(`MBIST7_FUNC_MAP + (8'hFC *4),read_data,writemem[9'h16],32'hFFFFFFFF);
-                    //wb_user_core_read_check(`MBIST7_FUNC_MAP + (8'hFD *4),read_data,writemem[9'h26],32'hFFFFFFFF);
-                    //wb_user_core_read_check(`MBIST7_FUNC_MAP + (8'hFE *4),read_data,writemem[9'h36],32'hFFFFFFFF);
-                    //wb_user_core_read_check(`MBIST7_FUNC_MAP + (8'hFF *4),read_data,writemem[9'h46],32'hFFFFFFFF);
-
-		    //// Check 1kb SRAM8
-                    //wb_user_core_read_check(`MBIST8_FUNC_MAP + (8'hFC *4),read_data,writemem[9'h17],32'hFFFFFFFF);
-                    //wb_user_core_read_check(`MBIST8_FUNC_MAP + (8'hFD *4),read_data,writemem[9'h27],32'hFFFFFFFF);
-                    //wb_user_core_read_check(`MBIST8_FUNC_MAP + (8'hFE *4),read_data,writemem[9'h37],32'hFFFFFFFF);
-                    //wb_user_core_read_check(`MBIST8_FUNC_MAP + (8'hFF *4),read_data,writemem[9'h47],32'hFFFFFFFF);
-                end
-                begin
-                   // Loop for BIST TimeOut
-                   repeat (200000) @(posedge clock);
-                		// $display("+1000 cycles");
-                   test_fail = 1;
-                end
-                join_any
-                disable fork; //disable pending fork activity
-          	if(test_fail == 0) begin
-	    	    $display("Monitor: Step-7: BIST Test with Functional access test Passed");
-	        end else begin
-	    	    $display("Monitor: Step-7: BIST Test with Functional access test failed");
-		 end
-
-	    	$display("###################################################");
-	        $finish;
-	end
-
-wire USER_VDD1V8 = 1'b1;
-wire VSS = 1'b0;
-
-
-user_project_wrapper u_top(
-`ifdef USE_POWER_PINS
-    .vccd1(USER_VDD1V8),	// User area 1 1.8V supply
-    .vssd1(VSS),	// User area 1 digital ground
-`endif
-    .wb_clk_i        (clock),  // System clock
-    .user_clock2     (1'b1),  // Real-time clock
-    .wb_rst_i        (wb_rst_i),  // Regular Reset signal
-
-    .wbs_cyc_i   (wbd_ext_cyc_i),  // strobe/request
-    .wbs_stb_i   (wbd_ext_stb_i),  // strobe/request
-    .wbs_adr_i   (wbd_ext_adr_i),  // address
-    .wbs_we_i    (wbd_ext_we_i),  // write
-    .wbs_dat_i   (wbd_ext_dat_i),  // data output
-    .wbs_sel_i   (wbd_ext_sel_i),  // byte enable
-
-    .wbs_dat_o   (wbd_ext_dat_o),  // data input
-    .wbs_ack_o   (wbd_ext_ack_o),  // acknowlegement
-
- 
-    // Logic Analyzer Signals
-    .la_data_in      ('1) ,
-    .la_data_out     (),
-    .la_oenb         ('0),
- 
-
-    // IOs
-    .io_in          (io_in)  ,
-    .io_out         (io_out) ,
-    .io_oeb         (io_oeb) ,
-
-    .user_irq       () 
-
-);
-
-`ifndef GL // Drive Power for Hold Fix Buf
-    // All standard cell need power hook-up for functionality work
-    initial begin
-
-
-    end
-`endif    
-
-
-//-------------------------------------
-// Insert user defined number of fault 
-// -----------------------------------
-
-task insert_fault;
-input [3:0]  num0_fault;
-input [3:0]  num1_fault;
-input [3:0]  num2_fault;
-input [3:0]  num3_fault;
-input        fault_type; // 0 -> struck at 0 and 1 -> struck at 1
-input [31:0]  mbist_signature;
-reg [31:0] datain;
-reg [8:0]  fail_addr1;
-reg [8:0]  fail_addr2;
-reg [8:0]  fail_addr3;
-reg [8:0]  fail_addr4;
-reg [3:0]  num_fault[0:3];
-integer j;
-begin
-   num_fault[0] = num0_fault;
-   num_fault[1] = num1_fault;
-   num_fault[2] = num2_fault;
-   num_fault[3] = num3_fault;
-   repeat (2) @(posedge clock);
-   fork
-   begin
-       // Remove the Bist Enable and Bist Run
-       wb_user_core_write(`GLBL_BIST_CTRL1,'h000);
-       // Remove WB and BIST RESET
-       wb_user_core_write(`WB_GLBL_CTRL,'h001);
-       // Set the Bist Enable and Bist Run
-       wb_user_core_write(`GLBL_BIST_CTRL1,'h00000003);
-       // Remove WB and BIST RESET
-       wb_user_core_write(`WB_GLBL_CTRL,'h081);
-      // Check for MBIST Done
-      read_data = 'h0;
-      while (read_data[0] != 1'b1) begin
-         wb_user_core_read(`GLBL_BIST_STAT1,read_data);
-      end
-      // wait for some time for all the BIST to complete
-      repeat (1000) @(posedge clock);
-      // Toggle the Bist Load for update the shift data
-      wb_user_core_write(`GLBL_BIST_CTRL1,'h00000004);
-      wb_user_core_write(`GLBL_BIST_CTRL1,'h00000000);
-      // Check Is there is any BIST Error
-      // [0]   - Bist Done      
-      // [1]   - Bist Error     
-      // [2]   - Bist Correct   
-      // [3]   - Reserved
-      // [7:4] - Bist Error Cnt 
-      wb_user_core_read_check(`GLBL_BIST_STAT1,read_data,mbist_signature[31:0],32'hFFFFFFFF);
-      //wb_user_core_read_check(`GLBL_BIST_STAT2,read_data,mbist_signature[63:32],32'hFFFFFFFF);
-   end
-   // Insert  Error Insertion
-   begin
-      while(1) begin
-         repeat (1) @(posedge clock);
-         #1;
-
-         if(u_top.u_sram0_2kb.web0 == 1'b0 && 
-	   ((num_fault[0] > 0 && u_top.u_sram0_2kb.addr0 == faultaddr[0]) ||
-	    (num_fault[0] > 1 && u_top.u_sram0_2kb.addr0 == faultaddr[1]) ||
-	    (num_fault[0] > 2 && u_top.u_sram0_2kb.addr0 == faultaddr[2]) ||
-	    (num_fault[0] > 3 && u_top.u_sram0_2kb.addr0 == faultaddr[3]) ||
-	    (num_fault[0] > 4 && u_top.u_sram0_2kb.addr0 == faultaddr[4]) ||
-	    (num_fault[0] > 5 && u_top.u_sram0_2kb.addr0 == faultaddr[5]) ||
-	    (num_fault[0] > 6 && u_top.u_sram0_2kb.addr0 == faultaddr[6]) ||
-	    (num_fault[0] > 7 && u_top.u_sram0_2kb.addr0 == faultaddr[7])))
-             begin
-	   if(fault_type == 0) // Struck at 0
-	      force u_top.u_sram0_2kb.din0 = u_top.mem0_din_a  & 32'hFFFF_FFFE;
-	   else
-	      force u_top.u_sram0_2kb.din0 = u_top.mem0_din_a | 32'h1;
-   	   -> error_insert;
-         end else begin
-            release u_top.u_sram0_2kb.din0;
-         end
-
-         if(u_top.u_sram1_2kb.web0 == 1'b0 && 
-	   ((num_fault[1] > 0 && u_top.u_sram1_2kb.addr0 == faultaddr[0]+1) ||
-	    (num_fault[1] > 1 && u_top.u_sram1_2kb.addr0 == faultaddr[1]+1) ||
-	    (num_fault[1] > 2 && u_top.u_sram1_2kb.addr0 == faultaddr[2]+1) ||
-	    (num_fault[1] > 3 && u_top.u_sram1_2kb.addr0 == faultaddr[3]+1) ||
-	    (num_fault[1] > 4 && u_top.u_sram1_2kb.addr0 == faultaddr[4]+1) ||
-	    (num_fault[1] > 5 && u_top.u_sram1_2kb.addr0 == faultaddr[5]+1) ||
-	    (num_fault[1] > 6 && u_top.u_sram1_2kb.addr0 == faultaddr[6]+1) ||
-	    (num_fault[1] > 7 && u_top.u_sram1_2kb.addr0 == faultaddr[7]+1)))
-             begin
-	   if(fault_type == 0) // Struck at 0
-	      force u_top.u_sram1_2kb.din0 = u_top.mem1_din_a  & 32'hFFFF_FFFE;
-	   else
-	      force u_top.u_sram1_2kb.din0 = u_top.mem1_din_a | 32'h1;
-   	   -> error_insert;
-         end else begin
-            release u_top.u_sram1_2kb.din0;
-         end
-
-         if(u_top.u_sram2_2kb.web0 == 1'b0 && 
-	   ((num_fault[2] > 0 && u_top.u_sram2_2kb.addr0 == faultaddr[0]+2) ||
-	    (num_fault[2] > 1 && u_top.u_sram2_2kb.addr0 == faultaddr[1]+2) ||
-	    (num_fault[2] > 2 && u_top.u_sram2_2kb.addr0 == faultaddr[2]+2) ||
-	    (num_fault[2] > 3 && u_top.u_sram2_2kb.addr0 == faultaddr[3]+2) ||
-	    (num_fault[2] > 4 && u_top.u_sram2_2kb.addr0 == faultaddr[4]+2) ||
-	    (num_fault[2] > 5 && u_top.u_sram2_2kb.addr0 == faultaddr[5]+2) ||
-	    (num_fault[2] > 6 && u_top.u_sram2_2kb.addr0 == faultaddr[6]+2) ||
-	    (num_fault[2] > 7 && u_top.u_sram2_2kb.addr0 == faultaddr[7]+2)))
-             begin
-	   if(fault_type == 0) // Struck at 0
-	      force u_top.u_sram2_2kb.din0 = u_top.mem2_din_a  & 32'hFFFF_FFFE;
-	   else
-	      force u_top.u_sram2_2kb.din0 = u_top.mem2_din_a | 32'h1;
-   	   -> error_insert;
-         end else begin
-            release u_top.u_sram2_2kb.din0;
-         end
-
-         if(u_top.u_sram3_2kb.web0 == 1'b0 && 
-	   ((num_fault[3] > 0 && u_top.u_sram3_2kb.addr0 == faultaddr[0]+3) ||
-	    (num_fault[3] > 1 && u_top.u_sram3_2kb.addr0 == faultaddr[1]+3) ||
-	    (num_fault[3] > 2 && u_top.u_sram3_2kb.addr0 == faultaddr[2]+3) ||
-	    (num_fault[3] > 3 && u_top.u_sram3_2kb.addr0 == faultaddr[3]+3) ||
-	    (num_fault[3] > 4 && u_top.u_sram3_2kb.addr0 == faultaddr[4]+3) ||
-	    (num_fault[3] > 5 && u_top.u_sram3_2kb.addr0 == faultaddr[5]+3) ||
-	    (num_fault[3] > 6 && u_top.u_sram3_2kb.addr0 == faultaddr[6]+3) ||
-	    (num_fault[3] > 7 && u_top.u_sram3_2kb.addr0 == faultaddr[7]+3)))
-             begin
-	   if(fault_type == 0) // Struck at 0
-	      force u_top.u_sram3_2kb.din0 = u_top.mem3_din_a  & 32'hFFFF_FFFE;
-	   else
-	      force u_top.u_sram3_2kb.din0 = u_top.mem3_din_a | 32'h1;
-   	   -> error_insert;
-         end else begin
-            release u_top.u_sram3_2kb.din0;
-         end
-
-         //if(u_top.u_sram5_1kb.web0 == 1'b0 && 
-	 //  ((num_fault > 0 && u_top.u_sram5_1kb.addr0 == faultaddr[0]+4) ||
-	 //   (num_fault > 1 && u_top.u_sram5_1kb.addr0 == faultaddr[1]+4) ||
-	 //   (num_fault > 2 && u_top.u_sram5_1kb.addr0 == faultaddr[2]+4) ||
-	 //   (num_fault > 3 && u_top.u_sram5_1kb.addr0 == faultaddr[3]+4) ||
-	 //   (num_fault > 4 && u_top.u_sram5_1kb.addr0 == faultaddr[4]+4) ||
-	 //   (num_fault > 5 && u_top.u_sram5_1kb.addr0 == faultaddr[5]+4) ||
-	 //   (num_fault > 6 && u_top.u_sram5_1kb.addr0 == faultaddr[6]+4) ||
-	 //   (num_fault > 7 && u_top.u_sram5_1kb.addr0 == faultaddr[7]+4)))
-         //    begin
-	 //  if(fault_type == 0) // Struck at 0
-	 //     force u_top.u_sram5_1kb.din0 = u_top.mem5_din_b  & 32'hFFFF_FFFE;
-	 //  else
-	 //     force u_top.u_sram5_1kb.din0 = u_top.mem5_din_b | 32'h1;
-   	 //  -> error_insert;
-         //end else begin
-         //   release u_top.u_sram5_1kb.din0;
-         //end
-
-         //if(u_top.u_sram6_1kb.web0 == 1'b0 && 
-	 //  ((num_fault > 0 && u_top.u_sram6_1kb.addr0 == faultaddr[0]+5) ||
-	 //   (num_fault > 1 && u_top.u_sram6_1kb.addr0 == faultaddr[1]+5) ||
-	 //   (num_fault > 2 && u_top.u_sram6_1kb.addr0 == faultaddr[2]+5) ||
-	 //   (num_fault > 3 && u_top.u_sram6_1kb.addr0 == faultaddr[3]+5) ||
-	 //   (num_fault > 4 && u_top.u_sram6_1kb.addr0 == faultaddr[4]+5) ||
-	 //   (num_fault > 5 && u_top.u_sram6_1kb.addr0 == faultaddr[5]+5) ||
-	 //   (num_fault > 6 && u_top.u_sram6_1kb.addr0 == faultaddr[6]+5) ||
-	 //   (num_fault > 7 && u_top.u_sram6_1kb.addr0 == faultaddr[7]+5)))
-         //    begin
-	 //  if(fault_type == 0) // Struck at 0
-	 //     force u_top.u_sram6_1kb.din0 = u_top.mem6_din_b  & 32'hFFFF_FFFE;
-	 //  else
-	 //     force u_top.u_sram6_1kb.din0 = u_top.mem6_din_b | 32'h1;
-   	 //  -> error_insert;
-         //end else begin
-         //   release u_top.u_sram6_1kb.din0;
-         //end
-
-         //if(u_top.u_sram7_1kb.web0 == 1'b0 && 
-	 //  ((num_fault > 0 && u_top.u_sram7_1kb.addr0 == faultaddr[0]+6) ||
-	 //   (num_fault > 1 && u_top.u_sram7_1kb.addr0 == faultaddr[1]+6) ||
-	 //   (num_fault > 2 && u_top.u_sram7_1kb.addr0 == faultaddr[2]+6) ||
-	 //   (num_fault > 3 && u_top.u_sram7_1kb.addr0 == faultaddr[3]+6) ||
-	 //   (num_fault > 4 && u_top.u_sram7_1kb.addr0 == faultaddr[4]+6) ||
-	 //   (num_fault > 5 && u_top.u_sram7_1kb.addr0 == faultaddr[5]+6) ||
-	 //   (num_fault > 6 && u_top.u_sram7_1kb.addr0 == faultaddr[6]+6) ||
-	 //   (num_fault > 7 && u_top.u_sram7_1kb.addr0 == faultaddr[7]+6)))
-         //    begin
-	 //  if(fault_type == 0) // Struck at 0
-	 //     force u_top.u_sram7_1kb.din0 = u_top.mem7_din_b  & 32'hFFFF_FFFE;
-	 //  else
-	 //     force u_top.u_sram7_1kb.din0 = u_top.mem7_din_b | 32'h1;
-   	 //  -> error_insert;
-         //end else begin
-         //   release u_top.u_sram7_1kb.din0;
-         //end
-
-         //if(u_top.u_sram8_1kb.web0 == 1'b0 && 
-	 //  ((num_fault > 0 && u_top.u_sram8_1kb.addr0 == faultaddr[0]+7) ||
-	 //   (num_fault > 1 && u_top.u_sram8_1kb.addr0 == faultaddr[1]+7) ||
-	 //   (num_fault > 2 && u_top.u_sram8_1kb.addr0 == faultaddr[2]+7) ||
-	 //   (num_fault > 3 && u_top.u_sram8_1kb.addr0 == faultaddr[3]+7) ||
-	 //   (num_fault > 4 && u_top.u_sram8_1kb.addr0 == faultaddr[4]+7) ||
-	 //   (num_fault > 5 && u_top.u_sram8_1kb.addr0 == faultaddr[5]+7) ||
-	 //   (num_fault > 6 && u_top.u_sram8_1kb.addr0 == faultaddr[6]+7) ||
-	 //   (num_fault > 7 && u_top.u_sram8_1kb.addr0 == faultaddr[7]+7)))
-         //    begin
-	 //  if(fault_type == 0) // Struck at 0
-	 //     force u_top.u_sram8_1kb.din0 = u_top.mem8_din_b  & 32'hFFFF_FFFE;
-	 //  else
-	 //     force u_top.u_sram8_1kb.din0 = u_top.mem8_din_b | 32'h1;
-   	 //  -> error_insert;
-         //end else begin
-         //   release u_top.u_sram8_1kb.din0;
-         //end
-
-      end
-   end
-   begin
-      // Loop for BIST TimeOut
-      repeat (200000) @(posedge clock);
-   		// $display("+1000 cycles");
-      test_fail = 1;
-   end
-   join_any
-   disable fork; //disable pending fork activity
-
-   // Read Back the Failure Address and cross-check all the 8 MBIST
-   // Read Signature is comming is reverse order, MBIST4 => MBIST3 => MBIST2
-   for(j=`NO_SRAM; j > 0; j=j-1) begin
-      fail_addr1 = faultaddr[0]+j-1;
-      fail_addr2 = faultaddr[1]+j-1;
-      fail_addr3 = faultaddr[2]+j-1;
-      fail_addr4 = faultaddr[3]+j-1;
-
-      if(num_fault[j-1] == 1) begin
-          wb_user_core_read_check(`GLBL_BIST_SRDATA,read_data,{32'h0},32'hFFFF_FFFF);
-          wb_user_core_read_check(`GLBL_BIST_SRDATA,read_data,{7'h0,fail_addr1,16'h0},32'hFFFF_FFFF);
-      end else if(num_fault[j-1] == 2) begin
-          wb_user_core_read_check(`GLBL_BIST_SRDATA,read_data,{32'h0},32'hFFFF_FFFF);
-          wb_user_core_read_check(`GLBL_BIST_SRDATA,read_data,{7'h0,fail_addr1,7'h0,fail_addr2},32'hFFFF_FFFF);
-     end else if(num_fault[j-1] == 3) begin
-          wb_user_core_read_check(`GLBL_BIST_SRDATA,read_data,{7'h0,fail_addr3,16'h0},32'hFFFF_FFFF);
-          wb_user_core_read_check(`GLBL_BIST_SRDATA,read_data,{7'h0,fail_addr1,7'h0,fail_addr2},32'hFFFF_FFFF);
-      end else if(num_fault[j-1] >= 4) begin
-          wb_user_core_read_check(`GLBL_BIST_SRDATA,read_data,{7'h0,fail_addr3,7'h0,fail_addr4},32'hFFFF_FFFF);
-          wb_user_core_read_check(`GLBL_BIST_SRDATA,read_data,{7'h0,fail_addr1,7'h0,fail_addr2},32'hFFFF_FFFF);
-      end else begin
-          wb_user_core_read_check(`GLBL_BIST_SRDATA,read_data,32'h0,32'hFFFF_FFFF);
-          wb_user_core_read_check(`GLBL_BIST_SRDATA,read_data,32'h0,32'hFFFF_FFFF);
-      end
-   end
-end
-endtask
-
-
-task wb_user_core_write;
-input [31:0] address;
-input [31:0] data;
-begin
-  repeat (1) @(posedge clock);
-  #1;
-  wbd_ext_adr_i =address;  // address
-  wbd_ext_we_i  ='h1;  // write
-  wbd_ext_dat_i =data;  // data output
-  wbd_ext_sel_i ='hF;  // byte enable
-  wbd_ext_cyc_i ='h1;  // strobe/request
-  wbd_ext_stb_i ='h1;  // strobe/request
-  wait(wbd_ext_ack_o == 1);
-  repeat (1) @(posedge clock);
-  #1;
-  wbd_ext_cyc_i ='h0;  // strobe/request
-  wbd_ext_stb_i ='h0;  // strobe/request
-  wbd_ext_adr_i ='h0;  // address
-  wbd_ext_we_i  ='h0;  // write
-  wbd_ext_dat_i ='h0;  // data output
-  wbd_ext_sel_i ='h0;  // byte enable
-  $display("STATUS: WB USER ACCESS WRITE Address : 0x%x, Data : 0x%x",address,data);
-  repeat (2) @(posedge clock);
-end
-endtask
-
-task  wb_user_core_read;
-input [31:0] address;
-output [31:0] data;
-reg    [31:0] data;
-begin
-  repeat (1) @(posedge clock);
-  #1;
-  wbd_ext_adr_i =address;  // address
-  wbd_ext_we_i  ='h0;  // write
-  wbd_ext_dat_i ='0;  // data output
-  wbd_ext_sel_i ='hF;  // byte enable
-  wbd_ext_cyc_i ='h1;  // strobe/request
-  wbd_ext_stb_i ='h1;  // strobe/request
-  wait(wbd_ext_ack_o == 1);
-  #1;
-  data  = wbd_ext_dat_o;  
-  repeat (1) @(posedge clock);
-  #1;
-  wbd_ext_cyc_i ='h0;  // strobe/request
-  wbd_ext_stb_i ='h0;  // strobe/request
-  wbd_ext_adr_i ='h0;  // address
-  wbd_ext_we_i  ='h0;  // write
-  wbd_ext_dat_i ='h0;  // data output
-  wbd_ext_sel_i ='h0;  // byte enable
-  //$display("STATUS: WB USER ACCESS READ  Address : 0x%x, Data : 0x%x",address,data);
-  repeat (2) @(posedge clock);
-end
-endtask
-
-task  wb_user_core_read_check;
-input [31:0] address;
-output [31:0] data;
-input [31:0] cmp_data;
-input [31:0] cmp_mask;
-reg    [31:0] data;
-begin
-  repeat (1) @(posedge clock);
-  #1;
-  wbd_ext_adr_i =address;  // address
-  wbd_ext_we_i  ='h0;  // write
-  wbd_ext_dat_i ='0;  // data output
-  wbd_ext_sel_i ='hF;  // byte enable
-  wbd_ext_cyc_i ='h1;  // strobe/request
-  wbd_ext_stb_i ='h1;  // strobe/request
-  wait(wbd_ext_ack_o == 1);
-  #1;
-  data  = wbd_ext_dat_o;  
-  repeat (1) @(posedge clock);
-  #1;
-  wbd_ext_cyc_i ='h0;  // strobe/request
-  wbd_ext_stb_i ='h0;  // strobe/request
-  wbd_ext_adr_i ='h0;  // address
-  wbd_ext_we_i  ='h0;  // write
-  wbd_ext_dat_i ='h0;  // data output
-  wbd_ext_sel_i ='h0;  // byte enable
-  if((data & cmp_mask) !== (cmp_data & cmp_mask) ) begin
-     $display("ERROR : WB USER ACCESS READ  Address : 0x%x, Exd: 0x%x Rxd: 0x%x ",address,(cmp_data & cmp_mask),(data & cmp_mask));
-     test_fail = 1;
-  end else begin
-     $display("STATUS: WB USER ACCESS READ  Address : 0x%x, Data : 0x%x",address,(data & cmp_mask));
-  end
-  repeat (2) @(posedge clock);
-end
-endtask
-
-
-endmodule
-`default_nettype wire
diff --git a/verilog/dv/user_risc_soft_boot/Makefile b/verilog/dv/user_risc_soft_boot/Makefile
deleted file mode 100644
index 12f65be..0000000
--- a/verilog/dv/user_risc_soft_boot/Makefile
+++ /dev/null
@@ -1,111 +0,0 @@
-# SPDX-FileCopyrightText: 2020 Efabless Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# SPDX-License-Identifier: Apache-2.0
-
-## Caravel Pointers
-CARAVEL_ROOT ?= ../../../caravel
-CARAVEL_PATH ?= $(CARAVEL_ROOT)
-CARAVEL_FIRMWARE_PATH = $(CARAVEL_PATH)/verilog/dv/caravel
-CARAVEL_VERILOG_PATH  = $(CARAVEL_PATH)/verilog
-CARAVEL_RTL_PATH = $(CARAVEL_VERILOG_PATH)/rtl
-CARAVEL_BEHAVIOURAL_MODELS = $(CARAVEL_VERILOG_PATH)/dv/caravel
-
-
-## User Project Pointers
-UPRJ_VERILOG_PATH ?= ../../../verilog
-UPRJ_RTL_PATH = $(UPRJ_VERILOG_PATH)/rtl
-UPRJ_GL_PATH = $(UPRJ_VERILOG_PATH)/gl
-UPRJ_BEHAVIOURAL_MODELS = ../model
-UPRJ_BEHAVIOURAL_AGENTS = ../agents
-UPRJ_INCLUDE_PATH1 = $(UPRJ_RTL_PATH)/yifive/ycr1c/src/includes
-UPRJ_INCLUDE_PATH2 = $(UPRJ_RTL_PATH)/sdram_ctrl/src/defs
-UPRJ_INCLUDE_PATH3 = $(UPRJ_RTL_PATH)/i2cm/src/includes
-UPRJ_INCLUDE_PATH4 = $(UPRJ_RTL_PATH)/usb1_host/src/includes
-UPRJ_INCLUDE_PATH5 = $(UPRJ_RTL_PATH)/mbist/include
-
-## YIFIVE FIRMWARE
-YIFIVE_FIRMWARE_PATH = $(UPRJ_VERILOG_PATH)/dv/firmware
-GCC64_PREFIX?=riscv64-unknown-elf
-
-## RISCV GCC 
-GCC_PATH?=/ef/apps/bin
-GCC32_PREFIX?=riscv32-unknown-elf
-PDK_PATH?=/ef/tech/SW/sky130A
-
-## Simulation mode: RTL/GL
-SIM?=RTL
-DUMP?=OFF
-
-.SUFFIXES:
-
-PATTERN = user_risc_soft_boot
-
-all:  ${PATTERN:=.vcd}
-
-hex:  ${PATTERN:=.hex}
-
-vvp:  ${PATTERN:=.vvp}
-
-%.vvp: %_tb.v
-	${GCC64_PREFIX}-gcc -O2 -funroll-loops -fpeel-loops -fgcse-sm -fgcse-las  -D__RVC_EXT -static -std=gnu99 -fno-common -fno-builtin-printf -DTCM=0 -Wa,-march=rv32imc -march=rv32imc -mabi=ilp32 -DFLAGS_STR=\""-O2 -funroll-loops -fpeel-loops -fgcse-sm -fgcse-las "\"  -c -I./ -I$(YIFIVE_FIRMWARE_PATH)  user_risc_boot.c -o user_risc_boot.o
-	${GCC64_PREFIX}-gcc -O2 -funroll-loops -fpeel-loops -fgcse-sm -fgcse-las  -D__RVC_EXT -static -std=gnu99 -fno-common -fno-builtin-printf -DTCM=0 -Wa,-march=rv32imc -march=rv32imc -mabi=ilp32 -DFLAGS_STR=\""-O2 -funroll-loops -fpeel-loops -fgcse-sm -fgcse-las "\"  -D__ASSEMBLY__=1 -c -I./ -I$(YIFIVE_FIRMWARE_PATH)  $(YIFIVE_FIRMWARE_PATH)/crt.S -o crt.o
-	${GCC64_PREFIX}-gcc -o user_risc_boot.elf -T $(YIFIVE_FIRMWARE_PATH)/link.ld user_risc_boot.o crt.o -nostartfiles -nostdlib -lc -lgcc -march=rv32imc -mabi=ilp32 -N
-	${GCC64_PREFIX}-objcopy -O verilog user_risc_boot.elf user_risc_boot.hex
-	${GCC64_PREFIX}-objdump -D user_risc_boot.elf > user_risc_boot.dump
-	rm crt.o user_risc_boot.o
-ifeq ($(SIM),RTL)
-   ifeq ($(DUMP),OFF)
-	iverilog -g2005-sv -DFUNCTIONAL -DSIM -I $(PDK_PATH) \
-	-I $(CARAVEL_BEHAVIOURAL_MODELS) -I $(CARAVEL_RTL_PATH) \
-	-I $(UPRJ_BEHAVIOURAL_MODELS)    -I $(UPRJ_RTL_PATH) -I $(UPRJ_VERILOG_PATH) \
-	-I $(UPRJ_BEHAVIOURAL_AGENTS)    \
-	-I $(UPRJ_INCLUDE_PATH1)    -I $(UPRJ_INCLUDE_PATH2) -I $(UPRJ_INCLUDE_PATH3) \
-	-I $(UPRJ_INCLUDE_PATH4) -I $(UPRJ_INCLUDE_PATH5) \
-	$< -o $@ 
-    else  
-	iverilog -g2005-sv -DWFDUMP -DFUNCTIONAL -DSIM -I $(PDK_PATH) \
-	-I $(CARAVEL_BEHAVIOURAL_MODELS) -I $(CARAVEL_RTL_PATH) \
-	-I $(UPRJ_BEHAVIOURAL_MODELS)    -I $(UPRJ_RTL_PATH) -I $(UPRJ_VERILOG_PATH) \
-	-I $(UPRJ_BEHAVIOURAL_AGENTS)    \
-	-I $(UPRJ_INCLUDE_PATH1)    -I $(UPRJ_INCLUDE_PATH2) -I $(UPRJ_INCLUDE_PATH3) \
-	-I $(UPRJ_INCLUDE_PATH4) -I $(UPRJ_INCLUDE_PATH5) \
-	$< -o $@ 
-   endif
-else  
-	iverilog -g2005-sv -DFUNCTIONAL -DSIM -DGL -I $(PDK_PATH) \
-	-I $(CARAVEL_BEHAVIOURAL_MODELS) -I $(CARAVEL_RTL_PATH) -I $(CARAVEL_VERILOG_PATH) \
-	-I $(UPRJ_BEHAVIOURAL_MODELS) -I $(UPRJ_GL_PATH) \
-	-I $(UPRJ_BEHAVIOURAL_AGENTS)    \
-	$< -o $@ 
-endif
-
-%.vcd: %.vvp
-	vvp $<
-
-%.elf: %.c $(CARAVEL_FIRMWARE_PATH)/sections.lds $(CARAVEL_FIRMWARE_PATH)/start.s
-	${GCC64_PREFIX}-gcc -I $(CARAVEL_PATH) -march=rv32imc -mabi=ilp32 -Wl,-Bstatic,-T,$(CARAVEL_FIRMWARE_PATH)/sections.lds,--strip-debug -ffreestanding -nostdlib -o $@ $(CARAVEL_FIRMWARE_PATH)/start.s $<
-
-%.hex: 
-	echo @"This is user boot test, noting to compile the mangment core code"
-
-%.bin: %.elf
-	${GCC64_PREFIX}-objcopy -O binary $< /dev/stdout | tail -c +1048577 > $@
-
-# ---- Clean ----
-
-clean:
-	rm -f *.elf *.hex *.bin *.vvp *.vcd *.log *.dump
-
-.PHONY: clean hex all
diff --git a/verilog/dv/user_risc_soft_boot/run_iverilog b/verilog/dv/user_risc_soft_boot/run_iverilog
deleted file mode 100755
index 56414f8..0000000
--- a/verilog/dv/user_risc_soft_boot/run_iverilog
+++ /dev/null
@@ -1,49 +0,0 @@
-# //////////////////////////////////////////////////////////////////////////////
-# // SPDX-FileCopyrightText: 2021, Dinesh Annayya
-# // 
-# // Licensed under the Apache License, Version 2.0 (the "License");
-# // you may not use this file except in compliance with the License.
-# // You may obtain a copy of the License at
-# //
-# //      http://www.apache.org/licenses/LICENSE-2.0
-# //
-# // Unless required by applicable law or agreed to in writing, software
-# // distributed under the License is distributed on an "AS IS" BASIS,
-# // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# // See the License for the specific language governing permissions and
-# // limitations under the License.
-# // SPDX-License-Identifier: Apache-2.0
-# // SPDX-FileContributor: Dinesh Annayya <dinesha@opencores.org>
-# // //////////////////////////////////////////////////////////////////////////
-
-riscv64-unknown-elf-gcc -O2 -funroll-loops -fpeel-loops -fgcse-sm -fgcse-las  -D__RVC_EXT -static -std=gnu99 -fno-common -fno-builtin-printf -DTCM=1 -Wa,-march=rv32imc -march=rv32imc -mabi=ilp32 -DFLAGS_STR=\""-O2 -funroll-loops -fpeel-loops -fgcse-sm -fgcse-las "\"  -c -I./ -I../../rtl/syntacore/scr1/sim/tests/common  user_risc_boot.c -o user_risc_boot.o
-
-riscv64-unknown-elf-gcc -O2 -funroll-loops -fpeel-loops -fgcse-sm -fgcse-las  -D__RVC_EXT -static -std=gnu99 -fno-common -fno-builtin-printf -DTCM=1 -Wa,-march=rv32imc -march=rv32imc -mabi=ilp32 -DFLAGS_STR=\""-O2 -funroll-loops -fpeel-loops -fgcse-sm -fgcse-las "\"  -D__ASSEMBLY__=1 -c -I./ -I../../rtl/syntacore/scr1/sim/tests/common/  ../../rtl/syntacore/scr1/sim/tests/common/crt_tcm.S -o crt_tcm.o
-
-riscv64-unknown-elf-gcc -o user_risc_boot.elf -T ../../rtl/syntacore/scr1/sim/tests/common/link_tcm.ld user_risc_boot.o crt_tcm.o -nostartfiles -nostdlib -lc -lgcc -march=rv32imc -mabi=ilp32
-
-riscv64-unknown-elf-objcopy -O verilog user_risc_boot.elf user_risc_boot.hex
-
-riscv64-unknown-elf-objdump -D user_risc_boot.elf > user_risc_boot.dump
-
-rm crt_tcm.o user_risc_boot.o
-
-#iverilog with waveform dump
-
-iverilog -g2005-sv -DWFDUMP  -DFUNCTIONAL -DSIM -I $PDK_PATH \
--I /home/dinesha/workarea/opencore/git/riscduino/caravel/verilog/dv/caravel -I /home/dinesha/workarea/opencore/git/riscduino/caravel/verilog/rtl \
--I ../model    -I ../../../verilog/rtl -I ../../../verilog \
--I ../agents    \
--I ../../../verilog/rtl/syntacore/scr1/src/includes    -I ../../../verilog/rtl/sdram_ctrl/src/defs -I ../../../verilog/rtl/i2cm/src/includes \
--I ../../../verilog/rtl/usb1_host/src/includes -I ../../../verilog/rtl/mbist/include \
-user_risc_soft_boot_tb.v -o user_risc_soft_boot.vvp 
-
-
-#iverilog -g2005-sv -I $PDK_PATH -DFUNCTIONAL -DSIM -I  ../../../caravel/verilog/rtl -I ../ -I ../../../verilog/rtl -I ../../../verilog -I ../../../verilog/rtl/syntacore/scr1/src/includes   -I ../../../verilog/rtl/sdram_ctrl/src/defs -I $CARAVEL_ROOT/verilog/dv/caravel -I ../model -I ../agents user_risc_boot_tb.v -o user_risc_boot_tb.vvp
-
-# GLS
-#iverilog -g2005-sv -DGL -I $PDK_PATH -I  ../../../caravel/verilog/rtl  -I ../ -I ../../../verilog/rtl -I ../../../verilog -I /home/dinesha/workarea/pdk/sky130A -I ../../../verilog/rtl/syntacore/scr1/src/includes   -I ../../../verilog/rtl/sdram_ctrl/src/defs -I $CARAVEL_ROOT/verilog/dv/caravel -I ../model -I ../agents user_uart_tb.v -o user_risc_boot_tb.vvp
-
-vvp user_risc_soft_boot.vvp | tee test.log
-
-\rm -rf user_risc_soft_boot.vvp
diff --git a/verilog/dv/user_risc_soft_boot/user_risc_boot.c b/verilog/dv/user_risc_soft_boot/user_risc_boot.c
deleted file mode 100644
index 37e424b..0000000
--- a/verilog/dv/user_risc_soft_boot/user_risc_boot.c
+++ /dev/null
@@ -1,73 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// SPDX-FileCopyrightText: 2021, Dinesh Annayya
-// 
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-// SPDX-License-Identifier: Apache-2.0
-// SPDX-FileContributor: Dinesh Annayya <dinesha@opencores.org>
-// //////////////////////////////////////////////////////////////////////////
-#define SC_SIM_OUTPORT (0xf0000000)
-#define uint32_t  long
-
-#define reg_mprj_globl_reg0  (*(volatile uint32_t*)0x10020000)
-#define reg_mprj_globl_reg1  (*(volatile uint32_t*)0x10020004)
-#define reg_mprj_globl_reg2  (*(volatile uint32_t*)0x10020008)
-#define reg_mprj_globl_reg3  (*(volatile uint32_t*)0x1002000C)
-#define reg_mprj_globl_reg4  (*(volatile uint32_t*)0x10020010)
-#define reg_mprj_globl_reg5  (*(volatile uint32_t*)0x10020014)
-#define reg_mprj_globl_reg6  (*(volatile uint32_t*)0x10020018)
-#define reg_mprj_globl_reg7  (*(volatile uint32_t*)0x1002001C)
-#define reg_mprj_globl_reg8  (*(volatile uint32_t*)0x10020020)
-#define reg_mprj_globl_reg9  (*(volatile uint32_t*)0x10020024)
-#define reg_mprj_globl_reg10 (*(volatile uint32_t*)0x10020028)
-#define reg_mprj_globl_reg11 (*(volatile uint32_t*)0x1002002C)
-#define reg_mprj_globl_reg12 (*(volatile uint32_t*)0x10020030)
-#define reg_mprj_globl_reg13 (*(volatile uint32_t*)0x10020034)
-#define reg_mprj_globl_reg14 (*(volatile uint32_t*)0x10020038)
-#define reg_mprj_globl_reg15 (*(volatile uint32_t*)0x1002003C)
-#define reg_mprj_globl_reg16 (*(volatile uint32_t*)0x10020040)
-#define reg_mprj_globl_reg17 (*(volatile uint32_t*)0x10020044)
-#define reg_mprj_globl_reg18 (*(volatile uint32_t*)0x10020048)
-#define reg_mprj_globl_reg19 (*(volatile uint32_t*)0x1002004C)
-#define reg_mprj_globl_reg20 (*(volatile uint32_t*)0x10020050)
-#define reg_mprj_globl_reg21 (*(volatile uint32_t*)0x10020054)
-#define reg_mprj_globl_reg22 (*(volatile uint32_t*)0x10020058)
-#define reg_mprj_globl_reg23 (*(volatile uint32_t*)0x1002005C)
-#define reg_mprj_globl_reg24 (*(volatile uint32_t*)0x10020060)
-#define reg_mprj_globl_reg25 (*(volatile uint32_t*)0x10020064)
-#define reg_mprj_globl_reg26 (*(volatile uint32_t*)0x10020068)
-#define reg_mprj_globl_reg27 (*(volatile uint32_t*)0x1002006C)
-
-int main()
-{
-
-    //volatile long *out_ptr = (volatile long*)SC_SIM_OUTPORT;
-    //*out_ptr = 0xAABBCCDD;
-    //*out_ptr = 0xBBCCDDEE;
-    //*out_ptr = 0xCCDDEEFF;
-    //*out_ptr = 0xDDEEFF00;
-
-    // Write software Write & Read Register
-    reg_mprj_globl_reg22  = 0x11223344; 
-    reg_mprj_globl_reg23  = 0x22334455; 
-    reg_mprj_globl_reg24  = 0x33445566; 
-    reg_mprj_globl_reg25  = 0x44556677; 
-    reg_mprj_globl_reg26 = 0x55667788; 
-    reg_mprj_globl_reg27 = 0x66778899; 
-    //reg_mprj_globl_reg12 = 0x778899AA; 
-    //reg_mprj_globl_reg13 = 0x8899AABB; 
-    //reg_mprj_globl_reg14 = 0x99AABBCC; 
-    //reg_mprj_globl_reg15 = 0xAABBCCDD; 
-
-    while(1) {}
-    return 0;
-}
diff --git a/verilog/dv/user_risc_soft_boot/user_risc_soft_boot_tb.v b/verilog/dv/user_risc_soft_boot/user_risc_soft_boot_tb.v
deleted file mode 100644
index 32a28b8..0000000
--- a/verilog/dv/user_risc_soft_boot/user_risc_soft_boot_tb.v
+++ /dev/null
@@ -1,407 +0,0 @@
-////////////////////////////////////////////////////////////////////////////
-// SPDX-FileCopyrightText:  2021 , Dinesh Annayya
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-// SPDX-License-Identifier: Apache-2.0
-// SPDX-FileContributor: Modified by Dinesh Annayya <dinesha@opencores.org>
-//////////////////////////////////////////////////////////////////////
-////                                                              ////
-////  Standalone User validation Test bench                       ////
-////                                                              ////
-////  This file is part of the YIFive cores project               ////
-////  https://github.com/dineshannayya/yifive_r0.git              ////
-////  http://www.opencores.org/cores/yifive/                      ////
-////                                                              ////
-////  Description                                                 ////
-////   This is a standalone test bench to validate the            ////
-////   Digital core.                                              ////
-////   1. User Risc core is booted using  compiled code of        ////
-////      user_risc_boot.c                                        ////
-////   2. User Risc core uses Serial Flash and SDRAM to boot      ////
-////   3. After successful boot, Risc core will  write signature  ////
-////      in to  user register from 0x1003_0058 to 0x1003_006C    ////
-////   4. Through the External Wishbone Interface we read back    ////
-////       from 0x3003_0058 to 0x3003_006C                        ////
-////       and validate the user register to declared pass fail   ////
-////                                                              ////
-////  To Do:                                                      ////
-////    nothing                                                   ////
-////                                                              ////
-////  Author(s):                                                  ////
-////      - Dinesh Annayya, dinesha@opencores.org                 ////
-////                                                              ////
-////  Revision :                                                  ////
-////    0.1 - 16th Feb 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                     ////
-////                                                              ////
-//////////////////////////////////////////////////////////////////////
-
-`default_nettype wire
-
-`timescale 1 ns / 1 ns
-
-`include "uprj_netlists.v"
-
-module user_risc_soft_boot_tb;
-	reg clock;
-	reg wb_rst_i;
-	reg power1, power2;
-	reg power3, power4;
-
-        reg        wbd_ext_cyc_i;  // strobe/request
-        reg        wbd_ext_stb_i;  // strobe/request
-        reg [31:0] wbd_ext_adr_i;  // address
-        reg        wbd_ext_we_i;  // write
-        reg [31:0] wbd_ext_dat_i;  // data output
-        reg [3:0]  wbd_ext_sel_i;  // byte enable
-
-        wire [31:0] wbd_ext_dat_o;  // data input
-        wire        wbd_ext_ack_o;  // acknowlegement
-        wire        wbd_ext_err_o;  // error
-
-	// User I/O
-	wire [37:0] io_oeb;
-	wire [37:0] io_out;
-	wire [37:0] io_in;
-
-	wire gpio;
-	wire [37:0] mprj_io;
-	wire [7:0] mprj_io_0;
-	reg         test_fail;
-	reg [31:0] read_data;
-	logic  [7:0]           tem_mem[0:4095];
-	logic  [31:0]          tem_mem_32b[0:511];
-
-	`ifdef VERILATOR
-	 logic [255:0]          test_ram_file;
-         `else // VERILATOR
-	 
-	    string                 test_ram_file;
-
-         `endif // VERILATOR
-
-         integer i;
-
-
-	// External clock is used by default.  Make this artificially fast for the
-	// simulation.  Normally this would be a slow clock and the digital PLL
-	// would be the fast clock.
-
-	always #12.5 clock <= (clock === 1'b0);
-
-	initial begin
-		clock = 0;
-                wbd_ext_cyc_i ='h0;  // strobe/request
-                wbd_ext_stb_i ='h0;  // strobe/request
-                wbd_ext_adr_i ='h0;  // address
-                wbd_ext_we_i  ='h0;  // write
-                wbd_ext_dat_i ='h0;  // data output
-                wbd_ext_sel_i ='h0;  // byte enable
-	end
-
-	`ifdef WFDUMP
-	   initial begin
-	   	$dumpfile("simx.vcd");
-	   	$dumpvars(4, user_risc_soft_boot_tb.u_top);
-	   	//$dumpvars(3, user_risc_soft_boot_tb.u_top.u_riscv_top);
-	   end
-       `endif
-
-	initial begin
-
-		#200; // Wait for reset removal
-	        repeat (10) @(posedge clock);
-		$display("Monitor: Standalone User Risc Boot Test Started");
-
-		// Remove Wb Reset
-		wb_user_core_write('h3080_0000,'h1);
-
-		$readmemh("user_risc_boot.hex",tem_mem);
-		// convert 8 bit 32 mem format
-		for(i =0; i < 511; i = i+1)
-		   tem_mem_32b[i] = {tem_mem[(i*4)+3],tem_mem[(i*4)+2],tem_mem[(i*4)+1],tem_mem[(i*4)]};
-
-	        $writememh("sram_bank0.hex",tem_mem_32b,0,511);
-	        $readmemh("sram_bank0.hex",u_top.u_sram0_2kb.mem,0,511);
-
-		for(i =512; i < 1023; i = i+1)
-		   tem_mem_32b[i-512] = {tem_mem[(i*4)+3],tem_mem[(i*4)+2],tem_mem[(i*4)+1],tem_mem[(i*4)]};
-
-	        $writememh("sram_bank1.hex",tem_mem_32b,0,511);
-	        $readmemh("sram_bank1.hex",u_top.u_sram1_2kb.mem,0,511);
-
-		// Enable the SRAM Remap to boot region
-		wb_user_core_write('h3080_000C,{4'b1111,28'h0});
-	        repeat (2) @(posedge clock);
-		#1;
-		// Remove the reset, mbist, wishbone, riscv
-                wb_user_core_write('h3080_0000,'h8F);
-
-
-		// Repeat cycles of 1000 clock edges as needed to complete testbench
-		repeat (24) begin
-			repeat (500) @(posedge clock);
-			//$display("+500 cycles");
-		end
-
-
-		$display("Monitor: Reading Back the expected value");
-		// User RISC core expect to write these value in global
-		// register, read back and decide on pass fail
-		// 0x30000018  = 0x11223344; 
-                // 0x3000001C  = 0x22334455; 
-                // 0x30000020  = 0x33445566; 
-                // 0x30000024  = 0x44556677; 
-                // 0x30000028 = 0x55667788; 
-                // 0x3000002C = 0x66778899; 
-
-                test_fail = 0;
-		wb_user_core_read_check(32'h30020058,read_data,32'h11223344);
-		wb_user_core_read_check(32'h3002005C,read_data,32'h22334455);
-		wb_user_core_read_check(32'h30020060,read_data,32'h33445566);
-		wb_user_core_read_check(32'h30020064,read_data,32'h44556677);
-		wb_user_core_read_check(32'h30020068,read_data,32'h55667788);
-		wb_user_core_read_check(32'h3002006C,read_data,32'h66778899) ;
-
-	   
-	    	$display("###################################################");
-          	if(test_fail == 0) begin
-		   `ifdef GL
-	    	       $display("Monitor: Standalone User Risc Boot (GL) Passed");
-		   `else
-		       $display("Monitor: Standalone User Risc Boot (RTL) Passed");
-		   `endif
-	        end else begin
-		    `ifdef GL
-	    	        $display("Monitor: Standalone User Risc Boot (GL) Failed");
-		    `else
-		        $display("Monitor: Standalone User Risc Boot (RTL) Failed");
-		    `endif
-		 end
-	    	$display("###################################################");
-	    $finish;
-	end
-
-	initial begin
-		wb_rst_i <= 1'b1;
-		#100;
-		wb_rst_i <= 1'b0;	    	// Release reset
-	end
-wire USER_VDD1V8 = 1'b1;
-wire VSS = 1'b0;
-
-user_project_wrapper u_top(
-`ifdef USE_POWER_PINS
-    .vccd1(USER_VDD1V8),	// User area 1 1.8V supply
-    .vssd1(VSS),	// User area 1 digital ground
-`endif
-    .wb_clk_i        (clock),  // System clock
-    .user_clock2     (1'b1),  // Real-time clock
-    .wb_rst_i        (wb_rst_i),  // Regular Reset signal
-
-    .wbs_cyc_i   (wbd_ext_cyc_i),  // strobe/request
-    .wbs_stb_i   (wbd_ext_stb_i),  // strobe/request
-    .wbs_adr_i   (wbd_ext_adr_i),  // address
-    .wbs_we_i    (wbd_ext_we_i),  // write
-    .wbs_dat_i   (wbd_ext_dat_i),  // data output
-    .wbs_sel_i   (wbd_ext_sel_i),  // byte enable
-
-    .wbs_dat_o   (wbd_ext_dat_o),  // data input
-    .wbs_ack_o   (wbd_ext_ack_o),  // acknowlegement
-
- 
-    // Logic Analyzer Signals
-    .la_data_in      ('1) ,
-    .la_data_out     (),
-    .la_oenb         ('0),
- 
-
-    // IOs
-    .io_in          (io_in)  ,
-    .io_out         (io_out) ,
-    .io_oeb         (io_oeb) ,
-
-    .user_irq       () 
-
-);
-
-`ifndef GL // Drive Power for Hold Fix Buf
-    // All standard cell need power hook-up for functionality work
-    initial begin
-
-    end
-`endif    
-
-
-
-task wb_user_core_write;
-input [31:0] address;
-input [31:0] data;
-begin
-  repeat (1) @(posedge clock);
-  #1;
-  wbd_ext_adr_i =address;  // address
-  wbd_ext_we_i  ='h1;  // write
-  wbd_ext_dat_i =data;  // data output
-  wbd_ext_sel_i ='hF;  // byte enable
-  wbd_ext_cyc_i ='h1;  // strobe/request
-  wbd_ext_stb_i ='h1;  // strobe/request
-  wait(wbd_ext_ack_o == 1);
-  repeat (1) @(posedge clock);
-  #1;
-  wbd_ext_cyc_i ='h0;  // strobe/request
-  wbd_ext_stb_i ='h0;  // strobe/request
-  wbd_ext_adr_i ='h0;  // address
-  wbd_ext_we_i  ='h0;  // write
-  wbd_ext_dat_i ='h0;  // data output
-  wbd_ext_sel_i ='h0;  // byte enable
-  $display("DEBUG WB USER ACCESS WRITE Address : %x, Data : %x",address,data);
-  repeat (2) @(posedge clock);
-end
-endtask
-
-task  wb_user_core_read;
-input [31:0] address;
-output [31:0] data;
-reg    [31:0] data;
-begin
-  repeat (1) @(posedge clock);
-  #1;
-  wbd_ext_adr_i =address;  // address
-  wbd_ext_we_i  ='h0;  // write
-  wbd_ext_dat_i ='0;  // data output
-  wbd_ext_sel_i ='hF;  // byte enable
-  wbd_ext_cyc_i ='h1;  // strobe/request
-  wbd_ext_stb_i ='h1;  // strobe/request
-  wait(wbd_ext_ack_o == 1);
-  data  = wbd_ext_dat_o;  
-  repeat (1) @(posedge clock);
-  #1;
-  wbd_ext_cyc_i ='h0;  // strobe/request
-  wbd_ext_stb_i ='h0;  // strobe/request
-  wbd_ext_adr_i ='h0;  // address
-  wbd_ext_we_i  ='h0;  // write
-  wbd_ext_dat_i ='h0;  // data output
-  wbd_ext_sel_i ='h0;  // byte enable
-  $display("DEBUG WB USER ACCESS READ Address : %x, Data : %x",address,data);
-  repeat (2) @(posedge clock);
-end
-endtask
-
-task  wb_user_core_read_check;
-input [31:0] address;
-output [31:0] data;
-input [31:0] cmp_data;
-reg    [31:0] data;
-begin
-  repeat (1) @(posedge clock);
-  #1;
-  wbd_ext_adr_i =address;  // address
-  wbd_ext_we_i  ='h0;  // write
-  wbd_ext_dat_i ='0;  // data output
-  wbd_ext_sel_i ='hF;  // byte enable
-  wbd_ext_cyc_i ='h1;  // strobe/request
-  wbd_ext_stb_i ='h1;  // strobe/request
-  wait(wbd_ext_ack_o == 1);
-  data  = wbd_ext_dat_o;  
-  repeat (1) @(posedge clock);
-  #1;
-  wbd_ext_cyc_i ='h0;  // strobe/request
-  wbd_ext_stb_i ='h0;  // strobe/request
-  wbd_ext_adr_i ='h0;  // address
-  wbd_ext_we_i  ='h0;  // write
-  wbd_ext_dat_i ='h0;  // data output
-  wbd_ext_sel_i ='h0;  // byte enable
-  if(data !== cmp_data) begin
-     $display("ERROR : WB USER ACCESS READ  Address : 0x%x, Exd: 0x%x Rxd: 0x%x ",address,cmp_data,data);
-     test_fail = 1;
-  end else begin
-     $display("STATUS: WB USER ACCESS READ  Address : 0x%x, Data : 0x%x",address,data);
-  end
-  repeat (2) @(posedge clock);
-end
-endtask
-
-`ifdef GL
-
-wire        wbd_spi_stb_i   = u_top.u_spi_master.wbd_stb_i;
-wire        wbd_spi_ack_o   = u_top.u_spi_master.wbd_ack_o;
-wire        wbd_spi_we_i    = u_top.u_spi_master.wbd_we_i;
-wire [31:0] wbd_spi_adr_i   = u_top.u_spi_master.wbd_adr_i;
-wire [31:0] wbd_spi_dat_i   = u_top.u_spi_master.wbd_dat_i;
-wire [31:0] wbd_spi_dat_o   = u_top.u_spi_master.wbd_dat_o;
-wire [3:0]  wbd_spi_sel_i   = u_top.u_spi_master.wbd_sel_i;
-
-wire        wbd_sdram_stb_i = u_top.u_sdram_ctrl.wb_stb_i;
-wire        wbd_sdram_ack_o = u_top.u_sdram_ctrl.wb_ack_o;
-wire        wbd_sdram_we_i  = u_top.u_sdram_ctrl.wb_we_i;
-wire [31:0] wbd_sdram_adr_i = u_top.u_sdram_ctrl.wb_addr_i;
-wire [31:0] wbd_sdram_dat_i = u_top.u_sdram_ctrl.wb_dat_i;
-wire [31:0] wbd_sdram_dat_o = u_top.u_sdram_ctrl.wb_dat_o;
-wire [3:0]  wbd_sdram_sel_i = u_top.u_sdram_ctrl.wb_sel_i;
-
-wire        wbd_uart_stb_i  = u_top.u_uart_i2c_usb.reg_cs;
-wire        wbd_uart_ack_o  = u_top.u_uart_i2c_usb.reg_ack;
-wire        wbd_uart_we_i   = u_top.u_uart_i2c_usb.reg_wr;
-wire [7:0]  wbd_uart_adr_i  = u_top.u_uart_i2c_usb.reg_addr;
-wire [7:0]  wbd_uart_dat_i  = u_top.u_uart_i2c_usb.reg_wdata;
-wire [7:0]  wbd_uart_dat_o  = u_top.u_uart_i2c_usb.reg_rdata;
-wire        wbd_uart_sel_i  = u_top.u_uart_i2c_usb.reg_be;
-
-`endif
-
-/**
-`ifdef GL
-//-----------------------------------------------------------------------------
-// RISC IMEM amd DMEM Monitoring TASK
-//-----------------------------------------------------------------------------
-
-`define RISC_CORE  user_uart_tb.u_top.u_core.u_riscv_top
-
-always@(posedge `RISC_CORE.wb_clk) begin
-    if(`RISC_CORE.wbd_imem_ack_i)
-          $display("RISCV-DEBUG => IMEM ADDRESS: %x Read Data : %x", `RISC_CORE.wbd_imem_adr_o,`RISC_CORE.wbd_imem_dat_i);
-    if(`RISC_CORE.wbd_dmem_ack_i && `RISC_CORE.wbd_dmem_we_o)
-          $display("RISCV-DEBUG => DMEM ADDRESS: %x Write Data: %x Resonse: %x", `RISC_CORE.wbd_dmem_adr_o,`RISC_CORE.wbd_dmem_dat_o);
-    if(`RISC_CORE.wbd_dmem_ack_i && !`RISC_CORE.wbd_dmem_we_o)
-          $display("RISCV-DEBUG => DMEM ADDRESS: %x READ Data : %x Resonse: %x", `RISC_CORE.wbd_dmem_adr_o,`RISC_CORE.wbd_dmem_dat_i);
-end
-
-`endif
-**/
-endmodule
-`default_nettype wire
diff --git a/verilog/dv/user_spi/user_spi_tb.v b/verilog/dv/user_spi/user_spi_tb.v
index d16bfa8..cb37454 100644
--- a/verilog/dv/user_spi/user_spi_tb.v
+++ b/verilog/dv/user_spi/user_spi_tb.v
@@ -82,7 +82,7 @@
 `include "s25fl256s.sv"
 `include "uprj_netlists.v"
 `include "mt48lc8m8a2.v"
-`include "spiram.v"
+`include "is62wvs1288.v"
 
  // REGISTER MAP
  `define QSPIM_GLBL_CTRL           32'h10000000
@@ -1263,7 +1263,7 @@
 
    wire spiram_csb = io_out[26];
 
-   spiram #(.mem_file_name("flash1.hex"))
+   is62wvs1288 #(.mem_file_name("flash1.hex"))
 	u_sfram (
          // Data Inputs/Outputs
            .io0     (flash_io0),
diff --git a/verilog/rtl/DFFRAM/DFFRAM.v b/verilog/rtl/DFFRAM/DFFRAM.v
new file mode 100644
index 0000000..939fe2c
--- /dev/null
+++ b/verilog/rtl/DFFRAM/DFFRAM.v
@@ -0,0 +1,45 @@
+// SPDX-FileCopyrightText: 2020 Efabless Corporation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
+
+`default_nettype none
+
+
+module DFFRAM (
+`ifdef USE_POWER_PINS
+    input VPWR,
+    input VGND,
+`endif
+    input CLK,
+    input [3:0] WE,
+    input EN,
+    input [31:0] Di,
+    output reg [31:0] Do,
+    input [7:0] A
+);
+  
+
+reg [31:0] mem [0:`MEM_WORDS-1];
+
+always @(posedge CLK) begin
+    if (EN == 1'b1) begin
+        Do <= mem[A];
+        if (WE[0]) mem[A][ 7: 0] <= Di[ 7: 0];
+        if (WE[1]) mem[A][15: 8] <= Di[15: 8];
+        if (WE[2]) mem[A][23:16] <= Di[23:16];
+        if (WE[3]) mem[A][31:24] <= Di[31:24];
+    end
+end
+endmodule
+
diff --git a/verilog/rtl/DFFRAM/DFFRAMBB.v b/verilog/rtl/DFFRAM/DFFRAMBB.v
new file mode 100644
index 0000000..15fa627
--- /dev/null
+++ b/verilog/rtl/DFFRAM/DFFRAMBB.v
@@ -0,0 +1,772 @@
+/*
+    Copyright ©2020-2021 The American University in Cairo and the Cloud V Project.
+
+    This file is part of the DFFRAM Memory Compiler.
+    See https://github.com/Cloud-V/DFFRAM for further info.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+*/
+
+// Add 1x2 binary decoder
+`default_nettype none
+
+module DEC1x2 (
+`ifdef USE_POWER_PINS
+    input wire VPWR,
+    input wire VGND,
+`endif
+    input wire   EN,
+    input  wire   A,
+    output wire [1:0]   SEL
+);
+
+    sky130_fd_sc_hd__and2b_2 AND0 (
+    `ifdef USE_POWER_PINS
+            .VPWR(VPWR),
+            .VGND(VGND),
+            .VPB(VPWR),
+            .VNB(VGND),
+    `endif
+
+        .X(SEL[0]),
+        .A_N(A),
+        .B(EN)
+    );
+
+    sky130_fd_sc_hd__and2_2 AND1 (
+    `ifdef USE_POWER_PINS
+            .VPWR(VPWR),
+            .VGND(VGND),
+            .VPB(VPWR),
+            .VNB(VGND),
+    `endif
+
+        .X(SEL[1]),
+        .A(A) ,
+        .B(EN)
+    );
+
+endmodule
+
+module DEC2x4 (
+`ifdef USE_POWER_PINS
+    input wire VPWR,
+    input wire VGND,
+`endif
+    input           EN,
+    input   [1:0]   A,
+    output  [3:0]   SEL
+);
+    sky130_fd_sc_hd__nor3b_4    AND0 ( 
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .Y(SEL[0]), .A(A[0]),   .B(A[1]), .C_N(EN) );
+    sky130_fd_sc_hd__and3b_4    AND1 ( 
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .X(SEL[1]), .A_N(A[1]), .B(A[0]), .C(EN) );
+    sky130_fd_sc_hd__and3b_4    AND2 ( 
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .X(SEL[2]), .A_N(A[0]), .B(A[1]), .C(EN) );
+    sky130_fd_sc_hd__and3_4     AND3 ( 
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .X(SEL[3]), .A(A[1]),   .B(A[0]), .C(EN) );
+    
+endmodule
+
+module DEC3x8 (
+`ifdef USE_POWER_PINS
+    input wire VPWR,
+    input wire VGND,
+`endif
+    input           EN,
+    input [2:0]     A,
+    output [7:0]    SEL
+);
+
+    wire [2:0]  A_buf;
+    wire        EN_buf;
+
+    sky130_fd_sc_hd__clkbuf_2 ABUF[2:0] (
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .X(A_buf), .A(A));
+    sky130_fd_sc_hd__clkbuf_2 ENBUF (
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .X(EN_buf), .A(EN));
+    
+    sky130_fd_sc_hd__nor4b_2   AND0 ( 
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .Y(SEL[0])  , .A(A_buf[0]), .B(A_buf[1])  , .C(A_buf[2]), .D_N(EN_buf) ); // 000
+    sky130_fd_sc_hd__and4bb_2   AND1 ( 
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .X(SEL[1])  , .A_N(A_buf[2]), .B_N(A_buf[1]), .C(A_buf[0])  , .D(EN_buf) ); // 001
+    sky130_fd_sc_hd__and4bb_2   AND2 ( 
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .X(SEL[2])  , .A_N(A_buf[2]), .B_N(A_buf[0]), .C(A_buf[1])  , .D(EN_buf) ); // 010
+    sky130_fd_sc_hd__and4b_2    AND3 ( 
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .X(SEL[3])  , .A_N(A_buf[2]), .B(A_buf[1]), .C(A_buf[0])  , .D(EN_buf) );   // 011
+    sky130_fd_sc_hd__and4bb_2   AND4 ( 
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .X(SEL[4])  , .A_N(A_buf[0]), .B_N(A_buf[1]), .C(A_buf[2])  , .D(EN_buf) ); // 100
+    sky130_fd_sc_hd__and4b_2    AND5 ( 
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .X(SEL[5])  , .A_N(A_buf[1]), .B(A_buf[0]), .C(A_buf[2])  , .D(EN_buf) );   // 101
+    sky130_fd_sc_hd__and4b_2    AND6 ( 
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .X(SEL[6])  , .A_N(A_buf[0]), .B(A_buf[1]), .C(A_buf[2])  , .D(EN_buf) );   // 110
+    sky130_fd_sc_hd__and4_2     AND7 ( 
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .X(SEL[7])  , .A(A_buf[0]), .B(A_buf[1]), .C(A_buf[2])  , .D(EN_buf) ); // 111
+endmodule
+
+module MUX4x1 #(parameter   WIDTH=32)
+(
+`ifdef USE_POWER_PINS
+    input wire VPWR,
+    input wire VGND,
+`endif
+    input   wire [WIDTH-1:0]     A0, A1, A2, A3,
+    input   wire [1:0]          S,
+    output  wire [WIDTH-1:0]     X
+);
+    localparam SIZE = WIDTH/8;
+    wire [SIZE-1:0] SEL0, SEL1;
+    sky130_fd_sc_hd__clkbuf_2 SEL0BUF[SIZE-1:0] (
+     `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .X(SEL0), .A(S[0]));
+    
+    sky130_fd_sc_hd__clkbuf_2 SEL1BUF[SIZE-1:0] (
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .X(SEL1), .A(S[1]));
+    
+    generate
+        genvar i;
+        for(i=0; i<SIZE; i=i+1) begin : M
+            sky130_fd_sc_hd__mux4_1 MUX[7:0] (
+            `ifdef USE_POWER_PINS
+                .VPWR(VPWR),
+                .VGND(VGND),
+                .VPB(VPWR),
+                .VNB(VGND),
+            `endif
+                    .A0(A0[(i+1)*8-1:i*8]), 
+                    .A1(A1[(i+1)*8-1:i*8]), 
+                    .A2(A2[(i+1)*8-1:i*8]), 
+                    .A3(A3[(i+1)*8-1:i*8]), 
+                    .S0(SEL0[i]), 
+                    .S1(SEL1[i]), 
+                    .X(X[(i+1)*8-1:i*8]) );        
+        end
+    endgenerate
+endmodule
+
+module MUX2x1 #(parameter   WIDTH=32)
+(
+`ifdef USE_POWER_PINS
+    input wire VPWR,
+    input wire VGND,
+`endif
+    input   wire [WIDTH-1:0]     A0, A1, A2, A3,
+    input   wire           S,
+    output  wire [WIDTH-1:0]     X
+);
+    localparam SIZE = WIDTH/8;
+    wire [SIZE-1:0] SEL;
+    sky130_fd_sc_hd__clkbuf_2 SELBUF[SIZE-1:0] (
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .X(SEL), .A(S));
+    generate
+        genvar i;
+        for(i=0; i<SIZE; i=i+1) begin : M
+            sky130_fd_sc_hd__mux2_1 MUX[7:0] (
+            `ifdef USE_POWER_PINS
+                .VPWR(VPWR),
+                .VGND(VGND),
+                .VPB(VPWR),
+                .VNB(VGND),
+            `endif
+                .A0(A0[(i+1)*8-1:i*8]), .A1(A1[(i+1)*8-1:i*8]), .S(SEL[i]), .X(X[(i+1)*8-1:i*8]) );
+        end
+    endgenerate
+endmodule
+
+module BYTE #(  parameter   USE_LATCH=`DFFRAM_USE_LATCH)( 
+`ifdef USE_POWER_PINS
+    input wire VPWR,
+    input wire VGND,
+`endif
+    input   wire        CLK,    // FO: 1
+    input   wire        WE,     // FO: 1
+    input   wire        SEL,    // FO: 2
+    input   wire [7:0]  Di,     // FO: 1
+    output  wire [7:0]  Do
+);
+
+    wire [7:0]  q_wire;
+    wire        we_wire;
+    wire        SEL_B;
+    wire        GCLK;
+    wire        CLK_B;
+
+    generate 
+        genvar i;
+
+        if(USE_LATCH == 1) begin
+            sky130_fd_sc_hd__inv_1 CLKINV(
+            `ifdef USE_POWER_PINS
+                .VPWR(VPWR),
+                .VGND(VGND),
+                .VPB(VPWR),
+                .VNB(VGND),
+            `endif
+                .Y(CLK_B), .A(CLK));
+            sky130_fd_sc_hd__dlclkp_1 CG( 
+            `ifdef USE_POWER_PINS
+                .VPWR(VPWR),
+                .VGND(VGND),
+                .VPB(VPWR),
+                .VNB(VGND),
+            `endif
+                .CLK(CLK_B), .GCLK(GCLK), .GATE(we_wire) );
+        end else
+            sky130_fd_sc_hd__dlclkp_1 CG( 
+            `ifdef USE_POWER_PINS
+                .VPWR(VPWR),
+                .VGND(VGND),
+                .VPB(VPWR),
+                .VNB(VGND),
+            `endif
+                .CLK(CLK), .GCLK(GCLK), .GATE(we_wire) );
+    
+        sky130_fd_sc_hd__inv_1 SELINV(
+        `ifdef USE_POWER_PINS
+            .VPWR(VPWR),
+            .VGND(VGND),
+            .VPB(VPWR),
+            .VNB(VGND),
+        `endif
+            .Y(SEL_B), .A(SEL));
+        sky130_fd_sc_hd__and2_1 CGAND( 
+        `ifdef USE_POWER_PINS
+            .VPWR(VPWR),
+            .VGND(VGND),
+            .VPB(VPWR),
+            .VNB(VGND),
+        `endif
+            .A(SEL), .B(WE), .X(we_wire) );
+    
+        for(i=0; i<8; i=i+1) begin : BIT
+            if(USE_LATCH == 0)
+                sky130_fd_sc_hd__dfxtp_1 FF ( 
+                `ifdef USE_POWER_PINS
+                    .VPWR(VPWR),
+                    .VGND(VGND),
+                    .VPB(VPWR),
+                    .VNB(VGND),
+                `endif
+                    .D(Di[i]), .Q(q_wire[i]), .CLK(GCLK) );
+            else 
+                sky130_fd_sc_hd__dlxtp_1 LATCH (
+                `ifdef USE_POWER_PINS
+                    .VPWR(VPWR),
+                    .VGND(VGND),
+                    .VPB(VPWR),
+                    .VNB(VGND),
+                `endif
+                    .Q(q_wire[i]), .D(Di[i]), .GATE(GCLK) );
+            sky130_fd_sc_hd__ebufn_2 OBUF ( 
+            `ifdef USE_POWER_PINS
+                .VPWR(VPWR),
+                .VGND(VGND),
+                .VPB(VPWR),
+                .VNB(VGND),
+            `endif
+                .A(q_wire[i]), .Z(Do[i]), .TE_B(SEL_B) );
+        end
+    endgenerate 
+  
+endmodule
+
+
+module WORD #( parameter    USE_LATCH=`DFFRAM_USE_LATCH,
+                            WSIZE=`DFFRAM_WSIZE ) (
+`ifdef USE_POWER_PINS
+    input wire VPWR,
+    input wire VGND,
+`endif
+    input   wire                CLK,    // FO: 1
+    input   wire [WSIZE-1:0]     WE,     // FO: 1
+    input   wire                SEL,    // FO: 1
+    input   wire [(WSIZE*8-1):0] Di,     // FO: 1
+    output  wire [(WSIZE*8-1):0] Do
+);
+
+    wire SEL_buf;
+    wire CLK_buf;
+    sky130_fd_sc_hd__clkbuf_2 SELBUF (
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .X(SEL_buf), .A(SEL));
+    sky130_fd_sc_hd__clkbuf_1 CLKBUF (
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .X(CLK_buf), .A(CLK));
+    generate
+        genvar i;
+            for(i=0; i<WSIZE; i=i+1) begin : BYTE
+                BYTE #(.USE_LATCH(USE_LATCH)) B ( 
+                `ifdef USE_POWER_PINS
+                    .VPWR(VPWR),
+                    .VGND(VGND),
+                `endif
+                    .CLK(CLK_buf), .WE(WE[i]), .SEL(SEL_buf), .Di(Di[(i+1)*8-1:i*8]), .Do(Do[(i+1)*8-1:i*8]) );
+            end
+    endgenerate
+    
+endmodule 
+
+
+module RAM8 #( parameter    USE_LATCH=`DFFRAM_USE_LATCH,
+                            WSIZE=`DFFRAM_WSIZE ) (
+`ifdef USE_POWER_PINS
+    input wire VPWR,
+    input wire VGND,
+`endif
+    input   wire                CLK,    // FO: 1
+    input   wire [WSIZE-1:0]     WE,     // FO: 1
+    input                       EN,     // EN: 1
+    input   wire [2:0]          A,      // A: 1
+    input   wire [(WSIZE*8-1):0] Di,     // FO: 1
+    output  wire [(WSIZE*8-1):0] Do
+);
+
+    wire    [7:0]        SEL;
+    wire    [WSIZE-1:0]   WE_buf; 
+    wire                 CLK_buf;
+
+    DEC3x8 DEC (
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+    `endif
+        .EN(EN), .A(A), .SEL(SEL));
+    sky130_fd_sc_hd__clkbuf_2 WEBUF[WSIZE-1:0] (
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .X(WE_buf), .A(WE));
+    sky130_fd_sc_hd__clkbuf_2 CLKBUF (
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .X(CLK_buf), .A(CLK));
+
+    generate
+        genvar i;
+        for (i=0; i< 8; i=i+1) begin : WORD
+            WORD #(.USE_LATCH(USE_LATCH), .WSIZE(WSIZE)) W ( 
+            `ifdef USE_POWER_PINS
+                .VPWR(VPWR),
+                .VGND(VGND),
+            `endif
+                .CLK(CLK_buf), .WE(WE_buf), .SEL(SEL[i]), .Di(Di), .Do(Do) );
+        end
+    endgenerate
+
+endmodule
+
+
+// 4 x RAM8 slices (128 bytes) with registered outout 
+module RAM32 #( parameter   USE_LATCH=`DFFRAM_USE_LATCH,
+                            WSIZE=`DFFRAM_WSIZE ) 
+(
+`ifdef USE_POWER_PINS
+    input wire VPWR,
+    input wire VGND,
+`endif
+    input   wire                CLK,    // FO: 1
+    input   wire [WSIZE-1:0]     WE,     // FO: 1
+    input                       EN,     // FO: 1
+    input   wire [4:0]          A,      // FO: 1
+    input   wire [(WSIZE*8-1):0] Di,     // FO: 1
+    output  wire [(WSIZE*8-1):0] Do
+    
+);
+    wire [3:0]          SEL;
+    wire [4:0]          A_buf;
+    wire                CLK_buf;
+    wire [WSIZE-1:0]     WE_buf;
+    wire                EN_buf;
+
+    wire [(WSIZE*8-1):0] Do_pre;
+    wire [(WSIZE*8-1):0] Di_buf;
+
+    // Buffers
+    // Di Buffers
+    sky130_fd_sc_hd__clkbuf_16  DIBUF[(WSIZE*8-1):0] (
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .X(Di_buf), .A(Di));
+    // Control signals buffers
+    sky130_fd_sc_hd__clkbuf_2   CLKBUF              (
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .X(CLK_buf), .A(CLK));
+    sky130_fd_sc_hd__clkbuf_2   WEBUF[(WSIZE-1):0]   (
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .X(WE_buf), .A(WE));
+    sky130_fd_sc_hd__clkbuf_2   ABUF[4:0]           (
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .X(A_buf), .A(A[4:0]));
+    sky130_fd_sc_hd__clkbuf_2   ENBUF               (
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .X(EN_buf), .A(EN));
+
+    DEC2x4 DEC (
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+    `endif
+        .EN(EN_buf), .A(A_buf[4:3]), .SEL(SEL));
+
+    generate
+        genvar i;
+        for (i=0; i< 4; i=i+1) begin : SLICE
+            RAM8 #(.USE_LATCH(USE_LATCH), .WSIZE(WSIZE)) RAM8 (
+            `ifdef USE_POWER_PINS
+                .VPWR(VPWR),
+                .VGND(VGND),
+            `endif
+                .CLK(CLK_buf), .WE(WE_buf),.EN(SEL[i]), .Di(Di_buf), .Do(Do_pre), .A(A_buf[2:0]) ); 
+        end
+    endgenerate
+
+    // Ensure that the Do_pre lines are not floating when EN = 0
+    wire [WSIZE-1:0] lo;
+    wire [WSIZE-1:0] float_buf_en;
+    sky130_fd_sc_hd__clkbuf_2   FBUFENBUF[WSIZE-1:0] ( 
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .X(float_buf_en), .A(EN) );
+    sky130_fd_sc_hd__conb_1     TIE[WSIZE-1:0] (
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .LO(lo), .HI());
+
+    // Following split by group because each is done by one TIE CELL and ONE CLKINV_4
+    // Provides default values for floating lines (lo)
+    generate
+        for (i=0; i< WSIZE; i=i+1) begin : BYTE
+            sky130_fd_sc_hd__ebufn_2 FLOATBUF[(8*(i+1))-1:8*i] (
+            `ifdef USE_POWER_PINS
+                .VPWR(VPWR),
+                .VGND(VGND),
+                .VPB(VPWR),
+                .VNB(VGND),
+            `endif
+                 .A( lo[i] ), .Z(Do_pre[(8*(i+1))-1:8*i]), .TE_B(float_buf_en[i]) );        
+        end
+    endgenerate
+    
+    sky130_fd_sc_hd__dfxtp_1 Do_FF[WSIZE*8-1:0] ( 
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .D(Do_pre), .Q(Do), .CLK(CLK) );
+
+endmodule
+
+
+/*
+    4 x RAM32 Blocks
+*/
+
+module RAM128 #(parameter   USE_LATCH=`DFFRAM_USE_LATCH,
+                            WSIZE=`DFFRAM_WSIZE ) 
+(
+`ifdef USE_POWER_PINS
+    input wire VPWR,
+    input wire VGND,
+`endif
+    input   wire                CLK,    // FO: 1
+    input   wire [WSIZE-1:0]     WE,     // FO: 1
+    input                       EN,     // FO: 1
+    input   wire [6:0]          A,      // FO: 1
+    input   wire [(WSIZE*8-1):0] Di,     // FO: 1
+    output  wire [(WSIZE*8-1):0] Do
+    
+);
+
+    wire                    CLK_buf;
+    wire [WSIZE-1:0]         WE_buf;
+    wire                    EN_buf;
+    wire [6:0]              A_buf;
+    wire [(WSIZE*8-1):0]     Di_buf;
+    wire [3:0]              SEL;
+
+    wire [(WSIZE*8-1):0]    Do_pre[3:0]; 
+                            
+    // Buffers
+    sky130_fd_sc_hd__clkbuf_16  DIBUF[(WSIZE*8-1):0] (
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .X(Di_buf),  .A(Di));
+    sky130_fd_sc_hd__clkbuf_4   CLKBUF              (
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .X(CLK_buf), .A(CLK));
+    sky130_fd_sc_hd__clkbuf_2   WEBUF[WSIZE-1:0]     (
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .X(WE_buf),  .A(WE));
+    sky130_fd_sc_hd__clkbuf_2   ENBUF               (
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .X(EN_buf),  .A(EN));
+    sky130_fd_sc_hd__clkbuf_2   ABUF[6:0]           (
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .X(A_buf),   .A(A));
+
+    DEC2x4 DEC (
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+    `endif
+        .EN(EN_buf), .A(A_buf[6:5]), .SEL(SEL));
+
+     generate
+        genvar i;
+        for (i=0; i< 4; i=i+1) begin : BLOCK
+            RAM32 #(.USE_LATCH(USE_LATCH), .WSIZE(WSIZE)) RAM32 (
+            `ifdef USE_POWER_PINS
+                .VPWR(VPWR),
+                .VGND(VGND),
+            `endif
+                .CLK(CLK_buf), .EN(SEL[i]), .WE(WE_buf), .Di(Di_buf), .Do(Do_pre[i]), .A(A_buf[4:0]) );        
+        end
+     endgenerate
+
+    // Output MUX    
+    MUX4x1 #(.WIDTH(WSIZE*8)) DoMUX ( 
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+    `endif
+        .A0(Do_pre[0]), .A1(Do_pre[1]), .A2(Do_pre[2]), .A3(Do_pre[3]), .S(A_buf[6:5]), .X(Do) );
+
+endmodule
+
+module RAM256 #(parameter   USE_LATCH=`DFFRAM_USE_LATCH,
+                            WSIZE=`DFFRAM_WSIZE ) 
+(
+`ifdef USE_POWER_PINS
+    input wire VPWR,
+    input wire VGND,
+`endif
+    input   wire                CLK,    // FO: 2
+    input   wire [WSIZE-1:0]     WE,     // FO: 2
+    input                       EN,     // FO: 2
+    input   wire [7:0]          A,      // FO: 5
+    input   wire [(WSIZE*8-1):0] Di,     // FO: 2
+    output  wire [(WSIZE*8-1):0] Do
+
+);
+
+    wire [1:0]             SEL;
+    wire [(WSIZE*8-1):0]    Do_pre[1:0]; 
+
+    // 1x2 DEC
+    sky130_fd_sc_hd__inv_2 DEC (
+     `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+        .VPB(VPWR),
+        .VNB(VGND),
+    `endif
+        .Y(SEL[0]), .A(A[7]));
+    assign SEL[1] = A[7];
+
+    generate
+        genvar i;
+        for (i=0; i< 2; i=i+1) begin : BLOCK
+            RAM128 #(.USE_LATCH(USE_LATCH), .WSIZE(WSIZE)) RAM128 (
+            `ifdef USE_POWER_PINS
+                .VPWR(VPWR),
+                .VGND(VGND),
+            `endif
+                .CLK(CLK), .EN(SEL[i]), .WE(WE), .Di(Di), .Do(Do_pre[i]), .A(A[6:0]) );        
+        end
+     endgenerate
+
+    // Output MUX    
+    MUX2x1 #(.WIDTH(WSIZE*8)) DoMUX ( 
+    `ifdef USE_POWER_PINS
+        .VPWR(VPWR),
+        .VGND(VGND),
+    `endif
+        .A0(Do_pre[0]), .A1(Do_pre[1]), .S(A[7]), .X(Do) );
+
+endmodule
diff --git a/verilog/rtl/pinmux/src/pinmux.sv b/verilog/rtl/pinmux/src/pinmux.sv
index 46a69a4..5015bb6 100755
--- a/verilog/rtl/pinmux/src/pinmux.sv
+++ b/verilog/rtl/pinmux/src/pinmux.sv
@@ -118,24 +118,8 @@
                        input logic              uartm_txd  ,       
 
 		       output  logic           pulse1m_mclk,
-	               output  logic [31:0]    pinmux_debug,	       
+	               output  logic [31:0]    pinmux_debug
 
-		// BIST I/F
-	               output logic            bist_en,
-	               output logic            bist_run,
-	               output logic            bist_load,
-
-	               output logic            bist_sdi,
-	               output logic            bist_shift,
-	               input  logic            bist_sdo,
-
-	               input logic             bist_done,
-	               input logic [3:0]       bist_error,
-	               input logic [3:0]       bist_correct,
-	               input logic [3:0]       bist_error_cnt0,
-	               input logic [3:0]       bist_error_cnt1,
-	               input logic [3:0]       bist_error_cnt2,
-	               input logic [3:0]       bist_error_cnt3
    ); 
 
 
@@ -334,21 +318,21 @@
           .gpio_prev_indata             (gpio_prev_indata        ) ,
 
        // BIST I/F
-          .bist_en                      (bist_en                 ),
-          .bist_run                     (bist_run                ),
-          .bist_load                    (bist_load               ),
+          .bist_en                      (                        ),
+          .bist_run                     (                        ),
+          .bist_load                    (                        ),
           
-          .bist_sdi                     (bist_sdi                ),
-          .bist_shift                   (bist_shift              ),
-          .bist_sdo                     (bist_sdo                ),
+          .bist_sdi                     (                        ),
+          .bist_shift                   (                        ),
+          .bist_sdo                     ('b0                     ),
           
-          .bist_done                    (bist_done               ),
-          .bist_error                   (bist_error              ),
-          .bist_correct                 (bist_correct            ),
-          .bist_error_cnt0              (bist_error_cnt0         ),
-          .bist_error_cnt1              (bist_error_cnt1         ),
-          .bist_error_cnt2              (bist_error_cnt2         ),
-          .bist_error_cnt3              (bist_error_cnt3         )
+          .bist_done                    ('b0                     ),
+          .bist_error                   ('h0                     ),
+          .bist_correct                 ('h0                     ),
+          .bist_error_cnt0              ('h0                     ),
+          .bist_error_cnt1              ('h0                     ),
+          .bist_error_cnt2              ('h0                     ),
+          .bist_error_cnt3              ('h0                     )
 
    ); 
 
diff --git a/verilog/rtl/pinmux/src/pinmux_reg.sv b/verilog/rtl/pinmux/src/pinmux_reg.sv
index 211bd40..b09e18c 100644
--- a/verilog/rtl/pinmux/src/pinmux_reg.sv
+++ b/verilog/rtl/pinmux/src/pinmux_reg.sv
@@ -721,7 +721,7 @@
 //-----------------------------------------
 // Software Reg-2, Release date: <DAY><MONTH><YEAR>
 // ----------------------------------------
-gen_32b_reg  #(32'h1402_2022) u_reg_23	(
+gen_32b_reg  #(32'h1602_2022) u_reg_23	(
 	      //List of Inputs
 	      .reset_n    (h_reset_n     ),
 	      .clk        (mclk          ),
@@ -734,9 +734,9 @@
 	      );
 
 //-----------------------------------------
-// Software Reg-3: Poject Revison 3.3 = 0003400
+// Software Reg-3: Poject Revison 3.3 = 0003500
 // ----------------------------------------
-gen_32b_reg  #(32'h0003_4000) u_reg_24	(
+gen_32b_reg  #(32'h0003_5000) u_reg_24	(
 	      //List of Inputs
 	      .reset_n    (h_reset_n     ),
 	      .clk        (mclk          ),
diff --git a/verilog/rtl/uprj_netlists.v b/verilog/rtl/uprj_netlists.v
index b81ad7e..0652188 100644
--- a/verilog/rtl/uprj_netlists.v
+++ b/verilog/rtl/uprj_netlists.v
@@ -41,14 +41,7 @@
      `include "libs.ref/sky130_fd_sc_hvl/verilog/primitives.v"
      `include "libs.ref/sky130_fd_sc_hvl/verilog/sky130_fd_sc_hvl.v"
 
-     `include"sar_adc/SAR.sv"
-     `include"sar_adc/ACMP.sv"
-     `include"sar_adc/sar_adc.sv"
-     `include"sar_adc/adc_reg.sv"
-     `include"sar_adc/DAC_8BIT.v"
 
-
-     `include "sram_macros/sky130_sram_2kbyte_1rw1r_32x512_8.v"
      `include "pinmux/src/pinmux.sv"
      `include "pinmux/src/pinmux_reg.sv"
      `include "pinmux/src/gpio_intr.sv"
@@ -137,7 +130,7 @@
      `include "yifive/ycr1c/src/top/ycr1_imem_router.sv"
      `include "yifive/ycr1c/src/top/ycr1_dmem_router.sv"
      `include "yifive/ycr1c/src/top/ycr1_dp_memory.sv"
-     `include "yifive/ycr1c/src/top/ycr1_tcm.sv"
+     `include "yifive/ycr1c/src/top/ycr1_tcm_router.sv"
      `include "yifive/ycr1c/src/top/ycr1_timer.sv"
      `include "yifive/ycr1c/src/top/ycr1_dmem_wb.sv"
      `include "yifive/ycr1c/src/top/ycr1_imem_wb.sv"
@@ -155,20 +148,7 @@
 
      `include "lib/sync_fifo.sv"
 
-     `include "mbist/src/core/mbist_addr_gen.sv"
-     `include "mbist/src/core/mbist_fsm.sv" 
-     `include "mbist/src/core/mbist_op_sel.sv" 
-     `include "mbist/src/core/mbist_repair_addr.sv" 
-     `include "mbist/src/core/mbist_sti_sel.sv" 
-     `include "mbist/src/core/mbist_pat_sel.sv"
-     `include "mbist/src/core/mbist_mux.sv"
-     `include "mbist/src/core/mbist_data_cmp.sv"
-     `include "mbist/src/core/mbist_mem_wrapper.sv"
-
-    `include "mbist/src/top/mbist_top.sv" 
-    `include "mbist_wrapper/src/mbist_wb.sv" 
-    `include "mbist_wrapper/src/mbist_wrapper.sv" 
-
+     `include "DFFRAM/DFFRAM.v"
 
     `include "uart2wb/src/uart2wb.sv" 
     `include "uart2wb/src/uart2_core.sv" 
@@ -178,6 +158,6 @@
      `include "user_project_wrapper.v"
      // we are using netlist file for clk_skew_adjust as it has 
      // standard cell + power pin
-     `include "clk_skew_adjust/src/clk_skew_adjust.v"
+     `include "lib/clk_skew_adjust.gv"
      `include "lib/ctech_cells.sv"
 `endif
diff --git a/verilog/rtl/user_project_wrapper.v b/verilog/rtl/user_project_wrapper.v
index c39bf3b..525d578 100644
--- a/verilog/rtl/user_project_wrapper.v
+++ b/verilog/rtl/user_project_wrapper.v
@@ -169,6 +169,14 @@
 ////      dineshannayya/riscduino_sram.git                        ////
 ////    This repo will remove mbist + SRAM and RISC SRAM will be  ////
 ////    replaced with DFRAM                                       ////
+////    3.5  Feb 16, Dinesh A                                     ////
+////       As SRAM from sky130A is not yet qualified,             ////
+////       Following changes are done                             ////
+////       A. riscv core cache and tcm interface changed to dffram////  
+////       B. removed the mbist controller + 4 SRAM               ////
+////       C. mbist controller slave port in wb_intern removed    ////
+////       D. Pinmux mbist port are removed                       ////
+////       E. mbist related buffering are removed at wb_inter     ////
 //////////////////////////////////////////////////////////////////////
 ////                                                              ////
 //// Copyright (C) 2000 Authors and OPENCORES.ORG                 ////
@@ -268,20 +276,22 @@
 wire                           wbd_riscv_dcache_lack_o                ; // last burst acknowlegement
 wire                           wbd_riscv_dcache_err_o                 ; // error
 
-// CACHE SRAM Memory I/F
-wire                           dcache_mem_clk0                        ; // CLK
-wire                           dcache_mem_csb0                        ; // CS#
-wire                           dcache_mem_web0                        ; // WE#
-wire   [8:0]                   dcache_mem_addr0                       ; // Address
-wire   [3:0]                   dcache_mem_wmask0                      ; // WMASK#
-wire   [31:0]                  dcache_mem_din0                        ; // Write Data
-wire   [31:0]                  dcache_mem_dout0                       ; // Read Data
-   
-// SRAM-0 PORT-1, IMEM I/F
-wire                           dcache_mem_clk1                        ; // CLK
-wire                           dcache_mem_csb1                        ; // CS#
-wire  [8:0]                    dcache_mem_addr1                       ; // Address
-wire  [31:0]                   dcache_mem_dout1                       ; // Read Data
+// DFFRAM I/F
+
+wire                           dcache_dffram_clk0                     ; // CLK
+wire                           dcache_dffram_cs0                      ; // Chip Select
+wire    [7:0]                  dcache_dffram_addr0                    ; // Address
+wire    [3:0]                  dcache_dffram_wmask0                   ; // Write Mask
+wire    [31:0]                 dcache_dffram_din0                     ; // Write Data
+wire    [31:0]                 dcache_dffram_dout0                    ; // Read Data
+
+wire                           dcache_dffram_clk1                     ; // CLK
+wire                           dcache_dffram_cs1                      ; // Chip Select
+wire    [7:0]                  dcache_dffram_addr1                    ; // Address
+wire    [3:0]                  dcache_dffram_wmask1                   ; // Write Mask
+wire    [31:0]                 dcache_dffram_din1                     ; // Write Data
+wire    [31:0]                 dcache_dffram_dout1                    ; // Read Data
+
 //---------------------------------------------------------------------
 // Wishbone Risc V Icache Memory Interface
 //---------------------------------------------------------------------
@@ -296,20 +306,21 @@
 wire                           wbd_riscv_icache_lack_o                ; // last burst acknowlegement
 wire                           wbd_riscv_icache_err_o                 ; // error
 
-// CACHE SRAM Memory I/F
-wire                           icache_mem_clk0                        ; // CLK
-wire                           icache_mem_csb0                        ; // CS#
-wire                           icache_mem_web0                        ; // WE#
-wire   [8:0]                   icache_mem_addr0                       ; // Address
-wire   [3:0]                   icache_mem_wmask0                      ; // WMASK#
-wire   [31:0]                  icache_mem_din0                        ; // Write Data
-// wire   [31:0]               icache_mem_dout0                       ; // Read Data
-   
-// SRAM-0 PORT-1, IMEM I/F
-wire                           icache_mem_clk1                        ; // CLK
-wire                           icache_mem_csb1                        ; // CS#
-wire  [8:0]                    icache_mem_addr1                       ; // Address
-wire  [31:0]                   icache_mem_dout1                       ; // Read Data
+// DFFRAM I/F
+
+wire                           icache_dffram_clk0                     ; // CLK
+wire                           icache_dffram_cs0                      ; // Chip Select
+wire    [7:0]                  icache_dffram_addr0                    ; // Address
+wire    [3:0]                  icache_dffram_wmask0                   ; // Write Mask
+wire    [31:0]                 icache_dffram_din0                     ; // Write Data
+wire    [31:0]                 icache_dffram_dout0                    ; // Read Data
+
+wire                           icache_dffram_clk1                     ; // CLK
+wire                           icache_dffram_cs1                      ; // Chip Select
+wire    [7:0]                  icache_dffram_addr1                    ; // Address
+wire    [3:0]                  icache_dffram_wmask1                   ; // Write Mask
+wire    [31:0]                 icache_dffram_din1                     ; // Write Data
+wire    [31:0]                 icache_dffram_dout1                    ; // Read Data
 
 //---------------------------------------------------------------------
 // RISC V Wishbone Data Memory Interface
@@ -390,21 +401,6 @@
 wire                           wbd_uart_ack_i                         ; // acknowlegement
 wire                           wbd_uart_err_i                         ;  // error
 
-//---------------------------------------------------------------------
-//  MBIST1  
-//---------------------------------------------------------------------
-wire                           wbd_mbist_stb_o                        ; // strobe/request
-wire   [12:0]                  wbd_mbist_adr_o                        ; // address
-wire                           wbd_mbist_we_o                         ; // write
-wire   [WB_WIDTH-1:0]          wbd_mbist_dat_o                        ; // data output
-wire   [3:0]                   wbd_mbist_sel_o                        ; // byte enable
-wire   [9:0]                   wbd_mbist_bl_o                         ; // byte enable
-wire                           wbd_mbist_bry_o                        ; // byte enable
-wire                           wbd_mbist_cyc_o                        ;
-wire   [WB_WIDTH-1:0]          wbd_mbist_dat_i                        ; // data input
-wire                           wbd_mbist_ack_i                        ; // acknowlegement
-wire                           wbd_mbist_lack_i                       ; // acknowlegement
-wire                           wbd_mbist_err_i                        ; // error
 
 //----------------------------------------------------
 //  CPU Configuration
@@ -415,19 +411,16 @@
 wire                           uart_rst_n                             ; // uart reset
 wire                           i2c_rst_n                              ; // i2c reset
 wire                           usb_rst_n                              ; // i2c reset
-wire   [3:0]                   boot_remap                             ; // Boot Remap
-wire   [3:0]                   dcache_remap                           ; // Remap the dcache address
+wire                           bist_rst_n                             ; // i2c reset
 wire                           cpu_clk                                ;
 wire                           rtc_clk                                ;
 wire                           usb_clk                                ;
 wire                           wbd_clk_int                            ;
+wire                           wbd_clk_wh                             ;
 
+wire                           wbd_clk_spi                            ;
 wire                           wbd_clk_pinmux                         ;
-//wire                           wbd_clk_int1                         ;
-//wire                           wbd_clk_int2                         ;
 wire                           wbd_int_rst_n                          ;
-//wire                           wbd_int1_rst_n                       ;
-//wire                           wbd_int2_rst_n                       ;
 
 wire [31:0]                    fuse_mhartid                           ;
 wire [15:0]                    irq_lines                              ;
@@ -445,10 +438,6 @@
 wire [3:0]                     cfg_cska_qspi                          ; // clock skew adjust for spi
 wire [3:0]                     cfg_cska_pinmux                        ; // clock skew adjust for pinmux
 wire [3:0]                     cfg_cska_qspi_co                       ; // clock skew adjust for global reg
-wire [3:0]                     cfg_cska_mbist1                        ;
-wire [3:0]                     cfg_cska_mbist2                        ;
-wire [3:0]                     cfg_cska_mbist3                        ;
-wire [3:0]                     cfg_cska_mbist4                        ;
 
 // Bus Repeater Signals  output from Wishbone Interface
 wire [3:0]                     cfg_cska_riscv_rp                      ; // clock skew adjust for riscv
@@ -456,10 +445,6 @@
 wire [3:0]                     cfg_cska_qspi_rp                       ; // clock skew adjust for spi
 wire [3:0]                     cfg_cska_pinmux_rp                     ; // clock skew adjust for pinmux
 wire [3:0]                     cfg_cska_qspi_co_rp                    ; // clock skew adjust for global reg
-wire [3:0]                     cfg_cska_mbist1_rp                     ;
-wire [3:0]                     cfg_cska_mbist2_rp                     ;
-wire [3:0]                     cfg_cska_mbist3_rp                     ;
-wire [3:0]                     cfg_cska_mbist4_rp                     ;
 
 wire [31:0]                    fuse_mhartid_rp                        ; // Repeater
 wire [15:0]                    irq_lines_rp                           ; // Repeater
@@ -469,10 +454,7 @@
 wire                           wbd_clk_qspi_rp                        ;
 wire                           wbd_clk_uart_rp                        ;
 wire                           wbd_clk_pinmux_rp                      ;
-wire                           wbd_clk_mbist1_rp                      ;
-wire                           wbd_clk_mbist2_rp                      ;
-wire                           wbd_clk_mbist3_rp                      ;
-wire                           wbd_clk_mbist4_rp                      ;
+wire                           wbd_clk_pinmux_skew                    ;
 
 // Progammable Clock Skew inserted signals
 wire                           wbd_clk_wi_skew                        ; // clock for wishbone interconnect with clock skew
@@ -481,10 +463,6 @@
 wire                           wbd_clk_spi_skew                       ; // clock for spi with clock skew
 wire                           wbd_clk_glbl_skew                      ; // clock for global reg with clock skew
 wire                           wbd_clk_wh_skew                        ; // clock for global reg
-wire                           wbd_clk_mbist_skew                     ; // clock for global reg
-wire                           wbd_clk_mbist2_skew                    ; // clock for global reg
-wire                           wbd_clk_mbist3_skew                    ; // clock for global reg
-wire                           wbd_clk_mbist4_skew                    ; // clock for global reg
 
 
 
@@ -536,37 +514,23 @@
 wire                           pulse1m_mclk                           ;
 wire                           h_reset_n                              ;
 
-`ifndef SCR1_TCM_MEM
-// SRAM-0 PORT-0 - DMEM I/F
-wire                           sram0_clk0                             ; // CLK
-wire                           sram0_csb0                             ; // CS#
-wire                           sram0_web0                             ; // WE#
-wire   [8:0]                   sram0_addr0                            ; // Address
-wire   [3:0]                   sram0_wmask0                           ; // WMASK#
-wire   [31:0]                  sram0_din0                             ; // Write Data
-wire   [31:0]                  sram0_dout0                            ; // Read Data
+`ifndef YCR1_TCM_MEM
 
-// SRAM-0 PORT-1, IMEM I/F
-wire                           sram0_clk1                             ; // CLK
-wire                           sram0_csb1                             ; // CS#
-wire  [8:0]                    sram0_addr1                            ; // Address
-wire  [31:0]                   sram0_dout1                            ; // Read Data
+// DFFRAM I/F
 
-// SRAM-1 PORT-0 - DMEM I/F
-wire                           sram1_clk0                             ; // CLK
-wire                           sram1_csb0                             ; // CS#
-wire                           sram1_web0                             ; // WE#
-wire   [8:0]                   sram1_addr0                            ; // Address
-wire   [3:0]                   sram1_wmask0                           ; // WMASK#
-wire   [31:0]                  sram1_din0                             ; // Write Data
-wire   [31:0]                  sram1_dout0                            ; // Read Data
-
-// SRAM-1 PORT-1, IMEM I/F
-wire                           sram1_clk1                             ; // CLK
-wire                           sram1_csb1                             ; // CS#
-wire  [8:0]                    sram1_addr1                            ; // Address
-wire  [31:0]                   sram1_dout1                            ; // Read Data
-
+wire                           tcm_dffram_clk0                        ; // CLK
+wire                           tcm_dffram_cs0                         ; // Chip Select
+wire    [7:0]                  tcm_dffram_addr0                       ; // Address
+wire    [3:0]                  tcm_dffram_wmask0                      ; // Write Mask
+wire    [31:0]                 tcm_dffram_din0                        ; // Write Data
+wire    [31:0]                 tcm_dffram_dout0                       ; // Read Data
+   
+wire                           tcm_dffram_clk1                        ; // CLK
+wire                           tcm_dffram_cs1                         ; // Chip Select
+wire    [7:0]                  tcm_dffram_addr1                       ; // Address
+wire    [3:0]                  tcm_dffram_wmask1                      ; // Write Mask
+wire    [31:0]                 tcm_dffram_din1                        ; // Write Data
+wire    [31:0]                 tcm_dffram_dout1                       ; // Read Data
 `endif
 
 // SPIM I/F
@@ -585,71 +549,7 @@
 wire                           uartm_rxd                              ;
 wire                           uartm_txd                              ;
 
-//----------------------------------------------------------
-// BIST I/F
-// ---------------------------------------------------------
-wire                           bist_en                                ;
-wire                           bist_run                               ;
-wire                           bist_load                              ;
 
-wire                           bist_sdi                               ;
-wire                           bist_shift                             ;
-wire                           bist_sdo                               ;
-
-wire                           bist_done                              ;
-wire [3:0]                     bist_error                             ;
-wire [3:0]                     bist_correct                           ;
-wire [3:0]                     bist_error_cnt0                        ;
-wire [3:0]                     bist_error_cnt1                        ;
-wire [3:0]                     bist_error_cnt2                        ;
-wire [3:0]                     bist_error_cnt3                        ;
-
-// With Repeater Buffer
-wire                           bist_en_rp                             ;
-wire                           bist_run_rp                            ;
-wire                           bist_load_rp                           ;
-
-wire                           bist_sdi_rp                            ;
-wire                           bist_shift_rp                          ;
-wire                           bist_sdo_rp                            ;
-
-wire                           bist_done_rp                           ;
-wire [3:0]                     bist_error_rp                          ;
-wire [3:0]                     bist_correct_rp                        ;
-wire [3:0]                     bist_error_cnt0_rp                     ;
-wire [3:0]                     bist_error_cnt1_rp                     ;
-wire [3:0]                     bist_error_cnt2_rp                     ;
-wire [3:0]                     bist_error_cnt3_rp                     ;
-
-// towards memory MBIST1
-// PORT-A
-wire   [BIST_NO_SRAM-1:0]      mem_clk_a                              ;
-wire   [BIST1_ADDR_WD-1:2]     mem0_addr_a                            ;
-wire   [BIST1_ADDR_WD-1:2]     mem1_addr_a                            ;
-wire   [BIST1_ADDR_WD-1:2]     mem2_addr_a                            ;
-wire   [BIST1_ADDR_WD-1:2]     mem3_addr_a                            ;
-wire   [BIST_NO_SRAM-1:0]      mem_cen_a                              ;
-wire   [BIST_NO_SRAM-1:0]      mem_web_a                              ;
-wire [BIST_DATA_WD/8-1:0]      mem0_mask_a                            ;
-wire [BIST_DATA_WD/8-1:0]      mem1_mask_a                            ;
-wire [BIST_DATA_WD/8-1:0]      mem2_mask_a                            ;
-wire [BIST_DATA_WD/8-1:0]      mem3_mask_a                            ;
-wire   [BIST_DATA_WD-1:0]      mem0_din_a                             ;
-wire   [BIST_DATA_WD-1:0]      mem1_din_a                             ;
-wire   [BIST_DATA_WD-1:0]      mem2_din_a                             ;
-wire   [BIST_DATA_WD-1:0]      mem3_din_a                             ;
-wire   [BIST_DATA_WD-1:0]      mem0_dout_a                            ;
-wire   [BIST_DATA_WD-1:0]      mem1_dout_a                            ;
-wire   [BIST_DATA_WD-1:0]      mem2_dout_a                            ;
-wire   [BIST_DATA_WD-1:0]      mem3_dout_a                            ;
-
-// PORT-B
-wire [BIST_NO_SRAM-1:0]        mem_clk_b                              ;
-wire [BIST_NO_SRAM-1:0]        mem_cen_b                              ;
-wire [BIST1_ADDR_WD-1:2]       mem0_addr_b                            ;
-wire [BIST1_ADDR_WD-1:2]       mem1_addr_b                            ;
-wire [BIST1_ADDR_WD-1:2]       mem2_addr_b                            ;
-wire [BIST1_ADDR_WD-1:2]       mem3_addr_b                            ;
 
 wire [3:0]                     spi_csn                                ;
 
@@ -657,89 +557,77 @@
 // Clock Skew Ctrl
 ////////////////////////////////////////////////////////
 
-assign cfg_cska_wi     = cfg_clk_ctrl1[3:0];
-assign cfg_cska_wh     = cfg_clk_ctrl1[7:4];
-assign cfg_cska_riscv  = cfg_clk_ctrl1[11:8];
-assign cfg_cska_qspi    = cfg_clk_ctrl1[15:12];
-assign cfg_cska_uart   = cfg_clk_ctrl1[19:16];
-assign cfg_cska_pinmux = cfg_clk_ctrl1[23:20];
-assign cfg_cska_qspi_co  = cfg_clk_ctrl1[27:24];
+assign cfg_cska_wi          = cfg_clk_ctrl1[3:0];
+assign cfg_cska_wh          = cfg_clk_ctrl1[7:4];
+assign cfg_cska_riscv       = cfg_clk_ctrl1[11:8];
+assign cfg_cska_qspi        = cfg_clk_ctrl1[15:12];
+assign cfg_cska_uart        = cfg_clk_ctrl1[19:16];
+assign cfg_cska_pinmux      = cfg_clk_ctrl1[23:20];
+assign cfg_cska_qspi_co     = cfg_clk_ctrl1[27:24];
 
-assign  cfg_cska_mbist1   = cfg_clk_ctrl2[3:0];
-assign  cfg_cska_mbist2   = cfg_clk_ctrl2[7:4];
-assign  cfg_cska_mbist3   = cfg_clk_ctrl2[11:8];
-assign  cfg_cska_mbist4   = cfg_clk_ctrl2[15:12];
-assign  dcache_remap      = cfg_clk_ctrl2[27:24];
-assign  boot_remap        = cfg_clk_ctrl2[31:28];
 
-//assign la_data_out    = {riscv_debug,spi_debug,sdram_debug};
 assign la_data_out[127:0]    = {pinmux_debug,spi_debug,riscv_debug};
 
-//clk_buf u_buf1_wb_rstn  (.clk_i(wbd_int_rst_n),.clk_o(wbd_int1_rst_n));
-//clk_buf u_buf2_wb_rstn  (.clk_i(wbd_int1_rst_n),.clk_o(wbd_int2_rst_n));
-//
-//clk_buf u_buf1_wbclk    (.clk_i(wbd_clk_int),.clk_o(wbd_clk_int1));
-//clk_buf u_buf2_wbclk    (.clk_i(wbd_clk_int1),.clk_o(wbd_clk_int2));
 
 wb_host u_wb_host(
 `ifdef USE_POWER_PINS
-          .vccd1              (vccd1                        ),// User area 1 1.8V supply
-          .vssd1              (vssd1                        ),// User area 1 digital ground
+          .vccd1                   (vccd1                   ),// User area 1 1.8V supply
+          .vssd1                   (vssd1                   ),// User area 1 digital ground
 `endif
-          .user_clock1        (wb_clk_i                     ),
-          .user_clock2        (user_clock2                  ),
+          .user_clock1             (wb_clk_i                ),
+          .user_clock2             (user_clock2             ),
 
-          .cpu_clk            (cpu_clk                      ),
-          .rtc_clk            (rtc_clk                      ),
-          .usb_clk            (usb_clk                      ),
+          .cpu_clk                 (cpu_clk                 ),
+          .rtc_clk                 (rtc_clk                 ),
+          .usb_clk                 (usb_clk                 ),
 
-          .wbd_int_rst_n      (wbd_int_rst_n                ),
-          .cpu_rst_n          (cpu_rst_n                    ),
-          .qspim_rst_n        (qspim_rst_n                  ),
-          .sspim_rst_n        (sspim_rst_n                  ), // spi reset
-          .uart_rst_n         (uart_rst_n                   ), // uart reset
-          .i2cm_rst_n         (i2c_rst_n                    ), // i2c reset
-          .usb_rst_n          (usb_rst_n                    ), // usb reset
-          .bist_rst_n         (bist_rst_n                   ), // BIST Reset  
+          .wbd_int_rst_n           (wbd_int_rst_n           ),
+          .cpu_rst_n               (cpu_rst_n               ),
+          .qspim_rst_n             (qspim_rst_n             ),
+          .sspim_rst_n             (sspim_rst_n             ), // spi reset
+          .uart_rst_n              (uart_rst_n              ), // uart reset
+          .i2cm_rst_n              (i2c_rst_n               ), // i2c reset
+          .usb_rst_n               (usb_rst_n               ), // usb reset
+          .bist_rst_n              (bist_rst_n              ), // BIST Reset  
 
     // Master Port
-          .wbm_rst_i          (wb_rst_i                     ),  
-          .wbm_clk_i          (wb_clk_i                     ),  
-          .wbm_cyc_i          (wbs_cyc_i                    ),  
-          .wbm_stb_i          (wbs_stb_i                    ),  
-          .wbm_adr_i          (wbs_adr_i                    ),  
-          .wbm_we_i           (wbs_we_i                     ),  
-          .wbm_dat_i          (wbs_dat_i                    ),  
-          .wbm_sel_i          (wbs_sel_i                    ),  
-          .wbm_dat_o          (wbs_dat_o                    ),  
-          .wbm_ack_o          (wbs_ack_o                    ),  
-          .wbm_err_o          (                             ),  
+          .wbm_rst_i               (wb_rst_i                ),  
+          .wbm_clk_i               (wb_clk_i                ),  
+          .wbm_cyc_i               (wbs_cyc_i               ),  
+          .wbm_stb_i               (wbs_stb_i               ),  
+          .wbm_adr_i               (wbs_adr_i               ),  
+          .wbm_we_i                (wbs_we_i                ),  
+          .wbm_dat_i               (wbs_dat_i               ),  
+          .wbm_sel_i               (wbs_sel_i               ),  
+          .wbm_dat_o               (wbs_dat_o               ),  
+          .wbm_ack_o               (wbs_ack_o               ),  
+          .wbm_err_o               (                        ),  
 
     // Clock Skeq Adjust
-          .wbd_clk_int        (wbd_clk_int                  ),
-          .wbd_clk_wh         (wbd_clk_wh                   ),  
-          .cfg_cska_wh        (cfg_cska_wh                  ),
+          .wbd_clk_int             (wbd_clk_int             ),
+          .wbd_clk_wh              (wbd_clk_wh              ),  
+          .cfg_cska_wh             (cfg_cska_wh             ),
 
     // Slave Port
-          .wbs_clk_out        (wbd_clk_int                  ),
-          .wbs_clk_i          (wbd_clk_wh                   ),  
-          .wbs_cyc_o          (wbd_int_cyc_i                ),  
-          .wbs_stb_o          (wbd_int_stb_i                ),  
-          .wbs_adr_o          (wbd_int_adr_i                ),  
-          .wbs_we_o           (wbd_int_we_i                 ),  
-          .wbs_dat_o          (wbd_int_dat_i                ),  
-          .wbs_sel_o          (wbd_int_sel_i                ),  
-          .wbs_dat_i          (wbd_int_dat_o                ),  
-          .wbs_ack_i          (wbd_int_ack_o                ),  
-          .wbs_err_i          (wbd_int_err_o                ),  
+          .wbs_clk_out             (wbd_clk_int             ),
+          .wbs_clk_i               (wbd_clk_wh              ),  
+          .wbs_cyc_o               (wbd_int_cyc_i           ),  
+          .wbs_stb_o               (wbd_int_stb_i           ),  
+          .wbs_adr_o               (wbd_int_adr_i           ),  
+          .wbs_we_o                (wbd_int_we_i            ),  
+          .wbs_dat_o               (wbd_int_dat_i           ),  
+          .wbs_sel_o               (wbd_int_sel_i           ),  
+          .wbs_dat_i               (wbd_int_dat_o           ),  
+          .wbs_ack_i               (wbd_int_ack_o           ),  
+          .wbs_err_i               (wbd_int_err_o           ),  
 
-          .cfg_clk_ctrl1      (cfg_clk_ctrl1                ),
-          .cfg_clk_ctrl2      (cfg_clk_ctrl2                ),
+          .cfg_clk_ctrl1           (cfg_clk_ctrl1           ),
+          .cfg_clk_ctrl2           (cfg_clk_ctrl2           ),
 
-          .la_data_in         (la_data_in[17:0]             ),
+          .la_data_in              (la_data_in[17:0]        ),
 
-          .uartm_rxd          (uartm_rxd                    ),
-          .uartm_txd          (uartm_txd                    )
+          .uartm_rxd               (uartm_rxd               ),
+          .uartm_txd               (uartm_txd               )
 
 
     );
@@ -752,267 +640,255 @@
 //------------------------------------------------------------------------------
 ycr1_top_wb u_riscv_top (
 `ifdef USE_POWER_PINS
-          .vccd1              (vccd1                        ),// User area 1 1.8V supply
-          .vssd1              (vssd1                        ),// User area 1 digital ground
+          .vccd1                   (vccd1                   ),// User area 1 1.8V supply
+          .vssd1                   (vssd1                   ),// User area 1 digital ground
 `endif
-          .wbd_clk_int        (wbd_clk_risc_rp              ), 
-          .cfg_cska_riscv     (cfg_cska_riscv_rp            ), 
-          .wbd_clk_riscv      (wbd_clk_riscv_skew           ),
+          .wbd_clk_int             (wbd_clk_risc_rp         ), 
+          .cfg_cska_riscv          (cfg_cska_riscv_rp       ), 
+          .wbd_clk_riscv           (wbd_clk_riscv_skew      ),
 
     // Reset
-          .pwrup_rst_n        (wbd_int_rst_n                ),
-          .rst_n              (wbd_int_rst_n                ),
-          .cpu_rst_n          (cpu_rst_n                    ),
-          .riscv_debug        (riscv_debug                  ),
+          .pwrup_rst_n             (wbd_int_rst_n           ),
+          .rst_n                   (wbd_int_rst_n           ),
+          .cpu_rst_n               (cpu_rst_n               ),
+          .riscv_debug             (riscv_debug             ),
 
     // Clock
-          .core_clk           (cpu_clk                      ),
-          .rtc_clk            (rtc_clk                      ),
+          .core_clk_mclk           (cpu_clk                 ),
+          .core_clk                (cpu_clk                 ),
+          .rtc_clk                 (rtc_clk                 ),
 
     // Fuses
-          .fuse_mhartid       (fuse_mhartid_rp              ),
+          .fuse_mhartid            (fuse_mhartid_rp         ),
 
     // IRQ
-          .irq_lines          (irq_lines_rp                 ), 
-          .soft_irq           (soft_irq_rp                  ), // TODO - Interrupts
+          .irq_lines               (irq_lines_rp            ), 
+          .soft_irq                (soft_irq_rp             ), // TODO - Interrupts
 
     // DFT
-    //    .test_mode          (1'b0                         ), // Moved inside IP
-    //    .test_rst_n         (1'b1                         ), // Moved inside IP
+    //    .test_mode               (1'b0                    ), // Moved inside IP
+    //    .test_rst_n              (1'b1                    ), // Moved inside IP
 
-`ifndef SCR1_TCM_MEM
-    // SRAM-0 PORT-0
-          .sram0_clk0         (sram0_clk0                   ),
-          .sram0_csb0         (sram0_csb0                   ),
-          .sram0_web0         (sram0_web0                   ),
-          .sram0_addr0        (sram0_addr0                  ),
-          .sram0_wmask0       (sram0_wmask0                 ),
-          .sram0_din0         (sram0_din0                   ),
-          .sram0_dout0        (sram0_dout0                  ),
-    
-    // SRAM-0 PORT-0
-          .sram0_clk1         (sram0_clk1                   ),
-          .sram0_csb1         (sram0_csb1                   ),
-          .sram0_addr1        (sram0_addr1                  ),
-          .sram0_dout1        (sram0_dout1                  ),
+`ifndef YCR1_TCM_MEM
+	// DFFRAM I/F
+          .tcm_dffram_clk0         (tcm_dffram_clk0         ), // CLK
+          .tcm_dffram_cs0          (tcm_dffram_cs0          ), // Chip Select
+          .tcm_dffram_addr0        (tcm_dffram_addr0        ), // Address
+          .tcm_dffram_wmask0       (tcm_dffram_wmask0       ), // Write Mask
+          .tcm_dffram_din0         (tcm_dffram_din0         ), // Write Data
+          .tcm_dffram_dout0        (tcm_dffram_dout0        ), // Read Data
+                                                               
+          .tcm_dffram_clk1         (tcm_dffram_clk1         ), // CLK
+          .tcm_dffram_cs1          (tcm_dffram_cs1          ), // Chip Select
+          .tcm_dffram_addr1        (tcm_dffram_addr1        ), // Address
+          .tcm_dffram_wmask1       (tcm_dffram_wmask1       ), // Write Mask
+          .tcm_dffram_din1         (tcm_dffram_din1         ), // Write Data
+          .tcm_dffram_dout1        (tcm_dffram_dout1        ), // Read Data
 
-  //  // SRAM-1 PORT-0
-  //      .sram1_clk0         (sram1_clk0                   ),
-  //      .sram1_csb0         (sram1_csb0                   ),
-  //      .sram1_web0         (sram1_web0                   ),
-  //      .sram1_addr0        (sram1_addr0                  ),
-  //      .sram1_wmask0       (sram1_wmask0                 ),
-  //      .sram1_din0         (sram1_din0                   ),
-  //      .sram1_dout0        (sram1_dout0                  ),
-  //  
-  //  // SRAM PORT-0
-  //      .sram1_clk1         (sram1_clk1                   ),
-  //      .sram1_csb1         (sram1_csb1                   ),
-  //      .sram1_addr1        (sram1_addr1                  ),
-  //      .sram1_dout1        (sram1_dout1                  ),
 `endif
     
-          .wb_rst_n           (wbd_int_rst_n                ),
-          .wb_clk             (wbd_clk_riscv_skew           ),
+          .wb_rst_n                (wbd_int_rst_n           ),
+          .wb_clk                  (wbd_clk_riscv_skew      ),
 
     // Instruction cache memory interface
-          .wb_icache_stb_o    (wbd_riscv_icache_stb_i       ),
-          .wb_icache_adr_o    (wbd_riscv_icache_adr_i       ),
-          .wb_icache_we_o     (wbd_riscv_icache_we_i        ), 
-          .wb_icache_sel_o    (wbd_riscv_icache_sel_i       ),
-          .wb_icache_bl_o     (wbd_riscv_icache_bl_i        ),
-          .wb_icache_bry_o    (wbd_riscv_icache_bry_i       ),
-          .wb_icache_dat_i    (wbd_riscv_icache_dat_o       ),
-          .wb_icache_ack_i    (wbd_riscv_icache_ack_o       ),
-          .wb_icache_lack_i   (wbd_riscv_icache_lack_o      ),
-          .wb_icache_err_i    (wbd_riscv_icache_err_o       ),
+          .wb_icache_stb_o         (wbd_riscv_icache_stb_i  ),
+          .wb_icache_adr_o         (wbd_riscv_icache_adr_i  ),
+          .wb_icache_we_o          (wbd_riscv_icache_we_i   ), 
+          .wb_icache_sel_o         (wbd_riscv_icache_sel_i  ),
+          .wb_icache_bl_o          (wbd_riscv_icache_bl_i   ),
+          .wb_icache_bry_o         (wbd_riscv_icache_bry_i  ),
+          .wb_icache_dat_i         (wbd_riscv_icache_dat_o  ),
+          .wb_icache_ack_i         (wbd_riscv_icache_ack_o  ),
+          .wb_icache_lack_i        (wbd_riscv_icache_lack_o ),
+          .wb_icache_err_i         (wbd_riscv_icache_err_o  ),
 
-          .icache_mem_clk0    (icache_mem_clk0              ), // CLK
-          .icache_mem_csb0    (icache_mem_csb0              ), // CS#
-          .icache_mem_web0    (icache_mem_web0              ), // WE#
-          .icache_mem_addr0   (icache_mem_addr0             ), // Address
-          .icache_mem_wmask0  (icache_mem_wmask0            ), // WMASK#
-          .icache_mem_din0    (icache_mem_din0              ), // Write Data
-//        .icache_mem_dout0   (icache_mem_dout0             ), // Read Data
-                                
-                                
-          .icache_mem_clk1    (icache_mem_clk1              ), // CLK
-          .icache_mem_csb1    (icache_mem_csb1              ), // CS#
-          .icache_mem_addr1   (icache_mem_addr1             ), // Address
-          .icache_mem_dout1   (icache_mem_dout1             ), // Read Data
+            // DFFRAM I/F
+          .icache_dffram_clk0      (icache_dffram_clk0      ), // CLK
+          .icache_dffram_cs0       (icache_dffram_cs0       ), // Chip Select
+          .icache_dffram_addr0     (icache_dffram_addr0     ), // Address
+          .icache_dffram_wmask0    (icache_dffram_wmask0    ), // Write Mask
+          .icache_dffram_din0      (icache_dffram_din0      ), // Write Data
+          .icache_dffram_dout0     (icache_dffram_dout0     ), // Read Data
+                                                                
+          .icache_dffram_clk1      (icache_dffram_clk1      ), // CLK
+          .icache_dffram_cs1       (icache_dffram_cs1       ), // Chip Select
+          .icache_dffram_addr1     (icache_dffram_addr1     ), // Address
+          .icache_dffram_wmask1    (icache_dffram_wmask1    ), // Write Mask
+          .icache_dffram_din1      (icache_dffram_din1      ), // Write Data
+          .icache_dffram_dout1     (icache_dffram_dout1     ), // Read Data
 
     // Data cache memory interface
-          .wb_dcache_stb_o    (wbd_riscv_dcache_stb_i       ),
-          .wb_dcache_adr_o    (wbd_riscv_dcache_adr_i       ),
-          .wb_dcache_we_o     (wbd_riscv_dcache_we_i        ), 
-          .wb_dcache_dat_o    (wbd_riscv_dcache_dat_i       ),
-          .wb_dcache_sel_o    (wbd_riscv_dcache_sel_i       ),
-          .wb_dcache_bl_o     (wbd_riscv_dcache_bl_i        ),
-          .wb_dcache_bry_o    (wbd_riscv_dcache_bry_i       ),
-          .wb_dcache_dat_i    (wbd_riscv_dcache_dat_o       ),
-          .wb_dcache_ack_i    (wbd_riscv_dcache_ack_o       ),
-          .wb_dcache_lack_i   (wbd_riscv_dcache_lack_o      ),
-          .wb_dcache_err_i    (wbd_riscv_dcache_err_o       ),
+          .wb_dcache_stb_o         (wbd_riscv_dcache_stb_i  ),
+          .wb_dcache_adr_o         (wbd_riscv_dcache_adr_i  ),
+          .wb_dcache_we_o          (wbd_riscv_dcache_we_i   ), 
+          .wb_dcache_dat_o         (wbd_riscv_dcache_dat_i  ),
+          .wb_dcache_sel_o         (wbd_riscv_dcache_sel_i  ),
+          .wb_dcache_bl_o          (wbd_riscv_dcache_bl_i   ),
+          .wb_dcache_bry_o         (wbd_riscv_dcache_bry_i  ),
+          .wb_dcache_dat_i         (wbd_riscv_dcache_dat_o  ),
+          .wb_dcache_ack_i         (wbd_riscv_dcache_ack_o  ),
+          .wb_dcache_lack_i        (wbd_riscv_dcache_lack_o ),
+          .wb_dcache_err_i         (wbd_riscv_dcache_err_o  ),
 
-          .dcache_mem_clk0    (dcache_mem_clk0              ), // CLK
-          .dcache_mem_csb0    (dcache_mem_csb0              ), // CS#
-          .dcache_mem_web0    (dcache_mem_web0              ), // WE#
-          .dcache_mem_addr0   (dcache_mem_addr0             ), // Address
-          .dcache_mem_wmask0  (dcache_mem_wmask0            ), // WMASK#
-          .dcache_mem_din0    (dcache_mem_din0              ), // Write Data
-          .dcache_mem_dout0   (dcache_mem_dout0             ), // Read Data
-                                
-                                
-          .dcache_mem_clk1    (dcache_mem_clk1              ), // CLK
-          .dcache_mem_csb1    (dcache_mem_csb1              ), // CS#
-          .dcache_mem_addr1   (dcache_mem_addr1             ), // Address
-          .dcache_mem_dout1   (dcache_mem_dout1             ), // Read Data
 
+     // DFFRAM I/F
+          .dcache_dffram_clk0      (dcache_dffram_clk0      ), // CLK
+          .dcache_dffram_cs0       (dcache_dffram_cs0       ), // Chip Select
+          .dcache_dffram_addr0     (dcache_dffram_addr0     ), // Address
+          .dcache_dffram_wmask0    (dcache_dffram_wmask0    ), // Write Mask
+          .dcache_dffram_din0      (dcache_dffram_din0      ), // Write Data
+          .dcache_dffram_dout0     (dcache_dffram_dout0     ), // Read Data
+                                                         
+          .dcache_dffram_clk1      (dcache_dffram_clk1      ), // CLK
+          .dcache_dffram_cs1       (dcache_dffram_cs1       ), // Chip Select
+          .dcache_dffram_addr1     (dcache_dffram_addr1     ), // Address
+          .dcache_dffram_wmask1    (dcache_dffram_wmask1    ), // Write Mask
+          .dcache_dffram_din1      (dcache_dffram_din1      ), // Write Data
+          .dcache_dffram_dout1     (dcache_dffram_dout1     ), // Read Data
 
     // Data memory interface
-          .wbd_dmem_stb_o     (wbd_riscv_dmem_stb_i         ),
-          .wbd_dmem_adr_o     (wbd_riscv_dmem_adr_i         ),
-          .wbd_dmem_we_o      (wbd_riscv_dmem_we_i          ), 
-          .wbd_dmem_dat_o     (wbd_riscv_dmem_dat_i         ),
-          .wbd_dmem_sel_o     (wbd_riscv_dmem_sel_i         ),
-          .wbd_dmem_dat_i     (wbd_riscv_dmem_dat_o         ),
-          .wbd_dmem_ack_i     (wbd_riscv_dmem_ack_o         ),
-          .wbd_dmem_err_i     (wbd_riscv_dmem_err_o         ) 
+          .wbd_dmem_stb_o          (wbd_riscv_dmem_stb_i    ),
+          .wbd_dmem_adr_o          (wbd_riscv_dmem_adr_i    ),
+          .wbd_dmem_we_o           (wbd_riscv_dmem_we_i     ), 
+          .wbd_dmem_dat_o          (wbd_riscv_dmem_dat_i    ),
+          .wbd_dmem_sel_o          (wbd_riscv_dmem_sel_i    ),
+          .wbd_dmem_dat_i          (wbd_riscv_dmem_dat_o    ),
+          .wbd_dmem_ack_i          (wbd_riscv_dmem_ack_o    ),
+          .wbd_dmem_err_i          (wbd_riscv_dmem_err_o    ) 
+);
+`ifndef YCR1_TCM_MEM
+
+DFFRAM u_tcm_1KB_mem0 (
+`ifdef USE_POWER_PINS
+          .VPWR                    (vccd1                   ),// area 1 1.8V supply
+          .VGND                    (vssd1                   ),// area 1 digital ground
+`endif
+          .CLK                     (tcm_dffram_clk0         ),
+          .WE                      (tcm_dffram_wmask0       ),
+          .EN                      (tcm_dffram_cs0          ),
+          .Di                      (tcm_dffram_din0         ),
+          .Do                      (tcm_dffram_dout0        ),
+          .A                       (tcm_dffram_addr0        )
 );
 
-`ifndef SCR1_TCM_MEM
-sky130_sram_2kbyte_1rw1r_32x512_8 u_tsram0_2kb(
+DFFRAM u_tcm_1KB_mem1 (
 `ifdef USE_POWER_PINS
-          .vccd1              (vccd1                        ),// area 1 1.8V supply
-          .vssd1              (vssd1                        ),// area 1 digital ground
+          .VPWR                    (vccd1                   ),// area 1 1.8V supply
+          .VGND                    (vssd1                   ),// area 1 digital ground
 `endif
-// Port 0: RW
-          .clk0               (sram0_clk0                   ),
-          .csb0               (sram0_csb0                   ),
-          .web0               (sram0_web0                   ),
-          .wmask0             (sram0_wmask0                 ),
-          .addr0              (sram0_addr0                  ),
-          .din0               (sram0_din0                   ),
-          .dout0              (sram0_dout0                  ),
-// Port 1: R
-          .clk1               (sram0_clk1                   ),
-          .csb1               (sram0_csb1                   ),
-          .addr1              (sram0_addr1                  ),
-          .dout1              (sram0_dout1                  )
-  );
+          .CLK                     (tcm_dffram_clk1         ),
+          .WE                      (tcm_dffram_wmask1       ),
+          .EN                      (tcm_dffram_cs1          ),
+          .Di                      (tcm_dffram_din1         ),
+          .Do                      (tcm_dffram_dout1        ),
+          .A                       (tcm_dffram_addr1        )
+);
 
-/***
-sky130_sram_2kbyte_1rw1r_32x512_8 u_tsram1_2kb(
-`ifdef USE_POWER_PINS
-          .vccd1              (vccd1                        ),// User area 1 1.8V supply
-          .vssd1              (vssd1                        ),// User area 1 digital ground
-`endif
-// Port 0: RW
-          .clk0               (sram1_clk0                   ),
-          .csb0               (sram1_csb0                   ),
-          .web0               (sram1_web0                   ),
-          .wmask0             (sram1_wmask0                 ),
-          .addr0              (sram1_addr0                  ),
-          .din0               (sram1_din0                   ),
-          .dout0              (sram1_dout0                  ),
-// Port 1: R
-          .clk1               (sram1_clk1                   ),
-          .csb1               (sram1_csb1                   ),
-          .addr1              (sram1_addr1                  ),
-          .dout1              (sram1_dout1                  )
-  );
-***/
 `endif
 
 
-sky130_sram_2kbyte_1rw1r_32x512_8 u_icache_2kb(
-`ifdef USE_POWER_PINS
-          .vccd1              (vccd1                        ),// User area 1 1.8V supply
-          .vssd1              (vssd1                        ),// User area 1 digital ground
-`endif
-// Port 0: RW
-          .clk0               (icache_mem_clk0              ),
-          .csb0               (icache_mem_csb0              ),
-          .web0               (icache_mem_web0              ),
-          .wmask0             (icache_mem_wmask0            ),
-          .addr0              (icache_mem_addr0             ),
-          .din0               (icache_mem_din0              ),
-          .dout0              (                             ),
-// Port 1: R
-          .clk1               (icache_mem_clk1              ),
-          .csb1               (icache_mem_csb1              ),
-          .addr1              (icache_mem_addr1             ),
-          .dout1              (icache_mem_dout1             )
-  );
 
-sky130_sram_2kbyte_1rw1r_32x512_8 u_dcache_2kb(
+DFFRAM u_icache_1KB_mem0 (
 `ifdef USE_POWER_PINS
-          .vccd1              (vccd1                        ),// User area 1 1.8V supply
-          .vssd1              (vssd1                        ),// User area 1 digital ground
+          .VPWR                    (vccd1                   ),// area 1 1.8V supply
+          .VGND                    (vssd1                   ),// area 1 digital ground
 `endif
-// Port 0: RW
-          .clk0               (dcache_mem_clk0              ),
-          .csb0               (dcache_mem_csb0              ),
-          .web0               (dcache_mem_web0              ),
-          .wmask0             (dcache_mem_wmask0            ),
-          .addr0              (dcache_mem_addr0             ),
-          .din0               (dcache_mem_din0              ),
-          .dout0              (dcache_mem_dout0             ),
-// Port 1: R
-          .clk1               (dcache_mem_clk1              ),
-          .csb1               (dcache_mem_csb1              ),
-          .addr1              (dcache_mem_addr1             ),
-          .dout1              (dcache_mem_dout1             )
-  );
+          .CLK                     (icache_dffram_clk0      ),
+          .WE                      (icache_dffram_wmask0    ),
+          .EN                      (icache_dffram_cs0       ),
+          .Di                      (icache_dffram_din0      ),
+          .Do                      (icache_dffram_dout0     ),
+          .A                       (icache_dffram_addr0     )
+);
+
+DFFRAM u_icache_1KB_mem1 (
+`ifdef USE_POWER_PINS
+          .VPWR                    (vccd1                   ),// area 1 1.8V supply
+          .VGND                    (vssd1                   ),// area 1 digital ground
+`endif
+          .CLK                     (icache_dffram_clk1      ),
+          .WE                      (icache_dffram_wmask1    ),
+          .EN                      (icache_dffram_cs1       ),
+          .Di                      (icache_dffram_din1      ),
+          .Do                      (icache_dffram_dout1     ),
+          .A                       (icache_dffram_addr1     )
+);
+
+
+DFFRAM u_dcache_1KB_mem0 (
+`ifdef USE_POWER_PINS
+          .VPWR                    (vccd1                   ),// area 1 1.8V supply
+          .VGND                    (vssd1                   ),// area 1 digital ground
+`endif
+          .CLK                     (dcache_dffram_clk0      ),
+          .WE                      (dcache_dffram_wmask0    ),
+          .EN                      (dcache_dffram_cs0       ),
+          .Di                      (dcache_dffram_din0      ),
+          .Do                      (dcache_dffram_dout0     ),
+          .A                       (dcache_dffram_addr0     )
+);
+
+DFFRAM u_dcache_1KB_mem1 (
+`ifdef USE_POWER_PINS
+          .VPWR                    (vccd1                   ),// area 1 1.8V supply
+          .VGND                    (vssd1                   ),// area 1 digital ground
+`endif
+          .CLK                     (dcache_dffram_clk1      ),
+          .WE                      (dcache_dffram_wmask1    ),
+          .EN                      (dcache_dffram_cs1       ),
+          .Di                      (dcache_dffram_din1      ),
+          .Do                      (dcache_dffram_dout1     ),
+          .A                       (dcache_dffram_addr1     )
+);
 
 
 /*********************************************************
 * SPI Master
-* This is implementation of an SPI master that is controlled via an AXI bus                                                  . 
+* This is of an SPI master that is controlled via an AXI bus                                                                                                . 
 * It has FIFOs for transmitting and receiving data. 
 * It supports both the normal SPI mode and QPI mode with 4 data lines.
 * *******************************************************/
 
 qspim_top
-#                             (
+#                                  (
 `ifndef SYNTHESIS
     .WB_WIDTH  (WB_WIDTH                                    )
 `endif
 ) u_qspi_master
 (
 `ifdef USE_POWER_PINS
-          .vccd1              (vccd1                        ),// User area 1 1.8V supply
-          .vssd1              (vssd1                        ),// User area 1 digital ground
+          .vccd1                   (vccd1                   ),// User area 1 1.8V supply
+          .vssd1                   (vssd1                   ),// User area 1 digital ground
 `endif
-          .mclk               (wbd_clk_spi                  ),
-          .rst_n              (qspim_rst_n                  ),
+          .mclk                    (wbd_clk_spi             ),
+          .rst_n                   (qspim_rst_n             ),
 
     // Clock Skew Adjust
-          .cfg_cska_sp_co     (cfg_cska_qspi_co_rp          ),
-          .cfg_cska_spi       (cfg_cska_qspi_rp             ),
-          .wbd_clk_int        (wbd_clk_qspi_rp              ),
-          .wbd_clk_spi        (wbd_clk_spi                  ),
+          .cfg_cska_sp_co          (cfg_cska_qspi_co_rp     ),
+          .cfg_cska_spi            (cfg_cska_qspi_rp        ),
+          .wbd_clk_int             (wbd_clk_qspi_rp         ),
+          .wbd_clk_spi             (wbd_clk_spi             ),
 
-          .wbd_stb_i          (wbd_spim_stb_o               ),
-          .wbd_adr_i          (wbd_spim_adr_o               ),
-          .wbd_we_i           (wbd_spim_we_o                ), 
-          .wbd_dat_i          (wbd_spim_dat_o               ),
-          .wbd_sel_i          (wbd_spim_sel_o               ),
-          .wbd_bl_i           (wbd_spim_bl_o                ),
-          .wbd_bry_i          (wbd_spim_bry_o               ),
-          .wbd_dat_o          (wbd_spim_dat_i               ),
-          .wbd_ack_o          (wbd_spim_ack_i               ),
-          .wbd_lack_o         (wbd_spim_lack_i              ),
-          .wbd_err_o          (wbd_spim_err_i               ),
+          .wbd_stb_i               (wbd_spim_stb_o          ),
+          .wbd_adr_i               (wbd_spim_adr_o          ),
+          .wbd_we_i                (wbd_spim_we_o           ), 
+          .wbd_dat_i               (wbd_spim_dat_o          ),
+          .wbd_sel_i               (wbd_spim_sel_o          ),
+          .wbd_bl_i                (wbd_spim_bl_o           ),
+          .wbd_bry_i               (wbd_spim_bry_o          ),
+          .wbd_dat_o               (wbd_spim_dat_i          ),
+          .wbd_ack_o               (wbd_spim_ack_i          ),
+          .wbd_lack_o              (wbd_spim_lack_i         ),
+          .wbd_err_o               (wbd_spim_err_i          ),
 
-          .spi_debug          (spi_debug                    ),
+          .spi_debug               (spi_debug               ),
 
     // Pad Interface
-          .spi_sdi            (sflash_di                    ),
-          .spi_clk            (sflash_sck                   ),
-          .spi_csn            (spi_csn                      ),
-          .spi_sdo            (sflash_do                    ),
-          .spi_oen            (sflash_oen                   )
+          .spi_sdi                 (sflash_di               ),
+          .spi_clk                 (sflash_sck              ),
+          .spi_csn                 (spi_csn                 ),
+          .spi_sdo                 (sflash_do               ),
+          .spi_oen                 (sflash_oen              )
 
 );
 
@@ -1020,555 +896,289 @@
 
 wb_interconnect  #(
 	`ifndef SYNTHESIS
-	         .CH_CLK_WD          (8                            ),
-	         .CH_DATA_WD         (116                          )
+          .CH_CLK_WD               (4                       ),
+	  .CH_DATA_WD              (69                      )
         `endif
 	) u_intercon (
 `ifdef USE_POWER_PINS
-          .vccd1              (vccd1                        ),// User area 1 1.8V supply
-          .vssd1              (vssd1                        ),// User area 1 digital ground
+          .vccd1                   (vccd1                   ),// User area 1 1.8V supply
+          .vssd1                   (vssd1                   ),// User area 1 digital ground
 `endif
-	   .ch_clk_in          ({
-                          wbd_clk_int, 
-                          wbd_clk_int, 
-                          wbd_clk_int, 
-                          wbd_clk_int, 
-                          wbd_clk_int, 
-                          wbd_clk_int, 
-                          wbd_clk_int, 
-                          wbd_clk_int}                      ),
-	   .ch_clk_out         ({
-                          wbd_clk_mbist4_rp, 
-                          wbd_clk_mbist3_rp, 
-                          wbd_clk_mbist2_rp, 
-                          wbd_clk_mbist1_rp, 
-                          wbd_clk_pinmux_rp, 
-                          wbd_clk_uart_rp, 
-                          wbd_clk_qspi_rp, 
-                          wbd_clk_risc_rp}                  ),
-	   .ch_data_in    ({
-	                 bist_error_cnt3[3:0],
-			 bist_correct[3],
-			 bist_error[3],
-
-	                 bist_error_cnt2[3:0],
-			 bist_correct[2],
-			 bist_error[2],
-
-	                 bist_error_cnt1[3:0],
-			 bist_correct[1],
-			 bist_error[1],
-
-	                 bist_error_cnt0[3:0],
-			 bist_correct[0],
-			 bist_error[0],
-			 bist_done,
-			 bist_sdo,
-			 bist_shift,
-			 bist_sdi,
-			 bist_load,
-			 bist_run,
-			 bist_en,
+	  .ch_clk_in               ({
+                                     wbd_clk_int, 
+                                     wbd_clk_int, 
+                                     wbd_clk_int, 
+                                     wbd_clk_int}                  ),
+	  .ch_clk_out              ({
+                                     wbd_clk_pinmux_rp, 
+                                     wbd_clk_uart_rp, 
+                                     wbd_clk_qspi_rp, 
+                                     wbd_clk_risc_rp}              ),
+	  .ch_data_in              ({
 			 
+	                              soft_irq,
+			              irq_lines[15:0],
+			              fuse_mhartid[31:0],
 
-	                 soft_irq,
-			 irq_lines[15:0],
-			 fuse_mhartid[31:0],
+			              cfg_cska_qspi_co[3:0],
+		                      cfg_cska_pinmux[3:0],
+			              cfg_cska_uart[3:0],
+		                      cfg_cska_qspi[3:0],
+                                      cfg_cska_riscv[3:0]
+			             }                             ),
+	  .ch_data_out             ({
 
-		         cfg_cska_mbist4[3:0],
-		         cfg_cska_mbist3[3:0],
-		         cfg_cska_mbist2[3:0],
-		         cfg_cska_mbist1[3:0],
-			 cfg_cska_qspi_co[3:0],
-		         cfg_cska_pinmux[3:0],
-			 cfg_cska_uart[3:0],
-		         cfg_cska_qspi[3:0],
-                         cfg_cska_riscv[3:0]
-			 } ),
-	    .ch_data_out   ({
-	                 bist_error_cnt3_rp[3:0],
-			 bist_correct_rp[3],
-			 bist_error_rp[3],
+	                              soft_irq_rp,
+			              irq_lines_rp[15:0],
+			              fuse_mhartid_rp[31:0],
 
-	                 bist_error_cnt2_rp[3:0],
-			 bist_correct_rp[2],
-			 bist_error_rp[2],
-
-	                 bist_error_cnt1_rp[3:0],
-			 bist_correct_rp[1],
-			 bist_error_rp[1],
-
-	                 bist_error_cnt0_rp[3:0],
-			 bist_correct_rp[0],
-			 bist_error_rp[0],
-			 bist_done_rp,
-			 bist_sdo_rp,
-			 bist_shift_rp,
-			 bist_sdi_rp,
-			 bist_load_rp,
-			 bist_run_rp,
-			 bist_en_rp,
-
-	                 soft_irq_rp,
-			 irq_lines_rp[15:0],
-			 fuse_mhartid_rp[31:0],
-
-		         cfg_cska_mbist4_rp[3:0],
-		         cfg_cska_mbist3_rp[3:0],
-		         cfg_cska_mbist2_rp[3:0],
-		         cfg_cska_mbist1_rp[3:0],
-			 cfg_cska_qspi_co_rp[3:0],
-		         cfg_cska_pinmux_rp[3:0],
-			 cfg_cska_uart_rp[3:0],
-		         cfg_cska_qspi_rp[3:0],
-                         cfg_cska_riscv_rp[3:0]
-                         }),
+			              cfg_cska_qspi_co_rp[3:0],
+		                      cfg_cska_pinmux_rp[3:0],
+			              cfg_cska_uart_rp[3:0],
+		                      cfg_cska_qspi_rp[3:0],
+                                      cfg_cska_riscv_rp[3:0]
+                                    }                              ),
      // Clock Skew adjust
-	         .wbd_clk_int        (wbd_clk_int                  ), 
-	         .cfg_cska_wi        (cfg_cska_wi                  ), 
-	         .wbd_clk_wi         (wbd_clk_wi_skew              ),
+	  .wbd_clk_int             (wbd_clk_int             ), 
+	  .cfg_cska_wi             (cfg_cska_wi             ), 
+	  .wbd_clk_wi              (wbd_clk_wi_skew         ),
 
-                 .clk_i              (wbd_clk_wi_skew              ), 
-                 .rst_n              (wbd_int_rst_n                ),
-                 .dcache_remap       (dcache_remap                 ),
-                 .boot_remap         (boot_remap                   ),
+          .clk_i                   (wbd_clk_wi_skew         ), 
+          .rst_n                   (wbd_int_rst_n           ),
 
          // Master 0 Interface
-          .m0_wbd_dat_i       (wbd_int_dat_i                ),
-          .m0_wbd_adr_i       (wbd_int_adr_i                ),
-          .m0_wbd_sel_i       (wbd_int_sel_i                ),
-          .m0_wbd_we_i        (wbd_int_we_i                 ),
-          .m0_wbd_cyc_i       (wbd_int_cyc_i                ),
-          .m0_wbd_stb_i       (wbd_int_stb_i                ),
-          .m0_wbd_dat_o       (wbd_int_dat_o                ),
-          .m0_wbd_ack_o       (wbd_int_ack_o                ),
-          .m0_wbd_err_o       (wbd_int_err_o                ),
+          .m0_wbd_dat_i            (wbd_int_dat_i           ),
+          .m0_wbd_adr_i            (wbd_int_adr_i           ),
+          .m0_wbd_sel_i            (wbd_int_sel_i           ),
+          .m0_wbd_we_i             (wbd_int_we_i            ),
+          .m0_wbd_cyc_i            (wbd_int_cyc_i           ),
+          .m0_wbd_stb_i            (wbd_int_stb_i           ),
+          .m0_wbd_dat_o            (wbd_int_dat_o           ),
+          .m0_wbd_ack_o            (wbd_int_ack_o           ),
+          .m0_wbd_err_o            (wbd_int_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_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         ),
+          .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_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_riscv_dcache_dat_i       ),
-          .m2_wbd_adr_i       (wbd_riscv_dcache_adr_i       ),
-          .m2_wbd_sel_i       (wbd_riscv_dcache_sel_i       ),
-          .m2_wbd_bl_i        (wbd_riscv_dcache_bl_i        ),
-          .m2_wbd_bry_i       (wbd_riscv_dcache_bry_i       ),
-          .m2_wbd_we_i        (wbd_riscv_dcache_we_i        ),
-          .m2_wbd_cyc_i       (wbd_riscv_dcache_stb_i       ),
-          .m2_wbd_stb_i       (wbd_riscv_dcache_stb_i       ),
-          .m2_wbd_dat_o       (wbd_riscv_dcache_dat_o       ),
-          .m2_wbd_ack_o       (wbd_riscv_dcache_ack_o       ),
-          .m2_wbd_lack_o      (wbd_riscv_dcache_lack_o      ),
-          .m2_wbd_err_o       (wbd_riscv_dcache_err_o       ),
+          .m2_wbd_dat_i            (wbd_riscv_dcache_dat_i  ),
+          .m2_wbd_adr_i            (wbd_riscv_dcache_adr_i  ),
+          .m2_wbd_sel_i            (wbd_riscv_dcache_sel_i  ),
+          .m2_wbd_bl_i             (wbd_riscv_dcache_bl_i   ),
+          .m2_wbd_bry_i            (wbd_riscv_dcache_bry_i  ),
+          .m2_wbd_we_i             (wbd_riscv_dcache_we_i   ),
+          .m2_wbd_cyc_i            (wbd_riscv_dcache_stb_i  ),
+          .m2_wbd_stb_i            (wbd_riscv_dcache_stb_i  ),
+          .m2_wbd_dat_o            (wbd_riscv_dcache_dat_o  ),
+          .m2_wbd_ack_o            (wbd_riscv_dcache_ack_o  ),
+          .m2_wbd_lack_o           (wbd_riscv_dcache_lack_o ),
+          .m2_wbd_err_o            (wbd_riscv_dcache_err_o  ),
 
          // Master 3 Interface
-          .m3_wbd_adr_i       (wbd_riscv_icache_adr_i       ),
-          .m3_wbd_sel_i       (wbd_riscv_icache_sel_i       ),
-          .m3_wbd_bl_i        (wbd_riscv_icache_bl_i        ),
-          .m3_wbd_bry_i       (wbd_riscv_icache_bry_i       ),
-          .m3_wbd_we_i        (wbd_riscv_icache_we_i        ),
-          .m3_wbd_cyc_i       (wbd_riscv_icache_stb_i       ),
-          .m3_wbd_stb_i       (wbd_riscv_icache_stb_i       ),
-          .m3_wbd_dat_o       (wbd_riscv_icache_dat_o       ),
-          .m3_wbd_ack_o       (wbd_riscv_icache_ack_o       ),
-          .m3_wbd_lack_o      (wbd_riscv_icache_lack_o      ),
-          .m3_wbd_err_o       (wbd_riscv_icache_err_o       ),
+          .m3_wbd_adr_i            (wbd_riscv_icache_adr_i  ),
+          .m3_wbd_sel_i            (wbd_riscv_icache_sel_i  ),
+          .m3_wbd_bl_i             (wbd_riscv_icache_bl_i   ),
+          .m3_wbd_bry_i            (wbd_riscv_icache_bry_i  ),
+          .m3_wbd_we_i             (wbd_riscv_icache_we_i   ),
+          .m3_wbd_cyc_i            (wbd_riscv_icache_stb_i  ),
+          .m3_wbd_stb_i            (wbd_riscv_icache_stb_i  ),
+          .m3_wbd_dat_o            (wbd_riscv_icache_dat_o  ),
+          .m3_wbd_ack_o            (wbd_riscv_icache_ack_o  ),
+          .m3_wbd_lack_o           (wbd_riscv_icache_lack_o ),
+          .m3_wbd_err_o            (wbd_riscv_icache_err_o  ),
          
          
          // Slave 0 Interface
-         // .s0_wbd_err_i  (1'b0           ), - Moved inside IP
-          .s0_wbd_dat_i       (wbd_spim_dat_i               ),
-          .s0_wbd_ack_i       (wbd_spim_ack_i               ),
-          .s0_wbd_lack_i      (wbd_spim_lack_i              ),
-          .s0_wbd_dat_o       (wbd_spim_dat_o               ),
-          .s0_wbd_adr_o       (wbd_spim_adr_o               ),
-          .s0_wbd_bry_o       (wbd_spim_bry_o               ),
-          .s0_wbd_bl_o        (wbd_spim_bl_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               ),
+       // .s0_wbd_err_i            (1'b0                    ), - Moved inside IP
+          .s0_wbd_dat_i            (wbd_spim_dat_i          ),
+          .s0_wbd_ack_i            (wbd_spim_ack_i          ),
+          .s0_wbd_lack_i           (wbd_spim_lack_i         ),
+          .s0_wbd_dat_o            (wbd_spim_dat_o          ),
+          .s0_wbd_adr_o            (wbd_spim_adr_o          ),
+          .s0_wbd_bry_o            (wbd_spim_bry_o          ),
+          .s0_wbd_bl_o             (wbd_spim_bl_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           ), - Moved inside IP
-          .s1_wbd_dat_i       (wbd_uart_dat_i               ),
-          .s1_wbd_ack_i       (wbd_uart_ack_i               ),
-          .s1_wbd_dat_o       (wbd_uart_dat_o               ),
-          .s1_wbd_adr_o       (wbd_uart_adr_o               ),
-          .s1_wbd_sel_o       (wbd_uart_sel_o               ),
-          .s1_wbd_we_o        (wbd_uart_we_o                ),  
-          .s1_wbd_cyc_o       (wbd_uart_cyc_o               ),
-          .s1_wbd_stb_o       (wbd_uart_stb_o               ),
+       // .s1_wbd_err_i            (1'b0                    ), - Moved inside IP
+          .s1_wbd_dat_i            (wbd_uart_dat_i          ),
+          .s1_wbd_ack_i            (wbd_uart_ack_i          ),
+          .s1_wbd_dat_o            (wbd_uart_dat_o          ),
+          .s1_wbd_adr_o            (wbd_uart_adr_o          ),
+          .s1_wbd_sel_o            (wbd_uart_sel_o          ),
+          .s1_wbd_we_o             (wbd_uart_we_o           ),  
+          .s1_wbd_cyc_o            (wbd_uart_cyc_o          ),
+          .s1_wbd_stb_o            (wbd_uart_stb_o          ),
          
          // Slave 2 Interface
-         // .s2_wbd_err_i  (1'b0           ), - Moved inside IP
-          .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               ),
+       // .s2_wbd_err_i            (1'b0                    ), - Moved inside IP
+          .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          )
 
-         // Slave 3 Interface
-         // .s3_wbd_err_i  (1'b0          ), - Moved inside IP
-          .s3_wbd_dat_i       (wbd_mbist_dat_i              ),
-          .s3_wbd_ack_i       (wbd_mbist_ack_i              ),
-          .s3_wbd_lack_i      (wbd_mbist_lack_i             ),
-          .s3_wbd_dat_o       (wbd_mbist_dat_o              ),
-          .s3_wbd_adr_o       (wbd_mbist_adr_o              ),
-          .s3_wbd_sel_o       (wbd_mbist_sel_o              ),
-          .s3_wbd_bry_o       (wbd_mbist_bry_o              ),
-          .s3_wbd_bl_o        (wbd_mbist_bl_o               ),
-          .s3_wbd_we_o        (wbd_mbist_we_o               ),  
-          .s3_wbd_cyc_o       (wbd_mbist_cyc_o              ),
-          .s3_wbd_stb_o       (wbd_mbist_stb_o              )
 
 	);
 
 
 uart_i2c_usb_spi_top   u_uart_i2c_usb_spi (
 `ifdef USE_POWER_PINS
-         .vccd1                 (vccd1                    ),// User area 1 1.8V supply
-         .vssd1                 (vssd1                    ),// User area 1 digital ground
+          .vccd1                   (vccd1                   ),// User area 1 1.8V supply
+          .vssd1                   (vssd1                   ),// User area 1 digital ground
 `endif
-	.wbd_clk_int            (wbd_clk_uart_rp          ), 
-	.cfg_cska_uart          (cfg_cska_uart_rp         ), 
-	.wbd_clk_uart           (wbd_clk_uart_skew        ),
+          .wbd_clk_int             (wbd_clk_uart_rp         ), 
+          .cfg_cska_uart           (cfg_cska_uart_rp        ), 
+          .wbd_clk_uart            (wbd_clk_uart_skew       ),
 
-        .uart_rstn              (uart_rst_n               ), // uart reset
-        .i2c_rstn               (i2c_rst_n                ), // i2c reset
-        .usb_rstn               (usb_rst_n                ), // USB reset
-        .spi_rstn               (sspim_rst_n              ), // SPI reset
-        .app_clk                (wbd_clk_uart_skew        ),
-	.usb_clk                (usb_clk                  ),
+          .uart_rstn               (uart_rst_n              ), // uart reset
+          .i2c_rstn                (i2c_rst_n               ), // i2c reset
+          .usb_rstn                (usb_rst_n               ), // USB reset
+          .spi_rstn                (sspim_rst_n             ), // SPI reset
+          .app_clk                 (wbd_clk_uart_skew       ),
+	  .usb_clk                 (usb_clk                 ),
 
         // Reg Bus Interface Signal
-       .reg_cs                  (wbd_uart_stb_o           ),
-       .reg_wr                  (wbd_uart_we_o            ),
-       .reg_addr                (wbd_uart_adr_o[7:0]      ),
-       .reg_wdata               (wbd_uart_dat_o           ),
-       .reg_be                  (wbd_uart_sel_o           ),
+          .reg_cs                  (wbd_uart_stb_o          ),
+          .reg_wr                  (wbd_uart_we_o           ),
+          .reg_addr                (wbd_uart_adr_o[7:0]     ),
+          .reg_wdata               (wbd_uart_dat_o          ),
+          .reg_be                  (wbd_uart_sel_o          ),
 
        // Outputs
-       .reg_rdata               (wbd_uart_dat_i           ),
-       .reg_ack                 (wbd_uart_ack_i           ),
+          .reg_rdata               (wbd_uart_dat_i          ),
+          .reg_ack                 (wbd_uart_ack_i          ),
 
        // Pad interface
-       .scl_pad_i               (i2cm_clk_i               ),
-       .scl_pad_o               (i2cm_clk_o               ),
-       .scl_pad_oen_o           (i2cm_clk_oen             ),
+          .scl_pad_i               (i2cm_clk_i              ),
+          .scl_pad_o               (i2cm_clk_o              ),
+          .scl_pad_oen_o           (i2cm_clk_oen            ),
 
-       .sda_pad_i               (i2cm_data_i              ),
-       .sda_pad_o               (i2cm_data_o              ),
-       .sda_padoen_o            (i2cm_data_oen            ),
+          .sda_pad_i               (i2cm_data_i             ),
+          .sda_pad_o               (i2cm_data_o             ),
+          .sda_padoen_o            (i2cm_data_oen           ),
      
-       .i2cm_intr_o             (i2cm_intr_o              ),
+          .i2cm_intr_o             (i2cm_intr_o             ),
 
-       .uart_rxd                (uart_rxd                 ),
-       .uart_txd                (uart_txd                 ),
+          .uart_rxd                (uart_rxd                ),
+          .uart_txd                (uart_txd                ),
 
-       .usb_in_dp               (usb_dp_i                 ),
-       .usb_in_dn               (usb_dn_i                 ),
+          .usb_in_dp               (usb_dp_i                ),
+          .usb_in_dn               (usb_dn_i                ),
 
-       .usb_out_dp              (usb_dp_o                 ),
-       .usb_out_dn              (usb_dn_o                 ),
-       .usb_out_tx_oen          (usb_oen                  ),
+          .usb_out_dp              (usb_dp_o                ),
+          .usb_out_dn              (usb_dn_o                ),
+          .usb_out_tx_oen          (usb_oen                 ),
        
-       .usb_intr_o              (usb_intr_o               ),
+          .usb_intr_o              (usb_intr_o              ),
 
       // SPIM Master
-       .sspim_sck               (sspim_sck                ), 
-       .sspim_so                (sspim_so                 ),  
-       .sspim_si                (sspim_si                 ),  
-       .sspim_ssn               (sspim_ssn                )  
+          .sspim_sck               (sspim_sck               ), 
+          .sspim_so                (sspim_so                ),  
+          .sspim_si                (sspim_si                ),  
+          .sspim_ssn               (sspim_ssn               )  
 
      );
 
-
 pinmux u_pinmux(
 `ifdef USE_POWER_PINS
-         .vccd1         (vccd1                 ),// User area 1 1.8V supply
-         .vssd1         (vssd1                 ),// User area 1 digital ground
+          .vccd1                   (vccd1                   ),// User area 1 1.8V supply
+          .vssd1                   (vssd1                   ),// User area 1 digital ground
 `endif
         //clk skew adjust
-        .cfg_cska_pinmux        (cfg_cska_pinmux_rp        ),
-        .wbd_clk_int            (wbd_clk_pinmux_rp         ),
-        .wbd_clk_pinmux         (wbd_clk_pinmux_skew       ),
+          .cfg_cska_pinmux         (cfg_cska_pinmux_rp      ),
+          .wbd_clk_int             (wbd_clk_pinmux_rp       ),
+          .wbd_clk_pinmux          (wbd_clk_pinmux_skew     ),
 
         // System Signals
         // Inputs
-	.mclk                   (wbd_clk_pinmux_skew       ),
-        .h_reset_n              (wbd_int_rst_n             ),
+          .mclk                    (wbd_clk_pinmux_skew     ),
+          .h_reset_n               (wbd_int_rst_n           ),
 
         // Reg Bus Interface Signal
-        .reg_cs                 (wbd_glbl_stb_o            ),
-        .reg_wr                 (wbd_glbl_we_o             ),
-        .reg_addr               (wbd_glbl_adr_o            ),
-        .reg_wdata              (wbd_glbl_dat_o            ),
-        .reg_be                 (wbd_glbl_sel_o            ),
+          .reg_cs                  (wbd_glbl_stb_o          ),
+          .reg_wr                  (wbd_glbl_we_o           ),
+          .reg_addr                (wbd_glbl_adr_o          ),
+          .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            ),
+          .reg_rdata               (wbd_glbl_dat_i          ),
+          .reg_ack                 (wbd_glbl_ack_i          ),
 
 
        // Risc configuration
-        .fuse_mhartid           (fuse_mhartid              ),
-        .irq_lines              (irq_lines                 ),
-        .soft_irq               (soft_irq                  ),
-        .user_irq               (user_irq                  ),
-        .usb_intr               (usb_intr_o                ),
-        .i2cm_intr              (i2cm_intr_o               ),
+          .fuse_mhartid            (fuse_mhartid            ),
+          .irq_lines               (irq_lines               ),
+          .soft_irq                (soft_irq                ),
+          .user_irq                (user_irq                ),
+          .usb_intr                (usb_intr_o              ),
+          .i2cm_intr               (i2cm_intr_o             ),
 
        // Digital IO
-        .digital_io_out         (io_out                    ),
-        .digital_io_oen         (io_oeb                    ),
-        .digital_io_in          (io_in                     ),
+          .digital_io_out          (io_out                  ),
+          .digital_io_oen          (io_oeb                  ),
+          .digital_io_in           (io_in                   ),
 
        // SFLASH I/F
-        .sflash_sck             (sflash_sck                ),
-        .sflash_ss              (spi_csn                   ),
-        .sflash_oen             (sflash_oen                ),
-        .sflash_do              (sflash_do                 ),
-        .sflash_di              (sflash_di                 ),
+          .sflash_sck              (sflash_sck              ),
+          .sflash_ss               (spi_csn                 ),
+          .sflash_oen              (sflash_oen              ),
+          .sflash_do               (sflash_do               ),
+          .sflash_di               (sflash_di               ),
 
 
        // USB I/F
-        .usb_dp_o               (usb_dp_o                  ),
-        .usb_dn_o               (usb_dn_o                  ),
-        .usb_oen                (usb_oen                   ),
-        .usb_dp_i               (usb_dp_i                  ),
-        .usb_dn_i               (usb_dn_i                  ),
+          .usb_dp_o                (usb_dp_o                ),
+          .usb_dn_o                (usb_dn_o                ),
+          .usb_oen                 (usb_oen                 ),
+          .usb_dp_i                (usb_dp_i                ),
+          .usb_dn_i                (usb_dn_i                ),
 
        // UART I/F
-        .uart_txd               (uart_txd                  ),
-        .uart_rxd               (uart_rxd                  ),
+          .uart_txd                (uart_txd                ),
+          .uart_rxd                (uart_rxd                ),
 
        // I2CM I/F
-        .i2cm_clk_o             (i2cm_clk_o                ),
-        .i2cm_clk_i             (i2cm_clk_i                ),
-        .i2cm_clk_oen           (i2cm_clk_oen              ),
-        .i2cm_data_oen          (i2cm_data_oen             ),
-        .i2cm_data_o            (i2cm_data_o               ),
-        .i2cm_data_i            (i2cm_data_i               ),
+          .i2cm_clk_o              (i2cm_clk_o              ),
+          .i2cm_clk_i              (i2cm_clk_i              ),
+          .i2cm_clk_oen            (i2cm_clk_oen            ),
+          .i2cm_data_oen           (i2cm_data_oen           ),
+          .i2cm_data_o             (i2cm_data_o             ),
+          .i2cm_data_i             (i2cm_data_i             ),
 
        // SPI MASTER
-        .spim_sck               (sspim_sck                 ),
-        .spim_ss                (sspim_ssn                 ),
-        .spim_miso              (sspim_so                  ),
-        .spim_mosi              (sspim_si                  ),
+          .spim_sck                (sspim_sck               ),
+          .spim_ss                 (sspim_ssn               ),
+          .spim_miso               (sspim_so                ),
+          .spim_mosi               (sspim_si                ),
 
       // UART MASTER I/F
-        .uartm_rxd              (uartm_rxd                 ),
-        .uartm_txd              (uartm_txd                 ),
+          .uartm_rxd               (uartm_rxd               ),
+          .uartm_txd               (uartm_txd               ),
 
 
-	.pulse1m_mclk           (pulse1m_mclk              ),
+	  .pulse1m_mclk            (pulse1m_mclk            ),
 
-	.pinmux_debug           (pinmux_debug              ),
+	  .pinmux_debug            (pinmux_debug            )
 
-       // BIST I/F
-        .bist_en                (bist_en                   ),
-        .bist_run               (bist_run                  ),
-        .bist_load              (bist_load                 ),
-        
-        .bist_sdi               (bist_sdi                  ),
-        .bist_shift             (bist_shift                ),
-        .bist_sdo               (bist_sdo_rp               ),
-        
-        .bist_done              (bist_done_rp              ),
-        .bist_error             (bist_error_rp             ),
-        .bist_correct           (bist_correct_rp           ),
-        .bist_error_cnt0        (bist_error_cnt0_rp        ),
-        .bist_error_cnt1        (bist_error_cnt1_rp        ),
-        .bist_error_cnt2        (bist_error_cnt2_rp        ),
-        .bist_error_cnt3        (bist_error_cnt3_rp        )
 
 
    ); 
-//------------- MBIST - 512x32             ----
-
-mbist_wrapper  #(
-	`ifndef SYNTHESIS
-	.BIST_NO_SRAM           (4                      ),
-	.BIST_ADDR_WD           (BIST1_ADDR_WD-2        ),
-	.BIST_DATA_WD           (BIST_DATA_WD           ),
-	.BIST_ADDR_START        (9'h000                 ),
-	.BIST_ADDR_END          (9'h1FB                 ),
-	.BIST_REPAIR_ADDR_START (9'h1FC                 ),
-	.BIST_RAD_WD_I          (BIST1_ADDR_WD-2        ),
-	.BIST_RAD_WD_O          (BIST1_ADDR_WD-2        )
-        `endif
-     ) 
-	     u_mbist (
-
-`ifdef USE_POWER_PINS
-          .vccd1              (vccd1                        ),// User area 1 1.8V supply
-          .vssd1              (vssd1                        ),// User area 1 digital ground
-`endif
-
-     // Clock Skew adjust
-	         .wbd_clk_int        (wbd_clk_mbist1_rp            ), 
-	         .cfg_cska_mbist     (cfg_cska_mbist1_rp           ), 
-	         .wbd_clk_mbist      (wbd_clk_mbist_skew           ),
-
-	// WB I/F
-                  .wb_clk2_i         (wbd_clk_mbist_skew  ),  
-                  .wb_clk_i          (wbd_clk_mbist_skew  ),  
-                  .wb_stb_i          (wbd_mbist_stb_o),  
-	          .wb_cs_i           (wbd_mbist_adr_o[12:11]),
-                  .wb_adr_i          (wbd_mbist_adr_o[BIST1_ADDR_WD-1:2]),  
-                  .wb_we_i           (wbd_mbist_we_o ),  
-                  .wb_dat_i          (wbd_mbist_dat_o),  
-                  .wb_sel_i          (wbd_mbist_sel_o),  
-                  .wb_bl_i           (wbd_mbist_bl_o),  
-                  .wb_bry_i          (wbd_mbist_bry_o),  
-                  .wb_dat_o          (wbd_mbist_dat_i),  
-                  .wb_ack_o          (wbd_mbist_ack_i),  
-                  .wb_lack_o         (wbd_mbist_lack_i),  
-                  .wb_err_o          (                 ), 
-
-	         .rst_n              (bist_rst_n                   ),
-
-	
-	         .bist_en            (bist_en_rp                   ),
-	         .bist_run           (bist_run_rp                  ),
-	         .bist_shift         (bist_shift_rp                ),
-	         .bist_load          (bist_load_rp                 ),
-	         .bist_sdi           (bist_sdi_rp                  ),
-
-	         .bist_error_cnt3    (bist_error_cnt3              ),
-	         .bist_error_cnt2    (bist_error_cnt2              ),
-	         .bist_error_cnt1    (bist_error_cnt1              ),
-	         .bist_error_cnt0    (bist_error_cnt0              ),
-	         .bist_correct       (bist_correct                 ),
-	         .bist_error         (bist_error                   ),
-	         .bist_done          (bist_done                    ),
-	         .bist_sdo           (bist_sdo                     ),
-
-    // towards memory
-    // PORT-A
-          .mem_clk_a          (mem_clk_a                    ),
-          .mem_addr_a0        (mem0_addr_a                  ),
-          .mem_addr_a1        (mem1_addr_a                  ),
-          .mem_addr_a2        (mem2_addr_a                  ),
-          .mem_addr_a3        (mem3_addr_a                  ),
-          .mem_cen_a          (mem_cen_a                    ),
-          .mem_web_a          (mem_web_a                    ),
-          .mem_mask_a0        (mem0_mask_a                  ),
-          .mem_mask_a1        (mem1_mask_a                  ),
-          .mem_mask_a2        (mem2_mask_a                  ),
-          .mem_mask_a3        (mem3_mask_a                  ),
-          .mem_din_a0         (mem0_din_a                   ),
-          .mem_din_a1         (mem1_din_a                   ),
-          .mem_din_a2         (mem2_din_a                   ),
-          .mem_din_a3         (mem3_din_a                   ),
-          .mem_dout_a0        (mem0_dout_a                  ),
-          .mem_dout_a1        (mem1_dout_a                  ),
-          .mem_dout_a2        (mem2_dout_a                  ),
-          .mem_dout_a3        (mem3_dout_a                  ),
-    // PORT-B
-          .mem_clk_b          (mem_clk_b                    ),
-          .mem_cen_b          (mem_cen_b                    ),
-          .mem_addr_b0        (mem0_addr_b                  ),
-          .mem_addr_b1        (mem1_addr_b                  ),
-          .mem_addr_b2        (mem2_addr_b                  ),
-          .mem_addr_b3        (mem3_addr_b                  )
-
-
-);
-
-sky130_sram_2kbyte_1rw1r_32x512_8 u_sram0_2kb(
-`ifdef USE_POWER_PINS
-          .vccd1              (vccd1                        ),// User area 1 1.8V supply
-          .vssd1              (vssd1                        ),// User area 1 digital ground
-`endif
-// Port 0: RW
-          .clk0               (mem_clk_a[0]                 ),
-          .csb0               (mem_cen_a[0]                 ),
-          .web0               (mem_web_a[0]                 ),
-          .wmask0             (mem0_mask_a                  ),
-          .addr0              (mem0_addr_a                  ),
-          .din0               (mem0_din_a                   ),
-          .dout0              (mem0_dout_a                  ),
-// Port 1: R
-          .clk1               (mem_clk_b[0]                 ),
-          .csb1               (mem_cen_b[0]                 ),
-          .addr1              (mem0_addr_b                  ),
-          .dout1              (                             )
-  );
-
-sky130_sram_2kbyte_1rw1r_32x512_8 u_sram1_2kb(
-`ifdef USE_POWER_PINS
-          .vccd1              (vccd1                        ),// User area 1 1.8V supply
-          .vssd1              (vssd1                        ),// User area 1 digital ground
-`endif
-// Port 0: RW
-          .clk0               (mem_clk_a[1]                 ),
-          .csb0               (mem_cen_a[1]                 ),
-          .web0               (mem_web_a[1]                 ),
-          .wmask0             (mem1_mask_a                  ),
-          .addr0              (mem1_addr_a                  ),
-          .din0               (mem1_din_a                   ),
-          .dout0              (mem1_dout_a                  ),
-// Port 1: R
-          .clk1               (mem_clk_b[1]                 ),
-          .csb1               (mem_cen_b[1]                 ),
-          .addr1              (mem1_addr_b                  ),
-          .dout1              (                             )
-  );
-
-sky130_sram_2kbyte_1rw1r_32x512_8 u_sram2_2kb(
-`ifdef USE_POWER_PINS
-          .vccd1              (vccd1                        ),// User area 1 1.8V supply
-          .vssd1              (vssd1                        ),// User area 1 digital ground
-`endif
-// Port 0: RW
-          .clk0               (mem_clk_a[2]                 ),
-          .csb0               (mem_cen_a[2]                 ),
-          .web0               (mem_web_a[2]                 ),
-          .wmask0             (mem2_mask_a                  ),
-          .addr0              (mem2_addr_a                  ),
-          .din0               (mem2_din_a                   ),
-          .dout0              (mem2_dout_a                  ),
-// Port 1: R
-          .clk1               (mem_clk_b[2]                 ),
-          .csb1               (mem_cen_b[2]                 ),
-          .addr1              (mem2_addr_b                  ),
-          .dout1              (                             )
-  );
-
-
-sky130_sram_2kbyte_1rw1r_32x512_8 u_sram3_2kb(
-`ifdef USE_POWER_PINS
-          .vccd1              (vccd1                        ),// User area 1 1.8V supply
-          .vssd1              (vssd1                        ),// User area 1 digital ground
-`endif
-// Port 0: RW
-          .clk0               (mem_clk_a[3]                 ),
-          .csb0               (mem_cen_a[3]                 ),
-          .web0               (mem_web_a[3]                 ),
-          .wmask0             (mem3_mask_a                  ),
-          .addr0              (mem3_addr_a                  ),
-          .din0               (mem3_din_a                   ),
-          .dout0              (mem3_dout_a                  ),
-// Port 1: R
-          .clk1               (mem_clk_b[3]                 ),
-          .csb1               (mem_cen_b[3]                 ),
-          .addr1              (mem3_addr_b                  ),
-          .dout1              (                             )
-  );
-
 
 /***
 sar_adc  u_adc (
diff --git a/verilog/rtl/wb_interconnect/src/wb_interconnect.sv b/verilog/rtl/wb_interconnect/src/wb_interconnect.sv
index ef22d72..7e062f0 100644
--- a/verilog/rtl/wb_interconnect/src/wb_interconnect.sv
+++ b/verilog/rtl/wb_interconnect/src/wb_interconnect.sv
@@ -119,16 +119,6 @@
          input logic		clk_i, 
          input logic            rst_n,
 
-	 input logic  [3:0]     boot_remap, // When remap is enabled
-	                                     // [0] - 0x0000_0000 - 0x0000_07FF Map to MBIST1
-					     // [1] - 0x0000_0800 - 0x0000_0FFF Map to MBIST2
-					     // [2] - 0x0000_1000 - 0x0000_17FF Map to MBIST3
-					     // [3] - 0x0000_1800 - 0x0000_1FFF Map to MBIST4
-	 input logic  [3:0]     dcache_remap, // When dcache remap is enabled, 
-	                                     // [0] - 0x0800_0000 - 0x0800_07FF Map to MBIST1
-					     // [1] - 0x0800_0800 - 0x0800_0FFF Map to MBIST2
-					     // [2] - 0x0800_1000 - 0x0800_17FF Map to MBIST3
-					     // [3] - 0x0800_1800 - 0x0800_1FFF Map to MBIST4
          
          // Master 0 Interface
          input   logic	[31:0]	m0_wbd_dat_i,
@@ -215,22 +205,8 @@
          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,
+         output	logic 	        s2_wbd_stb_o
 
-         // Slave 3 Interface
-	 // MBIST
-         input	logic [31:0]	s3_wbd_dat_i,
-         input	logic 	        s3_wbd_ack_i,
-         input	logic 	        s3_wbd_lack_i,
-         // input	logic 	s3_wbd_err_i,
-         output	logic [31:0]	s3_wbd_dat_o,
-         output	logic [12:0]	s3_wbd_adr_o, 
-         output	logic [3:0]   	s3_wbd_sel_o,
-         output	logic [9:0]   	s3_wbd_bl_o,
-         output	logic    	s3_wbd_bry_o,
-         output	logic 	        s3_wbd_we_o,
-         output	logic 	        s3_wbd_cyc_o,
-         output	logic 	        s3_wbd_stb_o
 	);
 
 ////////////////////////////////////////////////////////////////////
@@ -242,7 +218,6 @@
 parameter TARGET_SPI_REG  = 4'b0000;
 parameter TARGET_UART     = 4'b0001;
 parameter TARGET_PINMUX   = 4'b0010;
-parameter TARGET_MBIST    = 4'b0011;
 
 // WishBone Wr Interface
 typedef struct packed { 
@@ -282,13 +257,11 @@
 type_wb_wr_intf  s0_wb_wr;
 type_wb_wr_intf  s1_wb_wr;
 type_wb_wr_intf  s2_wb_wr;
-type_wb_wr_intf  s3_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_rd_intf  s3_wb_rd;
 
 
 type_wb_wr_intf  m_bus_wr;  // Multiplexed Master I/F
@@ -322,10 +295,6 @@
 // 0x1001_0080 to 0x1001_00BF  - USB
 // 0x1001_00C0 to 0x1001_00FF  - SSPIM
 // 0x1002_0000 to 0x1002_00FF  - PINMUX
-// 0x1003_0000 to 0x1003_07FF  - SRAM-0 (2KB)
-// 0x1003_0800 to 0x1003_0FFF  - SRAM-1 (2KB)
-// 0x1003_1000 to 0x1003_17FF  - SRAM-2 (2KB)
-// 0x1003_1800 to 0x1003_1FFF  - SRAM-3 (2KB)
 // 0x3080_0000 to 0x3080_00FF  - WB HOST (This decoding happens at wb_host block)
 // ---------------------------------------------------------------------------
 //
@@ -333,7 +302,6 @@
                                 (m0_wbd_adr_i[31:16] == 16'h1000  ) ? TARGET_SPI_REG :   // SPI REG
                                 (m0_wbd_adr_i[31:16] == 16'h1001  ) ? TARGET_UART    :   // UART/I2C/USB/SPI
                                 (m0_wbd_adr_i[31:16] == 16'h1002  ) ? TARGET_PINMUX  :   // PINMUX
-                                (m0_wbd_adr_i[31:16] == 16'h1003  ) ? TARGET_MBIST   :   // MBIST
 				4'b0000; 
 
 //------------------------------
@@ -345,54 +313,23 @@
 // 0x1001_0080 to 0x1001_00BF  - USB
 // 0x1001_00C0 to 0x1001_00FF  - SSPIM
 // 0x1002_0000 to 0x1002_00FF  - PINMUX
-// 0x1003_0000 to 0x1003_07FF  - SRAM-0 (2KB)
-// 0x1003_0800 to 0x1003_0FFF  - SRAM-1 (2KB)
-// 0x1003_1000 to 0x1003_17FF  - SRAM-2 (2KB)
-// 0x1003_1800 to 0x1003_1FFF  - SRAM-3 (2KB)
 //-----------------------------
 // 
-wire [3:0] m1_wbd_tid_i     = (boot_remap[0] && m1_wbd_adr_i[31:11] == 21'h0) ? TARGET_MBIST:
-	                      (boot_remap[1] && m1_wbd_adr_i[31:11] == 21'h1) ? TARGET_MBIST:
-	                      (boot_remap[2] && m1_wbd_adr_i[31:11] == 21'h2) ? TARGET_MBIST:
-	                      (boot_remap[3] && m1_wbd_adr_i[31:11] == 21'h3) ? TARGET_MBIST:
-			      (dcache_remap[0] && m1_wbd_adr_i[31:11] == 21'b0000_1000_0000_0000_0000_0) ? TARGET_MBIST:
-	                      (dcache_remap[1] && m1_wbd_adr_i[31:11] == 21'b0000_1000_0000_0000_0000_1) ? TARGET_MBIST:
-	                      (dcache_remap[2] && m1_wbd_adr_i[31:11] == 21'b0000_1000_0000_0000_0001_0) ? TARGET_MBIST:
-	                      (dcache_remap[3] && m1_wbd_adr_i[31:11] == 21'b0000_1000_0000_0000_0001_1) ? TARGET_MBIST:
-	                      (m1_wbd_adr_i[31:28] ==  4'b0000 ) ? TARGET_SPI_MEM :
+wire [3:0] m1_wbd_tid_i     = (m1_wbd_adr_i[31:28] ==  4'b0000 ) ? TARGET_SPI_MEM :
                               (m1_wbd_adr_i[31:16] == 16'h1000 ) ? TARGET_SPI_REG :
                               (m1_wbd_adr_i[31:16] == 16'h1001 ) ? TARGET_UART :
                               (m1_wbd_adr_i[31:16] == 16'h1002 ) ? TARGET_PINMUX : 
-                              (m1_wbd_adr_i[31:16] == 16'h1003 ) ? TARGET_MBIST : 
 			      4'b0000; 
 
-wire [3:0] m2_wbd_tid_i     = (boot_remap[0] && m2_wbd_adr_i[31:11] == 21'h0) ? TARGET_MBIST:
-	                      (boot_remap[1] && m2_wbd_adr_i[31:11] == 21'h1) ? TARGET_MBIST:
-	                      (boot_remap[2] && m2_wbd_adr_i[31:11] == 21'h2) ? TARGET_MBIST:
-	                      (boot_remap[3] && m2_wbd_adr_i[31:11] == 21'h3) ? TARGET_MBIST:
-			      (dcache_remap[0] && m2_wbd_adr_i[31:11] == 21'b0000_1000_0000_0000_0000_0) ? TARGET_MBIST:
-	                      (dcache_remap[1] && m2_wbd_adr_i[31:11] == 21'b0000_1000_0000_0000_0000_1) ? TARGET_MBIST:
-	                      (dcache_remap[2] && m2_wbd_adr_i[31:11] == 21'b0000_1000_0000_0000_0001_0) ? TARGET_MBIST:
-	                      (dcache_remap[3] && m2_wbd_adr_i[31:11] == 21'b0000_1000_0000_0000_0001_1) ? TARGET_MBIST:
-	                      (m2_wbd_adr_i[31:28] ==  4'b0000 ) ? TARGET_SPI_MEM :
+wire [3:0] m2_wbd_tid_i     = (m2_wbd_adr_i[31:28] ==  4'b0000 ) ? TARGET_SPI_MEM :
                               (m2_wbd_adr_i[31:16] == 16'h1000 ) ? TARGET_SPI_REG :
                               (m2_wbd_adr_i[31:16] == 16'h1001 ) ? TARGET_UART : 
                               (m2_wbd_adr_i[31:16] == 16'h1002 ) ? TARGET_PINMUX : 
-                              (m2_wbd_adr_i[31:16] == 16'h1003 ) ? TARGET_MBIST : 
 			      4'b0000; 
-wire [3:0] m3_wbd_tid_i     = (boot_remap[0] && m3_wbd_adr_i[31:11] == 21'h0) ? TARGET_MBIST:
-	                      (boot_remap[1] && m3_wbd_adr_i[31:11] == 21'h1) ? TARGET_MBIST:
-	                      (boot_remap[2] && m3_wbd_adr_i[31:11] == 21'h2) ? TARGET_MBIST:
-	                      (boot_remap[3] && m3_wbd_adr_i[31:11] == 21'h3) ? TARGET_MBIST:
-			      (dcache_remap[0] && m3_wbd_adr_i[31:11] == 21'b0000_1000_0000_0000_0000_0) ? TARGET_MBIST:
-	                      (dcache_remap[1] && m3_wbd_adr_i[31:11] == 21'b0000_1000_0000_0000_0000_1) ? TARGET_MBIST:
-	                      (dcache_remap[2] && m3_wbd_adr_i[31:11] == 21'b0000_1000_0000_0000_0001_0) ? TARGET_MBIST:
-	                      (dcache_remap[3] && m3_wbd_adr_i[31:11] == 21'b0000_1000_0000_0000_0001_1) ? TARGET_MBIST:
-	                      (m3_wbd_adr_i[31:28] ==  4'b0000 ) ? TARGET_SPI_MEM :
+wire [3:0] m3_wbd_tid_i     = (m3_wbd_adr_i[31:28] ==  4'b0000 ) ? TARGET_SPI_MEM :
                               (m3_wbd_adr_i[31:16] == 16'h1000 ) ? TARGET_SPI_REG :
                               (m3_wbd_adr_i[31:16] == 16'h1001 ) ? TARGET_UART : 
                               (m3_wbd_adr_i[31:16] == 16'h1002 ) ? TARGET_PINMUX : 
-                              (m3_wbd_adr_i[31:16] == 16'h1003 ) ? TARGET_MBIST : 
 			      4'b0000; 
 //----------------------------------------
 // Master Mapping
@@ -484,14 +421,6 @@
  assign  s2_wbd_cyc_o =  s2_wb_wr.wbd_cyc ;
  assign  s2_wbd_stb_o =  s2_wb_wr.wbd_stb ;
 
- assign  s3_wbd_dat_o =  s3_wb_wr.wbd_dat[31:0] ;
- assign  s3_wbd_adr_o =  s3_wb_wr.wbd_adr[12:0] ; // MBIST Need 13 bit
- assign  s3_wbd_sel_o =  s3_wb_wr.wbd_sel[3:0] ;
- assign  s3_wbd_bl_o  =  s3_wb_wr.wbd_bl ;
- assign  s3_wbd_bry_o =  s3_wb_wr.wbd_bry ;
- assign  s3_wbd_we_o  =  s3_wb_wr.wbd_we  ;
- assign  s3_wbd_cyc_o =  s3_wb_wr.wbd_cyc ;
- assign  s3_wbd_stb_o =  s3_wb_wr.wbd_stb ;
  
  
  assign s0_wb_rd.wbd_dat   = s0_wbd_dat_i ;
@@ -509,10 +438,6 @@
  assign s2_wb_rd.wbd_lack = s2_wbd_ack_i ;
  assign s2_wb_rd.wbd_err  = 1'b0; // s2_wbd_err_i ; - unused
 
- assign s3_wb_rd.wbd_dat  = s3_wbd_dat_i ;
- assign s3_wb_rd.wbd_ack  = s3_wbd_ack_i ;
- assign s3_wb_rd.wbd_lack = s3_wbd_lack_i ;
- assign s3_wb_rd.wbd_err  = 1'b0; // s3_wbd_err_i ; - unused
 
 //
 // arbitor 
@@ -549,7 +474,6 @@
         4'h0:	   s_bus_rd = s0_wb_rd;
         4'h1:	   s_bus_rd = s1_wb_rd;
         4'h2:	   s_bus_rd = s2_wb_rd;
-        4'h3:	   s_bus_rd = s3_wb_rd;
         default:   s_bus_rd = s0_wb_rd;
      endcase			
 end
@@ -559,7 +483,6 @@
 assign  s0_wb_wr = (s_wbd_tid == 3'b000) ? s_bus_wr : 'h0;
 assign  s1_wb_wr = (s_wbd_tid == 3'b001) ? s_bus_wr : 'h0;
 assign  s2_wb_wr = (s_wbd_tid == 3'b010) ? s_bus_wr : 'h0;
-assign  s3_wb_wr = (s_wbd_tid == 3'b011) ? s_bus_wr : 'h0;
 
 // Connect Slave to Master
 assign  m0_wb_rd = (gnt == 2'b00) ? m_bus_rd : 'h0;
diff --git a/verilog/rtl/yifive/ycr1c b/verilog/rtl/yifive/ycr1c
index defc5ce..e61495a 160000
--- a/verilog/rtl/yifive/ycr1c
+++ b/verilog/rtl/yifive/ycr1c
@@ -1 +1 @@
-Subproject commit defc5ce7ce231aa0c5944a897a0144f9613944be
+Subproject commit e61495abf5c9236e00da7d2ef1f39a7b3451a087
