From: William D. Jones Date: Sat, 3 Mar 2018 02:48:49 +0000 (-0500) Subject: xilinx/vivado: Provide a fallback mechanism for using the same root for Vivado and... X-Git-Tag: 24jan2021_ls180~1725^2 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2b00b7eba4204f22eccaedf59b257609ab99f6b3;p=litex.git xilinx/vivado: Provide a fallback mechanism for using the same root for Vivado and ISE toolchains. --- diff --git a/litex/build/xilinx/vivado.py b/litex/build/xilinx/vivado.py index 034dcc70..ad3be9ff 100644 --- a/litex/build/xilinx/vivado.py +++ b/litex/build/xilinx/vivado.py @@ -63,7 +63,20 @@ def _run_vivado(build_name, vivado_path, source, ver=None): command = build_script_file else: build_script_contents = "# Autogenerated by LiteX\nset -e\n" - settings = common.settings(vivado_path, ver) + + # For backwards compatibility with ISE paths, also + # look for a version in a subdirectory named "Vivado" + # under the current directory. + paths_to_try = [vivado_path, os.path.join(vivado_path, "Vivado")] + for p in paths_to_try: + try: + settings = common.settings(p, ver) + except OSError: + continue + break + else: + raise OSError("Unable to locate Vivado directory or settings.") + build_script_contents += "source " + settings + "\n" build_script_contents += "vivado -mode batch -source " + build_name + ".tcl\n" build_script_file = "build_" + build_name + ".sh" @@ -182,9 +195,9 @@ class XilinxVivadoToolchain: toolchain_path=None, source=True, run=True, **kwargs): if toolchain_path is None: if sys.platform == "win32": - toolchain_path = "C:\\Xilinx" + toolchain_path = "C:\\Xilinx\\Vivado" elif sys.platform == "cygwin": - toolchain_path = "/cygdrive/c/Xilinx" + toolchain_path = "/cygdrive/c/Xilinx/Vivado" else: toolchain_path = "/opt/Xilinx/Vivado" os.makedirs(build_dir, exist_ok=True)