diff --git a/src/finn/transformation/fpgadataflow/insert_fifo.py b/src/finn/transformation/fpgadataflow/insert_fifo.py index 1b7625e0505fa8c838bfb3c0b5c03d9be97d4393..b5ae2da47a19af5b6bbf44a2a65cbef4c3bbc4dd 100644 --- a/src/finn/transformation/fpgadataflow/insert_fifo.py +++ b/src/finn/transformation/fpgadataflow/insert_fifo.py @@ -145,11 +145,16 @@ class InsertFIFO(Transformation): first_node.op_type != "StreamingFIFO" and first_node.op_type != "IODMA" ): - n_input = first_node.input[0] + inp_ind = list(first_node.input).index(graph_in_name) + n_input = first_node.input[inp_ind] n0 = getCustomOp(first_node) # determine fifo node attributes - fld_shape = n0.get_folded_input_shape() - dtype = n0.get_input_datatype() + if inp_ind == 0: + fld_shape = n0.get_folded_input_shape() + dtype = n0.get_input_datatype() + else: + fld_shape = n0.get_folded_input_shape(inp_ind) + dtype = n0.get_input_datatype(inp_ind) fifo_depth = n0.get_nodeattr("inFIFODepth") if fifo_depth <= 2: @@ -179,7 +184,7 @@ class InsertFIFO(Transformation): graph.node.insert(0, fifo_node) # set fifo output tensor as new input tensor of second node - first_node.input[0] = fifo_output_tensor.name + first_node.input[inp_ind] = fifo_output_tensor.name # insert FIFO as last node, except when last node is DMA graph_out_names = [x.name for x in model.graph.output]