# Reference Manuals

* [Comportability Definition and Specification](comportability_specification.md)
* Tool Guides
   * [Register Tool](register_tool.md): Describes `regtool.py` and its HJSON format source. Used to generate documentation, rtl, header files and validation files for IP Registers and toplevel.
   * [Vendor-In Tool](vendor_hw_tool.md): Describes `vendor_hw.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
  * [Verilog Coding Style](https://github.com/lowRISC/style-guides/blob/master/VerilogCodingStyle.md)
  * [Python Coding Style](python_coding_style.md)
  * [Hjson Usage and Style Guide](hjson_usage_style.md)
  * [Markdown Usage and Style Guide](markdown_usage_style.md)
  * [C/C++ Style Guide](c_cpp_coding_style.md)
