View all IP Cores SPI Subnode · SPI Slave

SPI Subnode
High-speed SPI, even on low-cost FPGAs.

The SPI Subnode (SPI Slave) IP core connects low-cost FPGAs to microcontrollers, SoCs or other FPGAs. A patented synchronization scheme lets the SPI clock exceed the FPGA system clock, easing timing closure and saving resources.

Vendor-independent. Supports all FPGAs of all vendors.

SPI Slave SPI Subnode CRC · enumeration SPI AXI / Avalon-ST out AXI / Avalon-ST in SPI clock can exceed the FPGA system clock
fSPI up to 1.66×of the FPGA system clock
CRC16 / CRC32optional data integrity
AXI + Avalon-STstreaming interfaces
All FPGA vendorsportable, low resource use
The core in one sentence

An efficient SPI slave for FPGA-to-host links

SPI Subnode establishes SPI communication between an FPGA and a microcontroller, SoC or another FPGA. It supports configurable clock phase and polarity, optional CRC, automated frame enumeration, and streaming output over AXI or Avalon-ST — designed so that even small, low-cost FPGAs reach high SPI data rates.

Patented sync

SPI faster than the fabric

A patented synchronization scheme allows the SPI clock to exceed the FPGA system clock — up to 1.66× — which eases timing closure and keeps resource usage low.

Integrity

CRC and frame enumeration

Optional CRC16 or CRC32 protects the payload, while automated SPI frame and packet enumeration keeps multi-frame transfers in order.

Integration

AXI and Avalon-ST out of the box

The streaming interfaces support both Intel/Altera Avalon-ST and AXI, so the core drops into a wide range of designs with minimal glue logic.

Key features

Everything the core brings

  • Configurable clock phase and polarity
  • fSPI up to 1.66 × fFPGA
  • CRC16 or CRC32 calculation
  • SPI frame enumeration
  • AXI and Avalon-ST interface
  • Ultra-low clock-rate requirements
  • Supports all FPGAs of all vendors
  • Deeply verified and tested
Specifications

Resource usage and timing

Reachable frequencies and resource results for the maximum and minimum feature set of the SPI Subnode.

Efinix

FamilyFPGAFeature setLUTFFfSPI
TrionT8F81C2max12616550 MHz
TrionT8F81C2min6810054 MHz
TrionT8Q144max126165128 MHz
TrionT8Q144min68100145 MHz
TrionT120F576max126165124 MHz
TrionT120F576min68100129 MHz
TitaniumTi60F225max126165308 MHz
TitaniumTi60F225min68100354 MHz

Lattice

FPGAFeature setLUTFFfSPIfFPGA
iCE40max22020554 MHz75 MHz
iCE40min11110056 MHz76 MHz
ECP5max169168180 MHz197 MHz
ECP5min8598200 MHz200 MHz
MachXO3max197168149 MHz124 MHz
MachXO3min105101150 MHz150 MHz
Certus-NX / CertusPro-NXmax178165200 MHz200 MHz
Certus-NX / CertusPro-NXmin155125200 MHz200 MHz
MachXO5-NXmax178165200 MHz200 MHz
MachXO5-NXmin155125200 MHz200 MHz
Avantmax193167251 MHz251 MHz
Avantmin133125251 MHz251 MHz
  • fFPGA is the internal clock domain where the parallelized SPI data is read and written. The system frequency must be at least 0.66 × fSPI, or higher as the customer design requires.
  • Timing constraints imposed by the connected SPI Main (e.g. a microcontroller) may reduce the achievable fSPI below the tabulated values.
  • All Efinix results were reached with the C4 timing variant, except the Trion T8F81 (C2 timing variant).
Where it fits

Typical applications

High SPI data rates

Reach high throughput over SPI without an oversized system clock.

FPGA to microcontroller / SoC

Resource-efficient link between an FPGA and a host processor.

FPGA to FPGA

Couple two FPGAs over a simple SPI connection.

Low-cost FPGAs

Enables even small, low-cost FPGAs to run at high SPI data rates.

Integrity-critical links

Optional CRC16/CRC32 guards the payload on noisy channels.

Resource-constrained designs

Ultra-low clock-rate requirements keep the fabric budget small.

Documentation

Datasheets

Efinix

Resource usage, timing and integration details for Efinix Trion and Titanium.

Datasheet (Efinix)

Lattice

Resource usage, timing and integration details for Lattice FPGA families.

Datasheet (Lattice)

Add high-speed SPI to your FPGA

Tell us your target FPGA and SPI requirements. We will scope an SPI Subnode configuration and share the integration details.

P2L2
P2L2 GmbH
Softwarepark 35
4232 Hagenberg im Mühlkreis
Austria

+43 681 81541388

info@p2l2.com