diff --git a/docker/finn_entrypoint.sh b/docker/finn_entrypoint.sh index 225bf6fe367663d3355f4693091be43ef7efd753..857b062d1bbc931c1b51845b9e1d5e5fccfdb89b 100644 --- a/docker/finn_entrypoint.sh +++ b/docker/finn_entrypoint.sh @@ -13,7 +13,7 @@ gecho () { # checkout the correct dependency repo commits # the repos themselves are cloned in the Dockerfile FINN_BASE_COMMIT=8908c6a3f6674c4fa790954bd41c23ee5bf053df -FINN_EXP_COMMIT=6e64238bc13c493f4454893c635b4c13ed59e158 +FINN_EXP_COMMIT=e9f97dcdb4db2f889b0f36af079a6a1792b7d4de BREVITAS_COMMIT=aff49758ec445d77c75721c7de3091a2a1797ca8 CNPY_COMMIT=4e8810b1a8637695171ed346ce68f6984e585ef4 HLSLIB_COMMIT=2e49322d1bbc4969ca293843bda1f3f9c05456fc diff --git a/src/finn/transformation/fpgadataflow/floorplan.py b/src/finn/transformation/fpgadataflow/floorplan.py index c6bedd466e31efb622640cbd203d344ff9b3d88f..3434183b1480eb38ee267328042aec33e87e0446 100644 --- a/src/finn/transformation/fpgadataflow/floorplan.py +++ b/src/finn/transformation/fpgadataflow/floorplan.py @@ -58,16 +58,21 @@ class Floorplan(Transformation): # read in a user-specified floorplan or generate a default one if self.user_floorplan is None: - floorplan = model.analysis(floorplan_params) + self.user_floorplan = model.analysis(floorplan_params) json_dir = make_build_dir(prefix="vitis_floorplan_") json_file = json_dir + "/floorplan.json" model.set_metadata_prop("floorplan_json", json_file) with open(json_file, "w") as f: - json.dump(floorplan, f, indent=4) + json.dump(self.user_floorplan, f, indent=4) else: model.set_metadata_prop("floorplan_json", self.user_floorplan) model = model.transform(ApplyConfig(self.user_floorplan)) + try: + default_slr = self.user_floorplan["Defaults"]["slr"][0] + except: + default_slr = -1 + # perform DWC and FIFO specific adjustments unassigned_nodes = 0 for node in model.graph.node: @@ -75,6 +80,7 @@ class Floorplan(Transformation): node_slr = node_inst.get_nodeattr("slr") if node_slr == -1: unassigned_nodes += 1 + node_inst.set_nodeattr("slr", default_slr) if node.op_type == "StreamingDataWidthConverter_Batch": # if we have SLR assignment already. use that if node_slr != -1: @@ -100,8 +106,8 @@ class Floorplan(Transformation): if unassigned_nodes > 0: warnings.warn( str(unassigned_nodes) - + " nodes have no entry in the provided floorplan " - + "and no default value was set" + + " nodes have no entry in the provided floorplan," + + " SLR was set to " + str(default_slr) ) # partition id generation diff --git a/src/finn/transformation/fpgadataflow/vitis_build.py b/src/finn/transformation/fpgadataflow/vitis_build.py index 7766b4adfe22a5b77dd05213565606d3a635333f..83e83d38963a93700a16583e6661574c95192b76 100644 --- a/src/finn/transformation/fpgadataflow/vitis_build.py +++ b/src/finn/transformation/fpgadataflow/vitis_build.py @@ -251,7 +251,7 @@ class VitisLink(Transformation): mem_type = "DDR" mem_idx = 1 node_mem_port = "%s[%d]" % (mem_type, mem_idx) - config.append("sp=%s.m_axi_gmem0:%s" % node_mem_port) + config.append("sp=%s.m_axi_gmem0:%s" % (instance_names[node.name], node_mem_port)) # connect streams if producer is not None: for i in range(len(node.input)):