2023-08-16 12:57:14 +00:00
|
|
|
.. _spi_engine offload-control-interface:
|
|
|
|
|
|
|
|
SPI Engine Offload Control Interface
|
|
|
|
================================================================================
|
|
|
|
|
|
|
|
The SPI-Engine offload control interface is used to configure and control a
|
|
|
|
:ref:`spi_engine offload`.
|
|
|
|
It is used to activate/deactivate the core as well re-program the command and
|
|
|
|
SDO data RAM.
|
|
|
|
|
|
|
|
Files
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
.. list-table::
|
|
|
|
:header-rows: 1
|
|
|
|
|
|
|
|
* - Name
|
|
|
|
- Description
|
docs: links, drop part, fixups, codeowners
Drop part role, use generic adi instead for root adi domain links.
For future reference, the snipped used was:
find ./docs/projects -type f -exec sed -i 's/:part:/:adi:/g' {} \;
Drop Containerfile.
Add option to validate links status (e.g. 200, 404), intended mostly for CI
use to check if a page has disappeared from the internet.
Validate links uses coroutines to launch multiple tasks concurrently,
but do it in bundles to avoid being rate limited.
Fixup regmap styling.
Add imoldovan, jmarques, spop, lbarbosa as docs codeowners.
Remove branch field for links to the hdl repo.
Change git role to display full path.
Fixup ZedBoard link label, remove IP List, add SYSID_ROM dokuwiki link
in ad716_sdz project.
Signed-off-by: Jorge Marques <jorge.marques@analog.com>
2023-11-13 15:42:46 +00:00
|
|
|
* - :git-hdl:`library/spi_engine/interfaces/spi_engine_offload_ctrl_rtl.xml`
|
2023-08-16 12:57:14 +00:00
|
|
|
- Interface definition file
|
|
|
|
|
|
|
|
Signal Pins
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
.. list-table::
|
|
|
|
:widths: 10 10 70
|
|
|
|
:header-rows: 1
|
|
|
|
|
|
|
|
* - Name
|
|
|
|
- Direction (Master)
|
|
|
|
- Description
|
|
|
|
* - ``cmd_wr_en``
|
|
|
|
- Output
|
|
|
|
- If asserted cmd_wr_data is written to the command memory.
|
|
|
|
* - ``cmd_wr_data``
|
|
|
|
- Output
|
|
|
|
- Data to write to the command memory.
|
|
|
|
* - ``sdo_wr_en``
|
|
|
|
- Output
|
|
|
|
- If asserted sdo_wr_data is written to the SDO data memory.
|
|
|
|
* - ``sdo_wr_data``
|
|
|
|
- Output
|
|
|
|
- Data to write to the SDO data memory.
|
|
|
|
* - ``mem_reset``
|
|
|
|
- Output
|
|
|
|
- Reset the contents of both the command and SDO data memory.
|
|
|
|
* - ``enable``
|
|
|
|
- Output
|
|
|
|
- If asserted the connected offload core will get enabled.
|
|
|
|
* - ``enabled``
|
|
|
|
- Input
|
|
|
|
- If asserted the connected offload core is enabled.
|
|
|
|
|
|
|
|
Theory of Operation
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
The SPI-Engine offload core typically implements to RAMs, one for the command
|
|
|
|
stream and one for the SDO data stream. If the ``mem_reset`` signal is asserted
|
|
|
|
the content of both memories is cleared. Asserting ``cmd_wr_en`` will write the
|
|
|
|
value of ``cmd_wr_data`` to the command memory and increase the write address by
|
|
|
|
one. The next time ``cmd_wr_en`` is asserted the next entry in the memory will
|
|
|
|
be written and so on. If ``cmd_wr_en`` is asserted more times than the size of
|
|
|
|
the command memory (without a reset in between) undefined behavior will occur.
|
|
|
|
``sdo_wr_en`` and ``sdo_wr_data`` behave analogously for the SDO data memory.
|
|
|
|
|
|
|
|
If the ``enable`` signal the is asserted the SPI-Engine offload core will be
|
|
|
|
active, this means it will listen to external trigger events and execute the
|
|
|
|
stored SPI transfer when the external trigger is asserted. If ``enable`` is not
|
|
|
|
asserted the core will no longer listen to trigger events and will not start new
|
|
|
|
transfers. But it might still be busy executing a SPI transfer that was started
|
|
|
|
previously. The ``enabled`` signal is used to indicate this and it will stay
|
|
|
|
asserted even after ``enable`` as been deasserted until the currently active SPI
|
|
|
|
transfer has been completed.
|
|
|
|
|
|
|
|
If either ``enable`` or ``enabled`` is asserted ``cmd_wr_en``, ``sdo_wr_en``, or
|
|
|
|
``memt_reset`` must not be asserted, otherwise undefined behavior can occur. In
|
|
|
|
other words as long as the SPI-Engine offload core is active the content of both
|
|
|
|
the command and SDO data memory must remain stable and be consistent.
|