diff --git a/src/finn/transformation/fpgadataflow/make_zynq_proj.py b/src/finn/transformation/fpgadataflow/make_zynq_proj.py
index 82dba36f242b0d08d8e5c6c8ed44a05e44a267c1..95d6b0c37c1f081527e1bac8d975aa990fcd9ec4 100644
--- a/src/finn/transformation/fpgadataflow/make_zynq_proj.py
+++ b/src/finn/transformation/fpgadataflow/make_zynq_proj.py
@@ -295,11 +295,12 @@ class ZynqBuild(Transformation):
         # Build each kernel individually
         sdp_nodes = model.get_nodes_by_op_type("StreamingDataflowPartition")
         for sdp_node in sdp_nodes:
+            prefix = sdp_node.name + "_"
             sdp_node = getCustomOp(sdp_node)
             dataflow_model_filename = sdp_node.get_nodeattr("model")
             kernel_model = ModelWrapper(dataflow_model_filename)
             kernel_model = kernel_model.transform(InsertFIFO())
-            kernel_model = kernel_model.transform(GiveUniqueNodeNames())
+            kernel_model = kernel_model.transform(GiveUniqueNodeNames(prefix))
             kernel_model.save(dataflow_model_filename)
             kernel_model = kernel_model.transform(
                 PrepareIP(self.fpga_part, self.period_ns)
diff --git a/src/finn/transformation/general.py b/src/finn/transformation/general.py
index 690364a7d827086217ffdf9d246c2f4c5f395772..8ad59d2baf3015cfebffeff88a059f48d9428371 100644
--- a/src/finn/transformation/general.py
+++ b/src/finn/transformation/general.py
@@ -81,14 +81,19 @@ class RemoveStaticGraphInputs(Transformation):
 
 
 class GiveUniqueNodeNames(Transformation):
-    """Give unique names to each node in the graph using enumeration."""
+    """Give unique names to each node in the graph using enumeration, starting
+    with given prefix (if specified in the constructor)."""
+
+    def __init__(self, prefix=""):
+        super().__init__()
+        self.prefix = prefix
 
     def apply(self, model):
         optype_count = {}
         for n in model.graph.node:
             if n.op_type not in optype_count.keys():
                 optype_count[n.op_type] = 0
-            n.name = "%s_%d" % (n.op_type, optype_count[n.op_type])
+            n.name = "%s%s_%d" % (self.prefix, n.op_type, optype_count[n.op_type])
             optype_count[n.op_type] += 1
         # return model_was_changed = False as single iteration is always enough
         return (model, False)