# Tools

This is the landing spot for utility scripts within the OpenTitan project.
Primarily these are README files about tooling scripts used to generate technical content.
More description and information can be found within the [Reference Manual]({{< relref "doc/rm" >}}) and [User Guide]({{< relref "doc/ug" >}}) areas.

## Utility READMEs

* Docker Container [README]({{< relref "util/container/README.md" >}})
* FPGA splice utility [README]({{< relref "util/fpga/README.md" >}})
* `reggen.py` register generator tool [README]({{< relref "util/reggen/README.md" >}})
* `spitest.py` script for interacting with SPI device code [README]({{< relref "util/simplespi/README.md" >}})
* `testplanner.py` utility for generating verification testplans from Hjson descriptors [README]({{< relref "util/testplanner/README.md" >}})
* `tlgen.py` utility for TileLink bus matrix [README]({{< relref "util/tlgen/README.md" >}})
* `uvmdvgen.py` utility for generating testbenches for comportable IP [README]({{< relref "util/uvmdvgen/README.md" >}})
* `wavegen.py` utility for creating technical waveforms in documentation [README]({{< relref "util/wavegen/README.md" >}})
