Files

81 lines
2.3 KiB
ReStructuredText
Raw Permalink Normal View History

2022-11-16 00:55:22 +13:00
Auxiliary libraries
===================
2023-11-01 10:13:28 +13:00
The Yosys source distribution contains some auxiliary libraries that are
compiled into Yosys and can be used in plugins.
2022-11-16 00:55:22 +13:00
BigInt
------
The files in ``libs/bigint/`` provide a library for performing arithmetic with
arbitrary length integers. It is written by Matt McCutchen.
2023-08-03 09:20:29 +12:00
The BigInt library is used for evaluating constant expressions, e.g. using the
2022-11-16 00:55:22 +13:00
ConstEval class provided in kernel/consteval.h.
See also: http://mattmccutchen.net/bigint/
2023-10-30 11:13:48 +13:00
dlfcn-win32
-----------
2022-11-16 00:55:22 +13:00
2024-01-18 12:14:00 +13:00
The ``dlfcn`` library enables runtime loading of plugins without requiring
recompilation of Yosys. The files in ``libs/dlfcn-win32`` provide an
implementation of ``dlfcn`` for Windows.
See also: https://github.com/dlfcn-win32/dlfcn-win32
2022-11-16 00:55:22 +13:00
ezSAT
-----
The files in ``libs/ezsat`` provide a library for simplifying generating CNF
formulas for SAT solvers. It also contains bindings of MiniSAT. The ezSAT
2025-08-06 13:52:12 +12:00
library is written by C. Wolf. It is used by the `sat` pass.
2022-11-16 00:55:22 +13:00
2023-10-30 11:13:48 +13:00
fst
---
2024-01-18 12:14:00 +13:00
``libfst`` files from `gtkwave`_ are included in ``libs/fst`` to support
reading/writing signal traces from/to the GTKWave developed FST format. This is
2024-05-03 13:16:48 +12:00
primarily used in the `sim` command.
2024-01-18 12:14:00 +13:00
.. _gtkwave: https://github.com/gtkwave/gtkwave
2023-10-30 11:13:48 +13:00
json11
------
2024-05-03 13:16:48 +12:00
For reading/writing designs from/to JSON, `read_json` and
`write_json` should be used. For everything else there is the `json11
2024-01-18 12:14:00 +13:00
library`_:
json11 is a tiny JSON library for C++11, providing JSON parsing and
serialization.
2024-05-03 13:16:48 +12:00
This library is used for outputting machine-readable statistics (`stat`
with ``-json`` flag), using the RPC frontend (`connect_rpc`), and the
2024-01-18 12:14:00 +13:00
yosys-witness ``yw`` format.
.. _json11 library: https://github.com/dropbox/json11
2023-10-30 11:13:48 +13:00
MiniSAT
-------
2024-01-18 12:14:00 +13:00
The files in ``libs/minisat`` provide a high-performance SAT solver, used by the
2024-05-03 13:16:48 +12:00
`sat` command.
2023-10-30 11:13:48 +13:00
SHA1
----
The files in ``libs/sha1/`` provide a public domain SHA1 implementation written
by Steve Reid, Bruce Guenter, and Volker Grabsch. It is used for generating
unique names when specializing parameterized modules.
.. _sec:SubCircuit:
SubCircuit
----------
The files in ``libs/subcircuit`` provide a library for solving the subcircuit
isomorphism problem. It is written by C. Wolf and based on the Ullmann Subgraph
Isomorphism Algorithm :cite:p:`UllmannSubgraphIsomorphism`. It is used by the
2025-08-06 13:52:12 +12:00
`extract` pass.