

FPGA BOARD
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
7ICE40UP5K-SG48ITR50
QFN-48QFN-48 Programmable Logic Device (CPLDs/FPGAs) ROHSLatticeProgrammable Logic Device (CPLDs/FPGAs)FT2232HL-REEL
LQFP-64(10x10)-40℃~+85℃ 2 480Mbps USB 2.0 USB to UART、USB to FIFO LQFP-64(10x10) USB Converters ROHSFTDIUSB ConvertersW25Q32JVSSIQ
SOIC-8-208mil-40℃~+85℃ 100,000 cycles 133MHz 1uA 2.7V~3.6V 20 Years 32Mbit 3ms SPI SOIC-8-208mil NOR FLASH ROHSWinbondNOR FLASHAPS6404L-3SQR-SN
SOP-8SOP-8 PSRAM ROHSAP MemoryDRAMLM3880-1AC
SOT23-6Simple Power Sequencer, Power UP : 1 2 3, Power Down 3 2 1, Timing Designator 60msTexas InstrumentsUncategorisedTLV75512PDBV
SOT-23-5-40℃~+125℃@(Tj) 1 1.2V 33uA 46dB@(100kHz) 5.5V 500mA 71.5uVrms 780mV@(500mA) Fixed Positive Under Voltage Lockout、Over Current Protection、Soft Start、Enable、Thermal Shutdown SOT-23-5 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSTexas InstrumentsVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsTLV75533PDBV
SOT-23-5-40℃~+125℃@(Tj) 1 238mV@(500mA) 25uA 3.3V 46dB@(100kHz) 5.5V 500mA 71.5uVrms Fixed Over Current Protection、Thermal Shutdown、Input undervoltage protection Positive SOT-23-5 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSTexas InstrumentsVoltage Regulators - Linear, Low Drop Out (LDO) Regulators
README
README.mdCerberus
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
| FPGA | Lattice iCE40UP5K — 5,280 LUT4, 120 kbit BRAM, 1 Mbit SPRAM, 8 DSP blocks |
| PSRAM | 8 MB QSPI (LY68L6400SLIT) |
| Flash | 4 MB SPI configuration flash (W25Q32) |
| Host | FT2232HL — USB programming and a serial console over one cable |
| Clock | 12 MHz active oscillator into a global clock buffer |
| Expansion | 2× PMOD, 8 user GPIO on a 0.1" header |
| LEDs | 3 user RGB + power, USB and CDONE status |
| Connector | USB-C |
| PCB | 4-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.
source <path-to-oss-cad-suite>/environment2. Build
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.bin3. Flash
The config SPI is on the FT2232H's channel B, so the -I B flag is required:
iceprog -I B top.binThe 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):
picocom -b 115200 /dev/ttyUSB0Pinout
Key pins. Everything else is in cerberus.pcf.
| Function | FPGA pin |
|---|---|
| 12 MHz clock in | 37 (G1) |
| UART TX (FPGA → host) | 18 |
| UART RX (host → FPGA) | 19 |
| PSRAM CE# | 6 |
| PSRAM SCK | 9 |
| PSRAM SIO0–3 | 10, 11, 12, 13 |
| RGB LEDs | 39, 40, 41 |
| CDONE | 7 |
| CRESET_B | 8 |
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| Qty | Value | Footprint | References |
|---|---|---|---|
| 22 | 100n | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C10, C11, C12, C13, C14, C15, C16, C20, C21, C22, C23, C24, C25, C26, C27, C28 +6 |
| 6 | 10k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R10, R12, R13, R18, R19, R23 |
| 6 | FerriteBead | Inductor_SMD:L_0603_1608Metric_Pad1.05x0.95mm_HandSolder | FB1, FB2, FB3, FB4, FB5, FB6 |
| 4 | 100u | Capacitor_SMD:C_1210_3225Metric_Pad1.33x2.70mm_HandSolder | C1, C2, C3, C4 |
| 4 | 33 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R4, R20, R21, R22 |
| 4 | MountingHole_Pad | MountingHole:MountingHole_2.2mm_M2_Pad_Via | H1, H2, H3, H4 |
| 3 | 330 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R7, R15, R16 |
| 3 | TestPoint | TestPoint:TestPoint_Pad_D1.5mm | TP1, TP2, TP3 |
| 2 | 100k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R5, R6 |
| 2 | 12p | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C17, C18 |
| 2 | 1k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R9, R14 |
| 2 | 1u | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C29, C32 |
| 2 | 5k1 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R1, R2 |
| 2 | LOGO | LOGO | G***, G*** |
| 2 | Polyfuse | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | F1, F2 |
| 1 | 10n | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C6 |
| 1 | 12k @1% | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R8 |
| 1 | 12mhz @ 10pf load | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | Y3 |
| 1 | 1k5 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R3 |
| 1 | 2k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R17 |
| 1 | 2k2 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R11 |
| 1 | 3.3u | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C19 |
| 1 | 93LCxxB | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U5 |
| 1 | APS6404L-3SQR-SN | APS6404L-3SQR-SN:APS6404L-3SQR-SN_APY | U1 |
| 1 | ASV-12MHz | Oscillator:Oscillator_SMD_Abracon_ASV-4Pin_7.0x5.1mm | Y2 |
| 1 | Amber 595 nm | LED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolder | D2 |
| 1 | Conn_01x06_Pin | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | J2 |
| 1 | Conn_01x13_Pin | Connector_PinHeader_2.54mm:PinHeader_1x13_P2.54mm_Horizontal | J3 |
| 1 | Conn_01x16_Pin | Connector_PinHeader_2.54mm:PinHeader_1x16_P2.54mm_Horizontal | J4 |
| 1 | Deep red 660 nm | LED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolder | D1 |
| 1 | FT2232HL-REEL | SamacSys_Parts:QFP50P1200X1200X160-64N | IC1 |
| 1 | ICE40UP5K-SG48ITR | Package_DFN_QFN:QFN-48-1EP_7x7mm_P0.5mm_EP5.6x5.6mm | U8 |
| 1 | LM3880 | Package_TO_SOT_SMD:SOT-23-6 | U2 |
| 1 | Orange 610 nm | LED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolder | D4 |
| 1 | Red 625 nm | LED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolder | D5 |
| 1 | SW_Push | Button_Switch_SMD:SW_Push_SPST_NO_Alps_SKRK | SW1 |
| 1 | TLV75512PDBV | Package_TO_SOT_SMD:SOT-23-5 | U3 |
| 1 | TLV75533PDBV | Package_TO_SOT_SMD:SOT-23-5 | U4 |
| 1 | USB_C_Receptacle_USB2.0_16P | Connector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_Horizontal | J1 |
| 1 | W25Q32JVSS | Package_SO:SOIC-8_5.3x5.3mm_P1.27mm | U6 |
| 1 | Warm white 3000 K | LED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolder | D3 |
| 1 | Yellow 585 nm | LED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolder | D6 |
| 1 | Yellow-green 570 nm | LED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolder | D7 |
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 mm

- 4 layers75 × 55 mm

Eos epu up5k
embeddedos-org/eCAD-Hardware-Products
Hardware designs + EE docs + Board datasheets of Multiple products
145 parts8MIT - 4 layers120 × 69 mm

- 4 layers65 × 32 mm

- 4 layers50 × 47.9 mm

- 4 layers21 × 51 mm

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 mm

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 mm

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