Skip to the content
PCBKitNew board
4 layers87.3 × 40.5 mmFPGA BOARD, the printed circuit board in 3D

An open-source iCE40 FPGA development board with a fully open toolchain.

Size
87.3 × 40.5 mm
Copper layers
4
Thickness
1.6 mm
Parts
94
Nets
114
Pads
415
Tracks, vias
523, 125
Pours
302
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
14 Aug 2026
Updated
14 Aug 2026

Overview

FPGA BOARD is an open-source printed circuit board by Darkops-cpu, from the Darkops-cpu/CERBERUS repository on GitHub. It is a 4-layer board of 87.3 × 40.5 mm with 94 parts on 114 nets, routed with 523 tracks and 125 vias.

It is built around the ICE40UP5K-SG48ITR50, FT2232HL-REEL and W25Q32JVSSIQ, with the APS6404L-3SQR-SN, LM3880-1AC and TLV75512PDBV among its other parts. Its parts include 32 capacitors, 23 resistors, 8 ICs, 7 diodes and 4 connectors. It belongs with the fPGA and programmable logic boards and the FPGA and CPLD boards of this library.

Main components

7

README

README.md

Cerberus

An open-source iCE40 FPGA development board with a fully open toolchain.

No licence server, no 100 GB install. Yosys, nextpnr and IceStorm run on any laptop and synthesise a design this size in seconds.

Status: rev A, first boards in fabrication. Untested. Do not fabricate your own copy until this note is gone.


Features

FPGALattice iCE40UP5K — 5,280 LUT4, 120 kbit BRAM, 1 Mbit SPRAM, 8 DSP blocks
PSRAM8 MB QSPI (LY68L6400SLIT)
Flash4 MB SPI configuration flash (W25Q32)
HostFT2232HL — USB programming and a serial console over one cable
Clock12 MHz active oscillator into a global clock buffer
Expansion2× PMOD, 8 user GPIO on a 0.1" header
LEDs3 user RGB + power, USB and CDONE status
ConnectorUSB-C
PCB4-layer, hand-assembled

The FT2232H's two channels run independently, so you can flash a bitstream and watch a UART console at the same time without switching modes.


Getting started

1. Install the toolchain

Download the OSS CAD Suite and add it to your PATH. That's Yosys, nextpnr, IceStorm, Icarus, Verilator, GTKWave and iceprog in one archive. Nothing to compile, nothing to licence.

sh
source <path-to-oss-cad-suite>/environment

2. Build

sh
yosys -p 'synth_ice40 -top top -json top.json' top.v
nextpnr-ice40 --up5k --package sg48 --json top.json --pcf cerberus.pcf --asc top.asc
icepack top.asc top.bin

3. Flash

The config SPI is on the FT2232H's channel B, so the -I B flag is required:

sh
iceprog -I B top.bin

The CDONE LED lights when configuration succeeds.

4. Console

Channel A enumerates as a second serial port. On Linux the two channels appear as /dev/ttyUSB0 (A) and /dev/ttyUSB1 (B):

sh
picocom -b 115200 /dev/ttyUSB0

Pinout

Key pins. Everything else is in cerberus.pcf.

FunctionFPGA pin
12 MHz clock in37 (G1)
UART TX (FPGA → host)18
UART RX (host → FPGA)19
PSRAM CE#6
PSRAM SCK9
PSRAM SIO0–310, 11, 12, 13
RGB LEDs39, 40, 41
CDONE7
CRESET_B8

Pins 14–17 are the configuration SPI bus and are not available to user designs.

Globals available on this package: 35 (G0), 37 (G1), 20 (G3), 44 (G6). Put clocks on these — a clock on an ordinary pin routes through general fabric with worse skew.

RGB LEDs are constant-current sinks driven by the SB_RGBA_DRV primitive. Current is set in the IP, not by a resistor.


Notes

Reset. The button pulls CRESET_B low and reconfigures the FPGA from flash on release. Configuration takes under 140 ms.

Internal oscillator. The iCE40's internal 48 MHz SB_HFOSC is ±20% on industrial parts. Fine for blinking an LED, useless for a UART — that's why the board has an external oscillator. Use pin 37.

PSRAM. The controller must break long transfers into chunks and deassert CE# between them — the part self-refreshes only while CE# is high, and holding it low past the tCEM window loses data. Linear burst across page boundaries is not supported on this part.

Powering. Bus-powered from USB-C. There is no barrel jack and no external supply input.


Licence

Hardware: CERN-OHL-S v2 Gateware and examples: MIT


Acknowledgements

Built on the work of YosysHQ and Project IceStorm. Pin conventions follow iCEBreaker, and the SG48 pinout is documented in Lattice FPGA-UG-02001.

Parts

94
QtyValueFootprintReferences
22100nCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC10, C11, C12, C13, C14, C15, C16, C20, C21, C22, C23, C24, C25, C26, C27, C28 +6
610kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR10, R12, R13, R18, R19, R23
6FerriteBeadInductor_SMD:L_0603_1608Metric_Pad1.05x0.95mm_HandSolderFB1, FB2, FB3, FB4, FB5, FB6
4100uCapacitor_SMD:C_1210_3225Metric_Pad1.33x2.70mm_HandSolderC1, C2, C3, C4
433Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR4, R20, R21, R22
4MountingHole_PadMountingHole:MountingHole_2.2mm_M2_Pad_ViaH1, H2, H3, H4
3330Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR7, R15, R16
3TestPointTestPoint:TestPoint_Pad_D1.5mmTP1, TP2, TP3
2100kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR5, R6
212pCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC17, C18
21kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR9, R14
21uCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC29, C32
25k1Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR1, R2
2LOGOLOGOG***, G***
2PolyfuseResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderF1, F2
110nCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC6
112k @1%Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR8
112mhz @ 10pf loadCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY3
11k5Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR3
12kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR17
12k2Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR11
13.3uCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC19
193LCxxBPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU5
1APS6404L-3SQR-SNAPS6404L-3SQR-SN:APS6404L-3SQR-SN_APYU1
1ASV-12MHzOscillator:Oscillator_SMD_Abracon_ASV-4Pin_7.0x5.1mmY2
1Amber 595 nmLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD2
1Conn_01x06_PinConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ2
1Conn_01x13_PinConnector_PinHeader_2.54mm:PinHeader_1x13_P2.54mm_HorizontalJ3
1Conn_01x16_PinConnector_PinHeader_2.54mm:PinHeader_1x16_P2.54mm_HorizontalJ4
1Deep red 660 nmLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD1
1FT2232HL-REELSamacSys_Parts:QFP50P1200X1200X160-64NIC1
1ICE40UP5K-SG48ITRPackage_DFN_QFN:QFN-48-1EP_7x7mm_P0.5mm_EP5.6x5.6mmU8
1LM3880Package_TO_SOT_SMD:SOT-23-6U2
1Orange 610 nmLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD4
1Red 625 nmLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD5
1SW_PushButton_Switch_SMD:SW_Push_SPST_NO_Alps_SKRKSW1
1TLV75512PDBVPackage_TO_SOT_SMD:SOT-23-5U3
1TLV75533PDBVPackage_TO_SOT_SMD:SOT-23-5U4
1USB_C_Receptacle_USB2.0_16PConnector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_HorizontalJ1
1W25Q32JVSSPackage_SO:SOIC-8_5.3x5.3mm_P1.27mmU6
1Warm white 3000 KLED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolderD3
1Yellow 585 nmLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD6
1Yellow-green 570 nmLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD7

Questions

How big is the FPGA BOARD PCB?

It measures 87.3 × 40.5 mm and has 4 copper layers, 1.6 mm thick.

What parts does the FPGA BOARD use?

94 parts, built around the ICE40UP5K-SG48ITR50, FT2232HL-REEL, W25Q32JVSSIQ and APS6404L-3SQR-SN. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the FPGA BOARD KiCad files?

From the Darkops-cpu/CERBERUS repository on GitHub, at the commit this page was made from: the board is FPGA BOARD.kicad_pcb and its schematic FPGA BOARD.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the FPGA BOARD design in my own project?

Its repository states no licence, so its author keeps all rights: ask Darkops-cpu before reusing the design.

Similar boards

  • 4 layers50 × 37 mmIce40tag, the printed circuit board in 3D

    Ice40tag

    clysto/ice40tag

    78 parts
  • 4 layers75 × 55 mmEos epu up5k, the printed circuit board in 3D

    Eos epu up5k

    embeddedos-org/eCAD-Hardware-Products

    Hardware designs + EE docs + Board datasheets of Multiple products

    145 parts8MIT
  • 4 layers120 × 69 mmDual adc usb, the printed circuit board in 3D

    Dual adc usb

    devbisme/ai-circuit-design-tests

    Tests of KiCad-related AI tools.

    184 parts10
  • 4 layers50 × 47.9 mmFPGA DevBoard, the printed circuit board in 3D

    FPGA DevBoard

    Jaboct/FPGA_DevBoard

    FPGA Development Board

    100 parts
  • 4 layers21 × 51 mmICE40UP5K SG48I, the printed circuit board in 3D

    ICE40UP5K SG48I

    SorenGilkeyJohnson/iCEPico

    A custom dev board based on the RP2350 microcontroller and the ICE40UP5K-SG48I FPGA.

    75 parts1CERN-OHL-S-2.0
  • 8 layers230 × 145.3 mmOptiLogic-16-Pro, the printed circuit board in 3D

    OptiLogic-16-Pro

    HexFud/OptiLogic-16-Pro

    A logic analyzer with 16 channels that can also watch two fiber network links at the same time

    342 parts
  • 4 layers98.5 × 122.4 mmVbench pod, the printed circuit board in 3D

    Vbench pod

    embeddedci-com/benchpod

    An open hardware bench tool that plugs into your CI: sensor sim, CAN, analog I/O, power control, and a Python SDK with pytest integration

    335 parts2CERN-OHL-W-2.0