mirror of
https://github.com/YosysHQ/sby.git
synced 2025-07-31 02:13:18 +00:00
Added prove mode support via "abc pdr"
This commit is contained in:
parent
6b23046d3f
commit
5125128bbd
4 changed files with 75 additions and 5 deletions
52
sbysrc/sby_mode_prove.py
Normal file
52
sbysrc/sby_mode_prove.py
Normal file
|
@ -0,0 +1,52 @@
|
|||
#
|
||||
# SymbiYosys (sby) -- Front-end for Yosys-based formal verification flows
|
||||
#
|
||||
# Copyright (C) 2016 Clifford Wolf <clifford@clifford.at>
|
||||
#
|
||||
# Permission to use, copy, modify, and/or distribute this software for any
|
||||
# purpose with or without fee is hereby granted, provided that the above
|
||||
# copyright notice and this permission notice appear in all copies.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
#
|
||||
|
||||
import re, os, getopt
|
||||
from sby_core import SbyTask
|
||||
|
||||
def run(job):
|
||||
job.opt_depth = 20
|
||||
|
||||
if "depth" in job.options:
|
||||
job.opt_depth = int(job.options["depth"])
|
||||
|
||||
job.basecase_done = False
|
||||
job.induction_done = False
|
||||
job.basecase_tasks = list()
|
||||
job.induction_tasks = list()
|
||||
|
||||
for engine_idx in range(len(job.engines)):
|
||||
engine = job.engines[engine_idx]
|
||||
assert len(engine) > 0
|
||||
|
||||
job.log("engine_%d: %s" % (engine_idx, " ".join(engine)))
|
||||
os.makedirs("%s/engine_%d" % (job.workdir, engine_idx))
|
||||
|
||||
if engine[0] == "smtbmc":
|
||||
import sby_engine_smtbmc
|
||||
sby_engine_smtbmc.run("prove", job, engine_idx, engine)
|
||||
|
||||
elif engine[0] == "abc":
|
||||
import sby_engine_abc
|
||||
sby_engine_abc.run("prove", job, engine_idx, engine)
|
||||
|
||||
else:
|
||||
assert False
|
||||
|
||||
job.taskloop()
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue