===================================================================
FPGA Interchange Format
===================================================================
What is the FPGA Interchange Format?
======================================
The FPGA Interchange Format (FPGAIF) is a standard exchange format designed to
provide all the information necessary to perform placement and routing
in an open source context. It contains three major schemas that define how
to transfer the following kinds of data in an architecture-independent
way:
1. FPGA architecture device model: The available placement and programmable routing
resources on the FPGA
2. Logical netlist: Cell definitions, networks, pins, hierarchy,
etc.
3. Physical netlist: Placement mappings and routing configurations,
i.e. mapping the logical netlist to the FPGA architecture device model
The FPGAIF is hosted as an `open source project
`_ under the `CHIPS Alliance
`_ and original development was
started in 2020.
What does the FPGA Interchange Format enable?
===============================================
Primarily it allows tools--both commercial and open source--an open way to
exchange FPGA device and design data to enable customized place and
route solutions. Some tools and efforts that support the FPGAIF:
* `DREAMPlaceFPGA `_
-- An open source GPU accelerated FPGA placer (`FPGAIF Support Page `_)
* `ISFPGA 2024 Runtime-first Routing Contest `_
* `python-fpga-interchange `_ -- A Python module for reading and writing
FPGA Interchange Files
* `RapidWright `_ -- Full support for all AMD-Xilinx architectures and design files
How is RapidWright related to the FPGA Interchange Format?
=============================================================
RapidWright has a full reference implementation of the entire FPGA
Interchange schema. It is able to generate nearly all supported FPGA
devices in the format and can read and write Interchange designs. It
can convert those designs to and from design checkpoint files to be
exported and imported from Vivado.
Additional Resources
=================================================================
* `AMD-Xilinx announcement of support for the FPGA Interchange Format `_
* `Google Open Source Blog Article on the FPGA Interchange Format `_
* `ReadTheDocs Documentation for the FPGA Interchange Schema `_
* `FPGA Interchange Schema GitHub Repository `_