diff --git a/src/finn/util/fpgadataflow.py b/src/finn/util/fpgadataflow.py
index 29607b002bd7d7748d450c84f816606d18fded81..a53761341bf95f0210a1f7c6e06bcf7c37a33e47 100644
--- a/src/finn/util/fpgadataflow.py
+++ b/src/finn/util/fpgadataflow.py
@@ -30,6 +30,7 @@ import os
 import subprocess
 
 from pyverilator import PyVerilator
+from finn.util.basic import get_by_name
 
 
 class IPGenBuilder:
@@ -87,3 +88,16 @@ def pyverilate_get_liveness_threshold_cycles():
     the simulation is not finishing and throwing an exception."""
 
     return int(os.getenv("LIVENESS_THRESHOLD", 10000))
+
+
+def is_fpgadataflow_node(node):
+    is_node = False
+    if node is not None:
+        if node.domain == "finn":
+            n_backend = get_by_name(node.attribute, "backend")
+            if n_backend is not None:
+                backend_value = n_backend.s.decode("UTF-8")
+                if backend_value == "fpgadataflow":
+                    is_node = True
+
+    return is_node