mirror of https://github.com/YosysHQ/yosys.git
129 lines
6.5 KiB
ReStructuredText
129 lines
6.5 KiB
ReStructuredText
|
Compiling with Verific library
|
||
|
==============================
|
||
|
|
||
|
The easiest way to get Yosys with Verific support is to `contact YosysHQ`_ for a
|
||
|
`Tabby CAD Suite`_ evaluation license and download link. The TabbyCAD Suite
|
||
|
includes additional patches and a custom extensions library in order to get the
|
||
|
most out of the Verific parser when using Yosys.
|
||
|
|
||
|
If you already have a license for the Verific parser, in either source or binary
|
||
|
form, you may be able to compile Yosys with partial Verific support yourself.
|
||
|
|
||
|
.. _contact YosysHQ : https://www.yosyshq.com/contact
|
||
|
.. _Tabby CAD Suite: https://www.yosyshq.com/tabby-cad-datasheet
|
||
|
|
||
|
The Yosys-Verific patch
|
||
|
-----------------------
|
||
|
|
||
|
.. todo:: Fill out section on Yosys-Verific patch
|
||
|
|
||
|
* Yosys-Verific patch developed for best integration
|
||
|
* Needed for some of the formal verification front-end tools
|
||
|
* `contact YosysHQ`_ about licensing this patch for your own Yosys builds
|
||
|
* Unable to provide support for builds without this patch
|
||
|
|
||
|
New cells
|
||
|
~~~~~~~~~
|
||
|
|
||
|
============== ===========
|
||
|
Cell Description
|
||
|
============== ===========
|
||
|
$initstate
|
||
|
$set_tag
|
||
|
$get_tag
|
||
|
$overwrite_tag
|
||
|
$original_tag
|
||
|
$future_ff
|
||
|
============== ===========
|
||
|
|
||
|
.. todo:: (sub)section on features only available with TabbyCAD
|
||
|
|
||
|
Compile options
|
||
|
---------------
|
||
|
|
||
|
To enable Verific support ``ENABLE_VERIFIC`` has to be set to ``1`` and
|
||
|
``VERIFIC_DIR`` needs to point to the location where the library is located.
|
||
|
|
||
|
============== ========================== ===============================
|
||
|
Parameter Default Description
|
||
|
============== ========================== ===============================
|
||
|
ENABLE_VERIFIC 0 Enable compilation with Verific
|
||
|
VERIFIC_DIR /usr/local/src/verific_lib Library and headers location
|
||
|
============== ========================== ===============================
|
||
|
|
||
|
Since there are multiple Verific library builds and they can have different
|
||
|
features, there are compile options to select them.
|
||
|
|
||
|
================================= ======= ===================================
|
||
|
Parameter Default Description
|
||
|
================================= ======= ===================================
|
||
|
ENABLE_VERIFIC_SYSTEMVERILOG 1 SystemVerilog support
|
||
|
ENABLE_VERIFIC_VHDL 1 VHDL support
|
||
|
ENABLE_VERIFIC_HIER_TREE 1 Hierarchy tree support
|
||
|
ENABLE_VERIFIC_YOSYSHQ_EXTENSIONS 1 YosysHQ specific extensions support
|
||
|
ENABLE_VERIFIC_EDIF 0 EDIF support
|
||
|
ENABLE_VERIFIC_LIBERTY 0 Liberty file support
|
||
|
================================= ======= ===================================
|
||
|
|
||
|
Supported build
|
||
|
~~~~~~~~~~~~~~~
|
||
|
|
||
|
The default values for options represent the only fully supported configuration
|
||
|
of Yosys with Verific. This build includes SystemVerilog and VHDL support with
|
||
|
RTL elaboration, hierarchy tree and static elaboration for both languages. This
|
||
|
is the only configuration for which the Yosys-Verific patch is available.
|
||
|
|
||
|
.. note::
|
||
|
|
||
|
TabbyCAD builds also have additional EDIF and Liberty file support enabled.
|
||
|
YosysHQ extensions library is only part of TabbyCAD as a product.
|
||
|
|
||
|
.. todo:: is "YosysHQ extensions library" == "YosysHQ specific extensions support" ?
|
||
|
|
||
|
If not, they need to be better distinguished. If they are, then how is it
|
||
|
possible for someone to build the supported configuration?
|
||
|
|
||
|
Partially supported builds
|
||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
|
|
||
|
To be able to compile Yosys with Verific, the Verific library must have support
|
||
|
for at least one HDL language with RTL elaboration enabled. The following table
|
||
|
lists a series of build configurations which are possible, but only provide a
|
||
|
limited subset of features. Please note that support is limited without YosysHQ
|
||
|
specific extensions of Verific library.
|
||
|
|
||
|
+--------------------------------------------------------------------------+---------------+------+-----------+--------------------+
|
||
|
| | Configuration values beginning with ENABLE_VERIFIC\_ |
|
||
|
+--------------------------------------------------------------------------+---------------+------+-----------+--------------------+
|
||
|
| Features | SYSTEMVERILOG | VHDL | HIER_TREE | YOSYSHQ_EXTENSIONS |
|
||
|
+==========================================================================+===============+======+===========+====================+
|
||
|
| SystemVerilog + RTL elaboration | 1 | 0 | 0 | 0 |
|
||
|
+--------------------------------------------------------------------------+---------------+------+-----------+--------------------+
|
||
|
| VHDL + RTL elaboration | 0 | 1 | 0 | 0 |
|
||
|
+--------------------------------------------------------------------------+---------------+------+-----------+--------------------+
|
||
|
| SystemVerilog + VHDL + RTL elaboration | 1 | 1 | 0 | 0 |
|
||
|
+--------------------------------------------------------------------------+---------------+------+-----------+--------------------+
|
||
|
| SystemVerilog + RTL elaboration + Static elaboration + Hier tree | 1 | 0 | 1 | 0 |
|
||
|
+--------------------------------------------------------------------------+---------------+------+-----------+--------------------+
|
||
|
| VHDL + RTL elaboration + Static elaboration + Hier tree | 0 | 1 | 1 | 0 |
|
||
|
+--------------------------------------------------------------------------+---------------+------+-----------+--------------------+
|
||
|
| SystemVerilog + VHDL + RTL elaboration + Static elaboration + Hier tree | 1 | 1 | 1 | 0 |
|
||
|
+--------------------------------------------------------------------------+---------------+------+-----------+--------------------+
|
||
|
|
||
|
.. note::
|
||
|
|
||
|
In case your Verific build has EDIF and/or Liberty support, you can enable
|
||
|
those options. These are not mentioned above for simplification and since
|
||
|
they are disabled by default.
|
||
|
|
||
|
Verific Features that should be enabled in your Verific library
|
||
|
---------------------------------------------------------------
|
||
|
|
||
|
Please be aware that the following Verific configuration build parameter needs
|
||
|
to be enabled in order to create the fully supported build.
|
||
|
|
||
|
::
|
||
|
|
||
|
database/DBCompileFlags.h:
|
||
|
DB_PRESERVE_INITIAL_VALUE
|