diff --git a/src/finn/transformation/fpgadataflow/floorplan.py b/src/finn/transformation/fpgadataflow/floorplan.py index 67920172231e685a4f5dd72f037f64fe6baf8449..549b94d9f287721aac26afd4d4d832e48adadb84 100644 --- a/src/finn/transformation/fpgadataflow/floorplan.py +++ b/src/finn/transformation/fpgadataflow/floorplan.py @@ -151,6 +151,7 @@ class Floorplan(Transformation): node_inst.set_nodeattr("partition_id", partition_cnt) partition_cnt += 1 continue + elif not ( node.op_type == "MatrixVectorActivation" and node_inst.get_nodeattr("mem_mode") is not None @@ -165,9 +166,17 @@ class Floorplan(Transformation): pre_inst = getCustomOp(pre_node) pre_slr = pre_inst.get_nodeattr("slr") if node_slr == pre_slr: - partition_id = pre_inst.get_nodeattr("partition_id") - node_inst.set_nodeattr("partition_id", partition_id) - break + axilite_intf_name = pre_inst.get_verilog_top_module_intf_names()[ + "axilite" + ] + if len(axilite_intf_name) != 0: + node_inst.set_nodeattr("partition_id", partition_cnt) + partition_cnt += 1 + else: + partition_id = pre_inst.get_nodeattr("partition_id") + node_inst.set_nodeattr("partition_id", partition_id) + break + else: # no matching, new partition node_inst.set_nodeattr("partition_id", partition_cnt)