Added yosys-smtbmc
authorClifford Wolf <clifford@clifford.at>
Tue, 13 Oct 2015 22:37:41 +0000 (00:37 +0200)
committerClifford Wolf <clifford@clifford.at>
Tue, 13 Oct 2015 22:47:04 +0000 (00:47 +0200)
backends/smt2/Makefile.inc
backends/smt2/smtbmc.py

index 4e0a393a84362f419a1e5143fadf3ab405ff46bb..65cb6e3d5bf611985f785f1a69ccdae9e1fb7376 100644 (file)
@@ -1,3 +1,17 @@
 
 OBJS += backends/smt2/smt2.o
 
+ifneq ($(CONFIG),mxe)
+ifneq ($(CONFIG),emcc)
+TARGETS += yosys-smtbmc
+
+yosys-smtbmc:
+       $(P) sed '3 { p; s|.*|sys.path += [os.path.dirname(__file__) + p for p in ["/share/python3", "/../share/yosys/python3"]]|; }' \
+                       < backends/smt2/smtbmc.py > yosys-smtbmc.new
+       $(Q) chmod +x yosys-smtbmc.new
+       $(Q) mv yosys-smtbmc.new yosys-smtbmc
+
+$(eval $(call add_share_file,share/python3,backends/smt2/smtio.py))
+endif
+endif
+
index 80c2c3cf88fd2dc730731efd1877a55ed89d843d..f6b6efdc0bf934e3ef8b98d2048795d32e4d38f7 100644 (file)
@@ -13,13 +13,15 @@ so = smtopts()
 
 def usage():
     print("""
-python3 smtbmc.py [options] <yosys_smt2_output>
+yosys-smtbmc [options] <yosys_smt2_output>
 
     -t <max_steps>
         default: 20
 
     -c <vcd_filename>
         write counter-example to this VCD file
+        (hint: use 'write_smt2 -wires' for maximum
+        coverage of signals in generated VCD file)
 
     -i <min_steps>
         instead of BMC run temporal induction
@@ -43,6 +45,8 @@ for o, a in opts:
     elif o == "-i":
         tempind = True
         min_steps = int(a)
+    elif o == "-m":
+        topmod = a
     elif so.handle(o, a):
         pass
     else:
@@ -112,6 +116,7 @@ if tempind:
             print("%s PASSED." % smt.timestamp())
             break
 
+
 else: # not tempind
     for step in range(max_steps+1):
         smt.write("(declare-fun s%d () %s_s)" % (step, topmod))