mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-04 05:19:11 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			155 lines
		
	
	
	
		
			6.9 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			155 lines
		
	
	
	
		
			6.9 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
 | 
						|
-----------------------
 | 
						|
 | 
						|
YosysHQ maintains and develops a patch for Verific in order to better integrate
 | 
						|
with Yosys and to provide features required by some of the formal verification
 | 
						|
front-end tools.  To license this patch for your own Yosys builds, `contact
 | 
						|
YosysHQ`_.
 | 
						|
 | 
						|
.. warning::
 | 
						|
 | 
						|
   While synthesis from RTL may be possible without this patch, YosysHQ provides
 | 
						|
   no guarantees of correctness and is unable to provide support.
 | 
						|
 | 
						|
We recommend against using unpatched Yosys+Verific builds in conjunction with
 | 
						|
the formal verification front-end tools unless you are familiar with their inner
 | 
						|
workings. There are cases where the tools will appear to work, while producing
 | 
						|
incorrect results.
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   Some of the formal verification front-end tools may not be fully supported
 | 
						|
   without the full TabbyCAD suite.  If you want to use these tools, including
 | 
						|
   SBY, make sure to ask us if the Yosys-Verific patch is right for you.
 | 
						|
 | 
						|
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 0       YosysHQ specific extensions support
 | 
						|
ENABLE_VERIFIC_EDIF               0       EDIF support
 | 
						|
ENABLE_VERIFIC_LIBERTY            0       Liberty file support
 | 
						|
================================= ======= ===================================
 | 
						|
 | 
						|
To find the compile options used for a given Yosys build, call ``yosys-config
 | 
						|
--cxxflags``. This documentation was built with the following compile options:
 | 
						|
 | 
						|
.. literalinclude:: /generated/yosys-config
 | 
						|
    :start-at: --cxxflags
 | 
						|
    :end-before: --linkflags
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   The YosysHQ specific extensions are only available with the TabbyCAD suite.
 | 
						|
 | 
						|
Required Verific features
 | 
						|
~~~~~~~~~~~~~~~~~~~~~~~~~
 | 
						|
 | 
						|
The following features, along with their corresponding Yosys build parameters,
 | 
						|
are required for the Yosys-Verific patch:
 | 
						|
 | 
						|
* RTL elaboration with
 | 
						|
 | 
						|
  * SystemVerilog with ``ENABLE_VERIFIC_SYSTEMVERILOG``, and/or
 | 
						|
  * VHDL support with ``ENABLE_VERIFIC_VHDL``.
 | 
						|
 | 
						|
* Hierarchy tree support and static elaboration with
 | 
						|
  ``ENABLE_VERIFIC_HIER_TREE``.
 | 
						|
 | 
						|
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
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   Yosys+Verific builds may compile without these features, but we provide no
 | 
						|
   guarantees and cannot offer support if they are disabled or the Yosys-Verific
 | 
						|
   patch is not used.
 | 
						|
 | 
						|
Optional Verific features
 | 
						|
~~~~~~~~~~~~~~~~~~~~~~~~~
 | 
						|
 | 
						|
The following Verific features are available with TabbyCAD and can be enabled in
 | 
						|
Yosys builds:
 | 
						|
 | 
						|
* EDIF support with ``ENABLE_VERIFIC_EDIF``, and
 | 
						|
* Liberty file support with ``ENABLE_VERIFIC_LIBERTY``.
 | 
						|
 | 
						|
Partially supported builds
 | 
						|
~~~~~~~~~~~~~~~~~~~~~~~~~~
 | 
						|
 | 
						|
This section describes Yosys+Verific configurations which we have confirmed as
 | 
						|
working in the past, however they are not a part of our regular tests so we
 | 
						|
cannot guarantee they are still functional.
 | 
						|
 | 
						|
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:
 | 
						|
  a. ``ENABLE_VERIFIC_SYSTEMVERILOG``
 | 
						|
  b. ``ENABLE_VERIFIC_VHDL``
 | 
						|
  c. ``ENABLE_VERIFIC_HIER_TREE``
 | 
						|
  d. ``ENABLE_VERIFIC_YOSYSHQ_EXTENSIONS``
 | 
						|
 | 
						|
+--------------------------------------------------------------------------+-----+-----+-----+-----+
 | 
						|
|                                                                          | Configuration values  |
 | 
						|
+--------------------------------------------------------------------------+-----+-----+-----+-----+
 | 
						|
| Features                                                                 |   a |   b |   c |   d |
 | 
						|
+==========================================================================+=====+=====+=====+=====+
 | 
						|
| 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.
 |