This version (22 Dec 2022 13:07) was approved by sergiu arpadi.The Previously approved version (13 Oct 2021 08:45) is available.Diff

SPI Engine

SPI Engine is a highly flexible and powerful SPI controller framework. It consist out of multiple sub-modules which communicate over well defined interfaces. This allows a high degree of flexibility and re-usability while at the same time staying highly customizable and easily extensible.

The core component of the SPI Engine framework is a lean but powerful fully programmable execution module, which implements the SPI bus control logic. The SPI Engine execution module is controlled by a command stream which is generated by a separate module. Different command stream master modules are available and can be used depending on the system requirements. For example a software controlled memory mapped command stream offers high flexibility, while a offload core which executes a pre-programmed command stream when triggered by an external event allows for very low latency response times. By using a SPI Engine interconnect it is possible to connect multiple command stream master modules to a SPI Engine execution module.


  • Execution Module: Main module which processes a SPI engine command stream and implements the SPI bus interface logic
  • AXI Interface Module: Memory mapped software accessible interface to a SPI Engine command stream and/or offload cores
  • Offload Module: Stores a SPI Engine command stream, execution is triggered by an external event
  • Interconnect Module: Connects multiple SPI Engine command streams to a SPI Engine execution module



This list contains cores that are not part of the core SPI engine framework but make use of its interfaces and are intend to be used together with the SPI engine framework.

  • Sigma-Delta SPI Util: Helper module for interfacing ADCs from the Analog Devices Sigma-Delta family


  • CN0363 - Colorimeter application using the AD7175-2 Sigma-Delta ADC
  • adaq7980-sdz - A 16-bit ADC subsystem with four common signal processing and conditioning blocks.
  • ad5766 - 16-channel, 16-/12-bit, voltage output Digital-to-Analog Converters (DAC)
  • ad7768-1 - The AD7768-1 is a low power, high performance, Σ-Δ analog-to-digital converter (ADC).
  • AD40xx-FMC - Evaluation Board for the AD4000 Series 16-/18-/20-Bit Precision SAR ADCs
  • AD469x - 16-Bit, 16-Channel, 500 kSPS/1 MSPS, Easy Drive Multiplexed SAR ADC
  • AD4630-24 / AD4030-24 / AD4630-16 - 16/24-Bit, 2 MSPS Single or Dual Channel SAR ADC

Additional Resources

resources/fpga/peripherals/spi_engine.txt · Last modified: 22 Dec 2022 13:07 by sergiu arpadi