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

Subversion Repositories neorv32

[/] [neorv32/] [trunk/] [docs/] [userguide/] [adding_custom_hw_modules.adoc] - Diff between revs 72 and 74

Show entire file | Details | Blame | View Log

Rev 72 Rev 74
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.

powered by: WebSVN 2.1.0

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