////////////////////////////////////////////////////////////////////////////
// SPDX-FileCopyrightText:  2021 , Dinesh Annayya
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// SPDX-License-Identifier: Apache-2.0
// SPDX-FileContributor: Modified by Dinesh Annayya <dinesha@opencores.org>
//////////////////////////////////////////////////////////////////////
////                                                              ////
////  Standalone User validation Test bench                       ////
////                                                              ////
////  This file is part of the YIFive cores project               ////
////  https://github.com/dineshannayya/yifive_r0.git              ////
////  http://www.opencores.org/cores/yifive/                      ////
////                                                              ////
////  Description                                                 ////
////   This is a standalone test bench to validate the            ////
////   Digital core flash access through External WB i/F.         ////
////   1.  Check SPI Read Identification                          ////
////   2.  Check the Direct Memory Read (Qual/Single/Quad)        ////        
////   3.  Direct SPI Memory Prefetch - 3DW                       ////
////   4.  Direct SPI Memory Prefetch - 2DW                       ////
////   5.  Direct SPI Memory Prefetch - 1DW                       ////
////   6.  Direct SPI Memory Prefetch - 7DW                       ////
////   7.  1DW  Indirect Read                                     ////
////   8.  2DW  Indirect Read                                     ////
////   9.  3DW  Indirect Read                                     ////
////   10. 4DW  Indirect Read                                     ////
////   11. 5DW  Indirect Read                                     ////
////   12. 8DW  Indirect Read                                     ////
////   13. Sector Erase command + Page Write & Read Back          ////
////                                                              ////
////  To Do:                                                      ////
////    nothing                                                   ////
////                                                              ////
////  Author(s):                                                  ////
////      - Dinesh Annayya, dinesha@opencores.org                 ////
////                                                              ////
////  Revision :                                                  ////
////    0.1 - 01 Oct 2021, Dinesh A                               ////
////                                                              ////
//////////////////////////////////////////////////////////////////////
////                                                              ////
//// Copyright (C) 2000 Authors and OPENCORES.ORG                 ////
////                                                              ////
//// This source file may be used and distributed without         ////
//// restriction provided that this copyright statement is not    ////
//// removed from the file and that any derivative work contains  ////
//// the original copyright notice and the associated disclaimer. ////
////                                                              ////
//// This source file is free software; you can redistribute it   ////
//// and/or modify it under the terms of the GNU Lesser General   ////
//// Public License as published by the Free Software Foundation; ////
//// either version 2.1 of the License, or (at your option) any   ////
//// later version.                                               ////
////                                                              ////
//// This source is distributed in the hope that it will be       ////
//// useful, but WITHOUT ANY WARRANTY; without even the implied   ////
//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      ////
//// PURPOSE.  See the GNU Lesser General Public License for more ////
//// details.                                                     ////
////                                                              ////
//// You should have received a copy of the GNU Lesser General    ////
//// Public License along with this source; if not, download it   ////
//// from http://www.opencores.org/lgpl.shtml                     ////
////                                                              ////
//////////////////////////////////////////////////////////////////////

`default_nettype wire

`timescale 1 ns / 1 ns

`include "s25fl256s.sv"
`include "uprj_netlists.v"
`include "mt48lc8m8a2.v"
`include "spiram.v"

 // REGISTER MAP
 `define QSPIM_GLBL_CTRL           32'h10000000
 `define QSPIM_DMEM_G0_RD_CTRL    32'h10000004
 `define QSPIM_DMEM_G0_WR_CTRL    32'h10000008
 `define QSPIM_DMEM_G1_RD_CTRL    32'h1000000C
 `define QSPIM_DMEM_G1_WR_CTRL    32'h10000010

 `define QSPIM_DMEM_CS_AMAP        32'h10000014
 `define QSPIM_DMEM_CA_AMASK       32'h10000018

 `define QSPIM_IMEM_CTRL1          32'h1000001C
 `define QSPIM_IMEM_CTRL2          32'h10000020
 `define QSPIM_IMEM_ADDR           32'h10000024
 `define QSPIM_IMEM_WDATA          32'h10000028
 `define QSPIM_IMEM_RDATA          32'h1000002C
 `define QSPIM_SPI_STATUS          32'h10000030

module user_spi_tb;
	reg clock;
	reg wb_rst_i;
	reg power1, power2;
	reg power3, power4;

        reg        wbd_ext_cyc_i;  // strobe/request
        reg        wbd_ext_stb_i;  // strobe/request
        reg [31:0] wbd_ext_adr_i;  // address
        reg        wbd_ext_we_i;  // write
        reg [31:0] wbd_ext_dat_i;  // data output
        reg [3:0]  wbd_ext_sel_i;  // byte enable

        wire [31:0] wbd_ext_dat_o;  // data input
        wire        wbd_ext_ack_o;  // acknowlegement
        wire        wbd_ext_err_o;  // error

	// User I/O
	wire [37:0] io_oeb;
	wire [37:0] io_out;
	wire [37:0] io_in;

	wire gpio;
	wire [37:0] mprj_io;
	wire [7:0] mprj_io_0;
	reg        test_fail;
	reg [31:0] read_data;

/*************************************************************
*  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_CAMW   = 4'b1001; // Command -> Address -> MODE + Write Data

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
	// would be the fast clock.

	always #12.5 clock <= (clock === 1'b0);

	initial begin
		clock = 0;
                wbd_ext_cyc_i ='h0;  // strobe/request
                wbd_ext_stb_i ='h0;  // strobe/request
                wbd_ext_adr_i ='h0;  // address
                wbd_ext_we_i  ='h0;  // write
                wbd_ext_dat_i ='h0;  // data output
                wbd_ext_sel_i ='h0;  // byte enable
	end

	`ifdef WFDUMP
	   initial begin
	   	$dumpfile("simx.vcd");
	   	$dumpvars(5, user_spi_tb);
	   end
       `endif

	initial begin
		$dumpon;

		#200; // Wait for reset removal
	        repeat (10) @(posedge clock);
		$display("Monitor: Standalone User Risc Boot Test Started");

		// Remove Wb Reset
		wb_user_core_write('h3080_0000,'h1);

	        repeat (2) @(posedge clock);
		#1;
		// Remove WB and SPI Reset, Keep SDARM and CORE under Reset
                wb_user_core_write('h3080_0000,'h5);

                wb_user_core_write('h3080_0004,'h0); // Change the Bank Sel 0


		test_fail = 0;
	        repeat (200) @(posedge clock);
                wb_user_core_write('h3080_0004,'h10); // Change the Bank Sel 10
		// CS#2 SSPI Indirect RAM READ ACCESS-
		wb_user_core_write(`QSPIM_IMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0000,P_MODE_SWITCH_IDLE,P_SINGLE,P_SINGLE,4'b0100});
		wb_user_core_write(`QSPIM_IMEM_CTRL2,{8'h4,2'b00,2'b10,P_FSM_CADR,8'h00,8'h03});
		wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000000);
		wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h03020100);
		wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000004);
		wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h07060504);
		wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000008);
		wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h0b0a0908);
		wb_user_core_write(`QSPIM_IMEM_ADDR,32'h0000000C);
		wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h0f0e0d0c);

		wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000200);
		wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h11111111);
		wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000204);
		wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h22222222);
		wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000208);
		wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h33333333);
		wb_user_core_write(`QSPIM_IMEM_ADDR,32'h0000020C);
		wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h44444444);

		// CS#2 SSPI Indiect Write DATA
		wb_user_core_write(`QSPIM_IMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0000,P_MODE_SWITCH_IDLE,P_SINGLE,P_SINGLE,4'b0100});
		wb_user_core_write(`QSPIM_IMEM_CTRL2,{8'h10,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'h00112233);
		wb_user_core_write(`QSPIM_IMEM_WDATA,32'h44556677);
		wb_user_core_write(`QSPIM_IMEM_WDATA,32'h8899AABB);
		wb_user_core_write(`QSPIM_IMEM_WDATA,32'hCCDDEEFF);
		
		// CS#2 SSPI Indirect READ DATA
		wb_user_core_write(`QSPIM_IMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0000,P_MODE_SWITCH_IDLE,P_SINGLE,P_SINGLE,4'b0100});
		wb_user_core_write(`QSPIM_IMEM_CTRL2,{8'h10,2'b00,2'b10,P_FSM_CADR,8'h00,8'h03});
		wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000000);
		wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h00112233);
		wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h44556677);
		wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h8899AABB);
		wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'hCCDDEEFF);


		// CS#2 Switch to QSPI Mode
		wb_user_core_write(`QSPIM_IMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0000,P_MODE_SWITCH_IDLE,P_SINGLE,P_SINGLE,4'b0100});
		wb_user_core_write(`QSPIM_IMEM_CTRL2,{8'h0,2'b00,2'b00,P_FSM_C,8'h00,8'h38});
		wb_user_core_write(`QSPIM_IMEM_WDATA,32'h0);


		// CS#2 QUAD Indirect Write DATA
		wb_user_core_write(`QSPIM_IMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0000,P_MODE_SWITCH_IDLE,P_QUAD,P_QUAD,4'b0100});
		wb_user_core_write(`QSPIM_IMEM_CTRL2,{8'h10,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'h01234557);
		wb_user_core_write(`QSPIM_IMEM_WDATA,32'h89ABCDEF);
		wb_user_core_write(`QSPIM_IMEM_WDATA,32'h12345678);
		wb_user_core_write(`QSPIM_IMEM_WDATA,32'h9ABCDEF0);


		// CS#2 QUAD Indirect READ DATA
		wb_user_core_write(`QSPIM_IMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0000,P_MODE_SWITCH_IDLE,P_QUAD,P_QUAD,4'b0100});
		wb_user_core_write(`QSPIM_IMEM_CTRL2,{8'h10,2'b00,2'b10,P_FSM_CADR,8'h00,8'h03});
		wb_user_core_write(`QSPIM_IMEM_ADDR,32'h00000000);
		wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h01234557);
		wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h89ABCDEF);
		wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h12345678);
		wb_user_core_read_check(`QSPIM_IMEM_RDATA,read_data,32'h9ABCDEF0);

		// CS#2 Switch From QSPI to SSPI Mode
		wb_user_core_write(`QSPIM_IMEM_CTRL1,{16'h0,1'b0,1'b0,4'b0000,P_MODE_SWITCH_IDLE,P_QUAD,P_QUAD,4'b0100});
		wb_user_core_write(`QSPIM_IMEM_CTRL2,{8'h0,2'b00,2'b00,P_FSM_C,8'h00,8'hFF});
		wb_user_core_write(`QSPIM_IMEM_WDATA,32'h0);
		///////////////////// End of CS#1 Indirect Memory Access Testing ///////////////////////////////////

		$display("#############################################");
		$display("  Read Identification (RDID:0x9F)            ");
		$display("#############################################");
                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)                ");
		$display("Prefetch : 1DW, OPCODE:READ(0xED)           ");
		$display("SEQ: Command -> Address -> Read Data        ");
		$display("#############################################");
		// QDDR Config
                wb_user_core_write('h3080_0004,'h10); // Change the Bank Sel 10
		wb_user_core_write(`QSPIM_DMEM_G0_RD_CTRL,{P_FSM_CAMDR,4'b0100,2'b10,P_MODE_SWITCH_AT_ADDR,P_QDDR,P_SINGLE,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);
		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'h00000300,read_data,32'h0005A023);
		wb_user_core_read_check(32'h00000304,read_data,32'h9DE30591);
		wb_user_core_read_check(32'h00000308,read_data,32'h02B7FEE5);
		wb_user_core_read_check(32'h0000030C,read_data,32'h43050049);
		wb_user_core_read_check(32'h00000310,read_data,32'h0062A023);
		wb_user_core_read_check(32'h00000314,read_data,32'h004902B7);
		wb_user_core_read_check(32'h00000318,read_data,32'h03130291);
		wb_user_core_read_check(32'h0000031C,read_data,32'ha0230630);
		$dumpoff;
		$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(`QSPIM_DMEM_G0_RD_CTRL,{P_FSM_CAR,4'b0000,2'b10,P_MODE_SWITCH_IDLE,P_SINGLE,P_SINGLE,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'h00000300,read_data,32'h0005A023);
		wb_user_core_read_check(32'h00000304,read_data,32'h9DE30591);
		wb_user_core_read_check(32'h00000308,read_data,32'h02B7FEE5);
		wb_user_core_read_check(32'h0000030C,read_data,32'h43050049);
		wb_user_core_read_check(32'h00000310,read_data,32'h0062A023);
		wb_user_core_read_check(32'h00000314,read_data,32'h004902B7);
		wb_user_core_read_check(32'h00000318,read_data,32'h03130291);
		wb_user_core_read_check(32'h0000031C,read_data,32'ha0230630);
		$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(`QSPIM_DMEM_G0_RD_CTRL,{P_FSM_CADR,4'b0000,2'b10,P_MODE_SWITCH_IDLE,P_SINGLE,P_SINGLE,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'h00000300,read_data,32'h0005A023);
		wb_user_core_read_check(32'h00000304,read_data,32'h9DE30591);
		wb_user_core_read_check(32'h00000308,read_data,32'h02B7FEE5);
		wb_user_core_read_check(32'h0000030C,read_data,32'h43050049);
		wb_user_core_read_check(32'h00000310,read_data,32'h0062A023);
		wb_user_core_read_check(32'h00000314,read_data,32'h004902B7);
		wb_user_core_read_check(32'h00000318,read_data,32'h03130291);
		wb_user_core_read_check(32'h0000031C,read_data,32'ha0230630);

		$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(`QSPIM_DMEM_G0_RD_CTRL,{P_FSM_CADR,4'b0000,2'b10,P_MODE_SWITCH_AT_DATA,P_DOUBLE,P_SINGLE,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'h00000300,read_data,32'h0005A023);
		wb_user_core_read_check(32'h00000304,read_data,32'h9DE30591);
		wb_user_core_read_check(32'h00000308,read_data,32'h02B7FEE5);
		wb_user_core_read_check(32'h0000030C,read_data,32'h43050049);
		wb_user_core_read_check(32'h00000310,read_data,32'h0062A023);
		wb_user_core_read_check(32'h00000314,read_data,32'h004902B7);
		wb_user_core_read_check(32'h00000318,read_data,32'h03130291);
		wb_user_core_read_check(32'h0000031C,read_data,32'ha0230630);

		$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(`QSPIM_DMEM_G0_RD_CTRL,{P_FSM_CAMDR,4'b0001,2'b10,P_MODE_SWITCH_AT_ADDR,P_QUAD,P_SINGLE,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'h00000300,read_data,32'h0005A023);
		wb_user_core_read_check(32'h00000304,read_data,32'h9DE30591);
		wb_user_core_read_check(32'h00000308,read_data,32'h02B7FEE5);
		wb_user_core_read_check(32'h0000030C,read_data,32'h43050049);
		wb_user_core_read_check(32'h00000310,read_data,32'h0062A023);
		wb_user_core_read_check(32'h00000314,read_data,32'h004902B7);
		wb_user_core_read_check(32'h00000318,read_data,32'h03130291);
		wb_user_core_read_check(32'h0000031C,read_data,32'ha0230630);

		$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(`QSPIM_DMEM_G0_RD_CTRL,{P_FSM_CAMDR,4'b0001,2'b10,P_MODE_SWITCH_AT_ADDR,P_QUAD,P_SINGLE,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'h00000300,read_data,32'h0005A023);
		wb_user_core_read_check(32'h00000304,read_data,32'h9DE30591);
		wb_user_core_read_check(32'h00000308,read_data,32'h02B7FEE5);
		wb_user_core_read_check(32'h0000030C,read_data,32'h43050049);
		wb_user_core_read_check(32'h00000310,read_data,32'h0062A023);
		wb_user_core_read_check(32'h00000314,read_data,32'h004902B7);
		wb_user_core_read_check(32'h00000318,read_data,32'h03130291);
		wb_user_core_read_check(32'h0000031C,read_data,32'ha0230630);

		$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(`QSPIM_DMEM_G0_RD_CTRL,{P_FSM_CAMDR,4'b0001,2'b10,P_MODE_SWITCH_AT_ADDR,P_QUAD,P_SINGLE,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'h00000300,read_data,32'h0005A023);
		wb_user_core_read_check(32'h00000304,read_data,32'h9DE30591);
		wb_user_core_read_check(32'h00000308,read_data,32'h02B7FEE5);
		wb_user_core_read_check(32'h0000030C,read_data,32'h43050049);
		wb_user_core_read_check(32'h00000310,read_data,32'h0062A023);
		wb_user_core_read_check(32'h00000314,read_data,32'h004902B7);
		wb_user_core_read_check(32'h00000318,read_data,32'h03130291);
		wb_user_core_read_check(32'h0000031C,read_data,32'ha0230630);


		$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(`QSPIM_DMEM_G0_RD_CTRL,{P_FSM_CAMDR,4'b0001,2'b10,P_MODE_SWITCH_AT_ADDR,P_QUAD,P_SINGLE,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'h00000300,read_data,32'h0005A023);
		wb_user_core_read_check(32'h00000304,read_data,32'h9DE30591);
		wb_user_core_read_check(32'h00000308,read_data,32'h02B7FEE5);
		wb_user_core_read_check(32'h0000030C,read_data,32'h43050049);
		wb_user_core_read_check(32'h00000310,read_data,32'h0062A023);
		wb_user_core_read_check(32'h00000314,read_data,32'h004902B7);
		wb_user_core_read_check(32'h00000318,read_data,32'h03130291);
		wb_user_core_read_check(32'h0000031C,read_data,32'ha0230630);

		$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(`QSPIM_DMEM_G0_RD_CTRL,{P_FSM_CAMDR,4'b0001,2'b10,P_MODE_SWITCH_AT_ADDR,P_QUAD,P_SINGLE,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'h00000300,read_data,32'h0005A023);
		wb_user_core_read_check(32'h00000304,read_data,32'h9DE30591);
		wb_user_core_read_check(32'h00000308,read_data,32'h02B7FEE5);
		wb_user_core_read_check(32'h0000030C,read_data,32'h43050049);
		wb_user_core_read_check(32'h00000310,read_data,32'h0062A023);
		wb_user_core_read_check(32'h00000314,read_data,32'h004902B7);
		wb_user_core_read_check(32'h00000318,read_data,32'h03130291);
		wb_user_core_read_check(32'h0000031C,read_data,32'ha0230630);

		$display("#############################################");
		$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(`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(`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(`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(`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(`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(`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(`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(`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(`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(`QSPIM_IMEM_RDATA,read_data);
		    repeat (10) @(posedge clock);
		end

		$display("#############################################");
		$display("  Page Write Command Address: 0x00          ");
		$display("#############################################");
		// WEN COMMAND
		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(`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(`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(`QSPIM_IMEM_RDATA,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(`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(`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("#############################################");
		$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(`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(`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(`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(`QSPIM_IMEM_RDATA,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(`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(`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");

          	if(test_fail == 0) begin
		   `ifdef GL
	    	       $display("Monitor: SPI Master Mode (GL) Passed");
		   `else
		       $display("Monitor: SPI Master Mode (RTL) Passed");
		   `endif
	        end else begin
		    `ifdef GL
	    	        $display("Monitor: SPI Master Mode (GL) Failed");
		    `else
		        $display("Monitor: SPI Master Mode (RTL) Failed");
		    `endif
		 end
	    	$display("###################################################");
	        $finish;
	end

	initial begin
		wb_rst_i <= 1'b1;
		#100;
		wb_rst_i <= 1'b0;	    	// Release reset
	end
wire USER_VDD1V8 = 1'b1;
wire VSS = 1'b0;

user_project_wrapper u_top(
`ifdef USE_POWER_PINS
    .vccd1(USER_VDD1V8),	// User area 1 1.8V supply
    .vssd1(VSS),	// User area 1 digital ground
`endif
    .wb_clk_i        (clock),  // System clock
    .user_clock2     (1'b1),  // Real-time clock
    .wb_rst_i        (wb_rst_i),  // Regular Reset signal

    .wbs_cyc_i   (wbd_ext_cyc_i),  // strobe/request
    .wbs_stb_i   (wbd_ext_stb_i),  // strobe/request
    .wbs_adr_i   (wbd_ext_adr_i),  // address
    .wbs_we_i    (wbd_ext_we_i),  // write
    .wbs_dat_i   (wbd_ext_dat_i),  // data output
    .wbs_sel_i   (wbd_ext_sel_i),  // byte enable

    .wbs_dat_o   (wbd_ext_dat_o),  // data input
    .wbs_ack_o   (wbd_ext_ack_o),  // acknowlegement

 
    // Logic Analyzer Signals
    .la_data_in      ('1) ,
    .la_data_out     (),
    .la_oenb         ('0),
 

    // IOs
    .io_in          (io_in)  ,
    .io_out         (io_out) ,
    .io_oeb         (io_oeb) ,

    .user_irq       () 

);

`ifndef GL // Drive Power for Hold Fix Buf
    // All standard cell need power hook-up for functionality work
    initial begin

    end
`endif    

//------------------------------------------------------
//  Integrate the Serial flash with qurd support to
//  user core using the gpio pads
//  ----------------------------------------------------

   wire flash_clk = io_out[24];
   wire flash_csb = io_out[28];
   // Creating Pad Delay
   wire #1 io_oeb_29 = io_oeb[29];
   wire #1 io_oeb_30 = io_oeb[30];
   wire #1 io_oeb_31 = io_oeb[31];
   wire #1 io_oeb_32 = io_oeb[32];
   tri  #1 flash_io0 = (io_oeb_29== 1'b0) ? io_out[29] : 1'bz;
   tri  #1 flash_io1 = (io_oeb_30== 1'b0) ? io_out[30] : 1'bz;
   tri  #1 flash_io2 = (io_oeb_31== 1'b0) ? io_out[31] : 1'bz;
   tri  #1 flash_io3 = (io_oeb_32== 1'b0) ? io_out[32] : 1'bz;

   assign io_in[29] = flash_io0;
   assign io_in[30] = flash_io1;
   assign io_in[31] = flash_io2;
   assign io_in[32] = flash_io3;


   // Quad flash
     s25fl256s #(.mem_file_name("flash0.hex"),
	         .otp_file_name("none"),
                 .TimingModel("S25FL512SAGMFI010_F_30pF")) 
		 u_spi_flash_256mb (
           // Data Inputs/Outputs
       .SI      (flash_io0),
       .SO      (flash_io1),
       // Controls
       .SCK     (flash_clk),
       .CSNeg   (flash_csb),
       .WPNeg   (flash_io2),
       .HOLDNeg (flash_io3),
       .RSTNeg  (!wb_rst_i)

       );

   wire spiram_csb = io_out[26];

   spiram #(.mem_file_name("flash1.hex"))
	u_sfram (
         // Data Inputs/Outputs
           .io0     (flash_io0),
           .io1     (flash_io1),
           // Controls
           .clk    (flash_clk),
           .csb    (spiram_csb),
           .io2    (flash_io2),
           .io3    (flash_io3)
    );


task wb_user_core_write;
input [31:0] address;
input [31:0] data;
begin
  repeat (1) @(posedge clock);
  #1;
  wbd_ext_adr_i =address;  // address
  wbd_ext_we_i  ='h1;  // write
  wbd_ext_dat_i =data;  // data output
  wbd_ext_sel_i ='hF;  // byte enable
  wbd_ext_cyc_i ='h1;  // strobe/request
  wbd_ext_stb_i ='h1;  // strobe/request
  wait(wbd_ext_ack_o == 1);
  repeat (1) @(posedge clock);
  #1;
  wbd_ext_cyc_i ='h0;  // strobe/request
  wbd_ext_stb_i ='h0;  // strobe/request
  wbd_ext_adr_i ='h0;  // address
  wbd_ext_we_i  ='h0;  // write
  wbd_ext_dat_i ='h0;  // data output
  wbd_ext_sel_i ='h0;  // byte enable
  $display("STATUS: WB USER ACCESS WRITE Address : 0x%x, Data : 0x%x",address,data);
  repeat (2) @(posedge clock);
end
endtask

task  wb_user_core_read;
input [31:0] address;
output [31:0] data;
reg    [31:0] data;
begin
  repeat (1) @(posedge clock);
  #1;
  wbd_ext_adr_i =address;  // address
  wbd_ext_we_i  ='h0;  // write
  wbd_ext_dat_i ='0;  // data output
  wbd_ext_sel_i ='hF;  // byte enable
  wbd_ext_cyc_i ='h1;  // strobe/request
  wbd_ext_stb_i ='h1;  // strobe/request
  wait(wbd_ext_ack_o == 1);
  data  = wbd_ext_dat_o;  
  repeat (1) @(posedge clock);
  #1;
  wbd_ext_cyc_i ='h0;  // strobe/request
  wbd_ext_stb_i ='h0;  // strobe/request
  wbd_ext_adr_i ='h0;  // address
  wbd_ext_we_i  ='h0;  // write
  wbd_ext_dat_i ='h0;  // data output
  wbd_ext_sel_i ='h0;  // byte enable
  $display("STATUS: WB USER ACCESS READ  Address : 0x%x, Data : 0x%x",address,data);
  repeat (2) @(posedge clock);
end
endtask

task  wb_user_core_read_check;
input [31:0] address;
output [31:0] data;
input [31:0] cmp_data;
reg    [31:0] data;
begin
  repeat (1) @(posedge clock);
  #1;
  wbd_ext_adr_i =address;  // address
  wbd_ext_we_i  ='h0;  // write
  wbd_ext_dat_i ='0;  // data output
  wbd_ext_sel_i ='hF;  // byte enable
  wbd_ext_cyc_i ='h1;  // strobe/request
  wbd_ext_stb_i ='h1;  // strobe/request
  wait(wbd_ext_ack_o == 1);
  data  = wbd_ext_dat_o;  
  repeat (1) @(posedge clock);
  #1;
  wbd_ext_cyc_i ='h0;  // strobe/request
  wbd_ext_stb_i ='h0;  // strobe/request
  wbd_ext_adr_i ='h0;  // address
  wbd_ext_we_i  ='h0;  // write
  wbd_ext_dat_i ='h0;  // data output
  wbd_ext_sel_i ='h0;  // byte enable
  if(data !== cmp_data) begin
     $display("ERROR : WB USER ACCESS READ  Address : 0x%x, Exd: 0x%x Rxd: 0x%x ",address,cmp_data,data);
     user_spi_tb.test_fail = 1;
  end else begin
     $display("STATUS: WB USER ACCESS READ  Address : 0x%x, Data : 0x%x",address,data);
  end
  repeat (2) @(posedge clock);
end
endtask


`ifdef GL

wire        wbd_spi_stb_i   = u_top.u_spi_master.wbd_stb_i;
wire        wbd_spi_ack_o   = u_top.u_spi_master.wbd_ack_o;
wire        wbd_spi_we_i    = u_top.u_spi_master.wbd_we_i;
wire [31:0] wbd_spi_adr_i   = u_top.u_spi_master.wbd_adr_i;
wire [31:0] wbd_spi_dat_i   = u_top.u_spi_master.wbd_dat_i;
wire [31:0] wbd_spi_dat_o   = u_top.u_spi_master.wbd_dat_o;
wire [3:0]  wbd_spi_sel_i   = u_top.u_spi_master.wbd_sel_i;

wire        wbd_sdram_stb_i = u_top.u_sdram_ctrl.wb_stb_i;
wire        wbd_sdram_ack_o = u_top.u_sdram_ctrl.wb_ack_o;
wire        wbd_sdram_we_i  = u_top.u_sdram_ctrl.wb_we_i;
wire [31:0] wbd_sdram_adr_i = u_top.u_sdram_ctrl.wb_addr_i;
wire [31:0] wbd_sdram_dat_i = u_top.u_sdram_ctrl.wb_dat_i;
wire [31:0] wbd_sdram_dat_o = u_top.u_sdram_ctrl.wb_dat_o;
wire [3:0]  wbd_sdram_sel_i = u_top.u_sdram_ctrl.wb_sel_i;

wire        wbd_uart_stb_i  = u_top.u_uart_i2c_usb.reg_cs;
wire        wbd_uart_ack_o  = u_top.u_uart_i2c_usb.reg_ack;
wire        wbd_uart_we_i   = u_top.u_uart_i2c_usb.reg_wr;
wire [7:0]  wbd_uart_adr_i  = u_top.u_uart_i2c_usb.reg_addr;
wire [7:0]  wbd_uart_dat_i  = u_top.u_uart_i2c_usb.reg_wdata;
wire [7:0]  wbd_uart_dat_o  = u_top.u_uart_i2c_usb.reg_rdata;
wire        wbd_uart_sel_i  = u_top.u_uart_i2c_usb.reg_be;

`endif

/**
`ifdef GL
//-----------------------------------------------------------------------------
// RISC IMEM amd DMEM Monitoring TASK
//-----------------------------------------------------------------------------

`define RISC_CORE  user_uart_tb.u_top.u_core.u_riscv_top

always@(posedge `RISC_CORE.wb_clk) begin
    if(`RISC_CORE.wbd_imem_ack_i)
          $display("RISCV-DEBUG => IMEM ADDRESS: %x Read Data : %x", `RISC_CORE.wbd_imem_adr_o,`RISC_CORE.wbd_imem_dat_i);
    if(`RISC_CORE.wbd_dmem_ack_i && `RISC_CORE.wbd_dmem_we_o)
          $display("RISCV-DEBUG => DMEM ADDRESS: %x Write Data: %x Resonse: %x", `RISC_CORE.wbd_dmem_adr_o,`RISC_CORE.wbd_dmem_dat_o);
    if(`RISC_CORE.wbd_dmem_ack_i && !`RISC_CORE.wbd_dmem_we_o)
          $display("RISCV-DEBUG => DMEM ADDRESS: %x READ Data : %x Resonse: %x", `RISC_CORE.wbd_dmem_adr_o,`RISC_CORE.wbd_dmem_dat_i);
end

`endif
**/
endmodule
`default_nettype wire
