Skip to main content


Annotations are metadata containers associated with zero or more "things" in a FIRRTL circuit. Commonly, Annotations are used to communicate information from Chisel to a specific, known FIRRTL Transform. In this way Annotations can be viewed as the "arguments" that a specific Transform consumes.

Annotations are intended to be an implementation detail of Chisel and are not meant to be manually constructed or interacted with directly by users. Instead, they are intended to be used through existing or new Chisel APIs. E.g., the dontTouch API provides a way for a user to indicate that a wire or port should not be optimized. This API is backed by a DontTouchAnnotation, but this is hidden from Chisel users.

A list of all supported Annotations is maintained as part of documentation of the FIRRTL Dialect on