Introducing FPiGA: A Unified FPGA-to-Raspberry Pi Interface
Standard
FPiGA was born from the need to establish a consistent,
streamlined standard for interfacing FPGAs with Raspberry
Pi–class platforms. Until now, no widely adopted methodology
has existed, resulting in a fragmented landscape of
incompatible and inconsistent implementations.
FPiGA addresses this gap with a “Keep It Simple, Stupid”
(KISS) philosophy — aiming to reduce complexity while
enhancing reliability. The project focuses on delivering a
cohesive ecosystem that includes:
* Standardized hardware interfaces
* Reusable HDL IP libraries
* Unified device drivers
* Consistent hardware abstraction libraries
By defining clear and reliable standards, FPiGA simplifies
development, encourages interoperability, and accelerates
innovation across FPGA and Raspberry Pi integration
projects.
Core Concepts Of Compliance
1. Maintain standard hardware interfacing as defined by
the FPiGA System
2. Maintain standard kernel/bare metal drivers for
interfacing
3. Maintain standard HDL IP Cores across various
vendors
4. Maintain standard user space software libraries
Hardware Interfaces
Hardware interfaces can currently be separated into two
standardized formats (CPU<->FPGA and FPGA
Interfaces). C2FPGA Interface
(CPU to/from FPGA) - These interfaces provide
communication and data transfer to/from CPUs and
FPGAs. FPGA Interface
- These Interfaces proved communication and data
transfer to/from FPGAs and other hardware devices.
FPiGA Core Lib
Software And Drivers
FPGA HDL
I2CHDR Standard
Hardware
Kernel Driver
Userspace Library
FPGA HDL Lib
I2SAudio
Hardware
Kernel Driver
Userspace Library
FPGA HDL Lib
DSP
Audio DSP
Debug Core
Overview
Kernel Driver
Userspace Application
Supported Devices/Interfaces
Supported CFPGA Interfaces
Supported FPGA Interfaces
I2C
I2S
FPGA 8 Pin
I2S
Planned CFPGA Interfaces
Planned FPGA Interfaces
SPI
SMI
PCIe
MIPI
USB
PMOD
SYGYZY
FMC
Supported ARM OS
Supported Bare Metal
Supported Driver Interfaces
Raspberry Pi OS ARM32 & ARM64
Raspberry Pi Circle
I2C
I2S
Supported SoC Devices
Planned OS/Bare Support
Planned SoC Device Support
Raspberry Pi (2,3,4,5,CM4,CM5,Zero,Zero2W)
Debian ARM32 & ARM64
Ubuntu ARM32 & ARM64
Yocto ARM32 & ARM64
FreeRTOS
Zephyr
Raspberry Pi Pico C/C++
Raspberry Pi Pico Micropython
Debian x86
Ubuntu x86
Windows ARM32 & ARM64
Windows x86
Radxa Rock3, Rock5, RockCM3, RockCM5, Rock Zero3W, X2L,
X4