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

Subversion Repositories neorv32

[/] [neorv32/] [trunk/] [docs/] [datasheet/] [soc.adoc] - Diff between revs 73 and 74

Show entire file | Details | Blame | View Log

Rev 73 Rev 74
Line 1374... Line 1374...
 
 
Basically, the processor is a SoC consisting of the NEORV32 CPU, peripheral/IO devices, embedded
Basically, the processor is a SoC consisting of the NEORV32 CPU, peripheral/IO devices, embedded
memories, an external memory interface and a bus infrastructure to interconnect all units. Additionally, the
memories, an external memory interface and a bus infrastructure to interconnect all units. Additionally, the
system implements an internal reset generator and a global clock generator/divider.
system implements an internal reset generator and a global clock generator/divider.
 
 
 
 
**Internal Reset Generator**
**Internal Reset Generator**
 
 
 
[IMPORTANT]
Most processor-internal modules - except for the CPU and the watchdog timer - do not have a dedicated
Most processor-internal modules - except for the CPU and the watchdog timer - do not have a dedicated
reset signal. However, all devices can be reset by software by clearing the corresponding unit's control
reset signal. However, all devices can be reset by software by clearing the corresponding unit's control
register. The automatically included application start-up code (`crt0.S`) will perform a software-reset of all
register. The automatically included application start-up code (`crt0.S`) will perform a software-reset of all
modules to ensure a clean system reset state.
modules to ensure a clean system reset state.
 
 
The hardware reset signal of the processor can either be
The hardware reset signal of the processor can either be triggered via the external reset pin (`rstn_i`, low-active),
triggered via the external reset pin (`rstn_i`, low-active) or by the internal watchdog timer (if implemented).
by the internal watchdog timer (if implemented) or by the on-chip debugger. The external reset signal `rstn_i`
Before the external reset signal is applied to the system, it is extended to have a minimal duration of eight
is extended to be active for at least 4 cycles when triggered.
clock cycles.
 
 
 
**Internal Clock Divider**
**Internal Clock Divider**
 
 
An internal clock divider generates 8 clock signals derived from the processor's main clock input `clk_i`.
An internal clock divider generates 8 clock signals derived from the processor's main clock input `clk_i`.
These derived clock signals are not actual _clock signals_. Instead, they are derived from a simple counter and
These derived clock signals are not actual _clock signals_. Instead, they are derived from a simple counter and
Line 1408... Line 1410...
|=======================
|=======================
| Prescaler bits:  | `0b000` | `0b001` | `0b010` | `0b011` | `0b100` | `0b101` | `0b110` | `0b111`
| Prescaler bits:  | `0b000` | `0b001` | `0b010` | `0b011` | `0b100` | `0b101` | `0b110` | `0b111`
| Resulting clock: | _f/2_   | _f/4_   | _f/8_   | _f/64_  | _f/128_ | _f/1024_| _f/2048_| _f/4096_
| Resulting clock: | _f/2_   | _f/4_   | _f/8_   | _f/64_  | _f/128_ | _f/1024_| _f/2048_| _f/4096_
|=======================
|=======================
 
 
 
 
**Peripheral / IO Devices**
**Peripheral / IO Devices**
 
 
The processor-internal peripheral/IO devices are located at the end of the 32-bit address space at base
The processor-internal peripheral/IO devices are located at the end of the 32-bit address space at base
address _0xFFFFFE00_. A region of 512 bytes is reserved for this devices. Hence, all peripheral/IO devices are
address _0xFFFFFE00_. A region of 512 bytes is reserved for this devices. Hence, all peripheral/IO devices are
accessed using a memory-mapped scheme. A special linker script as well as the NEORV32 core software
accessed using a memory-mapped scheme. A special linker script as well as the NEORV32 core software
Line 1447... Line 1450...
register and register bit accesses.
register and register bit accesses.
 
 
[TIP]
[TIP]
A CMSIS-SVD-compatible **System View Description (SVD)** file including all peripherals is available in `sw/svd`.
A CMSIS-SVD-compatible **System View Description (SVD)** file including all peripherals is available in `sw/svd`.
 
 
 
 
**Interrupts of Processor-Internal Modules**
**Interrupts of Processor-Internal Modules**
 
 
Most peripheral/IO devices provide some kind of interrupt (for example to signal available incoming data). These
Most peripheral/IO devices provide some kind of interrupt (for example to signal available incoming data). These
interrupts are entirely mapped to the CPU's <<_custom_fast_interrupt_request_lines>>. Note that all these
interrupts are entirely mapped to the CPU's <<_custom_fast_interrupt_request_lines>>. Note that all these
interrupt lines are high-active and are permanently triggered until the IRQ-causing condition is resolved.
interrupt lines are high-active and are permanently triggered until the IRQ-causing condition is resolved.
 
 
 
 
**Nomenclature for the Peripheral / IO Devices Listing**
**Nomenclature for the Peripheral / IO Devices Listing**
 
 
Each peripheral device chapter features a register map showing accessible control and data registers of the
Each peripheral device chapter features a register map showing accessible control and data registers of the
according device including the implemented control and status bits. C-language code can directly interact with these
according device including the implemented control and status bits. C-language code can directly interact with these
registers via pre-defined `struct`. Each IO/peripheral module provides a unique `struct`. All accessible
registers via pre-defined `struct`. Each IO/peripheral module provides a unique `struct`. All accessible

powered by: WebSVN 2.1.0

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