Line 26... |
Line 26... |
The SPI and especially the GPIO interfaces might be the most straightforward approaches since they
|
The SPI and especially the GPIO interfaces might be the most straightforward approaches since they
|
have a minimal protocol overhead. Device-specific interrupt capabilities could be added using the
|
have a minimal protocol overhead. Device-specific interrupt capabilities could be added using the
|
https://stnolting.github.io/neorv32/#_external_interrupt_controller_xirq[External Interrupt Controller (XIRQ)].
|
https://stnolting.github.io/neorv32/#_external_interrupt_controller_xirq[External Interrupt Controller (XIRQ)].
|
|
|
Beyond simplicity, these interface only provide a very limited bandwidth and require more sophisticated
|
Beyond simplicity, these interface only provide a very limited bandwidth and require more sophisticated
|
software handling ("bit-banging" for the GPIO). Hence, i is not recommend to use them for _chip-internal_ communication.
|
software handling ("bit-banging" for the GPIO). Hence, it is not recommend to use them for _chip-internal_ communication.
|
|
|
|
|
=== External Bus Interface
|
=== External Bus Interface
|
|
|
The https://stnolting.github.io/neorv32/#_processor_external_memory_interface_wishbone_axi4_lite[External Bus Interface]
|
The https://stnolting.github.io/neorv32/#_processor_external_memory_interface_wishbone_axi4_lite[External Bus Interface]
|
Line 52... |
Line 52... |
This allows a very simple still high-bandwidth communications. However, high bus traffic may increase access latencies.
|
This allows a very simple still high-bandwidth communications. However, high bus traffic may increase access latencies.
|
|
|
|
|
=== Stream Link Interface
|
=== Stream Link Interface
|
|
|
The https://stnolting.github.io/neorv32/#_stream_link_interface_slink[Stream Link Interface (SLINK)] provides a
|
The link:++https://stnolting.github.io/neorv32/#_stream_link_interface_slink++[Stream Link Interface (SLINK)] provides a
|
point-to-point, unidirectional and parallel data interface that can be used to transfer _streaming_ data. In
|
point-to-point, unidirectional and parallel data interface that can be used to transfer _streaming_ data. In
|
contrast to the external bus interface, the streaming interface does not provide any kind of advanced control,
|
contrast to the external bus interface, the streaming interface does not provide any kind of advanced control,
|
so it can be seen as "constant address bursts" where data is transmitted _sequentially_ (no random accesses).
|
so it can be seen as "constant address bursts" where data is transmitted _sequentially_ (no random accesses).
|
While the CPU needs to "feed" the stream link interfaces with data (and read back incoming data), the actual
|
While the CPU needs to "feed" the stream link interfaces with data (and read back incoming data), the actual
|
processor-external processing of the data run independently of the CPU.
|
processor-external processing of the data run independently of the CPU.
|