Annotations
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
circt.llvm.org.