From 5da844723dab5dec1294c3ddca6d3445da5cc81d Mon Sep 17 00:00:00 2001
From: Yaman Umuroglu <yamanu@xilinx.com>
Date: Fri, 17 Jul 2020 14:57:21 +0100
Subject: [PATCH] [Vitis] check that all Vitis-related env.vars are set

---
 src/finn/transformation/fpgadataflow/vitis_build.py | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/finn/transformation/fpgadataflow/vitis_build.py b/src/finn/transformation/fpgadataflow/vitis_build.py
index 89ceb0746..0f5492319 100644
--- a/src/finn/transformation/fpgadataflow/vitis_build.py
+++ b/src/finn/transformation/fpgadataflow/vitis_build.py
@@ -52,6 +52,10 @@ from finn.transformation.general import GiveReadableTensorNames, GiveUniqueNodeN
 from finn.util.basic import make_build_dir
 from finn.transformation.infer_data_layouts import InferDataLayouts
 
+def _check_vitis_envvars():
+    assert "VITIS_PATH" in os.environ, "VITIS_PATH must be set for Vitis"
+    assert "PLATFORM_REPO_PATHS" in os.environ, "PLATFORM_REPO_PATHS must be set for Vitis"
+    assert "XILINX_XRT" in os.environ, "XILINX_XRT must be set for Vitis, ensure the XRT env is sourced"
 
 class CreateVitisXO(Transformation):
     """Create a Vitis object file from a stitched FINN ip.
@@ -66,6 +70,7 @@ class CreateVitisXO(Transformation):
         self.ip_name = ip_name
 
     def apply(self, model):
+        _check_vitis_envvars()
         vivado_proj_dir = model.get_metadata_prop("vivado_stitch_proj")
         stitched_ip_dir = vivado_proj_dir + "/ip"
         args_string = []
@@ -157,7 +162,7 @@ class VitisLink(Transformation):
         self.f_mhz = f_mhz
 
     def apply(self, model):
-
+        _check_vitis_envvars()
         # create a config file and empty list of xo files
         config = ["[connectivity]"]
         object_files = []
@@ -257,6 +262,7 @@ class VitisBuild(Transformation):
         self.platform = platform
 
     def apply(self, model):
+        _check_vitis_envvars()
         # first infer layouts
         model = model.transform(InferDataLayouts())
         # prepare at global level, then break up into kernels
-- 
GitLab