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

Subversion Repositories neorv32

[/] [neorv32/] [trunk/] [docs/] [datasheet/] [soc_imem.adoc] - Diff between revs 60 and 61

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

Rev 60 Rev 61
Line 8... Line 8...
| Hardware source file(s): | neorv32_imem.vhd |
| Hardware source file(s): | neorv32_imem.vhd |
| Software driver file(s): | none             | _implicitly used_
| Software driver file(s): | none             | _implicitly used_
| Top entity port:         | none             |
| Top entity port:         | none             |
| Configuration generics:  | _MEM_INT_IMEM_EN_ | implement processor-internal IMEM when _true_
| Configuration generics:  | _MEM_INT_IMEM_EN_ | implement processor-internal IMEM when _true_
|                          | _MEM_INT_IMEM_SIZE_ | IMEM size in bytes
|                          | _MEM_INT_IMEM_SIZE_ | IMEM size in bytes
|                          | _MEM_INT_IMEM_ROM_ | implement IMEM as ROM when _true_
|                          | _INT_BOOTLOADER_EN_ | use internal bootlodaer when _true_ (implements IMEM as ROM)
| CPU interrupts:          | none             |
| CPU interrupts:          | none             |
|=======================
|=======================
 
 
 
[NOTE]
 
The default `neorv32_imem.vhd` HDL source file provides a _generic_ memory design that infers embedded
 
memory for _larger_ memory configurations. You might need to replace/modify the source file in order to use
 
platform-specific features (like advanced memory resources) or to improve technology mapping and/or timing.
 
 
Implementation of the processor-internal instruction memory is enabled via the processor's
Implementation of the processor-internal instruction memory is enabled via the processor's
_MEM_INT_IMEM_EN_ generic. The size in bytes is defined via the _MEM_INT_IMEM_SIZE_ generic. If the
_MEM_INT_IMEM_EN_ generic. The size in bytes is defined via the _MEM_INT_IMEM_SIZE_ generic. If the
IMEM is implemented, the memory is mapped into the instruction memory space and located right at the
IMEM is implemented, the memory is mapped into the instruction memory space and located right at the
beginning of the instruction memory space (default `ispace_base_c` = 0x00000000).
beginning of the instruction memory space (default `ispace_base_c` = 0x00000000).
 
 
By default, the IMEM is implemented as RAM, so the content can be modified during run time. This is
By default, the IMEM is implemented as RAM, so the content can be modified during run time. This is
required when using a bootloader that can update the content of the IMEM at any time. If you do not need
required when using a bootloader that can update the content of the IMEM at any time. If you do not need
the bootloader anymore – since your application development has completed and you want the program to
the bootloader anymore – since your application development has completed and you want the program to
permanently reside in the internal instruction memory – the IMEM can also be implemented as true _read-only_
permanently reside in the internal instruction memory – the IMEM is automatically implemented as _pre-intialized_
memory. In this case set the _MEM_INT_IMEM_ROM_ generic of the processor's top entity to _true_.
ROM when the processor-internal bootloader is disabled (_INT_BOOTLOADER_EN_ = _false_).
 
 
When the IMEM is implemented as ROM, it will be initialized during synthesis with the actual application
When the IMEM is implemented as ROM, it will be initialized during synthesis with the actual application
program image. The compiler toolchain will generate a VHDL initialization
program image. The compiler toolchain will generate a VHDL initialization
file `rtl/core/neorv32_application_image.vhd`, which is automatically inserted into the IMEM. If
file `rtl/core/neorv32_application_image.vhd`, which is automatically inserted into the IMEM. If
the IMEM is implemented as RAM (default), the memory will **not be initialized** at all.
the IMEM is implemented as RAM (default), the memory will **not be initialized** at all.

powered by: WebSVN 2.1.0

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