1 |
69 |
zero_gravi |
# SoC/Processor Templates
|
2 |
63 |
zero_gravi |
|
3 |
69 |
zero_gravi |
This folder provides exemplary templates that wrap the processor top entity and provide a simplified
|
4 |
|
|
set of configuration generics and IOs. These setups are intended to allow beginner an easy start by
|
5 |
|
|
hiding much of the processor's configuration complexity. Furthermore, these setups are used by many
|
6 |
72 |
zero_gravi |
of the provided [example setups](https://github.com/stnolting/neorv32/tree/main/setups).
|
7 |
69 |
zero_gravi |
|
8 |
|
|
Alternatively, you can directly instantiate the processor's top entity
|
9 |
72 |
zero_gravi |
[`rtl/core/neorv32_top.vhd`](https://github.com/stnolting/neorv32/blob/main/rtl/core/neorv32_top.vhd)
|
10 |
69 |
zero_gravi |
to have full access to _all_ features.
|
11 |
|
|
|
12 |
72 |
zero_gravi |
### [`neorv32_ProcessorTop_Minimal.vhd`](https://github.com/stnolting/neorv32/blob/main/rtl/processor_templates/neorv32_ProcessorTop_Minimal.vhd)
|
13 |
69 |
zero_gravi |
|
14 |
|
|
This setup used the ["Direct Boot Configuration"](https://stnolting.github.io/neorv32/#_boot_configuration).
|
15 |
|
|
Application software is installed directly into the processor-internal instruction memory (IMEM) during
|
16 |
|
|
synthesis. This memory is implemented as ROM and these is no bootloader available. Hence, the executable
|
17 |
|
|
remains unchangeable is executed right after reset.
|
18 |
|
|
|
19 |
|
|
The setup only provides 3 PWM channels as IO.
|
20 |
|
|
|
21 |
72 |
zero_gravi |
### [`neorv32_ProcessorTop_MinimalBoot.vhd`](https://github.com/stnolting/neorv32/blob/main/rtl/processor_templates/neorv32_ProcessorTop_MinimalBoot.vhd)
|
22 |
69 |
zero_gravi |
|
23 |
|
|
This setup used the ["Indirect Boot Configuration"](https://stnolting.github.io/neorv32/#_boot_configuration).
|
24 |
|
|
The NEORV32 bootloader is enabled in this setup allowing to upload new application software at any time
|
25 |
|
|
via a UART connection.
|
26 |
|
|
|
27 |
|
|
The setup provides 8 GPIO outputs and the UART communication lines as IO.
|
28 |
|
|
|
29 |
72 |
zero_gravi |
### [`neorv32_ProcessorTop_UP5KDemo.vhd`](https://github.com/stnolting/neorv32/blob/main/rtl/processor_templates/neorv32_ProcessorTop_UP5KDemo.vhd)
|
30 |
69 |
zero_gravi |
|
31 |
|
|
This is a more complex template that implements a small microcontroller-like NEORV32.
|
32 |
|
|
It was originally designed for _UPDuino V3_ board, which features a Lattice iCE40up5k FPGA, but has
|
33 |
|
|
also been ported to other boards that provide the same FPGA.
|
34 |
|
|
|
35 |
|
|
This setup provides a rich set of IOs including GPIO, SPI, TWI and PWM.
|