From d44ec2d4a8d0148979ba5c981c1938b302f48021 Mon Sep 17 00:00:00 2001
From: Yaman Umuroglu <maltanar@gmail.com>
Date: Mon, 18 May 2020 18:33:35 +0100
Subject: [PATCH] [AddStreams] check PE constr + future odt comment

---
 src/finn/custom_op/fpgadataflow/addstreams_batch.py | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/finn/custom_op/fpgadataflow/addstreams_batch.py b/src/finn/custom_op/fpgadataflow/addstreams_batch.py
index 02a7bce22..d5f5c1194 100644
--- a/src/finn/custom_op/fpgadataflow/addstreams_batch.py
+++ b/src/finn/custom_op/fpgadataflow/addstreams_batch.py
@@ -66,6 +66,7 @@ class AddStreams_Batch(HLSCustomOp):
     def get_folded_input_shape(self):
         ich = self.get_nodeattr("NumChannels")
         pe = self.get_nodeattr("PE")
+        assert ich % pe == 0, "PE must divide NumChannels"
         vecs = list(self.get_nodeattr("numInputVectors"))
         ishape = tuple(vecs + [ich // pe, pe])
         return ishape
@@ -144,6 +145,8 @@ class AddStreams_Batch(HLSCustomOp):
     def get_output_datatype(self):
         """Returns FINN DataType of output."""
         # we need to set output datatype to the next larger int or uint
+        # enhancement: consider specifying w/ explicit outputDataType attribute
+        # to allow overflow and use the same idt if user wants
         idt = DataType[self.get_nodeattr("inputDataType")]
         if idt.signed():
             return DataType.get_smallest_possible(2 * idt.min())
-- 
GitLab