Line 56... |
Line 56... |
* optional embedded memories (instructions/data/bootloader, RAM/ROM) and caches
|
* optional embedded memories (instructions/data/bootloader, RAM/ROM) and caches
|
* timers (watch dog, RISC-V-compliant machine timer)
|
* timers (watch dog, RISC-V-compliant machine timer)
|
* serial interfaces (SPI, TWI, UART)
|
* serial interfaces (SPI, TWI, UART)
|
* general purpose IO and PWM channels
|
* general purpose IO and PWM channels
|
* external bus interface (Wishbone / [AXI4](#AXI4-Connectivity))
|
* external bus interface (Wishbone / [AXI4](#AXI4-Connectivity))
|
|
* subsystem for custom co-processors
|
* [more ...](#NEORV32-Processor-Features)
|
* [more ...](#NEORV32-Processor-Features)
|
* Software framework
|
* Software framework
|
* core libraries for high-level usage of the provided functions and peripherals
|
* core libraries for high-level usage of the provided functions and peripherals
|
* application compilation based on [GNU makefiles](https://github.com/stnolting/neorv32/blob/master/sw/example/blink_led/makefile)
|
* application compilation based on [GNU makefiles](https://github.com/stnolting/neorv32/blob/master/sw/example/blink_led/makefile)
|
* GCC-based toolchain ([pre-compiled toolchains available](https://github.com/stnolting/riscv-gcc-prebuilt))
|
* GCC-based toolchain ([pre-compiled toolchains available](https://github.com/stnolting/riscv-gcc-prebuilt))
|
Line 105... |
Line 106... |
|
|
### To-Do / Wish List / Help Wanted
|
### To-Do / Wish List / Help Wanted
|
|
|
* Use LaTeX for data sheet
|
* Use LaTeX for data sheet
|
* Further size and performance optimization
|
* Further size and performance optimization
|
* Further expand associativity configuration of instruction cache (4x/8x set-associativity)
|
* Further expand associativity configuration of instruction cache (4x/8x set-associativity)?
|
* Add data cache
|
* Add data cache?
|
* Burst mode for the external memory/bus interface
|
* Burst mode for the external memory/bus interface?
|
* RISC-V `F` (using [`Zfinx`](https://github.com/riscv/riscv-zfinx/blob/master/Zfinx_spec.adoc)?) CPU extension (single-precision floating point)
|
* RISC-V `F` (using [`Zfinx`](https://github.com/riscv/riscv-zfinx/blob/master/Zfinx_spec.adoc)?) CPU extension (single-precision floating point)
|
* Add template (HW module + intrinsics skeleton) for custom instructions?
|
* Add template (HW module + intrinsics skeleton) for custom instructions?
|
* Implement further RISC-V (or custom?) CPU extensions
|
* Implement further RISC-V (or custom) CPU extensions?
|
* More support for FreeRTOS (like *all* traps)
|
* More support for FreeRTOS (like *all* traps)?
|
* Port additional RTOSs (like [Zephyr](https://github.com/zephyrproject-rtos/zephyr) or [RIOT](https://www.riot-os.org))
|
* Port additional RTOSs (like [Zephyr](https://github.com/zephyrproject-rtos/zephyr) or [RIOT](https://www.riot-os.org))?
|
* Maybe port [CircuitPython](https://circuitpython.org/) (just for fun)
|
* Add debugger ([RISC-V debug spec](https://github.com/riscv/riscv-debug-spec))?
|
* Add debugger ([RISC-V debug spec](https://github.com/riscv/riscv-debug-spec))
|
* Add encryption/decryption/hash accelerator (maybe [XTEA](https://en.wikipedia.org/wiki/XTEA))?
|
* ...
|
* ...
|
* [Ideas?](#ContributeFeedbackQuestions)
|
* [Ideas?](#ContributeFeedbackQuestions)
|
|
|
|
|
|
|
Line 226... |
Line 227... |
|
|
|
|
#### NEORV32-specific CPU extensions (`X` extension)
|
#### NEORV32-specific CPU extensions (`X` extension)
|
|
|
* The NEORV32-specific extensions are always enabled and are indicated via the `X` bit set in the `misa` CSR.
|
* The NEORV32-specific extensions are always enabled and are indicated via the `X` bit set in the `misa` CSR.
|
* Eight *fast interrupt* request channels with according control/status bits in `mie` and `mip` and custom exception codes in `mcause`
|
* 16 *fast interrupt* request channels with according control/status bits in `mie` and `mip` and custom exception codes in `mcause`
|
* `mzext` CSR to check for implemented `Z*` CPU extensions (like `Zifencei`)
|
* `mzext` CSR to check for implemented `Z*` CPU extensions (like `Zifencei`)
|
* All undefined/umimplemented/malformed/illegal instructions do raise an illegal instruction exception
|
* All undefined/umimplemented/malformed/illegal instructions do raise an illegal instruction exception
|
|
|
|
|
#### Privileged architecture - CSR access (`Zicsr` extension)
|
#### Privileged architecture - CSR access (`Zicsr` extension)
|