GCC for FPGA: SymbiFlow Open Source Toolchain

SymbiFlow is an open source toolchain with the goal to become the GCC compiler of FPGA toolchains.

Whitney Knitter
4 years agoFPGAs / HW101

As FPGAs have gained popularity in the maker/hobbyist community over the past few years, the design tools available for the various FPGA chipsets out there have also evolved quickly. But that's just it, FPGA developers are locked into selecting their FPGA design tools based on what vendors' FPGA chips they want to use or vice-versa.

SymbiFlow is an end-to-end FPGA synthesis toolchain with the goal to provide a fully open source, multi-platform, and vendor-neutral design tool option for FPGA developers. It contains all of the necessary tools to convert a Verilog design to a final bitstream, and is simple to use despite the face that the whole synthesis and implementation process is not a trivial one.

In the two main steps in FPGA development (synthesis and implementation), synthesis is responsible for taking the logic of the HDL written by a developer and converting it into the equivalent digital logic gate configuration. This is followed by implementation where this digital logic gate configuration is physically placed and routed in the target FPGA chip.

Since the place and routing of the design is fully dependent on the specific silicon layout design of a given FPGA chip and vendors keep this proprietary, this is where an FPGA developer gets locked into a specific toolchain.

The team behind the development of SymbiFlow have spent time reverse engineering bitstreams for FPGAs from the major vendors such as Xilinx and Lattice to gain insight as to how to overcome this obstacle to create their own open-source place and routing solution.

SymbiFlow uses the open source synthesis tool, Yosis. The synthesized design is output to nextpnr to map the design to the logic gates within the FPGA using rules and parameters for the target FPGA chip as specified by SymbiFlow. These rules and parameters have been developed from their reverse engineering of bitstreams for various FPGA chips.

SymbiFlow's main goal is to push FPGAs towards more widespread adoption by optimising and automating FPGA development workflows with a set of pluggable open source tools. They want all FPGAs to be covered by a single toolset.

So far, they have successfully incorporated support for Lattice iCE40 and Lattice ECP5 FPGAs with Project IceStorm and Project Trellis respectively.

The SymbiFlow team made some great progress towards the integration of support for Xilinx with Project X-Ray over the past year focusing on the Artix-7 chips. However, the high-speed peripherals found in Xilinx chips (and what makes them such a huge competitor in the FPGA market) are quite the challenge to reverse engineer the routing of from a final bitstream and then ultimately trying integrating into an open-source tool like nextpnr.

It's full steam ahead though at SymbiFlow, and as an FPGA developer the idea of a single toolchain solution for my entire dev board collection is really exciting!

Whitney Knitter
All thoughts/opinions are my own and do not reflect those of any company/entity I currently/previously associate with.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles