Skip to content
Linus Jungemann edited this page Sep 2, 2026 · 20 revisions

Welcome to FINN+

FINN+ is a powerful framework for deploying quantized neural networks on FPGA hardware. It specifically targets quantized neural networks (QNNs), with emphasis on generating dataflow-style architectures customized for each network.

IMPORTANT

This Wiki is currently being updated for FINN+ 1.4.0. Some information may be oudated!

๐ŸŽฏ What is FINN+?

FINN+ takes your quantized neural networks (in QONNX format) and automatically generates optimized FPGA implementations. Whether you're targeting Zynq SoCs or Alveo data center cards, FINN+ handles the complex hardware generation process for you.

FINN+ is a fork of AMD's FINN framework and is developed as part of the EKI research project. For additional information on the original FINN framework, we refer to the project website: https://xilinx.github.io/finn/

โœจ Key Features

  • ๐Ÿ”„ Automated Compilation - From ONNX model to FPGA bitstream
  • โšก High Performance - Optimized dataflow architectures
  • ๐ŸŽ›๏ธ Flexible Configuration - Fine-tune performance vs. resource trade-offs
  • ๐Ÿ“Š Resource Estimation - Predict FPGA utilization before synthesis
  • ๐Ÿ”ง Multiple Targets - Support for Zynq and Alveo platforms
  • ๐Ÿ PYNQ Integration - Python driver for rapid prototyping
  • โšก High-Performance C++ - Optimized C++ driver for production deployment

๐Ÿš€ Quick Start

Check out our Quick-start guide page to get started immediately!

๐Ÿ“š Documentation Overview

This wiki is split by audience. Where to Start routes you to the right path.

๐Ÿ“– User Guide โ€” compiling a network with FINN+

Page Description
Quick Start & Installation Get FINN+ running
How a Build Works What the compiler does to your model
Preparing Your Model Exporting from Brevitas
Building an Accelerator Configuring and running a build
Folding Trading resources for throughput
Deployment Getting the design onto hardware
DataflowBuildConfig Complete configuration reference

๐Ÿ› ๏ธ Developer Guide โ€” working on FINN+ itself

Page Description
Development Guide Environment setup, linting, testing, PR conventions
Implementation Details The IR, ModelWrapper, core concepts
Analysis Passes Inspecting a model
Transformations and Steps Changing a model
Custom Operations Adding operators and hardware layers
API Documentation Generated module reference

๐ŸŽฏ Use Cases

๐Ÿ–ผ๏ธ Computer Vision

  • Image classification on edge devices
  • Real-time object detection
  • Video processing pipelines

๐Ÿ”Š Signal Processing

  • Audio classification and enhancement
  • Sensor data processing
  • Time-series analysis

๐Ÿญ Industrial Applications

  • Predictive maintenance
  • Quality control systems
  • Process optimization

๐Ÿ› ๏ธ CLI Top Level Commands Overview

These are FINN+'s top level commands. To learn how they are used, simply run them with the --help flag.

Command Description
finn build <config> [<model>] Build FPGA accelerator from ONNX model
finn run <flow_file> Run custom build flow (legacy)
finn settings Manage your FINN+ settings
finn deps Manage FINN+'s dependencies
finn wizard Get assistance with setting up FINN+
finn test Run a test suite

๐Ÿค Community & Support

  • ๐Ÿ“– Documentation: This wiki contains comprehensive guides
  • ๐Ÿ› Issues: Report bugs on GitHub
  • ๐Ÿ’ฌ Discussions: Join the community discussions
  • ๐Ÿ”ง Contributing: See our Development guide

๐Ÿ”— Related Projects

  • Brevitas - Quantization-aware training library
  • QONNX - Quantized ONNX representation
  • PYNQ - Python framework for FPGA acceleration

Ready to get started? ๐Ÿ‘‰ Begin with the Quick Start Guide & Installation, or browse the Tutorials

FINN+ Wiki

๐Ÿ  Home

๐Ÿ“– User Guide

Using FINN+ to compile a network.

Getting started

Building

Tuning

Checking

Reference


๐Ÿ› ๏ธ Developer Guide

Working on the FINN+ compiler itself.

Getting started

Extending FINN+

Compiler internals

Testing

Reference


๐Ÿ”— External Links

Clone this wiki locally