chipsalliance/firrtl-spec

The specification for the FIRRTL language

67

stars

564

commits

TeX

primary language

Sep 10, 2026

updated

Browse cluster: TeX/LaTeX document processing and visualization

README

This repository hosts the specification for the FIRRTL language.

To build this, you need the following:

For compatibility with continuous integration (CI) formatting, use the versions of pandoc and pandoc-crossref that are listed in the CI GitHub Action. If this release is not available in your package manager, you can download binaries from their GitHub releases pages:

To run tests, both firtool and Verilator must be available on your PATH. For compatibility with CI testing, use the version of firtool specified in include/circt.json and the Verilator version used by the version of the OSS CAD Suite in listed in the CI GitHub Action.

After resolving these dependencies, use the following build targets:

  • make or make all will compile will compile spec.md and abi.md into build/spec.pdf and build/abi.pdf.
  • make format will format all Markdown files by round-tripping them through pandoc. For this build step to be usable, use the exact versions of pandoc and pandoc-crossref that CI uses!
  • make lint will rewrite all Markdown files in place to use the canonical terminology, e.g., subfield instead of sub-field. The rules are in scripts/lint-terminology.lua. CI runs this and fails if it produces any changes.
  • make test will extract FIRRTL and Verilog snippets from the specification and ABI document and, respectively, run them through firtool -parse-only or verilator --lint-only to test that they are legal FIRRTL or Verilog.

Contributors

(top 30 of 39)

seldridge

218 commits

chiselbot

104 commits

azidar

61 commits

dtzSiFive

49 commits

chipsalliance/firrtl-spec

The specification for the FIRRTL language

67

stars

564

commits

TeX

primary language

Sep 10, 2026

updated

Browse cluster: TeX/LaTeX document processing and visualization

README

This repository hosts the specification for the FIRRTL language.

To build this, you need the following:

For compatibility with continuous integration (CI) formatting, use the versions of pandoc and pandoc-crossref that are listed in the CI GitHub Action. If this release is not available in your package manager, you can download binaries from their GitHub releases pages:

To run tests, both firtool and Verilator must be available on your PATH. For compatibility with CI testing, use the version of firtool specified in include/circt.json and the Verilator version used by the version of the OSS CAD Suite in listed in the CI GitHub Action.

After resolving these dependencies, use the following build targets:

  • make or make all will compile will compile spec.md and abi.md into build/spec.pdf and build/abi.pdf.
  • make format will format all Markdown files by round-tripping them through pandoc. For this build step to be usable, use the exact versions of pandoc and pandoc-crossref that CI uses!
  • make lint will rewrite all Markdown files in place to use the canonical terminology, e.g., subfield instead of sub-field. The rules are in scripts/lint-terminology.lua. CI runs this and fails if it produces any changes.
  • make test will extract FIRRTL and Verilog snippets from the specification and ABI document and, respectively, run them through firtool -parse-only or verilator --lint-only to test that they are legal FIRRTL or Verilog.

Contributors

(top 30 of 39)

seldridge

218 commits

chiselbot

104 commits

azidar

61 commits

dtzSiFive

49 commits

Languages

TeX

60.1%

Lua

22.4%

Shell

9.5%

Makefile

8.0%