Innovate by reaching for the open source FPGA tooling

F4PGA is a fully open source toolchain for the development of FPGAs of multiple vendors. Currently, it targets the Xilinx 7-Series, Lattice iCE40, Lattice ECP5 FPGAs, QuickLogic EOS S3 and is gradually being expanded to provide a comprehensive end-to-end FPGA synthesis flow.

What's new

  • Xilinx Series 7 fully open source toolchain!

    Tim Ansell | Hackday 2019

  • VPR device models from Verilog with V2X

    Karol Gugala | ORConf 2019

  • Xilinx Artix 7 support in open source toolchain

    Tim Ansell | ORConf 2019

  • Improving VPR I/O

    Fahrican Koşar | ORConf 2019

  • An update on Open Source FPGA Toolchain

    Tim Ansell | ORConf 2018

  • The nextpnr FOSS FPGA place-and-route tool

    Clifford Wolf | ORConf 2018

Why F4PGA?

F4PGA aims to push FPGAs towards more widespread adoption by optimising and automating FPGA development workflows with a set of pluggable open source tools.

Its goal is to become a complete FOSS toolchain that is:

Free & Open Source

Multi-platform

Vendor-neutral

Interchangeable
tool suite

Growing
community

Look inside
and improve

How it works

To understand how F4PGA works, it is best to start with an overview of
the general EDA tooling ecosystem and then proceed to see what
the F4PGA project consists of.

EDA Tooling Ecosystem

For both ASIC- and FPGA-oriented EDA tooling, there are three major areas:

  • hardware description
  • frontend
  • backend

While there are a number of open hardware description languages, such as Verilog, VHDL, Chisel, Migen and Amaranth HDL, the frontend and backend tooling has been lacking established standard, vendor-neutral solutions. F4PGA focuses on filling this gap.

F4PGA project structure

To become a complete FOSS FPGA toolchain, F4PGA needs a number of tools and projects to be in place to provide an end-to-end flow. Thus, F4PGA serves as an umbrella framework for several activities, the central of which focuses on the creation of FPGA F4PGA Architecture Definitions, i.e. documentation of how specific FPGAs work internally.

Those definitions and serve as input to backend tools like nextpnr and Verilog to Routing, and frontend tools like Yosys. They are created within separate collaborating projects targeting different FPGAs - Project X-Ray for Xilinx 7-Series, Project IceStorm for Lattice iCE40 and Project Trellis for Lattice ECP5 FPGAs.

Current status

Project Icestorm Project Trellis Project X-Ray QuickLogic Database
Basic Tiles:
  • Logic
  • Block RAM
Advanced Tiles:
  • DSP
  • Hard Blocks
  • Clock Tiles
  • IO Tiles
Routing:
  • Logic
  • Clock

Supported Architectures

Xilinx 7-Series

The most popular Xilinx
FPGA family

learn more

Lattice ice40

World's smallest FPGAs
for mobile devices

learn more

Lattice ecp5

Low cost FPGAs with
high performance features

learn more

QuickLogic EOS S3

FPGA + CPU
sensor processing platform

learn more

QuickLogic QLF K4N8

A 24x24 eFPGA with
6144 flip-flops, 4608 LUT4s,
adder and shift-register support

learn more

Do you want to
add more?

Help us!

learn more

Supported boards

  • Digilent Arty A7 Digilent Arty A7 XC7A35T, XC7A100T
  • Digilent Basys 3 Artix‑7 Digilent Basys 3 Artix‑7 XC7A35T
  • QuickFeather Development Kit QuickFeather Development Kit EOS-S3
  • Digilent Zybo Z7 Digilent Zybo Z7 XC7Z010
  • Alphamax NeTV2 Alphamax NeTV2 XC7A35T
  • ECP5-5G Versa ECP5-5G Versa LFE5UM5G-45F
  • ULX3S ULX3S LFE5U-12F/-25F/-45F/-85F
  • TinyFPGA Ex TinyFPGA Ex LFE5U-85F/LFE5UM5G-85F
  • iCE40-HX8K Breakout Board iCE40-HX8K Breakout Board ICE40HX8K-B-EVN
  • iCEblink40LP1K Evaluation Kit iCEblink40LP1K Evaluation Kit ICE40LP1K-BLINK-EVN
  • iCEstick Evaluation Kit iCEstick Evaluation Kit ICE40HX1K-STICK-EVN
  • Digilent Nexys Video Artix-7 FPGA Digilent Nexys Video Artix-7 FPGA XC7A200T-1SBG484C
  • DPControl iCEVision Board DPControl iCEVision Board iCE40UP5K