Line 24... |
Line 24... |
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**
|
|
|
* <<_neorv32_processor_soc>>
|
[start=1]
|
* <<_neorv32_central_processing_unit_cpu>>
|
. <<_neorv32_processor_soc>>
|
* <<_on_chip_debugger_ocd>>
|
. <<_neorv32_central_processing_unit_cpu>>
|
* <<_software_framework>>
|
. <<_on_chip_debugger_ocd>>
|
|
. <<_software_framework>>
|
|
|
[TIP]
|
[TIP]
|
Links in this document are <<_overview,highlighted>>.
|
Links in this document are <<_overview,highlighted>>.
|
|
|
|
|
Line 154... |
Line 155... |
│├references - Data sheets and RISC-V specs.
|
│├references - Data sheets and RISC-V specs.
|
│└src_adoc - AsciiDoc sources for this document
|
│└src_adoc - AsciiDoc sources for this document
|
│
|
│
|
├rtl - VHDL sources
|
├rtl - VHDL sources
|
│├core - Core sources of the CPU & SoC
|
│├core - Core sources of the CPU & SoC
|
|
││└mem - SoC-internal memories (default architectures)
|
│├processor_templates - Pre-configured SoC wrappers
|
│├processor_templates - Pre-configured SoC wrappers
|
│├system_integration - System wrappers for advanced connectivity
|
│├system_integration - System wrappers for advanced connectivity
|
│└test_setups - Minimal test setup "SoCs" used in the User Guide
|
│└test_setups - Minimal test setup "SoCs" used in the User Guide
|
│
|
│
|
├setups - Example setups for various FPGAs, boards and toolchains
|
├setups - Example setups for various FPGAs, boards and toolchains
|
Line 217... |
Line 219... |
├neorv32_busswitch.vhd - Processor bus switch for CPU buses (I&D)
|
├neorv32_busswitch.vhd - Processor bus switch for CPU buses (I&D)
|
├neorv32_bus_keeper.vhd - Processor-internal bus monitor
|
├neorv32_bus_keeper.vhd - Processor-internal bus monitor
|
├neorv32_cfs.vhd - Custom functions subsystem
|
├neorv32_cfs.vhd - Custom functions subsystem
|
├neorv32_debug_dm.vhd - on-chip debugger: debug module
|
├neorv32_debug_dm.vhd - on-chip debugger: debug module
|
├neorv32_debug_dtm.vhd - on-chip debugger: debug transfer module
|
├neorv32_debug_dtm.vhd - on-chip debugger: debug transfer module
|
├neorv32_dmem.vhd - Processor-internal data memory
|
├neorv32_dmem.entity.vhd - Processor-internal data memory (entity-only!)
|
├neorv32_gpio.vhd - General purpose input/output port unit
|
├neorv32_gpio.vhd - General purpose input/output port unit
|
├neorv32_icache.vhd - Processor-internal instruction cache
|
├neorv32_icache.vhd - Processor-internal instruction cache
|
├neorv32_imem.vhd - Processor-internal instruction memory
|
├neorv32_imem.entity.vhd - Processor-internal instruction memory (entity-only!)
|
│└neor32_application_image.vhd - IMEM application initialization image
|
│└neor32_application_image.vhd - IMEM application initialization image
|
├neorv32_mtime.vhd - Machine system timer
|
├neorv32_mtime.vhd - Machine system timer
|
├neorv32_neoled.vhd - NeoPixel (TM) compatible smart LED interface
|
├neorv32_neoled.vhd - NeoPixel (TM) compatible smart LED interface
|
├neorv32_pwm.vhd - Pulse-width modulation controller
|
├neorv32_pwm.vhd - Pulse-width modulation controller
|
├neorv32_spi.vhd - Serial peripheral interface controller
|
├neorv32_spi.vhd - Serial peripheral interface controller
|
Line 232... |
Line 234... |
├neorv32_trng.vhd - True random number generator
|
├neorv32_trng.vhd - True random number generator
|
├neorv32_twi.vhd - Two wire serial interface controller
|
├neorv32_twi.vhd - Two wire serial interface controller
|
├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
|
│
|
|
├mem/neorv32_dmem.default.vhd - _Default_ data memory (architecture-only!)
|
|
└mem/neorv32_imem.default.vhd - _Default_ instruction memory (architecture-only!)
|
...................................
|
...................................
|
|
|
|
[NOTE]
|
|
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
|
|
(`mem/neorv32_*mem.default.vhd`). The **default** 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
|
|
source file in order to use platform-specific features (like advanced memory resources) or to improve technology mapping
|
|
and/or timing.
|
|
|
|
|
|
|
// ####################################################################################################################
|
// ####################################################################################################################
|
:sectnums:
|
:sectnums:
|
=== FPGA Implementation Results
|
=== FPGA Implementation Results
|