From eef847761b650194d5a05ee979c144c6e735f3e1 Mon Sep 17 00:00:00 2001
From: Yaman Umuroglu <maltanar@gmail.com>
Date: Fri, 25 Sep 2020 12:20:15 +0200
Subject: [PATCH] [Driver] grab driver deps from finn-base

---
 .../fpgadataflow/make_pynq_driver.py          | 27 ++++++++++++-------
 1 file changed, 17 insertions(+), 10 deletions(-)

diff --git a/src/finn/transformation/fpgadataflow/make_pynq_driver.py b/src/finn/transformation/fpgadataflow/make_pynq_driver.py
index 813b40698..2f4bee159 100644
--- a/src/finn/transformation/fpgadataflow/make_pynq_driver.py
+++ b/src/finn/transformation/fpgadataflow/make_pynq_driver.py
@@ -29,8 +29,9 @@
 
 import shutil
 from finn.transformation import Transformation
-from finn.util.basic import gen_finn_dt_tensor, get_finn_root, make_build_dir
-from finn.util.data_packing import finnpy_to_packed_bytearray
+from finn.util.basic import gen_finn_dt_tensor, make_build_dir
+import finn.util.data_packing as dpk
+import finn.core.datatype as dtp
 
 from . import templates
 
@@ -77,10 +78,10 @@ class MakePYNQDriver(Transformation):
         # generate dummy folded i/o tensors and their packed versions
         i_tensor_dummy_folded = gen_finn_dt_tensor(i_tensor_dt, i_tensor_shape_folded)
         o_tensor_dummy_folded = gen_finn_dt_tensor(o_tensor_dt, o_tensor_shape_folded)
-        i_tensor_dummy_packed = finnpy_to_packed_bytearray(
+        i_tensor_dummy_packed = dpk.finnpy_to_packed_bytearray(
             i_tensor_dummy_folded, i_tensor_dt
         )
-        o_tensor_dummy_packed = finnpy_to_packed_bytearray(
+        o_tensor_dummy_packed = dpk.finnpy_to_packed_bytearray(
             o_tensor_dummy_folded, o_tensor_dt
         )
         i_tensor_shape_packed = i_tensor_dummy_packed.shape
@@ -132,11 +133,17 @@ class MakePYNQDriver(Transformation):
             f.write(validate_src)
 
         # copy all the dependencies into the driver folder
-        shutil.copytree(
-            get_finn_root() + "/src/finn/util", pynq_driver_dir + "/finn/util"
-        )
-        shutil.copytree(
-            get_finn_root() + "/src/finn/core", pynq_driver_dir + "/finn/core"
-        )
+        # driver imports utils/data_packing and core/datatype
+        # both of which are in finn-base
+        # e.g. /workspace/finn-base/src/finn/util/data_packing.py
+        dpk_root = dpk.__file__
+        # e.g. /workspace/finn-base/src/finn/util
+        dpk_root = dpk_root.replace("data_packing.py", "")
+        # e.g. /workspace/finn-base/src/finn/core/datatype.py
+        dtp_root = dtp.__file__
+        # e.g. /workspace/finn-base/src/finn/core
+        dtp_root = dtp_root.replace("datatype.py", "")
+        shutil.copytree(dpk_root, pynq_driver_dir + "/finn/util")
+        shutil.copytree(dtp_root, pynq_driver_dir + "/finn/core")
 
         return (model, False)
-- 
GitLab