| \chapter{Auxiliary Libraries} | |
| The Yosys source distribution contains some auxiliary libraries that are bundled | |
| with Yosys. | |
| \section{SHA1} | |
| The files in {\tt 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. | |
| \section{BigInt} | |
| The files in {\tt libs/bigint/} provide a library for performing arithmetic with | |
| arbitrary length integers. It is written by Matt McCutchen \citeweblink{bigint}. | |
| The BigInt library is used for evaluating constant expressions, e.g.~using the {\tt | |
| ConstEval} class provided in {\tt kernel/consteval.h}. | |
| \section{SubCircuit} | |
| \label{sec:SubCircuit} | |
| The files in {\tt libs/subcircuit} provide a library for solving the subcircuit | |
| isomorphism problem. It is written by Clifford Wolf and based on the Ullmann | |
| Subgraph Isomorphism Algorithm \cite{UllmannSubgraphIsomorphism}. It is used by | |
| the {\tt extract} pass (see {\tt help extract} or Sec.~\ref{cmd:extract}). | |
| \section{ezSAT} | |
| The files in {\tt libs/ezsat} provide a library for simplifying generating CNF | |
| formulas for SAT solvers. It also contains bindings of MiniSAT. The ezSAT | |
| library is written by Clifford Wolf. It is used by the {\tt sat} pass (see | |
| {\tt help sat} or Sec.~\ref{cmd:sat}). | |