OpenCores
URL https://opencores.org/ocsvn/neorv32/neorv32/trunk

Subversion Repositories neorv32

[/] [neorv32/] [trunk/] [README.md] - Diff between revs 57 and 58

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 57 Rev 58
Line 113... Line 113...
 
 
| Project component | CI status |
| Project component | CI status |
|:----------------- |:----------|
|:----------------- |:----------|
| [NEORV32 processor](https://github.com/stnolting/neorv32)                                              | [![Processor Check](https://github.com/stnolting/neorv32/workflows/Processor%20Check/badge.svg)](https://github.com/stnolting/neorv32/actions?query=workflow%3A%22Processor+Check%22) |
| [NEORV32 processor](https://github.com/stnolting/neorv32)                                              | [![Processor Check](https://github.com/stnolting/neorv32/workflows/Processor%20Check/badge.svg)](https://github.com/stnolting/neorv32/actions?query=workflow%3A%22Processor+Check%22) |
| [SW Framework Documentation (online at GH-pages)](https://stnolting.github.io/neorv32/files.html)      | [![Doc@GitHub-pages](https://github.com/stnolting/neorv32/workflows/Deploy%20SW%20Framework%20Documentation%20to%20GitHub-Pages/badge.svg)](https://stnolting.github.io/neorv32/files.html) |
| [SW Framework Documentation (online at GH-pages)](https://stnolting.github.io/neorv32/files.html)      | [![Doc@GitHub-pages](https://github.com/stnolting/neorv32/workflows/Deploy%20SW%20Framework%20Documentation%20to%20GitHub-Pages/badge.svg)](https://stnolting.github.io/neorv32/files.html) |
| Build data sheet from `asciidoc` sources                                                               | [![Build Data Sheet](https://github.com/stnolting/neorv32/actions/workflows/build_datasheet.yml/badge.svg)](https://github.com/stnolting/neorv32/actions/workflows/build_datasheet.yml) |
| Build data sheet from [`asciidoc` sources](https://github.com/stnolting/neorv32/blob/master/docs/src_adoc) | [![Build Data Sheet](https://github.com/stnolting/neorv32/actions/workflows/build_datasheet.yml/badge.svg)](https://github.com/stnolting/neorv32/actions/workflows/build_datasheet.yml) |
| [Pre-built toolchains](https://github.com/stnolting/riscv-gcc-prebuilt)                                | [![Test Toolchains](https://github.com/stnolting/riscv-gcc-prebuilt/workflows/Test%20Toolchains/badge.svg)](https://github.com/stnolting/riscv-gcc-prebuilt/actions?query=workflow%3A%22Test+Toolchains%22) |
| [Pre-built toolchains](https://github.com/stnolting/riscv-gcc-prebuilt)                                | [![Test Toolchains](https://github.com/stnolting/riscv-gcc-prebuilt/workflows/Test%20Toolchains/badge.svg)](https://github.com/stnolting/riscv-gcc-prebuilt/actions?query=workflow%3A%22Test+Toolchains%22) |
| [RISC-V architecture test](https://github.com/stnolting/neorv32/blob/master/riscv-arch-test/README.md) | [![riscv-arch-test](https://github.com/stnolting/neorv32/actions/workflows/riscv-arch-test.yml/badge.svg)](https://github.com/stnolting/neorv32/actions/workflows/riscv-arch-test.yml) |
| [RISC-V architecture test](https://github.com/stnolting/neorv32/blob/master/riscv-arch-test/README.md) | [![riscv-arch-test](https://github.com/stnolting/neorv32/actions/workflows/riscv-arch-test.yml/badge.svg)](https://github.com/stnolting/neorv32/actions/workflows/riscv-arch-test.yml) |
 
 
 
 
## Features
## Features
Line 286... Line 286...
    * Store address misaligned
    * Store address misaligned
    * Store access fault (via unacknowledged bus access after timeout)
    * Store access fault (via unacknowledged bus access after timeout)
    * Environment call from U-mode (via `ecall` instruction in user mode)
    * Environment call from U-mode (via `ecall` instruction in user mode)
    * Environment call from M-mode (via `ecall` instruction in machine mode)
    * Environment call from M-mode (via `ecall` instruction in machine mode)
  * Supported interrupts:
  * Supported interrupts:
 
    * RISC-V non-maskable interrupt `nmi` (via external signal)
    * RISC-V machine timer interrupt `mti` (via processor-internal MTIME unit *or* external signal)
    * RISC-V machine timer interrupt `mti` (via processor-internal MTIME unit *or* external signal)
    * RISC-V machine software interrupt `msi` (via external signal)
    * RISC-V machine software interrupt `msi` (via external signal)
    * RISC-V machine external interrupt `mei` (via external signal)
    * RISC-V machine external interrupt `mei` (via external signal)
    * 16 fast interrupt requests, 6+1 available for custom usage
    * 16 fast interrupt requests, 6+1 available for custom usage
 
 
Line 323... Line 324...
 
 
### :warning: Non-RISC-V-Compatible Issues and Limitations
### :warning: Non-RISC-V-Compatible Issues and Limitations
 
 
* CPU and Processor are BIG-ENDIAN, but this should be no problem as the external memory bus interface provides big- and little-endian configurations
* CPU and Processor are BIG-ENDIAN, but this should be no problem as the external memory bus interface provides big- and little-endian configurations
* `misa` CSR is read-only - no dynamic enabling/disabling of synthesized CPU extensions during runtime; for compatibility: write accesses (in m-mode) are ignored and do not cause an exception
* `misa` CSR is read-only - no dynamic enabling/disabling of synthesized CPU extensions during runtime; for compatibility: write accesses (in m-mode) are ignored and do not cause an exception
 
* `mip` CSR is read-only - pending IRQs can be cleared using `mie`
* The physical memory protection (**PMP**) only supports `NAPOT` mode yet and a minimal granularity of 8 bytes
* The physical memory protection (**PMP**) only supports `NAPOT` mode yet and a minimal granularity of 8 bytes
* The `A` extension only implements `lr.w` and `sc.w` instructions yet. However, these instructions are sufficient to emulate all remaining AMO operations
* The `A` extension only implements `lr.w` and `sc.w` instructions yet. However, these instructions are sufficient to emulate all remaining AMO operations
 
 
[[back to top](#The-NEORV32-RISC-V-Processor)]
[[back to top](#The-NEORV32-RISC-V-Processor)]
 
 
Line 361... Line 363...
[[back to top](#The-NEORV32-RISC-V-Processor)]
[[back to top](#The-NEORV32-RISC-V-Processor)]
 
 
 
 
### NEORV32 Processor-Internal Peripherals and Memories
### NEORV32 Processor-Internal Peripherals and Memories
 
 
Results generated for hardware version [`1.5.3.2`](https://github.com/stnolting/neorv32/blob/master/CHANGELOG.md).
Results generated for hardware version [`1.5.4.9`](https://github.com/stnolting/neorv32/blob/master/CHANGELOG.md)
 
(mandatory core modules in **bold**).
 
 
| Module    | Description                                          | LEs | FFs | Memory bits | DSPs (9-bit) |
| Module    | Description                                          | LEs | FFs | Memory bits | DSPs (9-bit) |
|:----------|:-----------------------------------------------------|----:|----:|------------:|-------------:|
|:--------------|:----------------------------------------------------|----:|----:|------------:|-------------:|
| BOOT ROM  | Bootloader ROM (default 4kB)                         |   3 |   1 |      32 768 |            0 |
| Boot ROM      | Bootloader ROM (4kB)                                |   3 |   1 |       32768 |    0         |
| BUSSWITCH | Bus mux for CPU instr. & data interfaces             |  65 |   8 |           0 |            0 |
| **BUSKEEPER** | Processor-internal bus monitor                      |  11 |   6 |           0 |    0         |
| i-CACHE   | Proc.-int. nstruction cache (default 1x4x64 bytes)   | 234 | 156 |       8 192 |            0 |
| **BUSSWITCH** | Bus mux for CPU instr. and data interface           |  49 |   8 |           0 |    0         |
| CFS       | Custom functions subsystem                           |   - |   - |           - |            - |
| CFS       | Custom functions subsystem                           |   - |   - |           - |            - |
| DMEM      | Processor-internal data memory (default 8kB)         |   6 |   2 |      65 536 |            0 |
| DMEM          | Processor-internal data memory (8kB)                |  18 |   2 |       65536 |    0         |
| GPIO      | General purpose input/output ports                   |  67 |  65 |           0 |            0 |
| GPIO      | General purpose input/output ports                   |  67 |  65 |           0 |            0 |
| IMEM      | Processor-internal instruction memory (default 16kb) |   6 |   2 |     131 072 |            0 |
| iCACHE        | Instruction cache (1x4 blocks, 256 bytes per block) | 220 | 154 |        8192 |    0         |
| MTIME     | Machine system timer                                 | 274 | 166 |           0 |            0 |
| IMEM          | Processor-internal instruction memory (16kB)        |   6 |   2 |      131072 |    0         |
 
| MTIME         | Machine system timer                                | 289 | 200 |           0 |    0         |
| NCO       | Numerically-controlled oscillator                    | 254 | 226 |           0 |            0 |
| NCO       | Numerically-controlled oscillator                    | 254 | 226 |           0 |            0 |
| NEOLED    | Smart LED Interface (NeoPixel-compatibile) [4x FIFO] | 347 | 309 |           0 |            0 |
| NEOLED        | Smart LED Interface (NeoPixel/WS28128) [4xFIFO]     | 347 | 309 |           0 |    0         |
| PWM       | Pulse-width modulation controller                    |  71 |  69 |           0 |            0 |
| PWM           | Pulse_width modulation controller                   |  71 |  69 |           0 |    0         |
| SPI       | Serial peripheral interface                          | 138 | 124 |           0 |            0 |
| SPI       | Serial peripheral interface                          | 138 | 124 |           0 |            0 |
| SYSINFO   | System configuration information memory              |  11 |  10 |           0 |            0 |
| **SYSINFO**   | System configuration information memory             |  10 |  10 |           0 |    0         |
| TRNG      | True random number generator                         | 132 | 105 |           0 |            0 |
| TRNG      | True random number generator                         | 132 | 105 |           0 |            0 |
| TWI       | Two-wire interface                                   |  77 |  46 |           0 |            0 |
| TWI           | Two-wire interface                                  |  77 |  44 |           0 |    0         |
| UART0/1   | Universal asynchronous receiver/transmitter 0/1      | 176 | 132 |           0 |            0 |
| UART0/1   | Universal asynchronous receiver/transmitter 0/1      | 176 | 132 |           0 |            0 |
| WDT       | Watchdog timer                                       |  60 |  45 |           0 |            0 |
| WDT       | Watchdog timer                                       |  60 |  45 |           0 |            0 |
| WISHBONE  | External memory interface                            | 129 | 104 |           0 |            0 |
| WISHBONE  | External memory interface                            | 129 | 104 |           0 |            0 |
 
 
[[back to top](#The-NEORV32-RISC-V-Processor)]
[[back to top](#The-NEORV32-RISC-V-Processor)]

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.