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

Subversion Repositories neorv32

[/] [neorv32/] [trunk/] [docs/] [datasheet/] [overview.adoc] - Diff between revs 71 and 72

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

Rev 71 Rev 72
Line 20... Line 20...
default toolchain (https://github.com/stnolting/riscv-gcc-prebuilt[prebuilt toolchains are also provided]).
default toolchain (https://github.com/stnolting/riscv-gcc-prebuilt[prebuilt toolchains are also provided]).
 
 
[TIP]
[TIP]
Check out the processor's **https://stnolting.github.io/neorv32/ug[online User Guide]**
Check out the processor's **https://stnolting.github.io/neorv32/ug[online User Guide]**
that provides hands-on tutorials to get you started.
that provides hands-on tutorials to get you started.
The project's change log is available in https://github.com/stnolting/neorv32/blob/master/CHANGELOG.md[CHANGELOG.md]
The project's change log is available in https://github.com/stnolting/neorv32/blob/main/CHANGELOG.md[CHANGELOG.md]
in the root directory of the NEORV32 repository. Please also check out the <<_legal>> section.
in the root directory of the NEORV32 repository. Please also check out the <<_legal>> section.
 
 
 
 
**Structure**
**Structure**
 
 
Line 52... Line 52...
* fully synchronous design, no latches, no gated clocks
* fully synchronous design, no latches, no gated clocks
* small hardware footprint and high operating frequency for easy integration
* small hardware footprint and high operating frequency for easy integration
* **NEORV32 CPU**: 32-bit `rv32i` RISC-V CPU
* **NEORV32 CPU**: 32-bit `rv32i` RISC-V CPU
** RISC-V compatibility: passes the official architecture tests
** RISC-V compatibility: passes the official architecture tests
** base architecture + privileged architecture (optional) + ISA extensions (optional)
** base architecture + privileged architecture (optional) + ISA extensions (optional)
 
** option to add custom RISC-V instructions (as custom ISA extension)
** rich set of customization options (ISA extensions, design goal: performance / area (/ energy), ...)
** rich set of customization options (ISA extensions, design goal: performance / area (/ energy), ...)
** aims to support <<_full_virtualization>> capabilities (CPU _and_ SoC) to increase execution safety
** aims to support <<_full_virtualization>> capabilities (CPU _and_ SoC) to increase execution safety
** official https://github.com/riscv/riscv-isa-manual/blob/master/marchid.md[RISC-V open source architecture ID]
** official https://github.com/riscv/riscv-isa-manual/blob/master/marchid.md[RISC-V open source architecture ID]
* **NEORV32 Processor (SoC)**: highly-configurable full-scale microcontroller-like processor system
* **NEORV32 Processor (SoC)**: highly-configurable full-scale microcontroller-like processor system
** based on the NEORV32 CPU
** based on the NEORV32 CPU
Line 63... Line 64...
** optional timers and counters (WDT, MTIME)
** optional timers and counters (WDT, MTIME)
** optional general purpose IO and PWM and native NeoPixel (c) compatible smart LED interface
** optional general purpose IO and PWM and native NeoPixel (c) compatible smart LED interface
** optional embedded memories / caches for data, instructions and bootloader
** optional embedded memories / caches for data, instructions and bootloader
** optional external memory interface (Wishbone / AXI4-Lite) and stream link interface (AXI4-Stream) for custom connectivity
** optional external memory interface (Wishbone / AXI4-Lite) and stream link interface (AXI4-Stream) for custom connectivity
** optional execute in place (XIP) module
** optional execute in place (XIP) module
** on-chip debugger compatible with OpenOCD and gdb
** on-chip debugger compatible with OpenOCD and gdb including hardware trigger module
* **Software framework**
* **Software framework**
** GCC-based toolchain - prebuilt toolchains available; application compilation based on GNU makefiles
** GCC-based toolchain - prebuilt toolchains available; application compilation based on GNU makefiles
** internal bootloader with serial user interface
** internal bootloader with serial user interface
** core libraries for high-level usage of the provided functions and peripherals
** core libraries for high-level usage of the provided functions and peripherals
** runtime environment and several example programs
** runtime environment and several example programs
Line 76... Line 77...
 
 
[TIP]
[TIP]
For more in-depth details regarding the feature provided by he hardware see the according sections:
For more in-depth details regarding the feature provided by he hardware see the according sections:
<<_neorv32_central_processing_unit_cpu>> and <<_neorv32_processor_soc>>.
<<_neorv32_central_processing_unit_cpu>> and <<_neorv32_processor_soc>>.
 
 
 
**Extensibility and Customization**
 
 
 
The NEORV32 processor was designed to ease customization and extensibility and provides several options for adding
 
application-specific custom hardware modules and accelerators. The three most common options for adding custom
 
on-chip modules are listed below.
 
 
 
* <<_processor_external_memory_interface_wishbone_axi4_lite>> for processor-external modules
 
* <<_custom_functions_subsystem_cfs>> for tightly-coupled processor-internal co-processors
 
* <<_custom_functions_unit_cfu>> for custom RISC-V instructions
 
 
 
[TIP]
 
A more detailed comparison of the extension/customization options can be found in section
 
https://stnolting.github.io/neorv32/ug/#_adding_custom_hardware_modules[Adding Custom Hardware Modules]
 
of the user guide.
 
 
 
 
 
 
// ####################################################################################################################
// ####################################################################################################################
:sectnums:
:sectnums:
=== Project Folder Structure
=== Project Folder Structure
Line 141... Line 157...
├neorv32_package.vhd             - Processor/CPU main VHDL package file
├neorv32_package.vhd             - Processor/CPU main VHDL package file
├neorv32_cpu.vhd                 - NEORV32 CPU top entity
├neorv32_cpu.vhd                 - NEORV32 CPU top entity
│├neorv32_cpu_alu.vhd            - Arithmetic/logic unit
│├neorv32_cpu_alu.vhd            - Arithmetic/logic unit
││├neorv32_cpu_cp_bitmanip.vhd   - Bit-manipulation co-processor (B ext.)
││├neorv32_cpu_cp_bitmanip.vhd   - Bit-manipulation co-processor (B ext.)
 
││├neorv32_cpu_cp_cfu.vhd        - Custom functions (instruction) co-processor (Zxcfu ext.)
││├neorv32_cpu_cp_fpu.vhd        - Floating-point co-processor (Zfinx ext.)
││├neorv32_cpu_cp_fpu.vhd        - Floating-point co-processor (Zfinx ext.)
││├neorv32_cpu_cp_muldiv.vhd     - Mul/Div co-processor (M extension)
││├neorv32_cpu_cp_muldiv.vhd     - Mul/Div co-processor (M extension)
││└neorv32_cpu_cp_shifter.vhd    - Bit-shift co-processor
││└neorv32_cpu_cp_shifter.vhd    - Bit-shift co-processor
│├neorv32_cpu_bus.vhd            - Bus interface + physical memory protection
│├neorv32_cpu_bus.vhd            - Bus interface + physical memory protection
│├neorv32_cpu_control.vhd        - CPU control, exception/IRQ system and CSRs
│├neorv32_cpu_control.vhd        - CPU control, exception/IRQ system and CSRs

powered by: WebSVN 2.1.0

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