diff --git a/src/finn/custom_op/fpgadataflow/streamingfclayer_batch.py b/src/finn/custom_op/fpgadataflow/streamingfclayer_batch.py
index bc266e4934c41d6f5f1261e0a30e90cb72ba83a8..ab1d3650f197f6fc5bfaa4de385f7c9fcc4a7fbd 100644
--- a/src/finn/custom_op/fpgadataflow/streamingfclayer_batch.py
+++ b/src/finn/custom_op/fpgadataflow/streamingfclayer_batch.py
@@ -483,6 +483,10 @@ class StreamingFCLayer_Batch(HLSCustomOp):
                     adt = DataType.get_smallest_possible(0 - acc_max)
             else:
                 adt = DataType.get_smallest_possible(acc_max)
+            # ensure a datatype divisible by 8-bits in case this is the last node
+            bw = roundup_to_integer_multiple(adt.bitwidth(), 8)
+            new_adt_name = adt.name.replace(str(adt.bitwidth()), str(bw))
+            adt = DataType[new_adt_name]
             self.set_nodeattr("accDataType", adt.name)
             # for no-activation nodes, output dt = acc dt
             self.set_nodeattr("outputDataType", adt.name)