mibuild: Adding error checking around xsvf generation
authorTim 'mithro' Ansell <mithro@mithis.com>
Thu, 2 Jul 2015 14:51:03 +0000 (16:51 +0200)
committerFlorent Kermarrec <florent@enjoy-digital.fr>
Thu, 2 Jul 2015 14:51:03 +0000 (16:51 +0200)
mibuild/fpgalink_programmer.py
mibuild/xilinx/programmer.py

index 12fcba328ff309d3d926b4ad8a5c52c7cbe458dc..bac8910e03f0127597e5263f6cedffaa905d8793 100644 (file)
@@ -80,6 +80,8 @@ class FPGALink(GenericProgrammer):
         xsvf_file = os.path.splitext(bitstream_file)[0]+'.xsvf'
         print("\nGenerating xsvf formatted bitstream")
         print("="*n)
+        if os.path.exists(xsvf_file):
+            os.unlink(xsvf_file)
         _create_xsvf(bitstream_file, xsvf_file)
         print("\n"+"="*n+"\n")
 
index 7c76cf2f375167009394642130055fc276def44c..f1ee00e02758ba3363f0ec3ddfbc080ceace199a 100644 (file)
@@ -1,3 +1,4 @@
+import os
 import sys
 import subprocess
 
@@ -73,10 +74,13 @@ def _run_impact(cmds):
     with subprocess.Popen("impact -batch", stdin=subprocess.PIPE, shell=True) as process:
         process.stdin.write(cmds.encode("ASCII"))
         process.communicate()
+        return process.returncode
 
 
 def _create_xsvf(bitstream_file, xsvf_file):
-    _run_impact("""
+    assert os.path.exists(bitstream_file), bitstream_file
+    assert not os.path.exists(xsvf_file), xsvf_file
+    assert 0 == _run_impact("""
 setPreference -pref KeepSVF:True
 setMode -bs
 setCable -port xsvf -file {xsvf}