Skip to main content

# Annotations

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

`Annotation`s 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 `Annotation`s is maintained as part of documentation of the FIRRTL Dialect on circt.llvm.org.