From 884ffb862288863fceb0e7fdbd52d93db666dae3 Mon Sep 17 00:00:00 2001 From: Yaman Umuroglu <maltanar@gmail.com> Date: Thu, 23 Jan 2020 00:01:41 +0000 Subject: [PATCH] [PYNQ] include all IP dirs for PYNQ project creation --- .../fpgadataflow/make_pynq_proj.py | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/finn/transformation/fpgadataflow/make_pynq_proj.py b/src/finn/transformation/fpgadataflow/make_pynq_proj.py index 4546832cd..9b355894f 100644 --- a/src/finn/transformation/fpgadataflow/make_pynq_proj.py +++ b/src/finn/transformation/fpgadataflow/make_pynq_proj.py @@ -2,6 +2,7 @@ import os import subprocess import tempfile as tmp +from finn.core.utils import get_by_name from finn.transformation import Transformation @@ -36,9 +37,21 @@ class MakePYNQProject(Transformation): "No vlnv for stitched IP found, apply CodeGen_ipstitch first." ) + # collect list of all IP dirs + ip_dirs = ["list"] + for node in model.graph.node: + ip_dir_attribute = get_by_name(node.attribute, "ipgen_path") + assert ip_dir_attribute is not None + ip_dir_value = ip_dir_attribute.s.decode("UTF-8") + ip_dir_value += "/sol1/impl/ip" + assert os.path.isdir(ip_dir_value) + ip_dirs += [ip_dir_value] + ip_dirs += [ipstitch_path + "/ip"] + ip_dirs_str = "[%s]" % (" ".join(ip_dirs)) + # TODO extract the actual in-out bytes from graph - in_bytes = 8 - out_bytes = 8 + in_bytes = 1 + out_bytes = 1 in_if_name = "in0_V_V_0" out_if_name = "out_V_V_0" clk_name = "ap_clk_0" @@ -84,7 +97,7 @@ set config_ip_nrst_name %s set config_ip_use_axilite 0 """ % ( vivado_pynq_proj_dir, - ipstitch_path + "/ip", + ip_dirs_str, vivado_stitch_vlnv, in_bytes, out_bytes, @@ -112,7 +125,7 @@ set config_ip_use_axilite 0 f.write("cd {}\n".format(pynq_shell_path)) f.write("export platform=%s\n" % (self.platform)) f.write("export ip_config=%s\n" % (vivado_pynq_proj_dir + "/ip_config.tcl")) - f.write("make bitfile\n") + f.write("make bitstream\n") f.write("cd {}\n".format(working_dir)) # call the project creation script # synthesis script will be called with a separate transformation -- GitLab