qspim update
diff --git a/openlane/qspim/config.tcl b/openlane/qspim/config.tcl
index 34b0101..d8f77f5 100755
--- a/openlane/qspim/config.tcl
+++ b/openlane/qspim/config.tcl
@@ -74,7 +74,7 @@
set ::env(DIE_AREA) "0 0 400 550"
set ::env(PL_TIME_DRIVEN) 1
-set ::env(PL_TARGET_DENSITY) "0.40"
+set ::env(PL_TARGET_DENSITY) "0.42"
# If you're going to use multiple power domains, then keep this disabled.
set ::env(RUN_CVC) 0
diff --git a/openlane/qspim/pin_order.cfg b/openlane/qspim/pin_order.cfg
index 3ebdd7a..233a7ce 100644
--- a/openlane/qspim/pin_order.cfg
+++ b/openlane/qspim/pin_order.cfg
@@ -44,7 +44,10 @@
spi_sdo\[1\]
spi_sdo\[0\]
spi_clk
-spi_csn0
+spi_csn\[3\]
+spi_csn\[2\]
+spi_csn\[1\]
+spi_csn\[0\]
spi_oen\[3\]
spi_oen\[2\]
spi_oen\[1\]
diff --git a/signoff/pinmux/final_summary_report.csv b/signoff/pinmux/final_summary_report.csv
index b79a2ba..ed3dcac 100644
--- a/signoff/pinmux/final_summary_report.csv
+++ b/signoff/pinmux/final_summary_report.csv
@@ -1,2 +1,2 @@
,design,design_name,config,flow_status,total_runtime,routed_runtime,(Cell/mm^2)/Core_Util,DIEAREA_mm^2,CellPer_mm^2,OpenDP_Util,Peak_Memory_Usage_MB,cell_count,tritonRoute_violations,Short_violations,MetSpc_violations,OffGrid_violations,MinHole_violations,Other_violations,Magic_violations,antenna_violations,lvs_total_errors,cvc_total_errors,klayout_violations,wire_length,vias,wns,pl_wns,optimized_wns,fastroute_wns,spef_wns,tns,pl_tns,optimized_tns,fastroute_tns,spef_tns,HPWL,routing_layer1_pct,routing_layer2_pct,routing_layer3_pct,routing_layer4_pct,routing_layer5_pct,routing_layer6_pct,wires_count,wire_bits,public_wires_count,public_wire_bits,memories_count,memory_bits,processes_count,cells_pre_abc,AND,DFF,NAND,NOR,OR,XOR,XNOR,MUX,inputs,outputs,level,EndCaps,TapCells,Diodes,Total_Physical_Cells,suggested_clock_frequency,suggested_clock_period,CLOCK_PERIOD,SYNTH_STRATEGY,SYNTH_MAX_FANOUT,FP_CORE_UTIL,FP_ASPECT_RATIO,FP_PDN_VPITCH,FP_PDN_HPITCH,PL_TARGET_DENSITY,GLB_RT_ADJUSTMENT,STD_CELL_LIBRARY,CELL_PAD,DIODE_INSERTION_STRATEGY
-0,/project/openlane/pinmux,pinmux,pinmux,flow_completed,0h12m14s,-1,46109.09090909091,0.2475,23054.545454545456,27.06,705.51,5706,0,0,0,0,0,0,-1,1,0,-1,-1,428849,61419,0.0,0.0,-1,0.0,-1,0.0,0.0,-1,0.0,-1,317651391.0,7.2,43.17,33.58,11.33,0.37,-1,3574,8561,543,5529,0,0,0,4202,0,0,0,0,0,0,0,4,1343,1339,16,314,3259,0,3573,90.9090909090909,11,10,AREA 0,4,50,1,100,100,0.3,0.0,sky130_fd_sc_hd,4,4
+0,/project/openlane/pinmux,pinmux,pinmux,flow_completed,0h14m33s,-1,46109.09090909091,0.2475,23054.545454545456,27.06,725.12,5706,0,0,0,0,0,0,-1,1,0,-1,-1,429328,61246,0.0,0.0,-1,0.0,-1,0.0,0.0,-1,0.0,-1,317766216.0,6.39,43.04,33.51,11.97,0.39,-1,3574,8561,543,5529,0,0,0,4202,0,0,0,0,0,0,0,4,1343,1339,16,314,3259,0,3573,90.9090909090909,11,10,AREA 0,4,50,1,100,100,0.3,0.0,sky130_fd_sc_hd,4,4
diff --git a/signoff/qspim/final_summary_report.csv b/signoff/qspim/final_summary_report.csv
index d9f5ae6..48489c6 100644
--- a/signoff/qspim/final_summary_report.csv
+++ b/signoff/qspim/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/qspim,qspim_top,qspim,flow_completed,0h7m58s,-1,64718.181818181816,0.22,32359.090909090908,37.6,697.2,7119,0,0,0,0,0,0,-1,1,0,-1,-1,302344,62936,0.0,-4.31,-1,0.0,-1,0.0,-1696.2,-1,0.0,-1,205083381.0,6.96,34.06,32.84,0.5,1.23,-1,6040,8992,699,3650,0,0,0,6886,0,0,0,0,0,0,0,4,1764,2182,20,388,2940,0,3328,90.9090909090909,11,10,AREA 0,4,50,1,100,100,0.4,0.0,sky130_fd_sc_hd,4,4
+0,/project/openlane/qspim,qspim_top,qspim,flow_completed,0h12m38s,-1,69827.27272727272,0.22,34913.63636363636,40.98,754.58,7681,0,0,0,0,0,0,-1,1,0,-1,-1,362731,71425,0.0,-4.04,-1,0.0,-1,0.0,-2134.37,-1,0.0,-1,233420632.0,13.69,38.63,39.31,3.37,1.13,-1,6480,9736,734,3989,0,0,0,7426,0,0,0,0,0,0,0,4,1895,2312,21,388,2940,0,3328,90.9090909090909,11,10,AREA 0,4,50,1,100,100,0.42,0.0,sky130_fd_sc_hd,4,4
diff --git a/signoff/user_project_wrapper/final_summary_report.csv b/signoff/user_project_wrapper/final_summary_report.csv
index 63019bd..221a94b 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,0h39m39s,-1,2.529576587795766,10.2784,1.264788293897883,-1,530.03,13,0,0,0,0,0,0,-1,0,0,-1,-1,1176087,8118,0.0,-1,-1,0.0,-1,0.0,-1,-1,0.0,-1,-1,40144.36,3.16,3.64,0.41,0.63,-1,271,2532,271,2532,0,0,0,13,0,0,0,0,0,0,0,0,-1,-1,-1,0,0,0,0,90.9090909090909,11,10,AREA 0,5,50,1,180,90,0.55,0.0,sky130_fd_sc_hd,4,0
+0,/project/openlane/user_project_wrapper,user_project_wrapper,user_project_wrapper,flow_completed,0h40m57s,-1,2.529576587795766,10.2784,1.264788293897883,-1,530.45,13,0,0,0,0,0,0,-1,0,0,-1,-1,1176117,8176,0.0,-1,-1,0.0,-1,0.0,-1,-1,0.0,-1,-1,40144.36,3.16,3.65,0.41,0.63,-1,272,2536,272,2536,0,0,0,13,0,0,0,0,0,0,0,0,-1,-1,-1,0,0,0,0,90.9090909090909,11,10,AREA 0,5,50,1,180,90,0.55,0.0,sky130_fd_sc_hd,4,0
diff --git a/verilog/dv/user_basic/user_basic_tb.v b/verilog/dv/user_basic/user_basic_tb.v
index 918149f..47fe0bc 100644
--- a/verilog/dv/user_basic/user_basic_tb.v
+++ b/verilog/dv/user_basic/user_basic_tb.v
@@ -242,8 +242,8 @@
wb_user_core_write('h3080_0000,'h1);
wb_user_core_read_check(32'h30020058,read_data,32'h8273_8343);
- wb_user_core_read_check(32'h3002005C,read_data,32'h1401_2022);
- wb_user_core_read_check(32'h30020060,read_data,32'h0003_0000);
+ wb_user_core_read_check(32'h3002005C,read_data,32'h1501_2022);
+ wb_user_core_read_check(32'h30020060,read_data,32'h0003_1000);
end
diff --git a/verilog/dv/user_spi/user_spi_tb.v b/verilog/dv/user_spi/user_spi_tb.v
index 05d1bdd..137fc2a 100644
--- a/verilog/dv/user_spi/user_spi_tb.v
+++ b/verilog/dv/user_spi/user_spi_tb.v
@@ -83,6 +83,21 @@
`include "uprj_netlists.v"
`include "mt48lc8m8a2.v"
+ // REGISTER MAP
+ `define QSPIM_GLBL_CTRL 32'h10000000
+ `define QSPIM_DMEM_CTRL1 32'h10000004
+ `define QSPIM_DMEM_CTRL2 32'h10000008
+
+ `define QSPIM_DMEM_CS_AMAP 32'h1000000C
+ `define QSPIM_DMEM_CA_AMASK 32'h10000010
+
+ `define QSPIM_IMEM_CTRL1 32'h10000014
+ `define QSPIM_IMEM_CTRL2 32'h10000018
+ `define QSPIM_IMEM_ADDR 32'h1000001C
+ `define QSPIM_IMEM_WDATA 32'h10000020
+ `define QSPIM_IMEM_RDATA 32'h10000024
+ `define QSPIM_SPI_STATUS 32'h10000028
+
module user_spi_tb;
reg clock;
reg wb_rst_i;
@@ -153,10 +168,20 @@
parameter P_FSM_CAW = 4'b0111; // Command -> Address ->Write Data
parameter P_FSM_CADW = 4'b1000; // Command -> Address -> DUMMY + Write Data
+parameter P_FSM_CAMW = 4'b1001; // Command -> Address -> MODE + 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
+parameter P_FSM_CDR = 4'b1010; // COMMAND -> DUMMY -> READ
+parameter P_FSM_CDW = 4'b1011; // COMMAND -> DUMMY -> WRITE
+parameter P_FSM_CR = 4'b1100; // COMMAND -> READ
+
+parameter P_MODE_SWITCH_IDLE = 2'b00;
+parameter P_MODE_SWITCH_AT_ADDR = 2'b01;
+parameter P_MODE_SWITCH_AT_DATA = 2'b10;
+
+parameter P_SINGLE = 2'b00;
+parameter P_DOUBLE = 2'b01;
+parameter P_QUAD = 2'b10;
+parameter P_QDDR = 2'b11;
// External clock is used by default. Make this artificially fast for the
// simulation. Normally this would be a slow clock and the digital PLL
@@ -203,10 +228,10 @@
$display("#############################################");
$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);
+ wb_user_core_write('h3080_0004,'h10); // Change the Bank Sel 10
+ wb_user_core_write(`QSPIM_IMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0000,2'b00,P_SINGLE,P_SINGLE,4'b0001});
+ wb_user_core_write(`QSPIM_IMEM_CTRL2,{8'h4,2'b00,2'b00,P_FSM_CR,8'h00,8'h9F});
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00190201);
$display("#############################################");
$display("Testing Direct SPI Memory Read ");
$display(" SPI Mode: QDDR (Dual 4 bit) ");
@@ -215,8 +240,8 @@
$display("#############################################");
// QDDR Config
wb_user_core_write('h3080_0004,'h10); // Change the Bank Sel 10
- wb_user_core_write(32'h10000004,{24'h0,2'b01,2'b11,4'b0001});
- wb_user_core_write(32'h10000008,{8'h04,2'b01,2'b10,4'h6,8'h00,8'hED});
+ wb_user_core_write(`QSPIM_DMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0100,P_MODE_SWITCH_AT_ADDR,P_QDDR,P_SINGLE,4'b0001});
+ wb_user_core_write(`QSPIM_DMEM_CTRL2,{8'h04,2'b00,2'b10,P_FSM_CAMDR,8'h00,8'hED});
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);
@@ -241,8 +266,8 @@
$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(`QSPIM_DMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0000,P_MODE_SWITCH_IDLE,P_SINGLE,P_SINGLE,4'b0001});
+ wb_user_core_write(`QSPIM_DMEM_CTRL2,{8'h04,2'b00,2'b10,P_FSM_CAR,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);
@@ -267,8 +292,8 @@
$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(`QSPIM_DMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0000,P_MODE_SWITCH_IDLE,P_SINGLE,P_SINGLE,4'b0001});
+ wb_user_core_write(`QSPIM_DMEM_CTRL2,{8'h04,2'b00,2'b10,P_FSM_CADR,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);
@@ -294,8 +319,8 @@
$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(`QSPIM_DMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0000,P_MODE_SWITCH_AT_DATA,P_DOUBLE,P_SINGLE,4'b0001});
+ wb_user_core_write(`QSPIM_DMEM_CTRL2,{8'h04,2'b00,2'b10,P_FSM_CADR,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);
@@ -321,8 +346,8 @@
$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(`QSPIM_DMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0001,P_MODE_SWITCH_AT_ADDR,P_QUAD,P_SINGLE,4'b0001});
+ wb_user_core_write(`QSPIM_DMEM_CTRL2,{8'h20,2'b00,2'b10,P_FSM_CAMDR,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);
@@ -345,8 +370,8 @@
$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(`QSPIM_DMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0001,P_MODE_SWITCH_AT_ADDR,P_QUAD,P_SINGLE,4'b0001});
+ wb_user_core_write(`QSPIM_DMEM_CTRL2,{8'hC,2'b00,2'b10,P_FSM_CAMDR,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);
@@ -369,8 +394,8 @@
$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(`QSPIM_DMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0001,P_MODE_SWITCH_AT_ADDR,P_QUAD,P_SINGLE,4'b0001});
+ wb_user_core_write(`QSPIM_DMEM_CTRL2,{8'h8,2'b00,2'b10,P_FSM_CAMDR,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);
@@ -394,8 +419,8 @@
$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(`QSPIM_DMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0001,P_MODE_SWITCH_AT_ADDR,P_QUAD,P_SINGLE,4'b0001});
+ wb_user_core_write(`QSPIM_DMEM_CTRL2,{8'h4,2'b00,2'b10,P_FSM_CAMDR,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);
@@ -418,8 +443,8 @@
$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(`QSPIM_DMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0001,P_MODE_SWITCH_AT_ADDR,P_QUAD,P_SINGLE,4'b0001});
+ wb_user_core_write(`QSPIM_DMEM_CTRL2,{8'h1C,2'b00,2'b10,P_FSM_CAMDR,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);
@@ -442,185 +467,185 @@
$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);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000093);
- wb_user_core_write(32'h10000014,32'h00000204);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000113);
- wb_user_core_write(32'h10000014,32'h00000208);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000193);
- wb_user_core_write(32'h10000014,32'h0000020C);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000213);
- wb_user_core_write(32'h10000014,32'h00000210);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000293);
- wb_user_core_write(32'h10000014,32'h00000214);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000313);
- wb_user_core_write(32'h10000014,32'h00000218);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000393);
- wb_user_core_write(32'h10000014,32'h0000021C);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000413);
- wb_user_core_write(32'h10000014,32'h00000300);
- wb_user_core_read_check(32'h1000001C,read_data,32'h0005A023);
- wb_user_core_write(32'h10000014,32'h00000304);
- wb_user_core_read_check(32'h1000001C,read_data,32'h9DE30591);
- wb_user_core_write(32'h10000014,32'h00000308);
- wb_user_core_read_check(32'h1000001C,read_data,32'h02B7FEE5);
- wb_user_core_write(32'h10000014,32'h0000030C);
- wb_user_core_read_check(32'h1000001C,read_data,32'h43050049);
- wb_user_core_write(32'h10000014,32'h00000310);
- wb_user_core_read_check(32'h1000001C,read_data,32'h0062A023);
- wb_user_core_write(32'h10000014,32'h00000314);
- wb_user_core_read_check(32'h1000001C,read_data,32'h004902B7);
- wb_user_core_write(32'h10000014,32'h00000318);
- wb_user_core_read_check(32'h1000001C,read_data,32'h03130291);
- wb_user_core_write(32'h10000014,32'h0000031C);
- wb_user_core_read_check(32'h1000001C,read_data,32'ha0230630);
+ wb_user_core_write(`QSPIM_IMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0001,P_MODE_SWITCH_AT_ADDR,P_QUAD,P_SINGLE,4'b0001});
+ wb_user_core_write(`QSPIM_IMEM_CTRL2,{8'h4,2'b00,2'b10,P_FSM_CAMDR,8'h00,8'hEB});
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000200);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000093);
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000204);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000113);
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000208);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000193);
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h0000020C);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000213);
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000210);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000293);
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000214);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000313);
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000218);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000393);
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h0000021C);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000413);
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000300);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h0005A023);
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000304);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h9DE30591);
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000308);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h02B7FEE5);
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h0000030C);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h43050049);
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000310);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h0062A023);
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000314);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h004902B7);
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000318);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h03130291);
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h0000031C);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'ha0230630);
repeat (100) @(posedge clock);
$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);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000093);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000113);
- wb_user_core_write(32'h10000014,32'h00000208);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000193);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000213);
- wb_user_core_write(32'h10000014,32'h00000210);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000293);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000313);
- wb_user_core_write(32'h10000014,32'h00000218);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000393);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000413);
- wb_user_core_write(32'h10000014,32'h00000300);
- wb_user_core_read_check(32'h1000001C,read_data,32'h0005A023);
- wb_user_core_read_check(32'h1000001C,read_data,32'h9DE30591);
- wb_user_core_write(32'h10000014,32'h00000308);
- wb_user_core_read_check(32'h1000001C,read_data,32'h02B7FEE5);
- wb_user_core_read_check(32'h1000001C,read_data,32'h43050049);
- wb_user_core_write(32'h10000014,32'h00000310);
- wb_user_core_read_check(32'h1000001C,read_data,32'h0062A023);
- wb_user_core_read_check(32'h1000001C,read_data,32'h004902B7);
- wb_user_core_write(32'h10000014,32'h00000318);
- wb_user_core_read_check(32'h1000001C,read_data,32'h03130291);
- wb_user_core_read_check(32'h1000001C,read_data,32'ha0230630);
+ wb_user_core_write(`QSPIM_IMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0001,P_MODE_SWITCH_AT_ADDR,P_QUAD,P_SINGLE,4'b0001});
+ wb_user_core_write(`QSPIM_IMEM_CTRL2,{8'h8,2'b00,2'b10,P_FSM_CAMDR,8'h00,8'hEB});
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000200);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000093);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000113);
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000208);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000193);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000213);
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000210);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000293);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000313);
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000218);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000393);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000413);
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000300);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h0005A023);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h9DE30591);
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000308);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h02B7FEE5);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h43050049);
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000310);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h0062A023);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h004902B7);
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000318);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h03130291);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'ha0230630);
repeat (100) @(posedge clock);
$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);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000113);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000193);
- wb_user_core_write(32'h10000014,32'h0000020C);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000213);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000293);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000313);
- wb_user_core_write(32'h10000014,32'h00000300);
- wb_user_core_read_check(32'h1000001C,read_data,32'h0005A023);
- wb_user_core_read_check(32'h1000001C,read_data,32'h9DE30591);
- wb_user_core_read_check(32'h1000001C,read_data,32'h02B7FEE5);
- wb_user_core_write(32'h10000014,32'h0000030C);
- wb_user_core_read_check(32'h1000001C,read_data,32'h43050049);
- wb_user_core_read_check(32'h1000001C,read_data,32'h0062A023);
- wb_user_core_read_check(32'h1000001C,read_data,32'h004902B7);
+ wb_user_core_write(`QSPIM_IMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0001,P_MODE_SWITCH_AT_ADDR,P_QUAD,P_SINGLE,4'b0001});
+ wb_user_core_write(`QSPIM_IMEM_CTRL2,{8'hC,2'b00,2'b10,P_FSM_CAMDR,8'h00,8'hEB});
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000200);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000093);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000113);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000193);
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h0000020C);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000213);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000293);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000313);
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000300);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h0005A023);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h9DE30591);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h02B7FEE5);
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h0000030C);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h43050049);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h0062A023);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h004902B7);
repeat (100) @(posedge clock);
$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);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000113);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000193);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000213);
- wb_user_core_write(32'h10000014,32'h00000210);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000293);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000313);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000393);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000413);
- wb_user_core_write(32'h10000014,32'h00000300);
- wb_user_core_read_check(32'h1000001C,read_data,32'h0005A023);
- wb_user_core_read_check(32'h1000001C,read_data,32'h9DE30591);
- wb_user_core_read_check(32'h1000001C,read_data,32'h02B7FEE5);
- wb_user_core_read_check(32'h1000001C,read_data,32'h43050049);
- wb_user_core_write(32'h10000014,32'h00000310);
- wb_user_core_read_check(32'h1000001C,read_data,32'h0062A023);
- wb_user_core_read_check(32'h1000001C,read_data,32'h004902B7);
- wb_user_core_read_check(32'h1000001C,read_data,32'h03130291);
- wb_user_core_read_check(32'h1000001C,read_data,32'ha0230630);
+ wb_user_core_write(`QSPIM_IMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0001,P_MODE_SWITCH_AT_ADDR,P_QUAD,P_SINGLE,4'b0001});
+ wb_user_core_write(`QSPIM_IMEM_CTRL2,{8'h10,2'b00,2'b10,P_FSM_CAMDR,8'h00,8'hEB});
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000200);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000093);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000113);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000193);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000213);
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000210);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000293);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000313);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000393);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000413);
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000300);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h0005A023);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h9DE30591);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h02B7FEE5);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h43050049);
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000310);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h0062A023);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h004902B7);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h03130291);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'ha0230630);
repeat (100) @(posedge clock);
$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);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000113);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000193);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000213);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000293);
- wb_user_core_write(32'h10000014,32'h00000300);
- wb_user_core_read_check(32'h1000001C,read_data,32'h0005A023);
- wb_user_core_read_check(32'h1000001C,read_data,32'h9DE30591);
- wb_user_core_read_check(32'h1000001C,read_data,32'h02B7FEE5);
- wb_user_core_read_check(32'h1000001C,read_data,32'h43050049);
- wb_user_core_read_check(32'h1000001C,read_data,32'h0062A023);
+ wb_user_core_write(`QSPIM_IMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0001,P_MODE_SWITCH_AT_ADDR,P_QUAD,P_SINGLE,4'b0001});
+ wb_user_core_write(`QSPIM_IMEM_CTRL2,{8'h14,2'b00,2'b10,P_FSM_CAMDR,8'h00,8'hEB});
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000200);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000093);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000113);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000193);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000213);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000293);
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000300);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h0005A023);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h9DE30591);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h02B7FEE5);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h43050049);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h0062A023);
$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);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000113);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000193);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000213);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000293);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000313);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000393);
- wb_user_core_read_check(32'h1000001C,read_data,32'h00000413);
- wb_user_core_write(32'h10000014,32'h00000300);
- wb_user_core_read_check(32'h1000001C,read_data,32'h0005A023);
- wb_user_core_read_check(32'h1000001C,read_data,32'h9DE30591);
- wb_user_core_read_check(32'h1000001C,read_data,32'h02B7FEE5);
- wb_user_core_read_check(32'h1000001C,read_data,32'h43050049);
- wb_user_core_read_check(32'h1000001C,read_data,32'h0062A023);
- wb_user_core_read_check(32'h1000001C,read_data,32'h004902B7);
- wb_user_core_read_check(32'h1000001C,read_data,32'h03130291);
- wb_user_core_read_check(32'h1000001C,read_data,32'ha0230630);
+ wb_user_core_write(`QSPIM_IMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0001,P_MODE_SWITCH_AT_ADDR,P_QUAD,P_SINGLE,4'b0001});
+ wb_user_core_write(`QSPIM_IMEM_CTRL2,{8'h20,2'b00,2'b10,P_FSM_CAMDR,8'h00,8'hEB});
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000200);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000093);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000113);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000193);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000213);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000293);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000313);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000393);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00000413);
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000300);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h0005A023);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h9DE30591);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h02B7FEE5);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h43050049);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h0062A023);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h004902B7);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h03130291);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'ha0230630);
$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);
+ wb_user_core_write(`QSPIM_IMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0000,P_MODE_SWITCH_IDLE,P_SINGLE,P_SINGLE,4'b0001});
+ wb_user_core_write(`QSPIM_IMEM_CTRL2,{8'h0,2'b00,2'b00,P_FSM_C,8'h00,8'h06});
+ wb_user_core_write(`QSPIM_IMEM_WDATA,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);
+ wb_user_core_write(`QSPIM_IMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0000,P_MODE_SWITCH_IDLE,P_SINGLE,P_SINGLE,4'b0001});
+ wb_user_core_write(`QSPIM_IMEM_CTRL2,{8'h0,2'b00,2'b10,P_FSM_CA,8'h00,8'hD8});
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000000);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,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});
+ wb_user_core_write(`QSPIM_IMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0000,P_MODE_SWITCH_IDLE,P_SINGLE,P_SINGLE,4'b0001});
+ wb_user_core_write(`QSPIM_IMEM_CTRL2,{8'h4,2'b00,2'b00,P_FSM_CR,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);
+ wb_user_core_read(`QSPIM_IMEM_RDATA,read_data);
repeat (10) @(posedge clock);
end
@@ -628,80 +653,80 @@
$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);
+ wb_user_core_write(`QSPIM_IMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0000,P_MODE_SWITCH_IDLE,P_SINGLE,P_SINGLE,4'b0001});
+ wb_user_core_write(`QSPIM_IMEM_CTRL2,{8'h0,2'b00,2'b00,P_FSM_C,8'h00,8'h06});
+ wb_user_core_write(`QSPIM_IMEM_WDATA,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);
+ wb_user_core_write(`QSPIM_IMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0000,P_MODE_SWITCH_IDLE,P_SINGLE,P_SINGLE,4'b0001});
+ wb_user_core_write(`QSPIM_IMEM_CTRL2,{8'hF0,2'b00,2'b10,P_FSM_CAW,8'h00,8'h02});
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000000);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010000);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010001);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010002);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010003);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010004);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010005);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010006);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010007);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010008);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010009);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010010);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010011);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010012);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010013);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010014);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010015);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010016);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010017);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010018);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010019);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010020);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010021);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010022);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010023);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010024);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010025);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010026);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010027);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010028);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010029);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010030);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010031);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010032);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010033);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010034);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010035);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010036);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010037);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010038);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010039);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010040);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010041);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010042);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010043);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010044);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010045);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010046);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010047);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010048);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010049);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010050);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010051);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010052);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010053);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010054);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010055);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010056);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010057);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00010058);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,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});
+ wb_user_core_write(`QSPIM_IMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0000,P_MODE_SWITCH_IDLE,P_SINGLE,P_SINGLE,4'b0001});
+ wb_user_core_write(`QSPIM_IMEM_CTRL2,{8'h4,2'b00,2'b00,P_FSM_CR,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);
+ wb_user_core_read(`QSPIM_IMEM_RDATA,read_data);
repeat (10) @(posedge clock);
end
@@ -775,70 +800,70 @@
$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_write(`QSPIM_IMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0001,P_MODE_SWITCH_AT_ADDR,P_QUAD,P_SINGLE,4'b0001});
+ wb_user_core_write(`QSPIM_IMEM_CTRL2,{8'hF0,2'b00,2'b10,P_FSM_CAMDR,8'h00,8'hEB});
+ wb_user_core_write(`QSPIM_IMEM_ADDR,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);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010000);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010001);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010002);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010003);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010004);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010005);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010006);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010007);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010008);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010009);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010010);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010011);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010012);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010013);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010014);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010015);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010016);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010017);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010018);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010019);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010020);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010021);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010022);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010023);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010024);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010025);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010026);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010027);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010028);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010029);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010030);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010031);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010032);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010033);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010034);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010035);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010036);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010037);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010038);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010039);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010040);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010041);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010042);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010043);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010044);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010045);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010046);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010047);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010048);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010049);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010050);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010051);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010052);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010053);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010054);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010055);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010056);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010057);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010058);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00010059);
repeat (100) @(posedge clock);
$display("#############################################");
@@ -846,80 +871,80 @@
$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);
+ wb_user_core_write(`QSPIM_IMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0000,P_MODE_SWITCH_IDLE,P_SINGLE,P_SINGLE,4'b0001});
+ wb_user_core_write(`QSPIM_IMEM_CTRL2,{8'h0,2'b00,2'b00,P_FSM_C,8'h00,8'h06});
+ wb_user_core_write(`QSPIM_IMEM_WDATA,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);
+ wb_user_core_write(`QSPIM_IMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0000,P_MODE_SWITCH_IDLE,P_SINGLE,P_SINGLE,4'b0001});
+ wb_user_core_write(`QSPIM_IMEM_CTRL2,{8'hF0,2'b00,2'b10,P_FSM_CAW,8'h00,8'h02});
+ wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000200);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020000);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020001);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020002);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020003);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020004);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020005);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020006);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020007);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020008);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020009);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020010);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020011);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020012);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020013);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020014);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020015);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020016);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020017);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020018);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020019);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020020);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020021);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020022);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020023);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020024);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020025);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020026);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020027);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020028);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020029);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020030);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020031);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020032);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020033);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020034);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020035);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020036);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020037);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020038);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020039);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020040);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020041);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020042);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020043);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020044);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020045);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020046);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020047);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020048);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020049);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020050);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020051);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020052);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020053);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020054);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020055);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020056);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020057);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,32'h00020058);
+ wb_user_core_write(`QSPIM_IMEM_WDATA,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});
+ wb_user_core_write(`QSPIM_IMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0000,P_MODE_SWITCH_IDLE,P_SINGLE,P_SINGLE,4'b0001});
+ wb_user_core_write(`QSPIM_IMEM_CTRL2,{8'h4,2'b00,2'b00,P_FSM_CR,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);
+ wb_user_core_read(`QSPIM_IMEM_RDATA,read_data);
repeat (10) @(posedge clock);
end
@@ -993,70 +1018,70 @@
$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_write(`QSPIM_IMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0001,P_MODE_SWITCH_AT_ADDR,P_QUAD,P_SINGLE,4'b0001});
+ wb_user_core_write(`QSPIM_IMEM_CTRL2,{8'hF0,2'b00,2'b10,P_FSM_CAMDR,8'h00,8'hEB});
+ wb_user_core_write(`QSPIM_IMEM_ADDR,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);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020000);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020001);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020002);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020003);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020004);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020005);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020006);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020007);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020008);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020009);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020010);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020011);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020012);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020013);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020014);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020015);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020016);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020017);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020018);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020019);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020020);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020021);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020022);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020023);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020024);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020025);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020026);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020027);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020028);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020029);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020030);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020031);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020032);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020033);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020034);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020035);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020036);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020037);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020038);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020039);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020040);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020041);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020042);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020043);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020044);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020045);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020046);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020047);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020048);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020049);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020050);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020051);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020052);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020053);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020054);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020055);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020056);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020057);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020058);
+ wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00020059);
repeat (100) @(posedge clock);
// $display("+1000 cycles");
diff --git a/verilog/rtl/pinmux/src/pinmux_reg.sv b/verilog/rtl/pinmux/src/pinmux_reg.sv
index 549dc68..1eb04e1 100644
--- a/verilog/rtl/pinmux/src/pinmux_reg.sv
+++ b/verilog/rtl/pinmux/src/pinmux_reg.sv
@@ -721,7 +721,7 @@
//-----------------------------------------
// Software Reg-2, Release date: <DAY><MONTH><YEAR>
// ----------------------------------------
-gen_32b_reg #(32'h1401_2022) u_reg_23 (
+gen_32b_reg #(32'h1501_2022) u_reg_23 (
//List of Inputs
.reset_n (h_reset_n ),
.clk (mclk ),
@@ -734,9 +734,9 @@
);
//-----------------------------------------
-// Software Reg-3: Poject Revison 3.0 = 0003000
+// Software Reg-3: Poject Revison 3.0 = 0003100
// ----------------------------------------
-gen_32b_reg #(32'h0003_0000) u_reg_24 (
+gen_32b_reg #(32'h0003_1000) u_reg_24 (
//List of Inputs
.reset_n (h_reset_n ),
.clk (mclk ),
diff --git a/verilog/rtl/qspim b/verilog/rtl/qspim
index ec4e119..b9ef372 160000
--- a/verilog/rtl/qspim
+++ b/verilog/rtl/qspim
@@ -1 +1 @@
-Subproject commit ec4e1191d82ff56079b913e8db71c61e15d2a517
+Subproject commit b9ef37289d55f9982427331b4621dc531a09d1d1
diff --git a/verilog/rtl/user_project_wrapper.v b/verilog/rtl/user_project_wrapper.v
index 7b39611..fb4aea9 100644
--- a/verilog/rtl/user_project_wrapper.v
+++ b/verilog/rtl/user_project_wrapper.v
@@ -150,6 +150,8 @@
//// 3.0 Jan 14, 2022, Dinesh A ////
//// Moving from riscv core from syntacore/scr1 to ////
//// yfive/ycr1 on sankranti 2022 (A Hindu New Year) ////
+//// 3.1 Jan 15, 2022, Dinesh A ////
+//// Major changes in qspim logic to handle special mode ////
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2000 Authors and OPENCORES.ORG ////
@@ -579,6 +581,7 @@
wire [BIST1_ADDR_WD-1:2] mem2_addr_b;
wire [BIST1_ADDR_WD-1:2] mem3_addr_b;
+wire [3:0] spi_csn;
/////////////////////////////////////////////////////////
// Clock Skew Ctrl
@@ -846,7 +849,7 @@
// Pad Interface
.spi_sdi (sflash_di ),
.spi_clk (sflash_sck ),
- .spi_csn0 (sflash_ss ),
+ .spi_csn (spi_csn ),
.spi_sdo (sflash_do ),
.spi_oen (sflash_oen )
@@ -1150,7 +1153,7 @@
// SFLASH I/F
.sflash_sck (sflash_sck ),
- .sflash_ss (sflash_ss ),
+ .sflash_ss (spi_csn ),
.sflash_oen (sflash_oen ),
.sflash_do (sflash_do ),
.sflash_di (sflash_di ),