diff --git a/src/finn/transformation/fpgadataflow/make_zynq_proj.py b/src/finn/transformation/fpgadataflow/make_zynq_proj.py index 2d4ec536f384f6bf69ba76fa2b07f2cadfc5353d..713045b389fe3b47adda6c4c2574fe649b342d4a 100644 --- a/src/finn/transformation/fpgadataflow/make_zynq_proj.py +++ b/src/finn/transformation/fpgadataflow/make_zynq_proj.py @@ -42,7 +42,6 @@ from finn.transformation.fpgadataflow.hlssynth_ip import HLSSynthIP from finn.transformation.fpgadataflow.insert_dwc import InsertDWC from finn.transformation.fpgadataflow.insert_fifo import InsertFIFO from finn.transformation.fpgadataflow.insert_iodma import InsertIODMA -from finn.transformation.fpgadataflow.make_pynq_driver import MakePYNQDriver from finn.transformation.fpgadataflow.prepare_ip import PrepareIP from finn.transformation.general import GiveReadableTensorNames, GiveUniqueNodeNames from finn.transformation.infer_data_layouts import InferDataLayouts @@ -145,7 +144,10 @@ class MakeZYNQProject(Transformation): # assume only one connection from each ip to the next # all aximm allocated to DDR[0] # all kernels allocated to SLR0 - producer = model.find_producer(node.input[0]) + if len(node.input) == 0: + producer = None + else: + producer = model.find_producer(node.input[0]) consumer = model.find_consumers(node.output[0]) # define kernel instances # name kernels connected to graph inputs as idmaxx @@ -202,6 +204,7 @@ class MakeZYNQProject(Transformation): % (instance_names[node.name], axilite_intf_name) ) axilite_idx += 1 + sdp_node.set_nodeattr("instance_name", instance_names[node.name]) config.append( "connect_bd_net [get_bd_pins %s/ap_clk] " @@ -350,6 +353,4 @@ class ZynqBuild(Transformation): # set platform attribute for correct remote execution model.set_metadata_prop("platform", "zynq-iodma") - # create driver - model = model.transform(MakePYNQDriver(platform="zynq-iodma")) return (model, False) diff --git a/src/finn/transformation/fpgadataflow/vitis_build.py b/src/finn/transformation/fpgadataflow/vitis_build.py index 502b6f2bffd0d64980ae911d28b845ad90633a44..f47a3ad96a1ae6e6044fe673d7d83c70de70868d 100644 --- a/src/finn/transformation/fpgadataflow/vitis_build.py +++ b/src/finn/transformation/fpgadataflow/vitis_build.py @@ -43,7 +43,6 @@ from finn.transformation.fpgadataflow.hlssynth_ip import HLSSynthIP from finn.transformation.fpgadataflow.insert_dwc import InsertDWC from finn.transformation.fpgadataflow.insert_fifo import InsertFIFO from finn.transformation.fpgadataflow.insert_iodma import InsertIODMA -from finn.transformation.fpgadataflow.make_pynq_driver import MakePYNQDriver from finn.transformation.fpgadataflow.prepare_ip import PrepareIP from finn.transformation.general import ( GiveReadableTensorNames, @@ -207,7 +206,10 @@ class VitisLink(Transformation): # has axis, aximm and axilite # everything else is axis-only # assume only one connection from each ip to the next - producer = model.find_producer(node.input[0]) + if len(node.input) == 0: + producer = None + else: + producer = model.find_producer(node.input[0]) consumer = model.find_consumers(node.output[0]) # define kernel instances # name kernels connected to graph inputs as idmaxx @@ -223,6 +225,7 @@ class VitisLink(Transformation): else: instance_names[node.name] = node.name config.append("nk=%s:1:%s" % (node.name, instance_names[node.name])) + sdp_node.set_nodeattr("instance_name", instance_names[node.name]) # explicitly assign SLRs if the slr attribute is not -1 node_slr = sdp_node.get_nodeattr("slr") if node_slr != -1: @@ -439,6 +442,4 @@ class VitisBuild(Transformation): # set platform attribute for correct remote execution model.set_metadata_prop("platform", "alveo") - # create driver - model = model.transform(MakePYNQDriver(platform="alveo")) return (model, False)