\chapter{Auxilary Libraries}

The Yosys source distribution contains some auxilary libraries that are bundled
with Yosys.

\section{SHA1}

The files in {\tt libs/sha1/} provide a SHA1 implementation written by Micael
Hildenborg \citeweblink{smallsha1}. 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}).