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:
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.
For both ASIC- and FPGA-oriented EDA tooling, there are three major areas:
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.
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.
Project Icestorm | Project Trellis | Project X-Ray | QuickLogic Database | |
Basic Tiles:
|
||||
Advanced Tiles:
|
||||
Routing:
|
A 24x24 eFPGA with
6144 flip-flops, 4608 LUT4s,
adder and shift-register support