diff --git a/src/finn/custom_op/fpgadataflow/addstreams_batch.py b/src/finn/custom_op/fpgadataflow/addstreams_batch.py index 02a7bce220b4268902b1afcc724a4695fda7b76b..d5f5c1194d36e86b895610c084222db5ab9eb2bf 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())