blob: b4f93c95f8b93eee2d817e0d26c4912a0883153b [file] [log] [blame] [view]
---
title: "Reference Manuals"
---
* [Comportability Definition and Specification]({{< relref "comportability_specification" >}})
* [Device Interface Function (DIF) Specification]({{< relref "device_interface_functions" >}})
* Tool Guides
* [Topgen Tool]({{< relref "topgen_tool" >}}): Describes `topgen.py` and its Hjson format source. Used to generate rtl and validation files for top specific modules such as PLIC, Pinmux and crossbar.
* [Register Tool]({{< relref "register_tool" >}}): Describes `regtool.py` and its Hjson format source. Used to generate documentation, rtl, header files and validation files for IP Registers and toplevel.
* [Ipgen Tool]({{< relref "ipgen_tool" >}}): Describes `ipgen.py` and its Hjson control file. Used to generate IP blocks from IP templates.
* [Crossbar Tool]({{< relref "crossbar_tool" >}}): Describes `tlgen.py` and its Hjson format source. Used to generate self-documentation, rtl files of the crossbars at the toplevel.
* [Vendor-In Tool]({{< relref "vendor_in_tool" >}}): Describes `util/vendor.py` and its Hjson control file. Used to pull a local copy of code maintained in other upstream repositories and apply local patch sets.
* Coding Style Guides (_To avoid conflict, toil and confusion regarding code style, OpenTitan's CI enforces
what it can of the following guides_):
* [Verilog Coding Style](https://github.com/lowRISC/style-guides/blob/master/VerilogCodingStyle.md)
* [Python Coding Style]({{< relref "python_coding_style.md" >}})
* [Hjson Usage and Style Guide]({{< relref "hjson_usage_style.md" >}})
* [Markdown Usage and Style Guide]({{< relref "markdown_usage_style.md" >}})
* [C/C++ Style Guide]({{< relref "c_cpp_coding_style.md" >}})
* [RISC-V Assembly Style Guide]({{< relref "asm_coding_style.md" >}})
* [FPGA Reference Manual]({{< relref "ref_manual_fpga.md" >}})
* [OpenTitan Continuous Integration]({{< relref "continuous_integration.md" >}})