Innovate by reaching for the
open source FPGA tooling

SymbiFlow 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.

Getting Started
Help contribute

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 SymbiFlow

    Tim Ansell | ORConf 2019

  • Improving VPR I/O

    Fahrican Ko┼čar | ORConf 2019

  • An update on SymbiFlow

    Tim Ansell | ORConf 2018

  • The nextpnr FOSS FPGA place-and-route tool

    Clifford Wolf | ORConf 2018

Community Channels

To register to SymbiFlow's Slack workspace, use the following Slack Invite .

Why SymbiFlow?

SymbiFlow 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:

  • Fully Open Source
  • Multi Platform
  • Pluggable / Interchangeable

Free & Open Source

Multi-platform

Vendor-neutral

Interchangeable
tool suite

Growing
community

Look inside
and improve

How it works

To understand how SymbiFlow works, it is best to start with an overview of
the general EDA tooling ecosystem and then proceed to see what
the SymbiFlow 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, Migen and Chisel, the frontend and backend tooling has been lacking established standard, vendor-neutral solutions. SymbiFlow focuses on filling this gap.

SymbiFlow project structure

To become a complete FOSS FPGA toolchain, SymbiFlow needs a number of tools and projects to be in place to provide an end-to-end flow. Thus, SymbiFlow serves as an umbrella framework for several activities, the central of which focuses on the creation of FPGA SymbiFlow 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

Do you want to
add more?

Help us!

learn more

Supported boards

  • Digilent Arty A7‑35T Digilent Arty A7‑35T XC7A35T
  • 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
  • Links

    SymbiFlow is a collaborative project and we welcome your contributions. The code is available on GitHub, while the HTML documentation is available on Read The Docs.