block diagram and doc update
diff --git a/README.md b/README.md
index 987945d..5f59d8d 100644
--- a/README.md
+++ b/README.md
@@ -49,13 +49,16 @@
* Open sourced under Apache-2.0 License (see LICENSE file) - unrestricted commercial use allowed.
* industry-grade and silicon-proven Open-Source RISC-V core from syntacore
* 4KB SRAM for data memory
- * Pin Compatbible to arudino uno
+ * 8KB SRAM for program memory
* Quad SPI Master
* UART with 16Byte FIFO
* USB 1.1 Host
* I2C Master
- * 6 Channel ADC
+ * Simple SPI Master
+ * MBIST controller for 8KB Program memory
+ * 6 Channel ADC (in Progress)
* 6 PWM
+ * Pin Compatbible to arudino uno
* Wishbone compatible design
* Written in System Verilog
* Open-source tool set
@@ -164,13 +167,13 @@
<td align="center"> 0x0000_0000 to 0x0FFF_FFFF </td>
<td align="center"> 0x0000_0000 to 0x0FFF_FFFF </td>
<td align="center"> 0x0000_0000 to 0x0FFF_FFFF</td>
- <td align="center"> SPI FLASH MEMORY</td>
+ <td align="center"> QSPI FLASH MEMORY</td>
</tr>
<tr>
<td align="center"> 0x1000_0000 to 0x1000_00FF</td>
<td align="center"> 0x1000_0000 to 0x1000_00FF</td>
<td align="center"> 0x1000_0000 to 0x1000_00FF</td>
- <td align="center"> SPI Config Reg</td>
+ <td align="center"> QSPI Config Reg</td>
</tr>
<tr>
<td align="center"> 0x1001_0000 to 0x1001_003F</td>
@@ -185,22 +188,46 @@
<td align="center"> I2C</td>
</tr>
<tr>
- <td align="center"> 0x1001_0080 to 0x1001_00FF</td>
- <td align="center"> 0x1001_0080 to 0x1001_00FF</td>
- <td align="center"> 0x1001_0080 to 0x1001_00FF</td>
+ <td align="center"> 0x1001_0080 to 0x1001_00BF</td>
+ <td align="center"> 0x1001_0080 to 0x1001_00BF</td>
+ <td align="center"> 0x1001_0080 to 0x1001_00BF</td>
<td align="center"> USB</td>
</tr>
<tr>
+ <td align="center"> 0x1001_00C0 to 0x1001_00FF</td>
+ <td align="center"> 0x1001_00C0 to 0x1001_00FF</td>
+ <td align="center"> 0x1001_00C0 to 0x1001_00FF</td>
+ <td align="center"> SSPI</td>
+ </tr>
+ <tr>
<td align="center"> 0x1002_0080 to 0x1002_00FF</td>
<td align="center"> 0x1002_0080 to 0x1002_00FF</td>
<td align="center"> 0x1002_0080 to 0x1002_00FF</td>
<td align="center"> PINMUX</td>
</tr>
<tr>
- <td align="center"> 0x1003_0080 to 0x1003_00FF</td>
- <td align="center"> 0x1003_0080 to 0x1003_00FF</td>
- <td align="center"> 0x1003_0080 to 0x1003_00FF</td>
- <td align="center"> PINMUX</td>
+ <td align="center"> 0x1003_0080 to 0x1003_07FF</td>
+ <td align="center"> 0x1003_0080 to 0x1003_07FF</td>
+ <td align="center"> 0x1003_0080 to 0x1003_07FF</td>
+ <td align="center"> SRAM-0 (2KB)</td>
+ </tr>
+ <tr>
+ <td align="center"> 0x1003_0800 to 0x1003_0FFF</td>
+ <td align="center"> 0x1003_0800 to 0x1003_0FFF</td>
+ <td align="center"> 0x1003_0800 to 0x1003_0FFF</td>
+ <td align="center"> SRAM-1 (2KB)</td>
+ </tr>
+ <tr>
+ <td align="center"> 0x1003_1000 to 0x1003_17FF</td>
+ <td align="center"> 0x1003_1000 to 0x1003_17FF</td>
+ <td align="center"> 0x1003_1000 to 0x1003_17FF</td>
+ <td align="center"> SRAM-2 (2KB)</td>
+ </tr>
+ <tr>
+ <td align="center"> 0x1003_1800 to 0x1003_1FFF</td>
+ <td align="center"> 0x1003_1800 to 0x1003_1FFF</td>
+ <td align="center"> 0x1003_1800 to 0x1003_1FFF</td>
+ <td align="center"> SRAM-3 (2KB)</td>
</tr>
<tr>
<td align="center"> -</td>
@@ -212,17 +239,18 @@
# SOC Size
-| Block | Total Cell | Seq | Combo |
-| ------ | --------- | -------- | ----- |
-| RISC | 26919 | 3164 | 23755 |
-| PINMUX | 5461 | 1022 | 4439 |
-| SPI | 7597 | 1279 | 6318 |
-| UART_I2C_USB | 12423 | 2230 | 10193 |
-| WB_HOST | 3072 | 515 | 2557 |
-| WB_INTC | 1356 | 108 | 1248 |
-| SAR_ADC | 128 | 18 | 110 |
-| | | | |
-| TOTAL | 56956 | 8336 | 44620 |
+| Block | Total Cell | Seq | Combo |
+| ------ | --------- | -------- | ----- |
+| RISC | 20982 | 3164 | 17818 |
+| PINMUX | 5693 | 1022 | 4671 |
+| SPI | 7120 | 1281 | 5839 |
+| UART_I2C_USB_SPI | 11196 | 2448 | 8748 |
+| WB_HOST | 2796 | 588 | 2208 |
+| WB_INTC | 1878 | 108 | 1770 |
+| SAR_ADC | 118 | 18 | 100 |
+| MBIST | 3125 | 543 | 2582 |
+| | | | |
+| TOTAL | 52908 | 9172 | 43736 |
@@ -417,16 +445,7 @@
| | | | | ├─ core | Core top source files
| | | | | ├─ top | Cluster source files
| | | | |─ **synth** | **SCR1 RTL Synthesis files **
-| | |- sdram_ctrl
-| | | |- **src**
-| | | | |- **docs** | **SDRAM Controller Documentation**
-| | | | | |- sdram_controller_specs.pdf | SDRAM Controller Design Specification
-| | | | |
-| | | | |- core | SDRAM Core integration source files
-| | | | |- defs | SDRAM Core defines
-| | | | |- top | SDRAM Top integration source files
-| | | | |- wb2sdrc | SDRAM Wishbone source files
-| | |- spi_master
+| | |- Qspi_master
| | | |- src | Qard SPI Master Source files
| | |-wb_interconnect
| | | |- src | 3x4 Wishbone Interconnect
@@ -493,9 +512,13 @@
The simulation package includes the following tests:
-* **risc_boot** - Simple User Risc core boot
-* **wb_port** - User Wishbone validation
-* **user_risc_boot** - Standalone User Risc core boot
+* **risc_boot** - Simple User Risc core boot
+* **wb_port** - User Wishbone validation
+* **user_risc_boot** - Standalone User Risc core boot
+* **user_mbist_test1** - Standalone MBIST test
+* **user_spi** - Standalone SPI test
+* **user_i2c** - Standalone I2C test
+* **user_risc_soft_boot** - Standalone Risc with SRAM as Boot
# Running Simulation
@@ -548,8 +571,6 @@
-
-
## Contacts
Report an issue: <https://github.com/dineshannayya/riscduino/issues>
diff --git a/docs/source/_static/Riscduino_Soc.png b/docs/source/_static/Riscduino_Soc.png
index ade1205..cf6c825 100644
--- a/docs/source/_static/Riscduino_Soc.png
+++ b/docs/source/_static/Riscduino_Soc.png
Binary files differ
diff --git a/verilog/rtl/wb_interconnect/src/wb_interconnect.sv b/verilog/rtl/wb_interconnect/src/wb_interconnect.sv
index 51e4beb..f6ee7d8 100644
--- a/verilog/rtl/wb_interconnect/src/wb_interconnect.sv
+++ b/verilog/rtl/wb_interconnect/src/wb_interconnect.sv
@@ -287,7 +287,10 @@
// 0x1001_0080 to 0x1001_00BF - USB
// 0x1001_00C0 to 0x1001_00FF - SSPIM
// 0x1002_0000 to 0x1002_00FF - PINMUX
-// 0x1003_0000 to 0x1003_1FFF - MBIST
+// 0x1003_0000 to 0x1003_07FF - SRAM-0 (2KB)
+// 0x1003_0800 to 0x1003_0FFF - SRAM-1 (2KB)
+// 0x1003_1000 to 0x1003_17FF - SRAM-2 (2KB)
+// 0x1003_1800 to 0x1003_1FFF - SRAM-3 (2KB)
// 0x3080_0000 to 0x3080_00FF - WB HOST (This decoding happens at wb_host block)
// ---------------------------------------------------------------------------
//
@@ -307,7 +310,10 @@
// 0x1001_0080 to 0x1001_00BF - USB
// 0x1001_00C0 to 0x1001_00FF - SSPIM
// 0x1002_0000 to 0x1002_00FF - PINMUX
-// 0x1003_0000 to 0x1003_1FFF - MBIST
+// 0x1003_0000 to 0x1003_07FF - SRAM-0 (2KB)
+// 0x1003_0800 to 0x1003_0FFF - SRAM-1 (2KB)
+// 0x1003_1000 to 0x1003_17FF - SRAM-2 (2KB)
+// 0x1003_1800 to 0x1003_1FFF - SRAM-3 (2KB)
//-----------------------------
//
wire [3:0] m1_wbd_tid_i = (boot_remap[0] && m1_wbd_adr_i[31:11] == 21'h0) ? TARGET_MBIST: