Implementation Guide
This guide is intended for developers who want to extend FINN by adding new operators, transformation passes, or analysis passes.
If you’re new to FINN development, we recommend:
Reading the Concepts documentation to understand FINN’s core concepts (IR, ModelWrapper, transformations)
Reviewing the Developer documentation guide for contribution workflow
Consulting the PYTHON_STYLE_GUIDE.md and HDL_STYLE_GUIDE.md for coding standards
Getting Started
Adding a new hardware layer:
Start with CustomOp Class Hierarchy to understand the CustomOp class hierarchy
See Implementing HLS Variants for HLS code generation or Implementing RTL Variants for RTL code generation
See SpecializeLayers: HLS vs RTL Selection to add selection logic for HLS vs RTL
Adding transformation or analysis passes: