3
0
Fork 0
mirror of https://github.com/YosysHQ/sby.git synced 2025-07-18 04:26:44 +00:00

add --seed option to smtbmc and btor engines

This commit is contained in:
N. Engelhardt 2020-07-01 18:05:20 +02:00
parent 2751d19216
commit ee5cfdef76
2 changed files with 20 additions and 6 deletions

View file

@ -21,21 +21,31 @@ from types import SimpleNamespace
from sby_core import SbyTask
def run(mode, job, engine_idx, engine):
opts, solver_args = getopt.getopt(engine[1:], "", [])
random_seed = None
opts, solver_args = getopt.getopt(engine[1:], "", ["seed="])
if len(solver_args) == 0:
job.error("Missing solver command.")
for o, a in opts:
job.error("Unexpected BTOR engine options.")
if o == "--seed":
random_seed = a
else:
job.error("Unexpected BTOR engine options.")
if solver_args[0] == "btormc":
solver_cmd = job.exe_paths["btormc"] + " --stop-first {} -v 1 -kmax {}".format(0 if mode == "cover" else 1, job.opt_depth - 1)
solver_cmd = ""
if random_seed:
solver_cmd += "BTORSEED={} ".format(random_seed)
solver_cmd += job.exe_paths["btormc"] + " --stop-first {} -v 1 -kmax {}".format(0 if mode == "cover" else 1, job.opt_depth - 1)
if job.opt_skip is not None:
solver_cmd += " -kmin {}".format(job.opt_skip)
solver_cmd += " ".join([""] + solver_args[1:])
elif solver_args[0] == "cosa2":
if random_seed:
job.error("Setting the random seed is not available for the cosa2 solver.")
solver_cmd = job.exe_paths["cosa2"] + " -v 1 -e bmc -k {}".format(job.opt_depth - 1)
else: