Fix missing string replace. Added support for 32-bit ISE if 64-bit version is missing...
authoruser <calle@alukiste>
Wed, 7 Aug 2013 16:26:40 +0000 (18:26 +0200)
committerSebastien Bourdeauducq <sebastien@milkymist.org>
Wed, 7 Aug 2013 22:07:35 +0000 (00:07 +0200)
mibuild/xilinx_ise.py

index b7dc258076ac1ea8ffdb9d1d203d271cdd63d492..2ed13082465676ca5e7414024304f5f8cc504055 100644 (file)
@@ -103,7 +103,11 @@ def _run_ise(build_name, ise_path, source, mode="verilog"):
                vers = [ver for ver in os.listdir(ise_path) if _is_valid_version(ise_path, ver)]
                tools_version = max(vers)
                bits = struct.calcsize("P")*8
-               xilinx_settings_file = '%s/%s/ISE_DS/settings%d.sh' % (ise_path, tools_version, bits) 
+               
+               xilinx_settings_file = '%s/%s/ISE_DS/settings%d.sh' % (ise_path, tools_version, bits)
+               if not os.path.exists(xilinx_settings_file) and bits == 64:
+                       # if we are on 64-bit system but the toolchain isn't, try the 32-bit env.
+                       xilinx_settings_file = '%s/%s/ISE_DS/settings%d.sh' % (ise_path, tools_version, 32)
                build_script_contents += "source " + xilinx_settings_file + "\n"
        if mode == "edif":
                build_script_contents += """
@@ -111,7 +115,7 @@ ngdbuild -uc {build_name}.ucf {build_name}.edif {build_name}.ngd""".format(build
        else:
                build_script_contents += """
 xst -ifn {build_name}.xst
-ngdbuild -uc {build_name}.ucf {build_name}.ngc {build_name}.ngd"""
+ngdbuild -uc {build_name}.ucf {build_name}.ngc {build_name}.ngd""".format(build_name=build_name)
        
        build_script_contents += """
 map -ol high -w -o {build_name}_map.ncd {build_name}.ngd {build_name}.pcf