From 84c58adad2719b9daf11a740a26ddcf1d60e72b2 Mon Sep 17 00:00:00 2001 From: Yaman Umuroglu <maltanar@gmail.com> Date: Tue, 30 Aug 2022 21:15:31 +0200 Subject: [PATCH] [FIFO] use outFIFODepths attr for multi-out --- .../transformation/fpgadataflow/derive_characteristic.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/finn/transformation/fpgadataflow/derive_characteristic.py b/src/finn/transformation/fpgadataflow/derive_characteristic.py index 53540e22d..1bd7182ca 100644 --- a/src/finn/transformation/fpgadataflow/derive_characteristic.py +++ b/src/finn/transformation/fpgadataflow/derive_characteristic.py @@ -282,7 +282,7 @@ class DeriveFIFOSizes(NodeLocalTransformation): model = self.ref_input_model consumers = model.find_consumers(node.output[0]) # compute FIFO depth for each consumer - out_fifo_depth = 0 + out_fifo_depths = [] for cons_node in consumers: cons = registry.getCustomOp(cons_node) cons_chrc = cons.get_nodeattr("io_characteristic") @@ -298,11 +298,13 @@ class DeriveFIFOSizes(NodeLocalTransformation): prod_chrc_part = prod_chrc[pshift_min : (pshift_min + period)] cons_chrc_part = cons_chrc[:period] fifo_depth = (prod_chrc_part - cons_chrc_part).max() - out_fifo_depth = max(out_fifo_depth, fifo_depth) + out_fifo_depths.append(fifo_depth) # set output FIFO depth for this (producing) node # InsertFIFO looks at the max of (outFIFODepth, inFIFODepth) # for each tensor - prod.set_nodeattr("outFIFODepth", out_fifo_depth) + prod.set_nodeattr("outFIFODepth", out_fifo_depths[0]) + # used only for multi-consumer. nodes + prod.set_nodeattr("outFIFODepths", out_fifo_depths) except KeyError: # exception if op_type is not supported -- GitLab