3
0
Fork 0
mirror of https://github.com/YosysHQ/sby.git synced 2025-04-12 16:28:17 +00:00

Yices 2 is the new default solver for yosys-smtbmc

This commit is contained in:
Clifford Wolf 2017-05-27 12:04:43 +02:00
parent 7f871ec89a
commit a2c1dd3f91
5 changed files with 19 additions and 7 deletions

View file

@ -44,6 +44,18 @@ SymbiYosys
cd SymbiYosys cd SymbiYosys
sudo make install sudo make install
Yices 2
~~~~~~~
.. code-block:: text
git clone https://github.com/SRI-CSL/yices2.git yices2
cd yices2
autoconf
./configure
make -j$(nproc)
sudo make install
Z3 Z3
~~ ~~
@ -89,7 +101,6 @@ Other packages
Until I find the time to write install guides for the following packages, this Until I find the time to write install guides for the following packages, this
links must suffice: links must suffice:
* Yices2: http://yices.csl.sri.com/
* Boolector: http://fmv.jku.at/boolector/ * Boolector: http://fmv.jku.at/boolector/
* AIGER: http://fmv.jku.at/aiger/ * AIGER: http://fmv.jku.at/aiger/
@ -175,8 +186,9 @@ efficiently model memories. Since this example uses large memories, the
(``smtbmc boolector`` uses boolector as SMT solver. Note that boolector is (``smtbmc boolector`` uses boolector as SMT solver. Note that boolector is
only free-to-use for noncommercial purposes. Use ``smtbmc z3`` to use the only free-to-use for noncommercial purposes. Use ``smtbmc z3`` to use the
permissively licensed solver Z3 instead. Z3 is the default solver when no permissively licensed solver Z3, or use ``smtbmc yices`` to use the
argument is used with ``smtbmc``.) copyleft licensed solver Yices 2 intead. Yices 2 is the default solver when
no argument is used with ``smtbmc``.)
Exercise: The engine ``abc bmc3`` does not provide abstract memory models. Exercise: The engine ``abc bmc3`` does not provide abstract memory models.
Therefore SymbiYosys has to synthesize the memories in the example to FFs Therefore SymbiYosys has to synthesize the memories in the example to FFs

View file

@ -40,7 +40,7 @@ options are:
| | | consistency. Values: ``on``, ``off``. Default: ``off`` | | | | consistency. Values: ``on``, ``off``. Default: ``off`` |
+-------------+------------+---------------------------------------------------------+ +-------------+------------+---------------------------------------------------------+
| ``aigsmt`` | All | Which SMT2 solver to use for converting AIGER witnesses | | ``aigsmt`` | All | Which SMT2 solver to use for converting AIGER witnesses |
| | | to counter example traces. Default: ``z3`` | | | | to counter example traces. Default: ``yices`` |
+-------------+------------+---------------------------------------------------------+ +-------------+------------+---------------------------------------------------------+
| ``smtc`` | ``bmc``, | Pass this ``.smtc`` file to the smtbmc engine. All | | ``smtc`` | ``bmc``, | Pass this ``.smtc`` file to the smtbmc engine. All |
| | ``prove``, | other engines are disabled when this option is used. | | | ``prove``, | other engines are disabled when this option is used. |

View file

@ -22,7 +22,7 @@ from sby_core import SbyTask
def run(job): def run(job):
job.handle_int_option("depth", 20) job.handle_int_option("depth", 20)
job.handle_int_option("append", 0) job.handle_int_option("append", 0)
job.handle_str_option("aigsmt", "z3") job.handle_str_option("aigsmt", "yices")
for engine_idx in range(len(job.engines)): for engine_idx in range(len(job.engines)):
engine = job.engines[engine_idx] engine = job.engines[engine_idx]

View file

@ -20,7 +20,7 @@ import re, os, getopt
from sby_core import SbyTask from sby_core import SbyTask
def run(job): def run(job):
job.handle_str_option("aigsmt", "z3") job.handle_str_option("aigsmt", "yices")
job.status = "UNKNOWN" job.status = "UNKNOWN"

View file

@ -22,7 +22,7 @@ from sby_core import SbyTask
def run(job): def run(job):
job.handle_int_option("depth", 20) job.handle_int_option("depth", 20)
job.handle_int_option("append", 0) job.handle_int_option("append", 0)
job.handle_str_option("aigsmt", "z3") job.handle_str_option("aigsmt", "yices")
job.status = "UNKNOWN" job.status = "UNKNOWN"