diff --git a/openlane/spi_master/base.sdc b/openlane/spi_master/base.sdc
index 10ad658..a531c30 100644
--- a/openlane/spi_master/base.sdc
+++ b/openlane/spi_master/base.sdc
@@ -53,15 +53,15 @@
 set spi_input_delay_value  [expr $::env(SPI_CLOCK_PERIOD) * 0.6]
 set spi_output_delay_value [expr $::env(SPI_CLOCK_PERIOD) * 0.6]
 
-set_input_delay  6   -max -clock [get_clocks $::env(SPI_CLOCK_PORT)] [get_port io_in[5]]
-set_input_delay  6   -max -clock [get_clocks $::env(SPI_CLOCK_PORT)] [get_port io_in[4]]
 set_input_delay  6   -max -clock [get_clocks $::env(SPI_CLOCK_PORT)] [get_port io_in[3]]
 set_input_delay  6   -max -clock [get_clocks $::env(SPI_CLOCK_PORT)] [get_port io_in[2]]
+set_input_delay  6   -max -clock [get_clocks $::env(SPI_CLOCK_PORT)] [get_port io_in[1]]
+set_input_delay  6   -max -clock [get_clocks $::env(SPI_CLOCK_PORT)] [get_port io_in[0]]
 
-set_input_delay  0   -min -clock [get_clocks $::env(SPI_CLOCK_PORT)] [get_port io_in[5]]
-set_input_delay  0   -min -clock [get_clocks $::env(SPI_CLOCK_PORT)] [get_port io_in[4]]
 set_input_delay  0   -min -clock [get_clocks $::env(SPI_CLOCK_PORT)] [get_port io_in[3]]
 set_input_delay  0   -min -clock [get_clocks $::env(SPI_CLOCK_PORT)] [get_port io_in[2]]
+set_input_delay  0   -min -clock [get_clocks $::env(SPI_CLOCK_PORT)] [get_port io_in[1]]
+set_input_delay  0   -min -clock [get_clocks $::env(SPI_CLOCK_PORT)] [get_port io_in[0]]
 
 #io_out[0] is spiclcok
 #set_output_delay $wb_output_delay_value  -clock [get_clocks $::env(SPI_CLOCK_PORT)] [get_port io_out[0]]
diff --git a/openlane/user_project_wrapper/gen_pdn.tcl b/openlane/user_project_wrapper/gen_pdn.tcl
new file mode 100644
index 0000000..74d61c4
--- /dev/null
+++ b/openlane/user_project_wrapper/gen_pdn.tcl
@@ -0,0 +1,34 @@
+read_lef $::env(MERGED_LEF_UNPADDED)
+read_def $::env(CURRENT_DEF)
+
+set ::env(_SPACING) 1.7
+set ::env(_WIDTH) 3
+
+set power_domains [list {vccd1 vssd1 1} {vccd2 vssd2 0} {vdda1 vssa1 0} {vdda2 vssa2 0}]
+
+set ::env(_VDD_NET_NAME) vccd1
+set ::env(_GND_NET_NAME) vssd1
+set ::env(_WITH_STRAPS) 1
+set ::env(_V_OFFSET) 14
+set ::env(_H_OFFSET) $::env(_V_OFFSET)
+set ::env(_V_PITCH) 80
+set ::env(_H_PITCH) 80
+set ::env(_V_PDN_OFFSET) 0
+set ::env(_H_PDN_OFFSET) 0
+
+foreach domain $power_domains {
+	set ::env(_VDD_NET_NAME) [lindex $domain 0]
+	set ::env(_GND_NET_NAME) [lindex $domain 1]
+	set ::env(_WITH_STRAPS)  [lindex $domain 2]
+
+	pdngen $::env(PDN_CFG) -verbose
+
+	set ::env(_V_OFFSET) \
+		[expr $::env(_V_OFFSET) + 2*($::env(_WIDTH)+$::env(_SPACING))]
+	set ::env(_H_OFFSET) \
+		[expr $::env(_H_OFFSET) + 2*($::env(_WIDTH)+$::env(_SPACING))]
+	set ::env(_V_PDN_OFFSET) [expr $::env(_V_PDN_OFFSET)+6*$::env(_WIDTH)]
+	set ::env(_H_PDN_OFFSET) [expr $::env(_H_PDN_OFFSET)+6*$::env(_WIDTH)]
+}
+
+write_def $::env(SAVE_DEF)
diff --git a/openlane/user_project_wrapper/interactive.tcl b/openlane/user_project_wrapper/interactive.tcl
new file mode 100644
index 0000000..02f4516
--- /dev/null
+++ b/openlane/user_project_wrapper/interactive.tcl
@@ -0,0 +1,218 @@
+#!/usr/bin/tclsh
+# Copyright 2020 Efabless Corporation
+# Copyright 2020 Sylvain Munaut
+#
+# 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.
+
+
+package require openlane;
+
+proc run_floorplan_yifive {args} {
+		puts_info "Running Floorplanning for yifive..."
+		# |----------------------------------------------------|
+		# |----------------   2. FLOORPLAN   ------------------|
+		# |----------------------------------------------------|
+		#
+                set script_dir [file dirname [file normalize [info script]]]
+		# intial fp
+		init_floorplan
+
+
+		# place io
+		if { [info exists ::env(FP_PIN_ORDER_CFG)] } {
+				place_io_ol
+		} else {
+			if { [info exists ::env(FP_CONTEXT_DEF)] && [info exists ::env(FP_CONTEXT_LEF)] } {
+				place_io
+				global_placement_or
+				place_contextualized_io \
+					-lef $::env(FP_CONTEXT_LEF) \
+					-def $::env(FP_CONTEXT_DEF)
+			} else {
+				place_io
+			}
+		}
+
+		apply_def_template
+
+		if { [info exist ::env(EXTRA_LEFS)] } {
+			if { [info exist ::env(MACRO_PLACEMENT_CFG)] } {
+				file copy -force $::env(MACRO_PLACEMENT_CFG) $::env(TMP_DIR)/macro_placement.cfg
+				manual_macro_placement f
+			} else {
+				global_placement_or
+				basic_macro_placement
+			}
+		}
+
+		# tapcell
+		tap_decap_or
+		scrot_klayout -layout $::env(CURRENT_DEF)
+		puts_info "Running pdn_gen for yifive..."
+		# power grid generation
+		#run_power_grid_generation
+		set ::env(SAVE_DEF) [index_file $::env(pdn_tmp_file_tag).def]
+		try_catch openroad -exit $script_dir/gen_pdn.tcl \
+           	|& tee $::env(TERMINAL_OUTPUT) [index_file $::env(pdn_log_file_tag).log 0]
+
+		set_def $::env(SAVE_DEF)
+}
+
+proc run_power_grid_generation {args} {
+	if { [info exists ::env(VDD_NETS)] || [info exists ::env(GND_NETS)] } {
+		# they both must exist and be equal in length
+		# current assumption: they cannot have a common ground
+		if { ! [info exists ::env(VDD_NETS)] || ! [info exists ::env(GND_NETS)] } {
+			puts_err "VDD_NETS and GND_NETS must *both* either be defined or undefined"
+			return -code error
+		}
+	} elseif { [info exists ::env(SYNTH_USE_PG_PINS_DEFINES)] } {
+		set ::env(VDD_NETS) [list]
+		set ::env(GND_NETS) [list]
+		# get the pins that are in $yosys_tmp_file_tag.pg_define.v
+		# that are not in $yosys_result_file_tag.v
+		#
+		set full_pins {*}[extract_pins_from_yosys_netlist $::env(yosys_tmp_file_tag).pg_define.v]
+		puts_info $full_pins
+
+		set non_pg_pins {*}[extract_pins_from_yosys_netlist $::env(yosys_result_file_tag).v]
+		puts_info $non_pg_pins
+
+		# assumes the pins are ordered correctly (e.g., vdd1, vss1, vcc1, vss1, ...)
+		foreach {vdd gnd} $full_pins {
+			if { $vdd ne "" && $vdd ni $non_pg_pins } {
+				lappend ::env(VDD_NETS) $vdd
+			}
+			if { $gnd ne "" && $gnd ni $non_pg_pins } {
+				lappend ::env(GND_NETS) $gnd
+			}
+		}
+	} else {
+		set ::env(VDD_NETS) $::env(VDD_PIN)
+		set ::env(GND_NETS) $::env(GND_PIN)
+	}
+
+	puts_info "Power planning the following nets"
+	puts_info "Power: $::env(VDD_NETS)"
+	puts_info "Ground: $::env(GND_NETS)"
+
+	if { [llength $::env(VDD_NETS)] != [llength $::env(GND_NETS)] } {
+		puts_err "VDD_NETS and GND_NETS must be of equal lengths"
+		return -code error
+	}
+
+	# generate multiple power grids per pair of (VDD,GND)
+	# offseted by WIDTH + SPACING
+	foreach vdd $::env(VDD_NETS) gnd $::env(GND_NETS) {
+		set ::env(VDD_NET) $vdd
+		set ::env(GND_NET) $gnd
+
+		gen_pdn
+
+		set ::env(FP_PDN_ENABLE_RAILS) 0
+
+		# allow failure until open_pdks is up to date...
+		catch {set ::env(FP_PDN_VOFFSET) [expr $::env(FP_PDN_VOFFSET)+$::env(FP_PDN_VWIDTH)+$::env(FP_PDN_VSPACING)]}
+		catch {set ::env(FP_PDN_HOFFSET) [expr $::env(FP_PDN_HOFFSET)+$::env(FP_PDN_HWIDTH)+$::env(FP_PDN_HSPACING)]}
+
+		catch {set ::env(FP_PDN_CORE_RING_VOFFSET) \
+			[expr $::env(FP_PDN_CORE_RING_VOFFSET)\
+			+2*($::env(FP_PDN_CORE_RING_VWIDTH)\
+			+max($::env(FP_PDN_CORE_RING_VSPACING), $::env(FP_PDN_CORE_RING_HSPACING)))]}
+		catch {set ::env(FP_PDN_CORE_RING_HOFFSET) [expr $::env(FP_PDN_CORE_RING_HOFFSET)\
+			+2*($::env(FP_PDN_CORE_RING_HWIDTH)+\
+			max($::env(FP_PDN_CORE_RING_VSPACING), $::env(FP_PDN_CORE_RING_HSPACING)))]}
+	}
+	set ::env(FP_PDN_ENABLE_RAILS) 1
+}
+
+proc run_flow {args} {
+       set script_dir [file dirname [file normalize [info script]]]
+
+		set options {
+		{-design required}
+		{-save_path optional}
+		{-no_lvs optional}
+	    {-no_drc optional}
+	    {-no_antennacheck optional}
+	}
+	set flags {-save}
+	parse_key_args "run_flow" args arg_values $options flags_map $flags -no_consume
+
+	prep {*}$args
+
+	run_synthesis
+	run_floorplan_yifive
+	run_placement
+	run_cts
+	run_routing
+
+	if { ($::env(DIODE_INSERTION_STRATEGY) == 2) || ($::env(DIODE_INSERTION_STRATEGY) == 5) } {
+		run_antenna_check
+		heal_antenna_violators; # modifies the routed DEF
+	}
+
+    if { $::env(LVS_INSERT_POWER_PINS) } {
+		write_powered_verilog
+		set_netlist $::env(lvs_result_file_tag).powered.v
+    }
+
+	run_magic
+
+	run_klayout
+
+	run_klayout_gds_xor
+
+	if { ! [info exists flags_map(-no_lvs)] } {
+		run_magic_spice_export
+	}
+
+	if {  [info exists flags_map(-save) ] } {
+		if { ! [info exists arg_values(-save_path)] } {
+			set arg_values(-save_path) ""
+		}
+		save_views 	-lef_path $::env(magic_result_file_tag).lef \
+			-def_path $::env(tritonRoute_result_file_tag).def \
+			-gds_path $::env(magic_result_file_tag).gds \
+			-mag_path $::env(magic_result_file_tag).mag \
+			-maglef_path $::env(magic_result_file_tag).lef.mag \
+			-spice_path $::env(magic_result_file_tag).spice \
+			-verilog_path $::env(CURRENT_NETLIST) \
+			-save_path $arg_values(-save_path) \
+			-tag $::env(RUN_TAG)
+	}
+
+	# Physical verification
+	if { ! [info exists flags_map(-no_lvs)] } {
+		run_lvs; # requires run_magic_spice_export
+	}
+
+	if { ! [info exists flags_map(-no_drc)] } {
+		run_magic_drc
+		run_klayout_drc
+	}
+
+	if {  ! [info exists flags_map(-no_antennacheck) ] } {
+		run_antenna_check
+	}
+
+	run_lef_cvc
+
+	calc_total_runtime
+	generate_final_summary_report
+
+	puts_success "Flow Completed Without Fatal Errors."
+
+}
+
+run_flow {*}$argv
diff --git a/openlane/user_project_wrapper/mod.tcl b/openlane/user_project_wrapper/mod.tcl
new file mode 100644
index 0000000..0e97ab8
--- /dev/null
+++ b/openlane/user_project_wrapper/mod.tcl
@@ -0,0 +1,73 @@
+# 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>
+
+
+set ::env(LIB_FASTEST) "$::env(PDK_ROOT)/sky130A/libs.ref/sky130_fd_sc_hd/lib/sky130_fd_sc_hd__ff_n40C_1v95.lib"
+set ::env(LIB_SLOWEST) "$::env(PDK_ROOT)/sky130A/libs.ref/sky130_fd_sc_hd/lib/sky130_fd_sc_hd__ss_100C_1v60.lib"
+set ::env(SYNTH_DRIVING_CELL) "sky130_fd_sc_hd__inv_8"
+set ::env(SYNTH_DRIVING_CELL_PIN) "Y"
+set ::env(SYNTH_CAP_LOAD) "17.65"
+set ::env(WIRE_RC_LAYER) "met1"
+
+#To disable empty filler cell black box get created
+#set link_make_black_boxes 0
+
+
+set_cmd_units -time ns -capacitance pF -current mA -voltage V -resistance kOhm -distance um
+define_corners wc bc
+read_liberty -corner bc $::env(LIB_FASTEST)
+read_liberty -corner wc $::env(LIB_SLOWEST)
+
+# Removing the decap and diode
+read_verilog ../../verilog/gl/clk_buf.v  
+link_design  clk_buf
+write_verilog -remove_cells [get_lib_cells {sky130_fd_sc_hd__decap* sky130_fd_sc_hd__fill* sky130_fd_sc_hd__diode_* sky130_ef_sc_hd__fakediode* sky130_fd_sc_hd__tapvpwrvgnd*}] netlist/clk_buf.v
+# Removing the decap and diode
+read_verilog  ../../verilog/gl/clk_skew_adjust.v  
+link_design  clk_skew_adjust
+write_verilog -remove_cells [get_lib_cells {sky130_fd_sc_hd__decap* sky130_fd_sc_hd__fill* sky130_fd_sc_hd__diode_* sky130_ef_sc_hd__fakediode* sky130_fd_sc_hd__tapvpwrvgnd*}] netlist/clk_skew_adjust.v
+
+# Removing the decap and diode
+read_verilog  ../../verilog/gl/glbl_cfg.v  
+link_design  glbl_cfg
+write_verilog -remove_cells [get_lib_cells {sky130_fd_sc_hd__decap* sky130_fd_sc_hd__fill* sky130_fd_sc_hd__diode_* sky130_ef_sc_hd__fakediode* sky130_fd_sc_hd__tapvpwrvgnd*}] netlist/glbl_cfg.v
+
+read_verilog  ../../verilog/gl/sdram.v  
+link_design  sdrc_top
+write_verilog -remove_cells [get_lib_cells {sky130_fd_sc_hd__decap* sky130_fd_sc_hd__fill* sky130_fd_sc_hd__diode_* sky130_ef_sc_hd__fakediode* sky130_fd_sc_hd__tapvpwrvgnd*}] netlist/sdram.v
+
+read_verilog  ../../verilog/gl/spi_master.v 
+link_design  spim_top 
+write_verilog -remove_cells [get_lib_cells {sky130_fd_sc_hd__decap* sky130_fd_sc_hd__fill* sky130_fd_sc_hd__diode_* sky130_ef_sc_hd__fakediode* sky130_fd_sc_hd__tapvpwrvgnd*}] netlist/spi_master.v
+
+read_verilog  ../../verilog/gl/syntacore.v  
+link_design  scr1_top_wb
+write_verilog -remove_cells [get_lib_cells {sky130_fd_sc_hd__decap* sky130_fd_sc_hd__fill* sky130_fd_sc_hd__diode_* sky130_ef_sc_hd__fakediode* sky130_fd_sc_hd__tapvpwrvgnd*}] netlist/syntacore.v
+
+read_verilog  ../../verilog/gl/uart.v  
+link_design  uart_core
+write_verilog -remove_cells [get_lib_cells {sky130_fd_sc_hd__decap* sky130_fd_sc_hd__fill* sky130_fd_sc_hd__diode_* sky130_ef_sc_hd__fakediode* sky130_fd_sc_hd__tapvpwrvgnd*}] netlist/uart.v
+
+read_verilog  ../../verilog/gl/wb_host.v  
+link_design  wb_host
+write_verilog -remove_cells [get_lib_cells {sky130_fd_sc_hd__decap* sky130_fd_sc_hd__fill* sky130_fd_sc_hd__diode_* sky130_ef_sc_hd__fakediode* sky130_fd_sc_hd__tapvpwrvgnd*}] netlist/wb_host.v
+
+read_verilog  ../../verilog/gl/wb_interconnect.v
+link_design  wb_interconnect
+write_verilog -remove_cells [get_lib_cells {sky130_fd_sc_hd__decap* sky130_fd_sc_hd__fill* sky130_fd_sc_hd__diode_* sky130_ef_sc_hd__fakediode* sky130_fd_sc_hd__tapvpwrvgnd*}] netlist/wb_interconnect.v
+
+
+exit
diff --git a/openlane/user_project_wrapper/pdn.tcl b/openlane/user_project_wrapper/pdn.tcl
new file mode 100644
index 0000000..d9bab11
--- /dev/null
+++ b/openlane/user_project_wrapper/pdn.tcl
@@ -0,0 +1,44 @@
+# Power nets
+set ::power_nets $::env(_VDD_NET_NAME)
+set ::ground_nets $::env(_GND_NET_NAME)
+
+set stdcell {
+    name grid
+	core_ring {
+		met5 {width $::env(_WIDTH) spacing $::env(_SPACING) core_offset $::env(_H_OFFSET)}
+		met4 {width $::env(_WIDTH) spacing $::env(_SPACING) core_offset $::env(_V_OFFSET)}
+	}
+	rails {
+	}
+    connect {{met4 met5}}
+}
+
+if { $::env(_WITH_STRAPS) } {
+	dict append stdcell straps {
+	    met4 {width $::env(_WIDTH) pitch $::env(_V_PITCH) offset $::env(_V_PDN_OFFSET)}
+	    met5 {width $::env(_WIDTH) pitch $::env(_H_PITCH) offset $::env(_H_PDN_OFFSET)}
+    }
+}
+
+pdngen::specify_grid stdcell $stdcell
+
+set macro {
+    orient {R0 R180 MX MY R90 R270 MXR90 MYR90}
+    power_pins "vccd1"
+    ground_pins "vssd1"
+    blockages "li1 met1 met2 met3 met4"
+    straps { 
+    } 
+    connect {{met4_PIN_ver met5}}
+}
+
+pdngen::specify_grid macro [subst $macro]
+
+set ::halo 10
+
+# POWER or GROUND #Std. cell rails starting with power or ground rails at the bottom of the core area
+set ::rails_start_with "POWER" ;
+
+# POWER or GROUND #Upper metal stripes starting with power or ground rails at the left/bottom of the core area
+set ::stripes_start_with "POWER" ;
+
diff --git a/signoff/spi_master/final_summary_report.csv b/signoff/spi_master/final_summary_report.csv
index 8d0d32b..099784f 100644
--- a/signoff/spi_master/final_summary_report.csv
+++ b/signoff/spi_master/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/spi_master,spim_top,spi_master,Flow_completed,0h12m59s,0h8m21s,45758.33333333334,0.24,22879.16666666667,33,608.8,5491,0,0,0,0,0,0,0,2,4,-1,0,246103,42258,-0.01,-0.01,0.0,0.0,0.0,-0.01,-0.01,0.0,0.0,0.0,192084576,0.0,17.57,28.06,0.0,-1,-1,5427,5567,901,1041,0,0,0,5491,223,0,184,93,748,126,37,1613,982,921,24,424,2889,0,3313,100.0,10.0,10,AREA 0,4,50,1,100,100,0.55,0,sky130_fd_sc_hd,4,3
+0,/project/openlane/spi_master,spim_top,spi_master,Flow_completed,0h10m24s,0h6m34s,64225.0,0.24,32112.5,47,650.94,7707,0,0,0,0,0,0,0,2,4,-1,0,340960,59901,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,257797329,0.0,27.62,36.77,0.2,-1,-1,7643,7783,1271,1411,0,0,0,7707,242,0,168,95,1009,216,28,2394,1352,1291,25,424,2889,0,3313,100.0,10.0,10,AREA 0,4,50,1,100,100,0.55,0,sky130_fd_sc_hd,4,3
diff --git a/signoff/user_project_wrapper/final_summary_report.csv b/signoff/user_project_wrapper/final_summary_report.csv
index f17a8a9..b025532 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,0h37m42s,0h4m32s,3.3079078455790785,10.2784,1.6539539227895392,0,552.07,17,0,0,0,0,0,0,0,0,1,-1,-1,1189479,3954,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-1,0.0,1.26,4.31,0.72,1.81,-1,848,1466,848,1466,0,0,0,17,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,80,0.55,0,sky130_fd_sc_hd,4,0
+0,/project/openlane/user_project_wrapper,user_project_wrapper,user_project_wrapper,Flow_completed,0h39m39s,0h4m47s,3.3079078455790785,10.2784,1.6539539227895392,0,555.97,17,0,0,0,0,0,0,0,0,1,-1,-1,1189476,3936,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-1,0.0,1.26,4.31,0.72,1.81,-1,848,1466,848,1466,0,0,0,17,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,80,0.55,0,sky130_fd_sc_hd,4,0
diff --git a/verilog/dv/model/s25fl256s.sv b/verilog/dv/model/s25fl256s.sv
index 748f037..7883af3 100644
--- a/verilog/dv/model/s25fl256s.sv
+++ b/verilog/dv/model/s25fl256s.sv
@@ -710,21 +710,21 @@
         // Typical Byte Programming Time
         specparam        tdevice_BP                = 4e8;//tBP
         // Sector Erase Operation
-        specparam        tdevice_SE64              = 650e7;//tSE
+        specparam        tdevice_SE64              = 10e7; // 650e7;//tSE Dinesh A
         // Sector Erase Operation
-        specparam        tdevice_SE256             = 1875e7;//tSE
+        specparam        tdevice_SE256             = 10e7; // 1875e7;//tSE Dinesh A
         // Bulk Erase Operation
         specparam        tdevice_BE                = 330e9;//tBE
         // WRR Cycle Time
-        specparam        tdevice_WRR               = 1; // 2e9;//tW
+        specparam        tdevice_WRR               = 1; // 2e9;//tW Dinesh A
         // Erase Suspend/Erase Resume Time
         specparam        tdevice_ERSSUSP           = 45e6;//tESL
         // Program Suspend/Program Resume Time
-        specparam        tdevice_PRGSUSP           = 1; // 40e6;//
+        specparam        tdevice_PRGSUSP           = 1; // 40e6;// Dinesh A
         // VCC (min) to CS# Low
-        specparam        tdevice_PU                = 1; // 3e8;//tPU
+        specparam        tdevice_PU                = 1; // 3e8;//tPU Dinesh A
         // PPB Erase Time
-        specparam        tdevice_PPBERASE          = 15e9;//
+        specparam        tdevice_PPBERASE          = 1; // 15e9;// Dinesh A
         // Password Unlock Time
         specparam        tdevice_PASSULCK          = 1e6;//
         // Password Unlock to Password Unlock Time
@@ -2932,6 +2932,7 @@
                                                     end
                                                 end
                                                 WByte[i] = Byte_slv;
+						//$display("%m: Loc: %x Byte: %x",i,Byte_slv);
                                             end
 
                                             if (data_cnt > (PageSize+1)*BYTE)
@@ -3955,8 +3956,10 @@
                             begin
                                 if (Viol != 0)
                                     WData[i] = -1;
-                                else
-                                    WData[i] = WByte[i];
+			        else begin
+                                        WData[i] = WByte[i];
+					//$display("%m: Loc: %x WData: %x",i,WData[i]);
+			        end
                             end
                         end
                         else
@@ -5069,6 +5072,7 @@
                         begin
                             new_int = WData[i];
                             old_int = Mem[Addr + i - cnt];
+			    //$display("%m: New Loc: %x New Data: %x Old Data: %x",i,new_int,old_int);
                             if (new_int > -1)
                             begin
                                 new_bit = new_int;
@@ -5109,6 +5113,7 @@
                     for (i=0;i<=wr_cnt;i=i+1)
                     begin
                         Mem[Addr_tmp + i - cnt] = WData[i];
+			//$display("%m => SFLASH WR Address: %x Data: %x",Addr_tmp + i - cnt, WData[i]);
                         if ((Addr_tmp + i) == AddrHi)
                         begin
                             Addr_tmp = AddrLo;
@@ -6035,6 +6040,7 @@
                     if (~EDONE)
                     begin
                         ADDRHILO_SEC(AddrLo, AddrHi, Addr);
+			$display("%m: Sector Erase Address: %x Start: %x End: %x",Addr,AddrLo,AddrHi);
                         for (i=AddrLo;i<=AddrHi;i=i+1)
                         begin
                             Mem[i] = -1;
diff --git a/verilog/dv/risc_boot/risc_boot_tb.v b/verilog/dv/risc_boot/risc_boot_tb.v
index 2cb80c3..169f2a8 100644
--- a/verilog/dv/risc_boot/risc_boot_tb.v
+++ b/verilog/dv/risc_boot/risc_boot_tb.v
@@ -158,7 +158,7 @@
 	   $display("Monitor: Test User Risc Boot Started");
        
 	   // Wait for user risc core to boot up 
-           repeat (35000) @(posedge clock);  
+           repeat (25000) @(posedge clock);  
            tb_uart.uart_init;
            tb_uart.control_setup (uart_data_bit, uart_stop_bits, uart_parity_en, uart_even_odd_parity, 
         	                          uart_stick_parity, uart_timeout, uart_divisor);
@@ -307,7 +307,8 @@
 
    // Quard flash
      s25fl256s #(.mem_file_name("user_uart.hex"),
-	         .otp_file_name("none")) 
+	         .otp_file_name("none"), 
+                 .TimingModel("S25FL512SAGMFI010_F_30pF")) 
 		 u_spi_flash_256mb (
            // Data Inputs/Outputs
        .SI      (mprj_io[32]),
diff --git a/verilog/dv/user_risc_boot/user_risc_boot_tb.v b/verilog/dv/user_risc_boot/user_risc_boot_tb.v
index aa4c71a..5abdac9 100644
--- a/verilog/dv/user_risc_boot/user_risc_boot_tb.v
+++ b/verilog/dv/user_risc_boot/user_risc_boot_tb.v
@@ -155,7 +155,7 @@
 
 
 		// Repeat cycles of 1000 clock edges as needed to complete testbench
-		repeat (30) begin
+		repeat (20) begin
 			repeat (1000) @(posedge clock);
 			// $display("+1000 cycles");
 		end
@@ -374,7 +374,8 @@
 
    // Quard flash
      s25fl256s #(.mem_file_name("user_risc_boot.hex"),
-	         .otp_file_name("none")) 
+	         .otp_file_name("none"),
+                 .TimingModel("S25FL512SAGMFI010_F_30pF")) 
 		 u_spi_flash_256mb (
            // Data Inputs/Outputs
        .SI      (flash_io0),
diff --git a/verilog/dv/user_spi/user_spi_tb.v b/verilog/dv/user_spi/user_spi_tb.v
index 60ad1f9..65371ae 100644
--- a/verilog/dv/user_spi/user_spi_tb.v
+++ b/verilog/dv/user_spi/user_spi_tb.v
@@ -105,7 +105,52 @@
 	reg        test_fail;
 	reg [31:0] read_data;
 
+/*************************************************************
+*  SPI FSM State Control
+*
+*   OPERATION   COMMAND                   SEQUENCE 
+*
+*    ERASE       P4E(0x20)           ->  COMMAND + ADDRESS
+*    ERASE       P8E(0x40)           ->  COMMAND + ADDRESS
+*    ERASE       SE(0xD8)            ->  COMMAND + ADDRESS
+*    ERASE       BE(0x60)            ->  COMMAND + ADDRESS
+*    ERASE       BE(0xC7)            ->  COMMAND 
+*    PROGRAM     PP(0x02)            ->  COMMAND + ADDRESS + Write DATA
+*    PROGRAM     QPP(0x32)           ->  COMMAND + ADDRESS + Write DATA
+*    READ        READ(0x3)           ->  COMMAND + ADDRESS + READ DATA
+*    READ        FAST_READ(0xB)      ->  COMMAND + ADDRESS + DUMMY + READ DATA
+*    READ        DOR (0x3B)          ->  COMMAND + ADDRESS + DUMMY + READ DATA
+*    READ        QOR (0x6B)          ->  COMMAND + ADDRESS + DUMMY + READ DATA
+*    READ        DIOR (0xBB)         ->  COMMAND + ADDRESS + MODE  + READ DATA
+*    READ        QIOR (0xEB)         ->  COMMAND + ADDRESS + MODE  + DUMMY + READ DATA
+*    READ        RDID (0x9F)         ->  COMMAND + READ DATA
+*    READ        READ_ID (0x90)      ->  COMMAND + ADDRESS + READ DATA
+*    WRITE       WREN(0x6)           ->  COMMAND
+*    WRITE       WRDI                ->  COMMAND
+*    STATUS      RDSR(0x05)          ->  COMMAND + READ DATA
+*    STATUS      RCR(0x35)           ->  COMMAND + READ DATA
+*    CONFIG      WRR(0x01)           ->  COMMAND + WRITE DATA
+*    CONFIG      CLSR(0x30)          ->  COMMAND
+*    Power Saving DP(0xB9)           ->  COMMAND
+*    Power Saving RES(0xAB)          ->  COMMAND + READ DATA
+*    OTP          OTPP(0x42)         ->  COMMAND + ADDR+ WRITE DATA
+*    OTP          OTPR(0x4B)         ->  COMMAND + ADDR + DUMMY + READ DATA
+*    ********************************************************************/
+parameter P_FSM_C      = 4'b0000; // Command Phase Only
+parameter P_FSM_CW     = 4'b0001; // Command + Write DATA Phase Only
+parameter P_FSM_CA     = 4'b0010; // Command -> Address Phase Only
 
+parameter P_FSM_CAR    = 4'b0011; // Command -> Address -> Read Data
+parameter P_FSM_CADR   = 4'b0100; // Command -> Address -> Dummy -> Read Data
+parameter P_FSM_CAMR   = 4'b0101; // Command -> Address -> Mode -> Read Data
+parameter P_FSM_CAMDR  = 4'b0110; // Command -> Address -> Mode -> Dummy -> Read Data
+
+parameter P_FSM_CAW    = 4'b0111; // Command -> Address ->Write Data
+parameter P_FSM_CADW   = 4'b1000; // Command -> Address -> DUMMY + Write Data
+
+parameter P_FSM_CDR    = 4'b1001; // COMMAND -> DUMMY -> READ
+parameter P_FSM_CDW    = 4'b1010; // COMMAND -> DUMMY -> WRITE
+parameter P_FSM_CR     = 4'b1011;  // COMMAND -> READ
 
 	// External clock is used by default.  Make this artificially fast for the
 	// simulation.  Normally this would be a slow clock and the digital PLL
@@ -150,8 +195,198 @@
 		test_fail = 0;
 	        repeat (200) @(posedge clock);
 		$display("#############################################");
-		$display("  Testing Direct SPI Memory Read             ");
+		$display("  Read Identification (RDID:0x9F)            ");
 		$display("#############################################");
+                wb_user_core_write('h3080_0004,'h10); // Change the Bank Sel 10
+		wb_user_core_write(32'h1000000C,{15'h0,1'b0,2'b00,2'b00,4'b0001});
+		wb_user_core_write(32'h10000010,{8'h4,2'b00,2'b00,4'b1011,8'h00,8'h9F});
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00190201);
+		$display("#############################################");
+		$display("Testing Direct SPI Memory Read              ");
+		$display(" SPI Mode: Normal/Single Bit                ");
+		$display("Prefetch : 1DW, OPCODE:READ(0x3)            ");
+		$display("SEQ: Command -> Address -> Read Data        ");
+		$display("#############################################");
+                wb_user_core_write('h3080_0004,'h10); // Change the Bank Sel 10
+		wb_user_core_write(32'h10000004,{24'h0,2'b00,2'b00,4'b0001});
+		wb_user_core_write(32'h10000008,{8'h04,2'b00,2'b10,4'h3,8'h00,8'h03});
+                wb_user_core_write('h3080_0004,'h00); // Change the Bank Sel 00
+		wb_user_core_read_check(32'h00000200,read_data,32'h00000093);
+		wb_user_core_read_check(32'h00000204,read_data,32'h00000113);
+		wb_user_core_read_check(32'h00000208,read_data,32'h00000193);
+		wb_user_core_read_check(32'h0000020C,read_data,32'h00000213);
+		wb_user_core_read_check(32'h00000210,read_data,32'h00000293);
+		wb_user_core_read_check(32'h00000214,read_data,32'h00000313);
+		wb_user_core_read_check(32'h00000218,read_data,32'h00000393);
+		wb_user_core_read_check(32'h0000021C,read_data,32'h00000413);
+		wb_user_core_read_check(32'h00000400,read_data,32'h11223737);
+		wb_user_core_read_check(32'h00000404,read_data,32'h300007b7);
+		wb_user_core_read_check(32'h00000408,read_data,32'h34470293);
+		wb_user_core_read_check(32'h0000040C,read_data,32'h22334337);
+		wb_user_core_read_check(32'h00000410,read_data,32'h0057ac23);
+		wb_user_core_read_check(32'h00000414,read_data,32'h45530393);
+		wb_user_core_read_check(32'h00000418,read_data,32'h33445537);
+		wb_user_core_read_check(32'h0000041C,read_data,32'h0077ae23);
+		$display("#############################################");
+		$display("Testing Direct SPI Memory Read              ");
+		$display(" SPI Mode: Normal/Single Bit                ");
+		$display("Prefetch : 1DW, OPCODE:FASTREAD(0xB)        ");
+		$display("SEQ: Command -> Address -> Dummy -> Read Data");
+		$display("#############################################");
+                wb_user_core_write('h3080_0004,'h10); // Change the Bank Sel 10
+		wb_user_core_write(32'h10000004,{24'h0,2'b00,2'b00,4'b0001});
+		wb_user_core_write(32'h10000008,{8'h04,2'b00,2'b10,4'h4,8'h00,8'h0B});
+                wb_user_core_write('h3080_0004,'h00); // Change the Bank Sel 00
+		wb_user_core_read_check(32'h00000200,read_data,32'h00000093);
+		wb_user_core_read_check(32'h00000204,read_data,32'h00000113);
+		wb_user_core_read_check(32'h00000208,read_data,32'h00000193);
+		wb_user_core_read_check(32'h0000020C,read_data,32'h00000213);
+		wb_user_core_read_check(32'h00000210,read_data,32'h00000293);
+		wb_user_core_read_check(32'h00000214,read_data,32'h00000313);
+		wb_user_core_read_check(32'h00000218,read_data,32'h00000393);
+		wb_user_core_read_check(32'h0000021C,read_data,32'h00000413);
+		wb_user_core_read_check(32'h00000400,read_data,32'h11223737);
+		wb_user_core_read_check(32'h00000404,read_data,32'h300007b7);
+		wb_user_core_read_check(32'h00000408,read_data,32'h34470293);
+		wb_user_core_read_check(32'h0000040C,read_data,32'h22334337);
+		wb_user_core_read_check(32'h00000410,read_data,32'h0057ac23);
+		wb_user_core_read_check(32'h00000414,read_data,32'h45530393);
+		wb_user_core_read_check(32'h00000418,read_data,32'h33445537);
+		wb_user_core_read_check(32'h0000041C,read_data,32'h0077ae23);
+
+		$display("#############################################");
+		$display("Testing Direct SPI Memory Read              ");
+		$display(" SPI Mode: Dual Mode                        ");
+		$display("Prefetch : 1DW, OPCODE:DOR(0x3B)        ");
+		$display("SEQ: Command -> Address -> Dummy -> Read Data");
+		$display("#############################################");
+                wb_user_core_write('h3080_0004,'h10); // Change the Bank Sel 10
+		wb_user_core_write(32'h10000004,{24'h0,2'b10,2'b01,4'b0001});
+		wb_user_core_write(32'h10000008,{8'h04,2'b00,2'b10,4'h4,8'h00,8'h3B});
+                wb_user_core_write('h3080_0004,'h00); // Change the Bank Sel 00
+		wb_user_core_read_check(32'h00000200,read_data,32'h00000093);
+		wb_user_core_read_check(32'h00000204,read_data,32'h00000113);
+		wb_user_core_read_check(32'h00000208,read_data,32'h00000193);
+		wb_user_core_read_check(32'h0000020C,read_data,32'h00000213);
+		wb_user_core_read_check(32'h00000210,read_data,32'h00000293);
+		wb_user_core_read_check(32'h00000214,read_data,32'h00000313);
+		wb_user_core_read_check(32'h00000218,read_data,32'h00000393);
+		wb_user_core_read_check(32'h0000021C,read_data,32'h00000413);
+		wb_user_core_read_check(32'h00000400,read_data,32'h11223737);
+		wb_user_core_read_check(32'h00000404,read_data,32'h300007b7);
+		wb_user_core_read_check(32'h00000408,read_data,32'h34470293);
+		wb_user_core_read_check(32'h0000040C,read_data,32'h22334337);
+		wb_user_core_read_check(32'h00000410,read_data,32'h0057ac23);
+		wb_user_core_read_check(32'h00000414,read_data,32'h45530393);
+		wb_user_core_read_check(32'h00000418,read_data,32'h33445537);
+		wb_user_core_read_check(32'h0000041C,read_data,32'h0077ae23);
+
+		$display("#############################################");
+		$display("Testing Direct SPI Memory Read with Prefetch");
+		$display(" SPI Mode: Quad                             ");
+		$display("Prefetch : 8DW, OPCODE:URAD READ(0xEB)      ");
+		$display("SEQ: Command -> Address -> Dummy -> Read Data");
+		$display("#############################################");
+                wb_user_core_write('h3080_0004,'h10); // Change the Bank Sel 10
+		wb_user_core_write(32'h10000004,{24'h0,2'b01,2'b10,4'b0001});
+		wb_user_core_write(32'h10000008,{8'h20,2'b01,2'b10,4'h6,8'h00,8'hEB});
+                wb_user_core_write('h3080_0004,'h00); // Change the Bank Sel 00
+		wb_user_core_read_check(32'h00000200,read_data,32'h00000093);
+		wb_user_core_read_check(32'h00000204,read_data,32'h00000113);
+		wb_user_core_read_check(32'h00000208,read_data,32'h00000193);
+		wb_user_core_read_check(32'h0000020C,read_data,32'h00000213);
+		wb_user_core_read_check(32'h00000210,read_data,32'h00000293);
+		wb_user_core_read_check(32'h00000214,read_data,32'h00000313);
+		wb_user_core_read_check(32'h00000218,read_data,32'h00000393);
+		wb_user_core_read_check(32'h0000021C,read_data,32'h00000413);
+		wb_user_core_read_check(32'h00000400,read_data,32'h11223737);
+		wb_user_core_read_check(32'h00000404,read_data,32'h300007b7);
+		wb_user_core_read_check(32'h00000408,read_data,32'h34470293);
+		wb_user_core_read_check(32'h0000040C,read_data,32'h22334337);
+		wb_user_core_read_check(32'h00000410,read_data,32'h0057ac23);
+		wb_user_core_read_check(32'h00000414,read_data,32'h45530393);
+		wb_user_core_read_check(32'h00000418,read_data,32'h33445537);
+		wb_user_core_read_check(32'h0000041C,read_data,32'h0077ae23);
+
+		$display("#############################################");
+		$display("Testing Direct SPI Memory Read with Prefetch:3DW");
+		$display("#############################################");
+                wb_user_core_write('h3080_0004,'h10); // Change the Bank Sel 10
+		wb_user_core_write(32'h10000004,{24'h0,2'b01,2'b10,4'b0001});
+		wb_user_core_write(32'h10000008,{8'hC,2'b01,2'b10,4'h6,8'h00,8'hEB});
+                wb_user_core_write('h3080_0004,'h00); // Change the Bank Sel 00
+		wb_user_core_read_check(32'h00000200,read_data,32'h00000093);
+		wb_user_core_read_check(32'h00000204,read_data,32'h00000113);
+		wb_user_core_read_check(32'h00000208,read_data,32'h00000193);
+		wb_user_core_read_check(32'h0000020C,read_data,32'h00000213);
+		wb_user_core_read_check(32'h00000210,read_data,32'h00000293);
+		wb_user_core_read_check(32'h00000214,read_data,32'h00000313);
+		wb_user_core_read_check(32'h00000218,read_data,32'h00000393);
+		wb_user_core_read_check(32'h0000021C,read_data,32'h00000413);
+		wb_user_core_read_check(32'h00000400,read_data,32'h11223737);
+		wb_user_core_read_check(32'h00000404,read_data,32'h300007b7);
+		wb_user_core_read_check(32'h00000408,read_data,32'h34470293);
+		wb_user_core_read_check(32'h0000040C,read_data,32'h22334337);
+		wb_user_core_read_check(32'h00000410,read_data,32'h0057ac23);
+		wb_user_core_read_check(32'h00000414,read_data,32'h45530393);
+		wb_user_core_read_check(32'h00000418,read_data,32'h33445537);
+		wb_user_core_read_check(32'h0000041C,read_data,32'h0077ae23);
+
+		$display("#############################################");
+		$display("Testing Direct SPI Memory Read with Prefetch:2DW");
+		$display("#############################################");
+                wb_user_core_write('h3080_0004,'h10); // Change the Bank Sel 10
+		wb_user_core_write(32'h10000004,{24'h0,2'b01,2'b10,4'b0001});
+		wb_user_core_write(32'h10000008,{8'h8,2'b01,2'b10,4'h6,8'h00,8'hEB});
+                wb_user_core_write('h3080_0004,'h00); // Change the Bank Sel 00
+		wb_user_core_read_check(32'h00000200,read_data,32'h00000093);
+		wb_user_core_read_check(32'h00000204,read_data,32'h00000113);
+		wb_user_core_read_check(32'h00000208,read_data,32'h00000193);
+		wb_user_core_read_check(32'h0000020C,read_data,32'h00000213);
+		wb_user_core_read_check(32'h00000210,read_data,32'h00000293);
+		wb_user_core_read_check(32'h00000214,read_data,32'h00000313);
+		wb_user_core_read_check(32'h00000218,read_data,32'h00000393);
+		wb_user_core_read_check(32'h0000021C,read_data,32'h00000413);
+		wb_user_core_read_check(32'h00000400,read_data,32'h11223737);
+		wb_user_core_read_check(32'h00000404,read_data,32'h300007b7);
+		wb_user_core_read_check(32'h00000408,read_data,32'h34470293);
+		wb_user_core_read_check(32'h0000040C,read_data,32'h22334337);
+		wb_user_core_read_check(32'h00000410,read_data,32'h0057ac23);
+		wb_user_core_read_check(32'h00000414,read_data,32'h45530393);
+		wb_user_core_read_check(32'h00000418,read_data,32'h33445537);
+		wb_user_core_read_check(32'h0000041C,read_data,32'h0077ae23);
+
+		$display("#############################################");
+		$display("Testing Direct SPI Memory Read with Prefetch:1DW");
+		$display("#############################################");
+                wb_user_core_write('h3080_0004,'h10); // Change the Bank Sel 10
+		wb_user_core_write(32'h10000004,{24'h0,2'b01,2'b10,4'b0001});
+		wb_user_core_write(32'h10000008,{8'h4,2'b01,2'b10,4'h6,8'h00,8'hEB});
+                wb_user_core_write('h3080_0004,'h00); // Change the Bank Sel 00
+		wb_user_core_read_check(32'h00000200,read_data,32'h00000093);
+		wb_user_core_read_check(32'h00000204,read_data,32'h00000113);
+		wb_user_core_read_check(32'h00000208,read_data,32'h00000193);
+		wb_user_core_read_check(32'h0000020C,read_data,32'h00000213);
+		wb_user_core_read_check(32'h00000210,read_data,32'h00000293);
+		wb_user_core_read_check(32'h00000214,read_data,32'h00000313);
+		wb_user_core_read_check(32'h00000218,read_data,32'h00000393);
+		wb_user_core_read_check(32'h0000021C,read_data,32'h00000413);
+		wb_user_core_read_check(32'h00000400,read_data,32'h11223737);
+		wb_user_core_read_check(32'h00000404,read_data,32'h300007b7);
+		wb_user_core_read_check(32'h00000408,read_data,32'h34470293);
+		wb_user_core_read_check(32'h0000040C,read_data,32'h22334337);
+		wb_user_core_read_check(32'h00000410,read_data,32'h0057ac23);
+		wb_user_core_read_check(32'h00000414,read_data,32'h45530393);
+		wb_user_core_read_check(32'h00000418,read_data,32'h33445537);
+		wb_user_core_read_check(32'h0000041C,read_data,32'h0077ae23);
+
+		$display("#############################################");
+		$display("Testing Direct SPI Memory Read with Prefetch:7DW");
+		$display("#############################################");
+                wb_user_core_write('h3080_0004,'h10); // Change the Bank Sel 10
+		wb_user_core_write(32'h10000004,{24'h0,2'b01,2'b10,4'b0001});
+		wb_user_core_write(32'h10000008,{8'h1C,2'b01,2'b10,4'h6,8'h00,8'hEB});
+                wb_user_core_write('h3080_0004,'h00); // Change the Bank Sel 00
 		wb_user_core_read_check(32'h00000200,read_data,32'h00000093);
 		wb_user_core_read_check(32'h00000204,read_data,32'h00000113);
 		wb_user_core_read_check(32'h00000208,read_data,32'h00000193);
@@ -173,7 +408,6 @@
 		$display("  Testing Single Word Indirect SPI Memory Read");
 		$display("#############################################");
                 wb_user_core_write('h3080_0004,'h10); // Change the Bank Sel 10
-
 		wb_user_core_write(32'h1000000C,{15'h0,1'b0,2'b01,2'b10,4'b0001});
 		wb_user_core_write(32'h10000010,{8'h4,2'b01,2'b10,4'b0110,8'h00,8'hEB});
 		wb_user_core_write(32'h10000014,32'h00000200);
@@ -212,6 +446,7 @@
 		$display("#############################################");
 		$display("  Testing Two Word Indirect SPI Memory Read");
 		$display("#############################################");
+                wb_user_core_write('h3080_0004,'h10); // Change the Bank Sel 10
 		wb_user_core_write(32'h1000000C,{15'h0,1'b0,2'b01,2'b10,4'b0001});
 		wb_user_core_write(32'h10000010,{8'h8,2'b01,2'b10,4'b0110,8'h00,8'hEB});
 		wb_user_core_write(32'h10000014,32'h00000200);
@@ -242,6 +477,8 @@
 		$display("#############################################");
 		$display("  Testing Three Word Indirect SPI Memory Read");
 		$display("#############################################");
+                wb_user_core_write('h3080_0004,'h10); // Change the Bank Sel 10
+		wb_user_core_write(32'h1000000C,{15'h0,1'b0,2'b01,2'b10,4'b0001});
 		wb_user_core_write(32'h10000010,{8'hC,2'b01,2'b10,4'b0110,8'h00,8'hEB});
 		wb_user_core_write(32'h10000014,32'h00000200);
 		wb_user_core_read_check(32'h1000001C,read_data,32'h00000093);
@@ -263,6 +500,8 @@
 		$display("#############################################");
 		$display("  Testing Four Word Indirect SPI Memory Read");
 		$display("#############################################");
+                wb_user_core_write('h3080_0004,'h10); // Change the Bank Sel 10
+		wb_user_core_write(32'h1000000C,{15'h0,1'b0,2'b01,2'b10,4'b0001});
 		wb_user_core_write(32'h10000010,{8'h10,2'b01,2'b10,4'b0110,8'h00,8'hEB});
 		wb_user_core_write(32'h10000014,32'h00000200);
 		wb_user_core_read_check(32'h1000001C,read_data,32'h00000093);
@@ -288,6 +527,8 @@
 		$display("#############################################");
 		$display("  Testing Five Word Indirect SPI Memory Read");
 		$display("#############################################");
+                wb_user_core_write('h3080_0004,'h10); // Change the Bank Sel 10
+		wb_user_core_write(32'h1000000C,{15'h0,1'b0,2'b01,2'b10,4'b0001});
 		wb_user_core_write(32'h10000010,{8'h14,2'b01,2'b10,4'b0110,8'h00,8'hEB});
 		wb_user_core_write(32'h10000014,32'h00000200);
 		wb_user_core_read_check(32'h1000001C,read_data,32'h00000093);
@@ -304,6 +545,8 @@
 		$display("#############################################");
 		$display("  Testing Eight Word Indirect SPI Memory Read");
 		$display("#############################################");
+                wb_user_core_write('h3080_0004,'h10); // Change the Bank Sel 10
+		wb_user_core_write(32'h1000000C,{15'h0,1'b0,2'b01,2'b10,4'b0001});
 		wb_user_core_write(32'h10000010,{8'h20,2'b01,2'b10,4'b0110,8'h00,8'hEB});
 		wb_user_core_write(32'h10000014,32'h00000200);
 		wb_user_core_read_check(32'h1000001C,read_data,32'h00000093);
@@ -323,6 +566,464 @@
 		wb_user_core_read_check(32'h1000001C,read_data,32'h45530393);
 		wb_user_core_read_check(32'h1000001C,read_data,32'h33445537);
 		wb_user_core_read_check(32'h1000001C,read_data,32'h0077ae23);
+
+		$display("#############################################");
+		$display("  Sector Erase Command            ");
+		$display("#############################################");
+                wb_user_core_write('h3080_0004,'h10); // Change the Bank Sel 10
+		// WEN COMMAND
+		wb_user_core_write(32'h1000000C,{15'h0,1'b0,2'b00,2'b00,4'b0001});
+		wb_user_core_write(32'h10000010,{8'h0,2'b00,2'b00,4'b0000,8'h00,8'h06});
+		wb_user_core_write(32'h10000018,32'h0);
+                // Sector Erase
+		wb_user_core_write(32'h1000000C,{15'h0,1'b0,2'b00,2'b00,4'b0001});
+		wb_user_core_write(32'h10000010,{8'h0,2'b00,2'b10,4'b0010,8'h00,8'hD8});
+		wb_user_core_write(32'h10000014,32'h00000000);
+		wb_user_core_write(32'h10000018,32'h0);
+
+		// RDSR
+		wb_user_core_write(32'h1000000C,{15'h0,1'b0,2'b00,2'b00,4'b0001});
+		wb_user_core_write(32'h10000010,{8'h4,2'b00,2'b00,4'b1011,8'h00,8'h05});
+		read_data = 32'hFFFF_FFFF;
+		while (read_data[1:0] == 2'b11) begin
+		    wb_user_core_read(32'h1000001C,read_data);
+		    repeat (10) @(posedge clock);
+		end
+
+		$display("#############################################");
+		$display("  Page Write Command Address: 0x00          ");
+		$display("#############################################");
+		// WEN COMMAND
+		wb_user_core_write(32'h1000000C,{15'h0,1'b0,2'b00,2'b00,4'b0001});
+		wb_user_core_write(32'h10000010,{8'h0,2'b00,2'b00,4'b0000,8'h00,8'h06});
+		wb_user_core_write(32'h10000018,32'h0);
+		 // Page Programing
+		wb_user_core_write(32'h1000000C,{15'h0,1'b0,2'b00,2'b00,4'b0001});
+		wb_user_core_write(32'h10000010,{8'hF0,2'b00,2'b10,P_FSM_CAW,8'h00,8'h02});
+		wb_user_core_write(32'h10000014,32'h00000000);
+		wb_user_core_write(32'h10000018,32'h00010000);
+		wb_user_core_write(32'h10000018,32'h00010001);
+		wb_user_core_write(32'h10000018,32'h00010002);
+		wb_user_core_write(32'h10000018,32'h00010003);
+		wb_user_core_write(32'h10000018,32'h00010004);
+		wb_user_core_write(32'h10000018,32'h00010005);
+		wb_user_core_write(32'h10000018,32'h00010006);
+		wb_user_core_write(32'h10000018,32'h00010007);
+		wb_user_core_write(32'h10000018,32'h00010008);
+		wb_user_core_write(32'h10000018,32'h00010009);
+		wb_user_core_write(32'h10000018,32'h00010010);
+		wb_user_core_write(32'h10000018,32'h00010011);
+		wb_user_core_write(32'h10000018,32'h00010012);
+		wb_user_core_write(32'h10000018,32'h00010013);
+		wb_user_core_write(32'h10000018,32'h00010014);
+		wb_user_core_write(32'h10000018,32'h00010015);
+		wb_user_core_write(32'h10000018,32'h00010016);
+		wb_user_core_write(32'h10000018,32'h00010017);
+		wb_user_core_write(32'h10000018,32'h00010018);
+		wb_user_core_write(32'h10000018,32'h00010019);
+		wb_user_core_write(32'h10000018,32'h00010020);
+		wb_user_core_write(32'h10000018,32'h00010021);
+		wb_user_core_write(32'h10000018,32'h00010022);
+		wb_user_core_write(32'h10000018,32'h00010023);
+		wb_user_core_write(32'h10000018,32'h00010024);
+		wb_user_core_write(32'h10000018,32'h00010025);
+		wb_user_core_write(32'h10000018,32'h00010026);
+		wb_user_core_write(32'h10000018,32'h00010027);
+		wb_user_core_write(32'h10000018,32'h00010028);
+		wb_user_core_write(32'h10000018,32'h00010029);
+		wb_user_core_write(32'h10000018,32'h00010030);
+		wb_user_core_write(32'h10000018,32'h00010031);
+		wb_user_core_write(32'h10000018,32'h00010032);
+		wb_user_core_write(32'h10000018,32'h00010033);
+		wb_user_core_write(32'h10000018,32'h00010034);
+		wb_user_core_write(32'h10000018,32'h00010035);
+		wb_user_core_write(32'h10000018,32'h00010036);
+		wb_user_core_write(32'h10000018,32'h00010037);
+		wb_user_core_write(32'h10000018,32'h00010038);
+		wb_user_core_write(32'h10000018,32'h00010039);
+		wb_user_core_write(32'h10000018,32'h00010040);
+		wb_user_core_write(32'h10000018,32'h00010041);
+		wb_user_core_write(32'h10000018,32'h00010042);
+		wb_user_core_write(32'h10000018,32'h00010043);
+		wb_user_core_write(32'h10000018,32'h00010044);
+		wb_user_core_write(32'h10000018,32'h00010045);
+		wb_user_core_write(32'h10000018,32'h00010046);
+		wb_user_core_write(32'h10000018,32'h00010047);
+		wb_user_core_write(32'h10000018,32'h00010048);
+		wb_user_core_write(32'h10000018,32'h00010049);
+		wb_user_core_write(32'h10000018,32'h00010050);
+		wb_user_core_write(32'h10000018,32'h00010051);
+		wb_user_core_write(32'h10000018,32'h00010052);
+		wb_user_core_write(32'h10000018,32'h00010053);
+		wb_user_core_write(32'h10000018,32'h00010054);
+		wb_user_core_write(32'h10000018,32'h00010055);
+		wb_user_core_write(32'h10000018,32'h00010056);
+		wb_user_core_write(32'h10000018,32'h00010057);
+		wb_user_core_write(32'h10000018,32'h00010058);
+		wb_user_core_write(32'h10000018,32'h00010059);
+
+		// RDSR
+		wb_user_core_write(32'h1000000C,{15'h0,1'b0,2'b00,2'b00,4'b0001});
+		wb_user_core_write(32'h10000010,{8'h4,2'b00,2'b00,4'b1011,8'h00,8'h05});
+		read_data = 32'hFFFF_FFFF;
+		while (read_data[1:0] == 2'b11) begin
+		    wb_user_core_read(32'h1000001C,read_data);
+		    repeat (10) @(posedge clock);
+		 end
+
+		$display("#############################################");
+		$display("  Page Read through Direct Access            ");
+		$display("#############################################");
+                wb_user_core_write('h3080_0004,'h00); // Change the Bank Sel 00
+		wb_user_core_read_check(32'h00000000,read_data,32'h00010000);
+		wb_user_core_read_check(32'h00000004,read_data,32'h00010001);
+		wb_user_core_read_check(32'h00000008,read_data,32'h00010002);
+		wb_user_core_read_check(32'h0000000C,read_data,32'h00010003);
+		wb_user_core_read_check(32'h00000010,read_data,32'h00010004);
+		wb_user_core_read_check(32'h00000014,read_data,32'h00010005);
+		wb_user_core_read_check(32'h00000018,read_data,32'h00010006);
+		wb_user_core_read_check(32'h0000001C,read_data,32'h00010007);
+		wb_user_core_read_check(32'h00000020,read_data,32'h00010008);
+		wb_user_core_read_check(32'h00000024,read_data,32'h00010009);
+		wb_user_core_read_check(32'h00000028,read_data,32'h00010010);
+		wb_user_core_read_check(32'h0000002C,read_data,32'h00010011);
+		wb_user_core_read_check(32'h00000030,read_data,32'h00010012);
+		wb_user_core_read_check(32'h00000034,read_data,32'h00010013);
+		wb_user_core_read_check(32'h00000038,read_data,32'h00010014);
+		wb_user_core_read_check(32'h0000003C,read_data,32'h00010015);
+		wb_user_core_read_check(32'h00000040,read_data,32'h00010016);
+		wb_user_core_read_check(32'h00000044,read_data,32'h00010017);
+		wb_user_core_read_check(32'h00000048,read_data,32'h00010018);
+		wb_user_core_read_check(32'h0000004C,read_data,32'h00010019);
+		wb_user_core_read_check(32'h00000050,read_data,32'h00010020);
+		wb_user_core_read_check(32'h00000054,read_data,32'h00010021);
+		wb_user_core_read_check(32'h00000058,read_data,32'h00010022);
+		wb_user_core_read_check(32'h0000005C,read_data,32'h00010023);
+		wb_user_core_read_check(32'h00000060,read_data,32'h00010024);
+		wb_user_core_read_check(32'h00000064,read_data,32'h00010025);
+		wb_user_core_read_check(32'h00000068,read_data,32'h00010026);
+		wb_user_core_read_check(32'h0000006C,read_data,32'h00010027);
+		wb_user_core_read_check(32'h00000070,read_data,32'h00010028);
+		wb_user_core_read_check(32'h00000074,read_data,32'h00010029);
+		wb_user_core_read_check(32'h00000078,read_data,32'h00010030);
+		wb_user_core_read_check(32'h0000007C,read_data,32'h00010031);
+		wb_user_core_read_check(32'h00000080,read_data,32'h00010032);
+		wb_user_core_read_check(32'h00000084,read_data,32'h00010033);
+		wb_user_core_read_check(32'h00000088,read_data,32'h00010034);
+		wb_user_core_read_check(32'h0000008C,read_data,32'h00010035);
+		wb_user_core_read_check(32'h00000090,read_data,32'h00010036);
+		wb_user_core_read_check(32'h00000094,read_data,32'h00010037);
+		wb_user_core_read_check(32'h00000098,read_data,32'h00010038);
+		wb_user_core_read_check(32'h0000009C,read_data,32'h00010039);
+		wb_user_core_read_check(32'h000000A0,read_data,32'h00010040);
+		wb_user_core_read_check(32'h000000A4,read_data,32'h00010041);
+		wb_user_core_read_check(32'h000000A8,read_data,32'h00010042);
+		wb_user_core_read_check(32'h000000AC,read_data,32'h00010043);
+		wb_user_core_read_check(32'h000000B0,read_data,32'h00010044);
+		wb_user_core_read_check(32'h000000B4,read_data,32'h00010045);
+		wb_user_core_read_check(32'h000000B8,read_data,32'h00010046);
+		wb_user_core_read_check(32'h000000BC,read_data,32'h00010047);
+		wb_user_core_read_check(32'h000000C0,read_data,32'h00010048);
+		wb_user_core_read_check(32'h000000C4,read_data,32'h00010049);
+		wb_user_core_read_check(32'h000000C8,read_data,32'h00010050);
+		wb_user_core_read_check(32'h000000CC,read_data,32'h00010051);
+		wb_user_core_read_check(32'h000000D0,read_data,32'h00010052);
+		wb_user_core_read_check(32'h000000D4,read_data,32'h00010053);
+		wb_user_core_read_check(32'h000000D8,read_data,32'h00010054);
+		wb_user_core_read_check(32'h000000DC,read_data,32'h00010055);
+		wb_user_core_read_check(32'h000000E0,read_data,32'h00010056);
+		wb_user_core_read_check(32'h000000E4,read_data,32'h00010057);
+		wb_user_core_read_check(32'h000000E8,read_data,32'h00010058);
+		wb_user_core_read_check(32'h000000EC,read_data,32'h00010059);
+
+		repeat (100) @(posedge clock);
+		$display("#############################################");
+		$display("  Page Read through Indirect Access           ");
+		$display("#############################################");
+                wb_user_core_write('h3080_0004,'h10); // Change the Bank Sel 10
+		wb_user_core_write(32'h1000000C,{15'h0,1'b0,2'b01,2'b10,4'b0001});
+		wb_user_core_write(32'h10000010,{8'hF0,2'b01,2'b10,4'b0110,8'h00,8'hEB});
+		wb_user_core_write(32'h10000014,32'h00000000);
+
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010000);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010001);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010002);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010003);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010004);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010005);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010006);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010007);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010008);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010009);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010010);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010011);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010012);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010013);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010014);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010015);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010016);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010017);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010018);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010019);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010020);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010021);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010022);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010023);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010024);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010025);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010026);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010027);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010028);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010029);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010030);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010031);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010032);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010033);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010034);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010035);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010036);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010037);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010038);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010039);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010040);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010041);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010042);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010043);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010044);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010045);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010046);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010047);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010048);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010049);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010050);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010051);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010052);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010053);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010054);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010055);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010056);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010057);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010058);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00010059);
+
+		repeat (100) @(posedge clock);
+		$display("#############################################");
+		$display("  Page Write Command Address: 0x200          ");
+		$display("#############################################");
+                wb_user_core_write('h3080_0004,'h10); // Change the Bank Sel 10
+		// WEN COMMAND
+		wb_user_core_write(32'h1000000C,{15'h0,1'b0,2'b00,2'b00,4'b0001});
+		wb_user_core_write(32'h10000010,{8'h0,2'b00,2'b00,4'b0000,8'h00,8'h06});
+		wb_user_core_write(32'h10000018,32'h0);
+		 // Page Programing
+		wb_user_core_write(32'h1000000C,{15'h0,1'b0,2'b00,2'b00,4'b0001});
+		wb_user_core_write(32'h10000010,{8'hF0,2'b00,2'b10,P_FSM_CAW,8'h00,8'h02});
+		wb_user_core_write(32'h10000014,32'h00000200);
+		wb_user_core_write(32'h10000018,32'h00020000);
+		wb_user_core_write(32'h10000018,32'h00020001);
+		wb_user_core_write(32'h10000018,32'h00020002);
+		wb_user_core_write(32'h10000018,32'h00020003);
+		wb_user_core_write(32'h10000018,32'h00020004);
+		wb_user_core_write(32'h10000018,32'h00020005);
+		wb_user_core_write(32'h10000018,32'h00020006);
+		wb_user_core_write(32'h10000018,32'h00020007);
+		wb_user_core_write(32'h10000018,32'h00020008);
+		wb_user_core_write(32'h10000018,32'h00020009);
+		wb_user_core_write(32'h10000018,32'h00020010);
+		wb_user_core_write(32'h10000018,32'h00020011);
+		wb_user_core_write(32'h10000018,32'h00020012);
+		wb_user_core_write(32'h10000018,32'h00020013);
+		wb_user_core_write(32'h10000018,32'h00020014);
+		wb_user_core_write(32'h10000018,32'h00020015);
+		wb_user_core_write(32'h10000018,32'h00020016);
+		wb_user_core_write(32'h10000018,32'h00020017);
+		wb_user_core_write(32'h10000018,32'h00020018);
+		wb_user_core_write(32'h10000018,32'h00020019);
+		wb_user_core_write(32'h10000018,32'h00020020);
+		wb_user_core_write(32'h10000018,32'h00020021);
+		wb_user_core_write(32'h10000018,32'h00020022);
+		wb_user_core_write(32'h10000018,32'h00020023);
+		wb_user_core_write(32'h10000018,32'h00020024);
+		wb_user_core_write(32'h10000018,32'h00020025);
+		wb_user_core_write(32'h10000018,32'h00020026);
+		wb_user_core_write(32'h10000018,32'h00020027);
+		wb_user_core_write(32'h10000018,32'h00020028);
+		wb_user_core_write(32'h10000018,32'h00020029);
+		wb_user_core_write(32'h10000018,32'h00020030);
+		wb_user_core_write(32'h10000018,32'h00020031);
+		wb_user_core_write(32'h10000018,32'h00020032);
+		wb_user_core_write(32'h10000018,32'h00020033);
+		wb_user_core_write(32'h10000018,32'h00020034);
+		wb_user_core_write(32'h10000018,32'h00020035);
+		wb_user_core_write(32'h10000018,32'h00020036);
+		wb_user_core_write(32'h10000018,32'h00020037);
+		wb_user_core_write(32'h10000018,32'h00020038);
+		wb_user_core_write(32'h10000018,32'h00020039);
+		wb_user_core_write(32'h10000018,32'h00020040);
+		wb_user_core_write(32'h10000018,32'h00020041);
+		wb_user_core_write(32'h10000018,32'h00020042);
+		wb_user_core_write(32'h10000018,32'h00020043);
+		wb_user_core_write(32'h10000018,32'h00020044);
+		wb_user_core_write(32'h10000018,32'h00020045);
+		wb_user_core_write(32'h10000018,32'h00020046);
+		wb_user_core_write(32'h10000018,32'h00020047);
+		wb_user_core_write(32'h10000018,32'h00020048);
+		wb_user_core_write(32'h10000018,32'h00020049);
+		wb_user_core_write(32'h10000018,32'h00020050);
+		wb_user_core_write(32'h10000018,32'h00020051);
+		wb_user_core_write(32'h10000018,32'h00020052);
+		wb_user_core_write(32'h10000018,32'h00020053);
+		wb_user_core_write(32'h10000018,32'h00020054);
+		wb_user_core_write(32'h10000018,32'h00020055);
+		wb_user_core_write(32'h10000018,32'h00020056);
+		wb_user_core_write(32'h10000018,32'h00020057);
+		wb_user_core_write(32'h10000018,32'h00020058);
+		wb_user_core_write(32'h10000018,32'h00020059);
+
+		// RDSR
+		wb_user_core_write(32'h1000000C,{15'h0,1'b0,2'b00,2'b00,4'b0001});
+		wb_user_core_write(32'h10000010,{8'h4,2'b00,2'b00,4'b1011,8'h00,8'h05});
+		read_data = 32'hFFFF_FFFF;
+		while (read_data[1:0] == 2'b11) begin
+		    wb_user_core_read(32'h1000001C,read_data);
+		    repeat (10) @(posedge clock);
+		 end
+
+		$display("#############################################");
+		$display("  Page Read through Direct Access            ");
+		$display("#############################################");
+                wb_user_core_write('h3080_0004,'h00); // Change the Bank Sel 00
+		wb_user_core_read_check(32'h00000200,read_data,32'h00020000);
+		wb_user_core_read_check(32'h00000204,read_data,32'h00020001);
+		wb_user_core_read_check(32'h00000208,read_data,32'h00020002);
+		wb_user_core_read_check(32'h0000020C,read_data,32'h00020003);
+		wb_user_core_read_check(32'h00000210,read_data,32'h00020004);
+		wb_user_core_read_check(32'h00000214,read_data,32'h00020005);
+		wb_user_core_read_check(32'h00000218,read_data,32'h00020006);
+		wb_user_core_read_check(32'h0000021C,read_data,32'h00020007);
+		wb_user_core_read_check(32'h00000220,read_data,32'h00020008);
+		wb_user_core_read_check(32'h00000224,read_data,32'h00020009);
+		wb_user_core_read_check(32'h00000228,read_data,32'h00020010);
+		wb_user_core_read_check(32'h0000022C,read_data,32'h00020011);
+		wb_user_core_read_check(32'h00000230,read_data,32'h00020012);
+		wb_user_core_read_check(32'h00000234,read_data,32'h00020013);
+		wb_user_core_read_check(32'h00000238,read_data,32'h00020014);
+		wb_user_core_read_check(32'h0000023C,read_data,32'h00020015);
+		wb_user_core_read_check(32'h00000240,read_data,32'h00020016);
+		wb_user_core_read_check(32'h00000244,read_data,32'h00020017);
+		wb_user_core_read_check(32'h00000248,read_data,32'h00020018);
+		wb_user_core_read_check(32'h0000024C,read_data,32'h00020019);
+		wb_user_core_read_check(32'h00000250,read_data,32'h00020020);
+		wb_user_core_read_check(32'h00000254,read_data,32'h00020021);
+		wb_user_core_read_check(32'h00000258,read_data,32'h00020022);
+		wb_user_core_read_check(32'h0000025C,read_data,32'h00020023);
+		wb_user_core_read_check(32'h00000260,read_data,32'h00020024);
+		wb_user_core_read_check(32'h00000264,read_data,32'h00020025);
+		wb_user_core_read_check(32'h00000268,read_data,32'h00020026);
+		wb_user_core_read_check(32'h0000026C,read_data,32'h00020027);
+		wb_user_core_read_check(32'h00000270,read_data,32'h00020028);
+		wb_user_core_read_check(32'h00000274,read_data,32'h00020029);
+		wb_user_core_read_check(32'h00000278,read_data,32'h00020030);
+		wb_user_core_read_check(32'h0000027C,read_data,32'h00020031);
+		wb_user_core_read_check(32'h00000280,read_data,32'h00020032);
+		wb_user_core_read_check(32'h00000284,read_data,32'h00020033);
+		wb_user_core_read_check(32'h00000288,read_data,32'h00020034);
+		wb_user_core_read_check(32'h0000028C,read_data,32'h00020035);
+		wb_user_core_read_check(32'h00000290,read_data,32'h00020036);
+		wb_user_core_read_check(32'h00000294,read_data,32'h00020037);
+		wb_user_core_read_check(32'h00000298,read_data,32'h00020038);
+		wb_user_core_read_check(32'h0000029C,read_data,32'h00020039);
+		wb_user_core_read_check(32'h000002A0,read_data,32'h00020040);
+		wb_user_core_read_check(32'h000002A4,read_data,32'h00020041);
+		wb_user_core_read_check(32'h000002A8,read_data,32'h00020042);
+		wb_user_core_read_check(32'h000002AC,read_data,32'h00020043);
+		wb_user_core_read_check(32'h000002B0,read_data,32'h00020044);
+		wb_user_core_read_check(32'h000002B4,read_data,32'h00020045);
+		wb_user_core_read_check(32'h000002B8,read_data,32'h00020046);
+		wb_user_core_read_check(32'h000002BC,read_data,32'h00020047);
+		wb_user_core_read_check(32'h000002C0,read_data,32'h00020048);
+		wb_user_core_read_check(32'h000002C4,read_data,32'h00020049);
+		wb_user_core_read_check(32'h000002C8,read_data,32'h00020050);
+		wb_user_core_read_check(32'h000002CC,read_data,32'h00020051);
+		wb_user_core_read_check(32'h000002D0,read_data,32'h00020052);
+		wb_user_core_read_check(32'h000002D4,read_data,32'h00020053);
+		wb_user_core_read_check(32'h000002D8,read_data,32'h00020054);
+		wb_user_core_read_check(32'h000002DC,read_data,32'h00020055);
+		wb_user_core_read_check(32'h000002E0,read_data,32'h00020056);
+		wb_user_core_read_check(32'h000002E4,read_data,32'h00020057);
+		wb_user_core_read_check(32'h000002E8,read_data,32'h00020058);
+		wb_user_core_read_check(32'h000002EC,read_data,32'h00020059);
+
+		repeat (10) @(posedge clock);
+		$display("#############################################");
+		$display("  Page Read through Indirect Access           ");
+		$display("#############################################");
+                wb_user_core_write('h3080_0004,'h10); // Change the Bank Sel 10
+		wb_user_core_write(32'h1000000C,{15'h0,1'b0,2'b01,2'b10,4'b0001});
+		wb_user_core_write(32'h10000010,{8'hF0,2'b01,2'b10,4'b0110,8'h00,8'hEB});
+		wb_user_core_write(32'h10000014,32'h00000200);
+
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020000);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020001);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020002);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020003);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020004);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020005);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020006);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020007);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020008);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020009);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020010);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020011);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020012);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020013);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020014);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020015);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020016);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020017);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020018);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020019);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020020);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020021);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020022);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020023);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020024);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020025);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020026);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020027);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020028);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020029);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020030);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020031);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020032);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020033);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020034);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020035);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020036);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020037);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020038);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020039);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020040);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020041);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020042);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020043);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020044);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020045);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020046);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020047);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020048);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020049);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020050);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020051);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020052);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020053);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020054);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020055);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020056);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020057);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020058);
+		wb_user_core_read_check(32'h1000001C,read_data,32'h00020059);
+
 		repeat (100) @(posedge clock);
 			// $display("+1000 cycles");
 
@@ -508,7 +1209,8 @@
 
    // Quard flash
      s25fl256s #(.mem_file_name("user_risc_boot.hex"),
-	         .otp_file_name("none")) 
+	         .otp_file_name("none"),
+                 .TimingModel("S25FL512SAGMFI010_F_30pF")) 
 		 u_spi_flash_256mb (
            // Data Inputs/Outputs
        .SI      (flash_io0),
diff --git a/verilog/dv/user_uart/user_uart_tb.v b/verilog/dv/user_uart/user_uart_tb.v
index 10dca8b..3edeaba 100644
--- a/verilog/dv/user_uart/user_uart_tb.v
+++ b/verilog/dv/user_uart/user_uart_tb.v
@@ -190,7 +190,7 @@
    // Remove all the reset
    wb_user_core_write('h3080_0000,'hF);
 
-   repeat (20000) @(posedge clock);  // wait for Processor Get Ready
+   repeat (16000) @(posedge clock);  // wait for Processor Get Ready
    tb_uart.uart_init;
    wb_user_core_write(`ADDR_SPACE_UART+8'h0,{3'h0,2'b00,1'b1,1'b1,1'b1});  
    
@@ -412,7 +412,10 @@
 
 
    // Quard flash
-     s25fl256s #(.mem_file_name("user_uart.hex"),.otp_file_name("none")) u_spi_flash_256mb
+     s25fl256s #(.mem_file_name("user_uart.hex"),
+	         .otp_file_name("none"), 
+                 .TimingModel("S25FL512SAGMFI010_F_30pF")) 
+		 u_spi_flash_256mb
        (
            // Data Inputs/Outputs
        .SI      (flash_io0),
diff --git a/verilog/rtl/spi_master/src/spim_ctrl.sv b/verilog/rtl/spi_master/src/spim_ctrl.sv
index e53a531..42f7a5d 100644
--- a/verilog/rtl/spi_master/src/spim_ctrl.sv
+++ b/verilog/rtl/spi_master/src/spim_ctrl.sv
@@ -178,6 +178,7 @@
 
 parameter P_FSM_CDR    = 4'b1001; // COMMAND -> DUMMY -> READ
 parameter P_FSM_CDW    = 4'b1010; // COMMAND -> DUMMY -> WRITE
+parameter P_FSM_CR     = 4'b1011;  // COMMAND -> READ
 
 //---------------------
   parameter P_8BIT   = 2'b00;
@@ -200,7 +201,6 @@
 
   logic spi_en_rx;
 
-  logic        res_fifo_flush;
 
   logic [15:0] counter_tx;
   logic        counter_tx_valid;
@@ -224,7 +224,6 @@
 
   logic        tx_clk_en;
   logic        rx_clk_en;
-  logic        en_quad_in;
   logic [1:0]  cnt; // counter for cs assertion and de-assertion
   logic [1:0]  nxt_cnt;
   logic [1:0]  gnt;
@@ -239,11 +238,10 @@
   enum logic [2:0] {DATA_NULL,DATA_EMPTY,DATA_CMD,DATA_ADDR,DATA_MODE,DATA_FIFO} ctrl_data_mux;
 
   enum logic [4:0] {FSM_IDLE,FSM_CS_ASSERT,FSM_CMD_PHASE,FSM_ADR_PHASE,FSM_DUMMY_PHASE,FSM_MODE_PHASE,FSM_WRITE_CMD,FSM_WRITE_PHASE,
-	            FSM_READ_WAIT,FSM_READ_PHASE,FSM_TX_DONE,FSM_CS_DEASEERT} state,next_state;
+	            FSM_READ_WAIT,FSM_READ_PHASE,FSM_TX_DONE,FSM_FLUSH,FSM_CS_DEASEERT} state,next_state;
 
  
   assign ctrl_state =  state[3:0];
-  assign en_quad_in = (s_spi_mode == SPI_STD) ? 1'b0 : 1'b1;
 
   assign spi_mode = s_spi_mode;
 
@@ -299,13 +297,12 @@
   // care of partial reading case.
   //---------------------------------------------------------------------------
   
-  assign m0_res_fifo_flush   =  (gnt == 2'b01) ? res_fifo_flush : 1'b0;
-  assign m1_res_fifo_flush   =  (gnt == 2'b10) ? res_fifo_flush : 1'b0;
+  logic  fsm_flush;
+  assign m0_res_fifo_flush   =  (gnt == 2'b01) ? fsm_flush : 1'b0;
+  assign m1_res_fifo_flush   =  (gnt == 2'b10) ? fsm_flush : 1'b0;
 
   assign spi_clock_en =  tx_clk_en |  rx_clk_en;
 
-  logic  fsm_flush;
-  assign fsm_flush  =  (state == FSM_IDLE);
 
   spim_clkgen u_clkgen
   (
@@ -329,8 +326,9 @@
     .sdo1           ( spi_sdo1               ),
     .sdo2           ( spi_sdo2               ),
     .sdo3           ( spi_sdo3               ),
-    .en_quad_in     ( en_quad_in             ),
+    .s_spi_mode     ( s_spi_mode             ),
     .counter_in     ( counter_tx             ),
+    .counter_in_upd ( counter_tx_valid       ),
     .txdata         ( data_to_tx             ),
     .data_valid     ( data_to_tx_valid       ),
     .data_ready     ( tx_data_ready          ),
@@ -348,7 +346,7 @@
     .sdi1           ( spi_sdi1               ),
     .sdi2           ( spi_sdi2               ),
     .sdi3           ( spi_sdi3               ),
-    .en_quad_in     ( en_quad_in             ),
+    .s_spi_mode     ( s_spi_mode             ),
     .counter_in     ( counter_rx             ),
     .counter_in_upd ( counter_rx_valid       ),
     .data           ( res_fifo_wdata         ),
@@ -405,6 +403,7 @@
 
   always_comb
   begin
+    fsm_flush          = 0;
     counter_tx         =  '0;
     counter_tx_valid   = 1'b0;
     counter_rx         =  '0;
@@ -416,7 +415,6 @@
     spi_en_tx          = 1'b0;
     spi_status         =  '0;
     cmd_fifo_rd        = 1'b0;
-    res_fifo_flush     = 0;
     nxt_cnt            = cnt;
     case(state)
       FSM_IDLE:
@@ -430,6 +428,7 @@
 
       // Asserted CS# low
       FSM_CS_ASSERT: begin
+	 fsm_flush=1; // Flush stale data in response fifo
 	 if(cfg_cs_early == cnt) begin
 	     next_state  = FSM_CMD_PHASE;
 	 end else begin
@@ -459,6 +458,7 @@
 	      P_FSM_CADW:  next_state = FSM_ADR_PHASE;
 	      P_FSM_CDR:   next_state = FSM_DUMMY_PHASE;
 	      P_FSM_CDW:   next_state = FSM_DUMMY_PHASE;
+	      P_FSM_CR:    next_state = FSM_READ_WAIT;
 	      default  :   next_state = FSM_TX_DONE;
               endcase
 	  end
@@ -562,7 +562,6 @@
       FSM_READ_WAIT: begin
           spi_en_tx        = 1'b1;
 	  if (tx_done) begin
-              res_fifo_flush  = 1; // Flush any stall data in response fifo
 	      next_state = FSM_READ_PHASE;
 	  end
       end
@@ -574,7 +573,7 @@
           spi_en_rx        = 1'b1;
 	  if(!cmd_fifo_empty) begin
              // If you see new command request, then abort the current request
-	      next_state = FSM_CS_DEASEERT;
+	      next_state = FSM_FLUSH;
 	  end else begin
 	     if (rx_done && spi_rise) begin
 	         next_state = FSM_CS_DEASEERT;
@@ -582,6 +581,13 @@
 	  end
         end
 
+      FSM_FLUSH: begin
+	   fsm_flush = 1;
+	   // Wait for safe SPI-clock de-assertion phase
+	   if(spi_clock_en ==0) begin 
+	         next_state = FSM_CS_DEASEERT;
+	   end
+      end
       // Wait for TX Done
       FSM_TX_DONE: begin
          spi_en_tx        = 1'b1;
@@ -666,7 +672,7 @@
             s_spi_mode <= SPI_STD;
 	end else if(state == FSM_ADR_PHASE && cfg_spi_switch == P_MODE_SWITCH_AT_ADDR) begin
             s_spi_mode <= cfg_spi_mode;
-	end else if(state == FSM_DUMMY_PHASE && cfg_spi_switch == P_MODE_SWITCH_AT_DATA) begin
+	end else if(((state == FSM_READ_PHASE) || state == FSM_WRITE_CMD ) && cfg_spi_switch == P_MODE_SWITCH_AT_DATA) begin
             s_spi_mode <= cfg_spi_mode;
 	end
      end
diff --git a/verilog/rtl/spi_master/src/spim_if.sv b/verilog/rtl/spi_master/src/spim_if.sv
index e8c85e0..d47adcb 100644
--- a/verilog/rtl/spi_master/src/spim_if.sv
+++ b/verilog/rtl/spi_master/src/spim_if.sv
@@ -125,7 +125,8 @@
 // State Machine state
 parameter IDLE       = 4'b000;
 parameter ADR_PHASE  = 4'b001;
-parameter READ_DATA  = 4'b010;
+parameter CMD_WAIT   = 4'b010;
+parameter READ_DATA  = 4'b011;
 
 /*************************************************************
 *  SPI FSM State Control
@@ -187,6 +188,9 @@
 logic                 spim_mem_ack   ;
 logic [3:0]           next_state     ;
 
+logic 	              NextPreDVal    ;
+logic [7:0]	      NextPreDCnt    ;
+logic [31:0]	      NextPreAddr    ;
 
 
   //---------------------------------------------------------------
@@ -266,7 +270,12 @@
    next_state     = state;
    case(state)
    IDLE:  begin
-	if(spim_mem_req && cmd_fifo_empty) begin
+	// Check If any prefetch data available and if see it matched with WB
+	// address, If yes, the move to data reading from response fifo, else 
+	// generate command request
+	if(spim_mem_req && NextPreDVal && (spim_wb_addr == NextPreAddr)) begin
+          next_state = READ_DATA;
+	end else if(spim_mem_req && cmd_fifo_empty) begin
 	   cmd_fifo_wdata = {SOC,NOC,cfg_data_cnt[7:0],cfg_dummy_cnt[1:0],cfg_addr_cnt[1:0],cfg_mem_seq[3:0],cfg_mode_reg[7:0],cfg_cmd_reg[7:0]};
 	   cmd_fifo_wr    = 1;
 	   next_state = ADR_PHASE;
@@ -275,8 +284,13 @@
    ADR_PHASE: begin
           cmd_fifo_wdata = {NOC,EOC,spim_wb_addr[31:0]};
           cmd_fifo_wr      = 1;
-          next_state = READ_DATA;
+          next_state = CMD_WAIT;
    end
+   CMD_WAIT: begin
+	  // Wait for Command Accepted, before reading data
+	  // to take care of staled data being read due to pre-fetch logic
+	  if(cmd_fifo_empty) next_state = READ_DATA;
+    end
 
 
    READ_DATA: begin
@@ -289,7 +303,33 @@
    end
    endcase
 end
+
+/*****************************************************************
+* This logic help to find any pre-fetch data available inside the response
+* FIFO and if the next data read request address matches with NextPreAddr, The read
+* the data from Response FIFO, else generate new request
+* Note: Basic Assumption is cmd_fifo_wr & res_fifo_rd does not occur in same
+* time as it's generation control through FSM
+* **********************************************************/
     
+always_ff @(negedge rst_n or posedge mclk) begin
+    if ( rst_n == 1'b0 ) begin
+	NextPreDVal       <= 1'b0;
+	NextPreDCnt       <= 'h0;
+	NextPreAddr       <= 'h0;
+    end else if(cmd_fifo_wr) begin
+       NextPreDVal    <= 1'b1;
+       NextPreDCnt    <= cfg_data_cnt;
+       NextPreAddr    <= spim_wb_addr;
+    end else if (res_fifo_rd) begin
+	if(NextPreDCnt == 4) begin
+            NextPreDVal <= 1'b0;
+        end else begin
+           NextPreDCnt <= NextPreDCnt-4;
+           NextPreAddr <= NextPreAddr+4;
+        end
+    end
+end
 
 
 endmodule
diff --git a/verilog/rtl/spi_master/src/spim_regs.sv b/verilog/rtl/spi_master/src/spim_regs.sv
index f3fa7e1..545e3b3 100644
--- a/verilog/rtl/spi_master/src/spim_regs.sv
+++ b/verilog/rtl/spi_master/src/spim_regs.sv
@@ -221,6 +221,7 @@
 
 parameter P_FSM_CDR    = 4'b1001; // COMMAND -> DUMMY -> READ
 parameter P_FSM_CDW    = 4'b1010; // COMMAND -> DUMMY -> WRITE
+parameter P_FSM_CR     = 4'b1011;  // COMMAND -> READ
 //---------------------------------------------------------
   parameter P_CS0 = 4'b0001;
   parameter P_CS1 = 4'b0010;
@@ -341,7 +342,7 @@
       cfg_m0_spi_seq[3:0]   <= P_FSM_CAMDR;
       cfg_m0_addr_cnt[1:0]  <= P_24BIT;
       cfg_m0_dummy_cnt[1:0] <= P_16BIT;
-      cfg_m0_data_cnt[7:0]  <= 4; // 4 Byte
+      cfg_m0_data_cnt[7:0]  <= 8'h20; // 32 Byte
 
       cfg_m1_fsm_reset      <= 'h0;
       cfg_m1_cs_reg         <= P_CS0;
@@ -607,74 +608,45 @@
 
    case(state)
    FSM_IDLE:  begin
+        next_cnt      = 0;
 	if(spim_fifo_req && cmd_fifo_empty) begin
 	   case(cfg_m1_spi_seq)
 	      P_FSM_C: begin
 	              cmd_fifo_wdata = {SOC,EOC, cfg_m1_data_cnt[7:0],cfg_m1_dummy_cnt[1:0],
 		                        cfg_m1_addr_cnt[1:0],cfg_m1_spi_seq[3:0],
 					cfg_m1_mode_reg[7:0],cfg_m1_cmd_reg[7:0]};
+	              spim_m1_wrdy = 1;
 	              next_state = FSM_ACK_PHASE;
 	      end
-	      P_FSM_CW: begin
+	      P_FSM_CW, 
+	      P_FSM_CDW:
+	      begin
 	          cmd_fifo_wdata = {SOC,NOC, cfg_m1_data_cnt[7:0],cfg_m1_dummy_cnt[1:0],
 			            cfg_m1_addr_cnt[1:0],cfg_m1_spi_seq[3:0],
 				    cfg_m1_mode_reg[7:0],cfg_m1_cmd_reg[7:0]};
 	          next_state = FSM_WRITE_PHASE;
 	      end
-	      P_FSM_CA: begin
+	      P_FSM_CA, 
+	      P_FSM_CAR, 
+	      P_FSM_CADR,
+	      P_FSM_CAMR, 
+	      P_FSM_CAMDR, 
+	      P_FSM_CAW, 
+	      P_FSM_CADW: 
+	      begin
 	          cmd_fifo_wdata = {SOC,NOC, cfg_m1_data_cnt[7:0],cfg_m1_dummy_cnt[1:0],
 			            cfg_m1_addr_cnt[1:0],cfg_m1_spi_seq[3:0],
 				    cfg_m1_mode_reg[7:0],cfg_m1_cmd_reg[7:0]};
 	          next_state = FSM_ADR_PHASE;
 	      end
-	      P_FSM_CAR: begin
-	          cmd_fifo_wdata = {SOC,NOC, cfg_m1_data_cnt[7:0],cfg_m1_dummy_cnt[1:0],
-			            cfg_m1_addr_cnt[1:0],cfg_m1_spi_seq[3:0],
-				    cfg_m1_mode_reg[7:0],cfg_m1_cmd_reg[7:0]};
-	          next_state = FSM_ADR_PHASE;
-	      end
-              P_FSM_CADR: begin
-	          cmd_fifo_wdata = {SOC,NOC, cfg_m1_data_cnt[7:0],cfg_m1_dummy_cnt[1:0],
-			            cfg_m1_addr_cnt[1:0],cfg_m1_spi_seq[3:0],
-				    cfg_m1_mode_reg[7:0],cfg_m1_cmd_reg[7:0]};
-	          next_state = FSM_ADR_PHASE;
-	      end
-	      P_FSM_CAMR: begin
-	          cmd_fifo_wdata = {SOC,NOC, cfg_m1_data_cnt[7:0],cfg_m1_dummy_cnt[1:0],
-			            cfg_m1_addr_cnt[1:0],cfg_m1_spi_seq[3:0],
-				    cfg_m1_mode_reg[7:0],cfg_m1_cmd_reg[7:0]};
-	          next_state = FSM_ADR_PHASE;
-	      end
-	      P_FSM_CAMDR: begin
-	          cmd_fifo_wdata = {SOC,NOC, cfg_m1_data_cnt[7:0],cfg_m1_dummy_cnt[1:0],
-			            cfg_m1_addr_cnt[1:0],cfg_m1_spi_seq[3:0],
-				    cfg_m1_mode_reg[7:0],cfg_m1_cmd_reg[7:0]};
-	          next_state = FSM_ADR_PHASE;
-	      end
-	      P_FSM_CAW: begin
-	          cmd_fifo_wdata = {SOC,NOC, cfg_m1_data_cnt[7:0],cfg_m1_dummy_cnt[1:0],
-			            cfg_m1_addr_cnt[1:0],cfg_m1_spi_seq[3:0],
-				    cfg_m1_mode_reg[7:0],cfg_m1_cmd_reg[7:0]};
-	          next_state = FSM_ADR_PHASE;
-	      end
-	      P_FSM_CADW: begin
-	          cmd_fifo_wdata = {SOC,NOC, cfg_m1_data_cnt[7:0],cfg_m1_dummy_cnt[1:0],
-			            cfg_m1_addr_cnt[1:0],cfg_m1_spi_seq[3:0],
-				    cfg_m1_mode_reg[7:0],cfg_m1_cmd_reg[7:0]};
-	          next_state = FSM_ADR_PHASE;
-	      end
-	       P_FSM_CDR: begin
+	       P_FSM_CDR,
+	       P_FSM_CR: 
+               begin
 	          cmd_fifo_wdata = {SOC,EOC, cfg_m1_data_cnt[7:0],cfg_m1_dummy_cnt[1:0],
 			            cfg_m1_addr_cnt[1:0],cfg_m1_spi_seq[3:0],
 				    cfg_m1_mode_reg[7:0],cfg_m1_cmd_reg[7:0]};
 	          next_state = FSM_READ_PHASE;
 	       end
-	       P_FSM_CDW: begin
-	          cmd_fifo_wdata = {SOC,NOC, cfg_m1_data_cnt[7:0],cfg_m1_dummy_cnt[1:0],
-			            cfg_m1_addr_cnt[1:0],cfg_m1_spi_seq[3:0],
-				    cfg_m1_mode_reg[7:0],cfg_m1_cmd_reg[7:0]};
-	          next_state = FSM_WRITE_PHASE;
-	       end
 
 
 	   endcase
@@ -688,26 +660,12 @@
 	         P_FSM_CA:   // COMMAND + ADDRESS PHASE
 	         begin
                        cmd_fifo_wdata = {NOC,EOC,cfg_m1_addr[31:0]};
+	               spim_m1_wrdy = 1;
 	               next_state = FSM_ACK_PHASE;
 	         end
-	         P_FSM_CAR:  // COMMAND + ADDRESS + READ PHASE
-		 begin
-                    cmd_fifo_wdata = {NOC,EOC,cfg_m1_addr[31:0]};
-	            next_cnt  = 'h0;
-	            next_state = FSM_READ_PHASE;
-	         end
-                 P_FSM_CADR: // COMMAND + ADDRESS + DUMMY + READ PHASE
-		 begin
-                    cmd_fifo_wdata = {NOC,EOC,cfg_m1_addr[31:0]};
-	            next_cnt  = 'h0;
-	            next_state = FSM_READ_PHASE;
-	         end
-	         P_FSM_CAMR: // COMMAND + ADDRESS + MODE + READ PHASE
-		 begin
-                    cmd_fifo_wdata = {NOC,EOC,cfg_m1_addr[31:0]};
-	            next_cnt  = 'h0;
-	            next_state = FSM_READ_PHASE;
-	         end
+	         P_FSM_CAR,  // COMMAND + ADDRESS + READ PHASE
+                 P_FSM_CADR, // COMMAND + ADDRESS + DUMMY + READ PHASE
+	         P_FSM_CAMR, // COMMAND + ADDRESS + MODE + READ PHASE
 	         P_FSM_CAMDR: // COMMAND + ADDRESS + MODE + DUMMY + READ PHASE
 		 begin
                     cmd_fifo_wdata = {NOC,EOC,cfg_m1_addr[31:0]};
@@ -715,12 +673,9 @@
 	            next_state = FSM_READ_PHASE;
 	         end
 
-		 P_FSM_CAW:begin
-                    cmd_fifo_wdata = {NOC,NOC,cfg_m1_addr[31:0]};
-	            next_cnt  = 'h0;
-	            next_state = FSM_WRITE_PHASE;
-	         end
-		 P_FSM_CADW: begin
+		 P_FSM_CAW,
+		 P_FSM_CADW: 
+		 begin
                     cmd_fifo_wdata = {NOC,NOC,cfg_m1_addr[31:0]};
 	            next_cnt  = 'h0;
 	            next_state = FSM_WRITE_PHASE;
diff --git a/verilog/rtl/spi_master/src/spim_rx.sv b/verilog/rtl/spi_master/src/spim_rx.sv
index 6e183de..47c4922 100644
--- a/verilog/rtl/spi_master/src/spim_rx.sv
+++ b/verilog/rtl/spi_master/src/spim_rx.sv
@@ -77,7 +77,7 @@
     input  logic        sdi1,
     input  logic        sdi2,
     input  logic        sdi3,
-    input  logic        en_quad_in,
+    input  logic [1:0]  s_spi_mode,
     input  logic [15:0] counter_in,
     input  logic        counter_in_upd,
     output logic [31:0] data,
@@ -85,6 +85,16 @@
     output logic        data_valid,
     output logic        clk_en_o
 );
+//------------------------------------------------------
+// Parameter Decleration
+// -----------------------------------------------------
+  parameter P_SINGLE = 2'b00;
+  parameter P_DOUBLE = 2'b01;
+  parameter P_QUAD   = 2'b10;
+
+//------------------------------------------------------
+// Variable Decleration
+// -----------------------------------------------------
 
   logic [31:0] data_int;
   logic [31:0] data_int_next;
@@ -96,7 +106,9 @@
   enum logic [1:0] { IDLE, RECEIVE, WAIT_FIFO, WAIT_FIFO_DONE } rx_CS, rx_NS;
 
 
-  assign reg_done  = (!en_quad_in && (counter[4:0] == 5'b11111)) || (en_quad_in && (counter[2:0] == 3'b111));
+  assign reg_done  = (s_spi_mode == P_SINGLE && (counter[4:0] == 5'b11111)) || 
+	             (s_spi_mode == P_DOUBLE && (counter[3:0] == 4'b1111)) ||
+	             (s_spi_mode == P_QUAD && (counter[2:0] == 3'b111));
 
 
 
@@ -120,23 +132,24 @@
 
         if (rx_edge) begin
           counter_next = counter + 1;
-          if (en_quad_in)
+          if (s_spi_mode == P_QUAD )
              data_int_next = {data_int[27:0],sdi3,sdi2,sdi1,sdi0};
+          else if (s_spi_mode == P_DOUBLE )
+             data_int_next = {data_int[29:0],sdi1,sdi0};
           else
              data_int_next = {data_int[30:0],sdi1};
 
           if (rx_done) begin
-            counter_next = 0;
-            data_valid_i   = 1'b1;
-
-            if (data_ready)
-              rx_NS = IDLE;
-            else
-              rx_NS = WAIT_FIFO_DONE;
+               counter_next = 0;
+	       if (data_ready) begin
+                 data_valid_i   = 1'b1;
+                 rx_NS = IDLE;
+	       end else
+                 rx_NS = WAIT_FIFO_DONE;
           end else if (reg_done) begin
-            data_valid_i = 1'b1;
-
-            if (~data_ready) begin
+	    if (data_ready) begin
+              data_valid_i   = 1'b1;
+            end else begin
               // no space in the FIFO, wait for free space
               rx_NS    = WAIT_FIFO;
             end
@@ -145,15 +158,17 @@
       end
 
       WAIT_FIFO_DONE: begin
-        data_valid_i = 1'b1;
-        if (data_ready)
-          rx_NS = IDLE;
+	  if (data_ready) begin
+             data_valid_i = 1'b1;
+             rx_NS = IDLE;
+	 end
       end
 
       WAIT_FIFO: begin
-        data_valid_i = 1'b1;
-        if (data_ready)
-          rx_NS = RECEIVE;
+	 if (data_ready) begin
+            data_valid_i = 1'b1;
+            rx_NS = RECEIVE;
+	 end
       end
     endcase
   end
@@ -171,7 +186,7 @@
       data         <= 'b0;
       data_valid   <= 1'b0;
       rx_CS        <= IDLE;
-    end else if(flush) begin
+    end else if(flush && rx_edge) begin
         counter      <= 0;
         counter_trgt <= 'h8;
         data_int     <= '0;
@@ -191,7 +206,8 @@
           clk_en_o     <= (rx_NS == RECEIVE);
        end
        if (en && counter_in_upd) begin
-           counter_trgt <= (en_quad_in) ? {2'b00,counter_in[15:2]} : counter_in;
+           counter_trgt <= (s_spi_mode ==P_QUAD )   ? {2'b00,counter_in[15:2]} : 
+		           (s_spi_mode ==P_DOUBLE ) ? {1'b0,counter_in[15:1]} : counter_in;
        end
     end
   end
diff --git a/verilog/rtl/spi_master/src/spim_top.sv b/verilog/rtl/spi_master/src/spim_top.sv
index 515cc18..b1af420 100644
--- a/verilog/rtl/spi_master/src/spim_top.sv
+++ b/verilog/rtl/spi_master/src/spim_top.sv
@@ -34,10 +34,14 @@
 ////               accesss are supported.                         ////
 ////               Upto 255 Byte Read/Write Burst supported       ////
 ////    Limitation:                                               ////
-////       1.  Write/Read FIFO Abort case not managed, expect     ////
-////               user to clearly close the busrt request        ////
+////       1.  Write/Read FIFO Abort case not managed M1 port,    ////
+////           expect user to clearly close the busrt request     ////
 ////       2.  Wishbone Request abort not yet supported.          ////
 ////       3.  Write access through M0 Port not supported         ////
+////       4.  When Pre fetch feature used and both port m0 and   ////
+////           m1 used, user need to make sure that data pre fetch////
+////           count is withing 8DW, less Read path can hang due  ////
+////           to response FIFO full from one master port         ////
 ////                                                              ////
 ////  To Do:                                                      ////
 ////    1. Add support for WishBone request timout                ////
@@ -54,6 +58,14 @@
 ////     V.2  - July 6, 2021                                      ////
 ////            Added Hold fix cell for SPI data out signal to    ////
 ////            met interface hold                                ////
+////     V.3  - July 13, 2021                                     ////
+////            Data Prefetch feature added in M0 port, If Only   ////
+////            M0 Read used, then Prefetch read can be 255 Byte, ////
+////            But if the Both M0 and M1 read access enabled,    ////
+////            then user need to make sure that M0 Prefetch is   ////
+////            with in 8DW or 32 Byte, else there is chance      ////
+////            data path can hang due to response FIFO full due  ////
+////            to partial reading of data                        ////
 ////                                                              ////
 //////////////////////////////////////////////////////////////////////
 ////                                                              ////
@@ -380,7 +392,7 @@
    );
 
  // Master 0 Response FIFO
- spim_fifo #(.W(32), .DP(4)) u_m0_res_fifo (
+ spim_fifo #(.W(32), .DP(8)) u_m0_res_fifo (
 	 .clk                           (mclk                        ),
          .reset_n                       (rst_n                       ),
 	 .flush                         (m0_res_fifo_flush           ),
@@ -409,7 +421,7 @@
          .rd_data                       (m1_cmd_fifo_rdata           )
    );
  // Master 1 Response FIFO
- spim_fifo #(.W(32), .DP(2)) u_m1_res_fifo (
+ spim_fifo #(.W(32), .DP(8)) u_m1_res_fifo (
 	 .clk                           (mclk                        ),
          .reset_n                       (rst_n                       ),
 	 .flush                         (m1_res_fifo_flush           ),
diff --git a/verilog/rtl/spi_master/src/spim_tx.sv b/verilog/rtl/spi_master/src/spim_tx.sv
index b904d33..20c499f 100644
--- a/verilog/rtl/spi_master/src/spim_tx.sv
+++ b/verilog/rtl/spi_master/src/spim_tx.sv
@@ -81,29 +81,43 @@
     output logic        sdo1,           // SPI Dout1
     output logic        sdo2,           // SPI Dout2
     output logic        sdo3,           // SPI Dout3
-    input  logic        en_quad_in,     // SPI quad mode indication
+    input  logic [1:0]  s_spi_mode,     // SPI quad mode indication
     input  logic [15:0] counter_in,     // Transmit counter
+    input  logic        counter_in_upd,
     input  logic [31:0] txdata,         // 32 bit tranmsit data
     input  logic        data_valid,     // Input data valid
     output logic        data_ready,     // Data in acepted, this for txfifo
     output logic        clk_en_o        // Enable Tx clock
 );
 
+//------------------------------------------------------
+// Parameter Decleration
+// -----------------------------------------------------
+  parameter P_SINGLE = 2'b00;
+  parameter P_DOUBLE = 2'b01;
+  parameter P_QUAD   = 2'b10;
+
+//------------------------------------------------------
+// Variable Decleration
+// -----------------------------------------------------
   logic [31:0]          data_int       ; // Data Input
   logic [31:0]          data_int_next  ; // Next Data Input
   logic [15:0]          counter        ; // Tx Counter
   logic [15:0]          counter_next   ; // tx next counter
   logic [15:0]          counter_trgt   ; // counter exit counter
   logic                 tx32b_done     ;  // 32 bit Transmit done
-  logic                 en_quad;
-  logic                 en_quad_next;
+  logic  [1:0]          spi_mode     ;
+  logic  [1:0]          spi_mode_next;
 
   logic                 data_ready_i;     // Data in acepted, this for txfifo
-  enum logic [0:0] { IDLE, TRANSMIT } tx_CS, tx_NS;
+  logic                 next_data_ready_i;// Data in acepted, this for txfifo
+  enum logic [1:0] { IDLE, TRANSMIT,WAIT_FIFO_AVAIL } tx_CS, tx_NS;
 
 
   // Indicate 32 bit data done, usefull for readining next 32b from txfifo
-  assign tx32b_done  = (!en_quad && (counter[4:0] == 5'b11111)) || (en_quad && (counter[2:0] == 3'b111));
+  assign tx32b_done  = (spi_mode == P_SINGLE  && (counter[4:0] == 5'b11111)) || 
+                       (spi_mode == P_DOUBLE  && (counter[3:0] == 4'b1111)) || 
+	               (spi_mode == P_QUAD   && (counter[2:0] == 3'b111));
 
   assign tx_done    = (counter == (counter_trgt-1)) && (tx_CS == TRANSMIT);
 
@@ -114,8 +128,9 @@
     tx_NS         = tx_CS;
     data_int_next = data_int;
     data_ready_i    = 1'b0;
+    next_data_ready_i    = 1'b0;
     counter_next  = counter;
-    en_quad_next  =  en_quad;
+    spi_mode_next  =  spi_mode;
 
     case (tx_CS)
       IDLE: begin
@@ -123,7 +138,7 @@
         counter_next  = '0;
 
         if (en && data_valid) begin
-	  en_quad_next    = en_quad_in;
+	  spi_mode_next    = s_spi_mode;
           data_ready_i    = 1'b1;
           tx_NS         = TRANSMIT;
         end
@@ -134,7 +149,7 @@
                counter_next = 0;
                // Check if there is next data
                if (en && data_valid) begin 
-	         en_quad_next    = en_quad_in;
+	         spi_mode_next    = s_spi_mode;
                  data_int_next = txdata;
                  data_ready_i    = 1'b1;
                  tx_NS         = TRANSMIT;
@@ -143,18 +158,28 @@
                end
          end else if (tx32b_done) begin
                if (en && data_valid) begin
-	         en_quad_next    = en_quad_in;
+	         spi_mode_next    = s_spi_mode;
                  data_int_next = txdata;
-                 data_ready_i    = 1'b1;
+                 next_data_ready_i    = 1'b1;
+                 counter_next = counter + 1;
                  tx_NS         = TRANSMIT;
                end else begin
-                 tx_NS    = IDLE;
+                 tx_NS    = WAIT_FIFO_AVAIL;
                end
            end else begin
               counter_next = counter + 1;
-              data_int_next = (en_quad) ? {data_int[27:0],4'b0000} : {data_int[30:0],1'b0};
+              data_int_next = (spi_mode == P_QUAD   ) ? {data_int[27:0],4'b0000} : 
+		              (spi_mode == P_DOUBLE ) ? {data_int[29:0],2'b00} : {data_int[30:0],1'b0};
            end
       end
+      WAIT_FIFO_AVAIL: begin
+           if (en && data_valid) begin 
+	     spi_mode_next    = s_spi_mode;
+             data_int_next = txdata;
+             data_ready_i    = 1'b1;
+             tx_NS         = TRANSMIT;
+           end 
+        end
     endcase
   end
 
@@ -167,7 +192,6 @@
       counter      <= 0;
       data_int     <= 'h0;
       tx_CS        <= IDLE;
-      en_quad      <= 0;
       sdo0         <= '0;
       sdo1         <= '0;
       sdo2         <= '1;
@@ -175,12 +199,12 @@
       counter_trgt <= '0;
       data_ready   <= '0;
       data_ready_f <= 0;
+      spi_mode     <= P_SINGLE;
     end
-    else if(flush) begin
+    else if(flush && tx_edge) begin
        counter      <= 0;
        data_int     <= 'h0;
        tx_CS        <= IDLE;
-       en_quad      <= 0;
        sdo0         <= '0;
        sdo1         <= '0;
        sdo2         <= '1;
@@ -188,9 +212,10 @@
        counter_trgt <= '0;
        data_ready   <= '0;
        data_ready_f <= 0;
+      spi_mode     <= P_SINGLE;
     end else begin
-       data_ready_f <= data_ready_i;
-       data_ready   <= data_ready_f && !data_ready_i; // Generate Pulse at falling edge
+       data_ready_f <= data_ready_i | next_data_ready_i;
+       data_ready   <= data_ready_f && !(data_ready_i | next_data_ready_i); // Generate Pulse at falling edge
        if(tx_edge) begin
           tx_CS        <= tx_NS;
           counter      <= counter_next;
@@ -198,14 +223,15 @@
        end
        // Counter Exit condition, quad mode div-4 , else actual counter
        if (en && data_ready_i && tx_edge) begin
-	  en_quad      <= en_quad_in;
-          counter_trgt <= (en_quad_in) ? {2'b00,counter_in[15:2]} : counter_in;
+	  spi_mode      <= s_spi_mode;
+          counter_trgt <= (s_spi_mode == P_QUAD )   ? {2'b00,counter_in[15:2]} : 
+		          (s_spi_mode == P_DOUBLE ) ? {1'b0, counter_in[15:1]} :    counter_in;
        end
        if(tx_edge && tx_NS == TRANSMIT) begin
-          sdo0         <= (en_quad_next) ? data_int_next[28] : data_int_next[31];
-          sdo1         <= (en_quad_next) ? data_int_next[29] : 1'b0;
-          sdo2         <= (en_quad_next) ? data_int_next[30] : 1'b1; // Protect
-          sdo3         <= (en_quad_next) ? data_int_next[31] : 1'b1; // Hold need to '1'
+          sdo0         <= (spi_mode_next == P_QUAD) ? data_int_next[28] : (spi_mode_next == P_DOUBLE) ? data_int_next[30] : data_int_next[31];
+          sdo1         <= (spi_mode_next == P_QUAD) ? data_int_next[29] : (spi_mode_next == P_DOUBLE) ? data_int_next[31] :  1'b0;
+          sdo2         <= (spi_mode_next == P_QUAD) ? data_int_next[30] : 1'b1; // Protect
+          sdo3         <= (spi_mode_next == P_QUAD) ? data_int_next[31] : 1'b1; // Hold need to '1'
        end
     end      
   end
