Noureddine RAMDI / Shrike: an open FPGA-MCU development board bridging reconfigurable logic and microcontrollers

Created Mon, 04 May 2026 10:23:01 +0000 Modified Sat, 23 May 2026 20:41:27 +0000

vicharak-in/shrike

Shrike is a rare example of an FPGA development board designed specifically for beginners and makers who want to explore heterogeneous computing by combining FPGA fabric with microcontrollers. The project uses a modest FPGA fabric with 1120 5-input LUTs paired with popular microcontrollers like the RP2040, RP2350, or ESP32-S3, aiming to lower the barrier to FPGA experimentation without the complexity or cost of high-end boards.

what shrike offers: a beginner-friendly FPGA-MCU platform

At its core, Shrike is a family of open-source FPGA development boards that share a common FPGA fabric with 1120 5-input lookup tables (LUTs). This fabric size positions the board firmly in the beginner to maker category — enough logic capacity to implement interesting custom accelerators or interfaces, but not so large that the complexity or cost becomes prohibitive.

The key architectural highlight is the heterogeneous computing approach: each board includes a host microcontroller unit (MCU) — either the RP2040, RP2350, or an ESP32-S3 variant — tightly coupled to the FPGA fabric. This MCU acts as the control processor, while the FPGA can be configured to offload compute-intensive or custom logic tasks. The boards provide a dedicated FPGA↔MCU IO interconnect designed for efficient communication between the two domains.

Hardware-wise, Shrike boards are breadboard compatible and feature PMOD connectors, which is a practical choice for expansion and prototyping with standard peripherals. The hardware designs are fully open-source under the CERN Open Hardware License v1.2, and the accompanying software and tools are available under GPL-2.0, emphasizing accessibility and transparency.

the interconnect architecture and open hardware: why shrike stands out

What distinguishes Shrike most is this FPGA↔MCU interconnect architecture. While many FPGA development boards target experienced FPGA developers with complex toolchains and high costs, Shrike aims to make FPGA heterogeneous computing approachable by letting the MCU handle general-purpose tasks and control logic, while the FPGA handles parallel, timing-critical, or custom-logic workloads.

The tradeoff is clear: the FPGA fabric is relatively small, so you can’t expect to implement large-scale or ultra-complex designs. Instead, it encourages modular, well-defined hardware accelerators that complement the MCU’s capabilities. This is a practical approach for learning and prototyping custom logic without the overhead of more complex FPGA ecosystems.

From a code quality perspective, the hardware design files in Verilog are well structured and documented, reflecting a clear modular design philosophy. The FPGA fabric uses 5-input LUTs, which is somewhat unusual compared to the more common 4-input LUTs, potentially offering a bit more logic density or flexibility but at the cost of toolchain compatibility complexity.

The open-source toolchain is a big plus, although the documentation and details around the Shrike-fi variant remain a work in progress, which might slow down newcomers. Still, the use of open licenses and the focus on low-cost, open FPGA tools is a strong developer experience (DX) win.

explore the project: where to start and what to read

Since the repository doesn’t provide explicit quickstart commands or an installation script in the analyzed sections, the best way to approach the project is by exploring the repository structure and documentation.

Start with the README at the root of the repo, which outlines the board variants, FPGA specs, and the target audience. The hardware directory contains the open-source hardware design files, including schematics and Verilog code for the FPGA fabric and interconnects.

The software directory hosts firmware, examples, and toolchain integration scripts for the microcontrollers and FPGA bitstream generation. Because the project supports multiple MCU hosts (RP2040, RP2350, ESP32-S3), look for variant-specific folders or configuration files.

Shrike also emphasizes compatibility with the PMOD standard, so checking out example projects that integrate typical PMOD peripherals can be a good entry point to understanding how the FPGA and MCU collaborate.

verdict: who should consider shrike and what to watch for

Shrike is a solid choice for embedded systems enthusiasts, makers, and students who want to dip their toes into FPGA development combined with microcontrollers. It provides a tangible, accessible platform for learning heterogeneous computing concepts without the cost or complexity of larger FPGA boards.

The open-source hardware and software ecosystem is a big plus, though the project is still evolving. Documentation gaps, especially around the Shrike-fi variant, and the relatively small FPGA fabric size mean it’s not suited for complex or production FPGA workloads yet.

If you want a practical FPGA playground that encourages modular accelerator design alongside a familiar MCU, Shrike is worth exploring. Just be prepared to invest some time navigating ongoing documentation updates and learning the nuances of the FPGA↔MCU interconnect architecture under the hood.


→ GitHub Repo: vicharak-in/shrike ⭐ 386 · Verilog