From 217660a938b6c7a9eb691bc4f5012238434eecf0 Mon Sep 17 00:00:00 2001 From: Yaman Umuroglu <maltanar@gmail.com> Date: Fri, 7 Aug 2020 00:20:24 +0200 Subject: [PATCH] [ZYNQ] remove InsertTLastMarker, support stitching w/o TLastMarker --- .../transformation/fpgadataflow/create_stitched_ip.py | 11 +++-------- .../transformation/fpgadataflow/make_zynq_proj.py | 4 ---- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/src/finn/transformation/fpgadataflow/create_stitched_ip.py b/src/finn/transformation/fpgadataflow/create_stitched_ip.py index 018ad385f..90b4b6c47 100644 --- a/src/finn/transformation/fpgadataflow/create_stitched_ip.py +++ b/src/finn/transformation/fpgadataflow/create_stitched_ip.py @@ -210,7 +210,8 @@ class CreateStitchedIP(Transformation): assert ( node_inst.get_nodeattr("Direction") == "in" ), """Output TLastMarker incorrect direction""" - elif node.op_type == "IODMA": + elif node.op_type == "IODMA" and len(model.graph.node) != 1: + # don't apply this check for a 1-node partition assert ( node_inst.get_nodeattr("direction") == "in" ), """Input DMA incorrect direction""" @@ -241,17 +242,11 @@ class CreateStitchedIP(Transformation): if model.find_consumers(node.output[0]) is None: # last node in graph self.connect_m_axis_external(node) - # ensure it is a TLastMarker to have a valid TLast signal - assert ( - node.op_type == "TLastMarker" or node.op_type == "IODMA" - ), """Last node is not TLastMarker or DMA. - Please run transformation InsertTLastMarker/InsertIODMA to ensure - a valid TLast signal""" if node.op_type == "TLastMarker": assert ( node_inst.get_nodeattr("Direction") == "out" ), """Output TLastMarker incorrect direction""" - elif node.op_type == "IODMA": + elif node.op_type == "IODMA" and len(model.graph.node) != 1: assert ( node_inst.get_nodeattr("direction") == "out" ), """Output DMA incorrect direction""" diff --git a/src/finn/transformation/fpgadataflow/make_zynq_proj.py b/src/finn/transformation/fpgadataflow/make_zynq_proj.py index 994c41fd0..dfc076ba5 100644 --- a/src/finn/transformation/fpgadataflow/make_zynq_proj.py +++ b/src/finn/transformation/fpgadataflow/make_zynq_proj.py @@ -41,7 +41,6 @@ from finn.transformation.fpgadataflow.create_dataflow_partition import ( ) from finn.transformation.fpgadataflow.insert_dwc import InsertDWC from finn.transformation.fpgadataflow.insert_fifo import InsertFIFO -from finn.transformation.fpgadataflow.insert_tlastmarker import InsertTLastMarker from finn.transformation.fpgadataflow.insert_iodma import InsertIODMA from finn.transformation.fpgadataflow.prepare_ip import PrepareIP from finn.transformation.fpgadataflow.hlssynth_ip import HLSSynthIP @@ -297,9 +296,6 @@ class ZynqBuild(Transformation): dataflow_model_filename = sdp_node.get_nodeattr("model") kernel_model = ModelWrapper(dataflow_model_filename) kernel_model = kernel_model.transform(InsertFIFO()) - kernel_model = kernel_model.transform( - InsertTLastMarker(both=True, external=False, dynamic=False) - ) kernel_model = kernel_model.transform(GiveUniqueNodeNames()) kernel_model.save(dataflow_model_filename) kernel_model = kernel_model.transform( -- GitLab