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

avy: Fold aiger model using abc to support assumptions

This commit is contained in:
Jannis Harder 2023-01-11 18:36:06 +01:00
parent 6398938e6a
commit f14aaa57c4
2 changed files with 17 additions and 2 deletions

View file

@ -1146,6 +1146,18 @@ class SbyTask(SbyConfig):
return [proc]
if model_name == "aig_fold":
proc = SbyProc(
self,
model_name,
self.model("aig"),
f"""cd {self.workdir}/model; {self.exe_paths["abc"]} -c 'read_aiger design_aiger.aig; fold; strash; write_aiger design_aiger_fold.aig'""",
logfile=open(f"{self.workdir}/model/design_aiger_fold.log", "w")
)
proc.checkretcode = True
return [proc]
self.error(f"Invalid model name: {model_name}")
def model(self, model_name):

View file

@ -31,6 +31,8 @@ def run(mode, task, engine_idx, engine):
status_2 = "UNKNOWN"
model_variant = ""
if solver_args[0] == "suprove":
if mode not in ["live", "prove"]:
task.error("The aiger solver 'suprove' is only supported in live and prove modes.")
@ -39,6 +41,7 @@ def run(mode, task, engine_idx, engine):
solver_cmd = " ".join([task.exe_paths["suprove"]] + solver_args[1:])
elif solver_args[0] == "avy":
model_variant = "_fold"
if mode != "prove":
task.error("The aiger solver 'avy' is only supported in prove mode.")
solver_cmd = " ".join([task.exe_paths["avy"], "--cex", "-"] + solver_args[1:])
@ -71,8 +74,8 @@ def run(mode, task, engine_idx, engine):
proc = SbyProc(
task,
f"engine_{engine_idx}",
task.model("aig"),
f"cd {task.workdir}; {solver_cmd} model/design_aiger.aig",
task.model(f"aig{model_variant}"),
f"cd {task.workdir}; {solver_cmd} model/design_aiger{model_variant}.aig",
logfile=open(f"{task.workdir}/engine_{engine_idx}/logfile.txt", "w")
)
if solver_args[0] not in ["avy"]: