diff --git a/docs/finn/source_code.rst b/docs/finn/source_code.rst
index 215ba1bc86ada629a3f76bb8314dc774b4606974..bb4a34ee65f4a194630270622cabe123f3c8291b 100644
--- a/docs/finn/source_code.rst
+++ b/docs/finn/source_code.rst
@@ -1,7 +1,7 @@
 Source Code
 ============
 
-.. automodule:: finn
+.. automodule:: source_code/finn
     :members:
     :undoc-members:
     :show-inheritance:
diff --git a/docs/finn/source_code/finn.analysis.fpgadataflow.rst b/docs/finn/source_code/finn.analysis.fpgadataflow.rst
new file mode 100644
index 0000000000000000000000000000000000000000..cd8075d753f617f4e97a851e9b54139c966a18b2
--- /dev/null
+++ b/docs/finn/source_code/finn.analysis.fpgadataflow.rst
@@ -0,0 +1,30 @@
+finn.analysis.fpgadataflow package
+==================================
+
+Submodules
+----------
+
+finn.analysis.fpgadataflow.hls\_synth\_res\_estimation module
+-------------------------------------------------------------
+
+.. automodule:: finn.analysis.fpgadataflow.hls_synth_res_estimation
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.analysis.fpgadataflow.res\_estimation module
+-------------------------------------------------
+
+.. automodule:: finn.analysis.fpgadataflow.res_estimation
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: finn.analysis.fpgadataflow
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/finn/source_code/finn.analysis.rst b/docs/finn/source_code/finn.analysis.rst
new file mode 100644
index 0000000000000000000000000000000000000000..e4eec7717a1119de8ef5381b67361973a9ac29c5
--- /dev/null
+++ b/docs/finn/source_code/finn.analysis.rst
@@ -0,0 +1,37 @@
+finn.analysis package
+=====================
+
+Subpackages
+-----------
+
+.. toctree::
+
+   finn.analysis.fpgadataflow
+
+Submodules
+----------
+
+finn.analysis.topology module
+-----------------------------
+
+.. automodule:: finn.analysis.topology
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.analysis.verify\_custom\_nodes module
+------------------------------------------
+
+.. automodule:: finn.analysis.verify_custom_nodes
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: finn.analysis
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/finn/source_code/finn.core.rst b/docs/finn/source_code/finn.core.rst
new file mode 100644
index 0000000000000000000000000000000000000000..6563d7a4342048e37e4eac5da6b47cf9798cdd73
--- /dev/null
+++ b/docs/finn/source_code/finn.core.rst
@@ -0,0 +1,62 @@
+finn.core package
+=================
+
+Submodules
+----------
+
+finn.core.datatype module
+-------------------------
+
+.. automodule:: finn.core.datatype
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.core.execute\_custom\_node module
+--------------------------------------
+
+.. automodule:: finn.core.execute_custom_node
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.core.modelwrapper module
+-----------------------------
+
+.. automodule:: finn.core.modelwrapper
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.core.onnx\_exec module
+---------------------------
+
+.. automodule:: finn.core.onnx_exec
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.core.remote\_exec module
+-----------------------------
+
+.. automodule:: finn.core.remote_exec
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.core.rtlsim\_exec module
+-----------------------------
+
+.. automodule:: finn.core.rtlsim_exec
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: finn.core
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/finn/source_code/finn.custom_op.fpgadataflow.rst b/docs/finn/source_code/finn.custom_op.fpgadataflow.rst
new file mode 100644
index 0000000000000000000000000000000000000000..632c021beb247e077f87c5af68d62bc51f88ecdc
--- /dev/null
+++ b/docs/finn/source_code/finn.custom_op.fpgadataflow.rst
@@ -0,0 +1,54 @@
+finn.custom\_op.fpgadataflow package
+====================================
+
+Submodules
+----------
+
+finn.custom\_op.fpgadataflow.convolutioninputgenerator module
+-------------------------------------------------------------
+
+.. automodule:: finn.custom_op.fpgadataflow.convolutioninputgenerator
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.custom\_op.fpgadataflow.streamingfclayer\_batch module
+-----------------------------------------------------------
+
+.. automodule:: finn.custom_op.fpgadataflow.streamingfclayer_batch
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.custom\_op.fpgadataflow.streamingmaxpool\_batch module
+-----------------------------------------------------------
+
+.. automodule:: finn.custom_op.fpgadataflow.streamingmaxpool_batch
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.custom\_op.fpgadataflow.templates module
+---------------------------------------------
+
+.. automodule:: finn.custom_op.fpgadataflow.templates
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.custom\_op.fpgadataflow.tlastmarker module
+-----------------------------------------------
+
+.. automodule:: finn.custom_op.fpgadataflow.tlastmarker
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: finn.custom_op.fpgadataflow
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/finn/source_code/finn.custom_op.rst b/docs/finn/source_code/finn.custom_op.rst
new file mode 100644
index 0000000000000000000000000000000000000000..a984822aee2962c945a66deb50a3fd1233d5d2d0
--- /dev/null
+++ b/docs/finn/source_code/finn.custom_op.rst
@@ -0,0 +1,53 @@
+finn.custom\_op package
+=======================
+
+Subpackages
+-----------
+
+.. toctree::
+
+   finn.custom_op.fpgadataflow
+
+Submodules
+----------
+
+finn.custom\_op.multithreshold module
+-------------------------------------
+
+.. automodule:: finn.custom_op.multithreshold
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.custom\_op.registry module
+-------------------------------
+
+.. automodule:: finn.custom_op.registry
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.custom\_op.streamingdataflowpartition module
+-------------------------------------------------
+
+.. automodule:: finn.custom_op.streamingdataflowpartition
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.custom\_op.xnorpopcount module
+-----------------------------------
+
+.. automodule:: finn.custom_op.xnorpopcount
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: finn.custom_op
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/finn/source_code/finn.rst b/docs/finn/source_code/finn.rst
new file mode 100644
index 0000000000000000000000000000000000000000..1b7a1ae72ab12aa842f0a5dee16b7de6e5f76e58
--- /dev/null
+++ b/docs/finn/source_code/finn.rst
@@ -0,0 +1,21 @@
+finn package
+============
+
+Subpackages
+-----------
+
+.. toctree::
+
+   finn.analysis
+   finn.core
+   finn.custom_op
+   finn.transformation
+   finn.util
+
+Module contents
+---------------
+
+.. automodule:: finn
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/finn/source_code/finn.transformation.fpgadataflow.rst b/docs/finn/source_code/finn.transformation.fpgadataflow.rst
new file mode 100644
index 0000000000000000000000000000000000000000..435eacf2c4684a3fc9a855f4eee153cb52ea7772
--- /dev/null
+++ b/docs/finn/source_code/finn.transformation.fpgadataflow.rst
@@ -0,0 +1,134 @@
+finn.transformation.fpgadataflow package
+========================================
+
+Submodules
+----------
+
+finn.transformation.fpgadataflow.cleanup module
+-----------------------------------------------
+
+.. automodule:: finn.transformation.fpgadataflow.cleanup
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.transformation.fpgadataflow.codegen\_ipgen module
+------------------------------------------------------
+
+.. automodule:: finn.transformation.fpgadataflow.codegen_ipgen
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.transformation.fpgadataflow.codegen\_ipstitch module
+---------------------------------------------------------
+
+.. automodule:: finn.transformation.fpgadataflow.codegen_ipstitch
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.transformation.fpgadataflow.codegen\_npysim module
+-------------------------------------------------------
+
+.. automodule:: finn.transformation.fpgadataflow.codegen_npysim
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.transformation.fpgadataflow.compile module
+-----------------------------------------------
+
+.. automodule:: finn.transformation.fpgadataflow.compile
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.transformation.fpgadataflow.convert\_to\_hls\_layers module
+----------------------------------------------------------------
+
+.. automodule:: finn.transformation.fpgadataflow.convert_to_hls_layers
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.transformation.fpgadataflow.create\_dataflow\_partition module
+-------------------------------------------------------------------
+
+.. automodule:: finn.transformation.fpgadataflow.create_dataflow_partition
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.transformation.fpgadataflow.hlssynth\_ipgen module
+-------------------------------------------------------
+
+.. automodule:: finn.transformation.fpgadataflow.hlssynth_ipgen
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.transformation.fpgadataflow.insert\_tlastmarker module
+-----------------------------------------------------------
+
+.. automodule:: finn.transformation.fpgadataflow.insert_tlastmarker
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.transformation.fpgadataflow.make\_deployment module
+--------------------------------------------------------
+
+.. automodule:: finn.transformation.fpgadataflow.make_deployment
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.transformation.fpgadataflow.make\_pynq\_driver module
+----------------------------------------------------------
+
+.. automodule:: finn.transformation.fpgadataflow.make_pynq_driver
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.transformation.fpgadataflow.make\_pynq\_proj module
+--------------------------------------------------------
+
+.. automodule:: finn.transformation.fpgadataflow.make_pynq_proj
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.transformation.fpgadataflow.set\_exec\_mode module
+-------------------------------------------------------
+
+.. automodule:: finn.transformation.fpgadataflow.set_exec_mode
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.transformation.fpgadataflow.synth\_pynq\_proj module
+---------------------------------------------------------
+
+.. automodule:: finn.transformation.fpgadataflow.synth_pynq_proj
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.transformation.fpgadataflow.templates module
+-------------------------------------------------
+
+.. automodule:: finn.transformation.fpgadataflow.templates
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: finn.transformation.fpgadataflow
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/finn/source_code/finn.transformation.rst b/docs/finn/source_code/finn.transformation.rst
new file mode 100644
index 0000000000000000000000000000000000000000..172f6e300f3894dba3b13355120bcb4e23d737e1
--- /dev/null
+++ b/docs/finn/source_code/finn.transformation.rst
@@ -0,0 +1,70 @@
+finn.transformation package
+===========================
+
+Subpackages
+-----------
+
+.. toctree::
+
+   finn.transformation.fpgadataflow
+   finn.transformation.streamline
+
+Submodules
+----------
+
+finn.transformation.batchnorm\_to\_affine module
+------------------------------------------------
+
+.. automodule:: finn.transformation.batchnorm_to_affine
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.transformation.bipolar\_to\_xnor module
+--------------------------------------------
+
+.. automodule:: finn.transformation.bipolar_to_xnor
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.transformation.fold\_constants module
+------------------------------------------
+
+.. automodule:: finn.transformation.fold_constants
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.transformation.general module
+----------------------------------
+
+.. automodule:: finn.transformation.general
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.transformation.infer\_datatypes module
+-------------------------------------------
+
+.. automodule:: finn.transformation.infer_datatypes
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.transformation.infer\_shapes module
+----------------------------------------
+
+.. automodule:: finn.transformation.infer_shapes
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: finn.transformation
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/finn/source_code/finn.transformation.streamline.rst b/docs/finn/source_code/finn.transformation.streamline.rst
new file mode 100644
index 0000000000000000000000000000000000000000..33e5930952e01881dfb7e1b19eae11ebc25ac4e0
--- /dev/null
+++ b/docs/finn/source_code/finn.transformation.streamline.rst
@@ -0,0 +1,54 @@
+finn.transformation.streamline package
+======================================
+
+Submodules
+----------
+
+finn.transformation.streamline.absorb module
+--------------------------------------------
+
+.. automodule:: finn.transformation.streamline.absorb
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.transformation.streamline.collapse\_repeated module
+--------------------------------------------------------
+
+.. automodule:: finn.transformation.streamline.collapse_repeated
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.transformation.streamline.reorder module
+---------------------------------------------
+
+.. automodule:: finn.transformation.streamline.reorder
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.transformation.streamline.round\_thresholds module
+-------------------------------------------------------
+
+.. automodule:: finn.transformation.streamline.round_thresholds
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.transformation.streamline.sign\_to\_thres module
+-----------------------------------------------------
+
+.. automodule:: finn.transformation.streamline.sign_to_thres
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: finn.transformation.streamline
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/finn/source_code/finn.util.rst b/docs/finn/source_code/finn.util.rst
new file mode 100644
index 0000000000000000000000000000000000000000..1c85bcd44b63343ecab12ee12ba82c83d4fc984d
--- /dev/null
+++ b/docs/finn/source_code/finn.util.rst
@@ -0,0 +1,54 @@
+finn.util package
+=================
+
+Submodules
+----------
+
+finn.util.basic module
+----------------------
+
+.. automodule:: finn.util.basic
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.util.data\_packing module
+------------------------------
+
+.. automodule:: finn.util.data_packing
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.util.fpgadataflow module
+-----------------------------
+
+.. automodule:: finn.util.fpgadataflow
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.util.onnx module
+---------------------
+
+.. automodule:: finn.util.onnx
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+finn.util.test module
+---------------------
+
+.. automodule:: finn.util.test
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: finn.util
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/finn/source_code/modules.rst b/docs/finn/source_code/modules.rst
new file mode 100644
index 0000000000000000000000000000000000000000..dada6936c0d4e144acb991f32731b68e6995c23c
--- /dev/null
+++ b/docs/finn/source_code/modules.rst
@@ -0,0 +1,7 @@
+finn
+====
+
+.. toctree::
+   :maxdepth: 4
+
+   finn