Skip to content
Schuyler Eldridge edited this page Feb 14, 2019 · 3 revisions

FIRRTL

The FIRRTL (Flexible Intermediate Representation for RTL) Project provides a hardware circuit IR for posedge-triggered, synchronous or asynchronous reset-able, multi-clock domain, synchronous circuits, an optimizing compiler, a Verilog backend emitter, and a FIRRTL interpreter. The compiler is written in Scala. The language is easy to parse and ANTLR4 grammar is provided. Not all hardware constructs are supported (notably: negative edge triggered logic/#695), but Verilog blackboxing provides a temporary workaround while development of these features is in progress. FIRRTL provides support for Annotations: arbitrary metadata attached to specific circuit components. Annotations are not a part of the IR, but are passed along with the IR during compilation to direct and control FIRRTL transforms.

FIRRTL IR is the target of the Chisel language. Other front ends targeting the FIRRTL IR are available, e.g., Yosys and Magma.

Internal representation

Clone this wiki locally