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

Subversion Repositories neorv32

[/] [neorv32/] [trunk/] [docs/] [datasheet/] [overview.adoc] - Diff between revs 67 and 68

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

Rev 67 Rev 68
Line 105... Line 105...
 
 
The project aims to provide _another option_ in the RISC-V / soft-core design space with a different performance
The project aims to provide _another option_ in the RISC-V / soft-core design space with a different performance
vs. size trade-off and a different focus: _embrace_ concepts like documentation, platform-independence / portability,
vs. size trade-off and a different focus: _embrace_ concepts like documentation, platform-independence / portability,
RISC-V compatibility, _customization_ and _ease of use_. See the <<_project_key_features>> below.
RISC-V compatibility, _customization_ and _ease of use_. See the <<_project_key_features>> below.
 
 
 
Furthermore, the NEORV32 pays special focus on _execution safety_ using <<_full_virtualization>>. The CPU aims to
 
provide fall-backs for _everything that could go wrong_. This includes malformed instruction words, privilege escalations
 
and even memory accesses that are checked for address space holes and deterministic response times from memory-mapped
 
devices. Precise exceptions allow a defined and fully-synchronized state of the CPU at every time.
 
 
 
 
 
 
// ####################################################################################################################
// ####################################################################################################################
:sectnums:
:sectnums:
=== Project Key Features
=== Project Key Features
 
 
Line 191... Line 197...
 
 
// ####################################################################################################################
// ####################################################################################################################
:sectnums:
:sectnums:
=== VHDL File Hierarchy
=== VHDL File Hierarchy
 
 
All necessary VHDL hardware description files are located in the project's `rtl/core folder`. The top entity
All necessary VHDL hardware description files are located in the project's `rtl/core` folder. The top entity
of the entire processor including all the required configuration generics is **`neorv32_top.vhd`**.
of the entire processor including all the required configuration generics is **`neorv32_top.vhd`**.
 
 
[IMPORTANT]
[IMPORTANT]
All core VHDL files from the list below have to be assigned to a new design library named **`neorv32`**. Additional
All core VHDL files from the list below have to be assigned to a new design library named **`neorv32`**. Additional
files, like alternative top entities, can be assigned to any library.
files, like alternative top entities, can be assigned to any library.
Line 241... Line 247...
├neorv32_uart.vhd                - Universal async. receiver/transmitter
├neorv32_uart.vhd                - Universal async. receiver/transmitter
├neorv32_wdt.vhd                 - Watchdog timer
├neorv32_wdt.vhd                 - Watchdog timer
├neorv32_wishbone.vhd            - External (Wishbone) bus interface
├neorv32_wishbone.vhd            - External (Wishbone) bus interface
├neorv32_xirq.vhd                - External interrupt controller
├neorv32_xirq.vhd                - External interrupt controller
├mem/neorv32_dmem.default.vhd    - _Default_ data memory (architecture-only!)
├mem/neorv32_dmem.default.vhd    - _Default_ data memory (architecture-only)
└mem/neorv32_imem.default.vhd    - _Default_ instruction memory (architecture-only!)
└mem/neorv32_imem.default.vhd    - _Default_ instruction memory (architecture-only)
...................................
...................................
 
 
[NOTE]
[NOTE]
The processor-internal instruction and data memories (IMEM and DMEM) are split into two design files each:
The processor-internal instruction and data memories (IMEM and DMEM) are split into two design files each:
a plain entity definition (`neorv32_*mem.entity.vhd`) and the actual architecture definition
a plain entity definition (`neorv32_*mem.entity.vhd`) and the actual architecture definition
(`mem/neorv32_*mem.default.vhd`). The **default** architecture definitions from `rtl/core/mem` provide a _generic_ and
(`mem/neorv32_*mem.default.vhd`). The `*.default.vhd` architecture definitions from `rtl/core/mem` provide a _generic_ and
_platform independent_ memory design that (should) infers embedded memory blocks. You can replace/modify the architecture
_platform independent_ memory design that (should) infers embedded memory blocks. You can replace/modify the architecture
source file in order to use platform-specific features (like advanced memory resources) or to improve technology mapping
source file in order to use platform-specific features (like advanced memory resources) or to improve technology mapping
and/or timing.
and/or timing.
 
 
 
 

powered by: WebSVN 2.1.0

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