A completely FOSS toolchain for FPGAs.

Technologies
python, c/c++, verilog, fpga
Topics
programming languages, development tools, open hardware
A completely FOSS toolchain for FPGAs.

SymbiFlow is a group of projects aimed at providing a completely FOSS flow for developing FPGA IP/gateware. We believe this will dramatically broaden the outreach of FPGA platforms and lower entry barriers into FPGA development for both professional engineers and hobbyists.

FPGAs are an exciting and versatile development platform that can be used for addressing a variety of complex tasks, such as:

  • flexible parallel I/O
  • low-latency machine learning
  • robotics and motor control
  • camera interfacing and ISP
  • hardware glue logic
  • general hardware-accelerated parallel processing

A big roadblock to what we believe should be much wider adoption are the specific tools that need to be learned on a per-vendor basis and their proprietary licensing.

By working to implement a vendor neutral and modular flow that is easy to integrate with various types of other tools, and provides an open source, transparent development experience, SymbiFlow is meant to dramatically accelerate software-driven innovation in FPGA development.

SymbiFlow is already enabling new tools, development platforms and communities that build around the end-to-end open flow - and has made significant progress throughout the last few years. But a lot of work is still needed before it becomes a standard like GCC in the software world.

SymbiFlow serves as an umbrella project for several activities, the central of which deals with creating so-called FPGA "architecture definitions", i.e. documentation of how specific FPGAs work internally.

Those definitions serve as input to open source backend tools like nextpnr and Verilog to Routing, and frontend tools like Yosys. QuickLogic’s FPGAs are supported in direct collaboration with the vendor themselves, while support for other vendors is provided within separate collaborating projects targeting different FPGAs - Project X-Ray for Xilinx 7-Series, Project IceStorm for Lattice iCE40, Project Trellis for Lattice ECP5 and Project Oxide for Lattice CrossLink NX FPGAs.

2021 Program

Successful Projects

Contributor
Arash Ahmadian
Mentor
Jeff Goeders
Organization
SymbiFlow
Capturing an abstracted model of Xilinx Artix7 using VTR
Symbiflow has already produced a model of Xilinx's Artix7 in VTR, but it only limited to single chip description. The aim of this project is to...