diff --git a/verilog/dv/wb_test/wb_test.c b/verilog/dv/wb_test/wb_test.c
index 1ccc88b..b60d51a 100644
--- a/verilog/dv/wb_test/wb_test.c
+++ b/verilog/dv/wb_test/wb_test.c
@@ -22,20 +22,19 @@
 // Caravel allows user project to use 0x30xx_xxxx address space on Wishbone bus
 // OpenRAM
 // 0x30c0_0000 till 30c0_03ff -> 256 Words of OpenRAM (1024 Bytes)
-#define OPENRAM_BASE_ADDRESS		0x30000000
-#define OPENRAM_SIZE_DWORDS		256ul			
-#define OPENRAM_SIZE_BYTES		(4ul * OPENRAM_SIZE_DWORDS)
-#define OPENRAM_ADDRESS_MASK		(OPENRAM_SIZE_BYTES - 1)
-#define OPENRAM_MEM(offset)		(*(volatile uint32_t*)(OPENRAM_BASE_ADDRESS + (offset & OPENRAM_ADDRESS_MASK)))
+#define SRAM8_BASE_ADDRESS		0x30000000
+#define SRAM8_SIZE_DWORDS		256ul			
+#define SRAM8_SIZE_BYTES		(4ul * SRAM8_SIZE_DWORDS)
+#define SRAM8_ADDRESS_MASK		(SRAM8_SIZE_BYTES - 1)
+#define SRAM8_MEM(offset)		(*(volatile uint32_t*)(SRAM8_BASE_ADDRESS + (offset & SRAM8_ADDRESS_MASK)))
+
+#define SRAM9_BASE_ADDRESS		0x30000400
+#define SRAM9_SIZE_DWORDS		512ul			
+#define SRAM9_SIZE_BYTES		(4ul * SRAM9_SIZE_DWORDS)
+#define SRAM9_ADDRESS_MASK		(SRAM9_SIZE_BYTES - 1)
+#define SRAM9_MEM(offset)		(*(volatile uint32_t*)(SRAM9_BASE_ADDRESS + (offset & SRAM9_ADDRESS_MASK)))
 
 
-// Generates 32bits wide value out of address, not random
-unsigned long generate_value(unsigned long address)
-{
-	return ((~address & OPENRAM_ADDRESS_MASK) << 19) + 
-		((~address & OPENRAM_ADDRESS_MASK) << 12) ^
-		((~address & OPENRAM_ADDRESS_MASK) << 2);
-}
 
 void main()
 {
@@ -66,11 +65,13 @@
 	// all of the GPIO pins to be used for user functions.
 
 
-	// All GPIO pins are configured to be output
-	// Used to flad the start/end of a test 
+	// GPIO pin 28 Used to flag the start/end of a test 
+	// GPIO pin 29 Used to indicate error in writing/reading sram 8
+	// GPIO pin 30 Used to indicate error in writing/reading sram 9
 
 	reg_mprj_io_28 = GPIO_MODE_MGMT_STD_OUTPUT;
 	reg_mprj_io_29 = GPIO_MODE_MGMT_STD_OUTPUT;
+	reg_mprj_io_30 = GPIO_MODE_MGMT_STD_OUTPUT;
 	/* Apply configuration */
 	reg_mprj_xfer = 1;
 	while (reg_mprj_xfer == 1);
@@ -79,34 +80,50 @@
 	reg_mprj_datal = 0x10000000;
 
 
-	// configuring them as output so that we can provide a stable de-asserted reset through caravel la pin 126	
-	reg_la3_oenb = reg_la3_iena = 0x00000000;    // [127:96]
-	// writing 0 so that la pin 126 gets 0 and de-activates the reset instead of keeping it dont care.
-	reg_la3_data = 0x00000000;
-
-	OPENRAM_MEM(0) = 0xdeadbeef;
-	OPENRAM_MEM(4) = 0xdeadbee0;
-	OPENRAM_MEM(8) = 0xffffffff;
-	OPENRAM_MEM(12) = 0xdeaddead;
+	SRAM8_MEM(0) = 0xdeadbeef;
+	SRAM9_MEM(0) = 0xbeefdead;
+	SRAM8_MEM(4) = 0xdeadbee0;
+	SRAM9_MEM(4) = 0xbee0dead;
+	SRAM8_MEM(8) = 0xffffffff;
+	SRAM9_MEM(8) = 0x12345678;
+	SRAM8_MEM(12) = 0xdeaddead;
+	SRAM9_MEM(12) = 0x10101010;
 	// this is not working because the data is correct but sp rams send an additional x which makes this fail
-	if (OPENRAM_MEM(0) != 0xdeadbeef) {
+	if (SRAM8_MEM(0) != 0xdeadbeef) {
 		// send an error signal to the testbench
 		reg_mprj_datal = 0x20000000;
 	}
-	if (OPENRAM_MEM(4) != 0xdeadbee0) {
+	if (SRAM8_MEM(4) != 0xdeadbee0) {
 		// send an error signal to the testbench
 		reg_mprj_datal = 0x20000000;
 	}
-	if (OPENRAM_MEM(8) != 0xffffffff) {
+	if (SRAM8_MEM(8) != 0xffffffff) {
 		// send an error signal to the testbench
 		reg_mprj_datal = 0x20000000;
 	}
-	if (OPENRAM_MEM(12) != 0xdeaddead) {
+	if (SRAM8_MEM(12) != 0xdeaddead) {
 		// send an error signal to the testbench
 		reg_mprj_datal = 0x20000000;
 	}
 
 
+	// this is not working because the data is correct but sp rams send an additional x which makes this fail
+	if (SRAM9_MEM(0) != 0xbeefdead) {
+		// send an error signal to the testbench
+		reg_mprj_datal = 0x40000000;
+	}
+	if (SRAM9_MEM(4) != 0xbee0dead) {
+		// send an error signal to the testbench
+		reg_mprj_datal = 0x40000000;
+	}
+	if (SRAM9_MEM(8) != 0x12345678) {
+		// send an error signal to the testbench
+		reg_mprj_datal = 0x40000000;
+	}
+	if (SRAM9_MEM(12) != 0x10101010) {
+		// send an error signal to the testbench
+		reg_mprj_datal = 0x40000000;
+	}
 
 	reg_mprj_datal = 0x00000000;			
 }
diff --git a/verilog/dv/wb_test/wb_test_tb.v b/verilog/dv/wb_test/wb_test_tb.v
index 78e3400..a401540 100644
--- a/verilog/dv/wb_test/wb_test_tb.v
+++ b/verilog/dv/wb_test/wb_test_tb.v
@@ -83,7 +83,12 @@
 	
 	initial begin
 		wait (mprj_io_29 == 1'b1);
-		$display($time, " Data mismatch while reading data from SRAM 0!"); 
+		$display($time, " Data mismatch while reading data from SRAM 8!"); 
+	end
+
+	initial begin
+		wait (mprj_io_30 == 1'b1);
+		$display($time, " Data mismatch while reading data from SRAM 9!"); 
 	end
 
    initial begin
