Mixin that defines dependencies between TransformLikes (hereafter referred to as "transforms")
Mixin that defines dependencies between TransformLikes (hereafter referred to as "transforms")
This trait forms the basis of the Dependency API of the Chisel/FIRRTL Hardware Compiler Framework. Dependencies are defined in terms of prerequisistes, dependents, and invalidates. A prerequisite is a transform that must run before this transform. A dependent is a transform that must run after this transform. (This can be viewed as a means of injecting a prerequisite into some other transform.) Finally, invalidates define the set of transforms whose effects this transform undos/invalidates. (Invalidation then implies that a transform that is invalidated by this transform and needed by another transform will need to be re-run.)
This Dependency API only defines dependencies. A concrete DependencyManager is expected to be used to statically resolve a linear ordering of transforms that satisfies dependency requirements.
some transform
A TransformLike that resolves a linear ordering of dependencies based on requirements.
A TransformLike that resolves a linear ordering of dependencies based on requirements.
the type over which this transforms
the type of the TransformLike
An exception arising from an in a DependencyManager
OptionParser mixin that causes the OptionParser to not call exit (call sys.exit
) if the --help
option is
passed
A modified OptionParser with mutable termination and additional checks
OptionParser mixin that converts to OptionsException
OptionParser mixin that converts to OptionsException
Scopt, by default, will print errors to stderr, e.g., invalid arguments will do this. However, a Stage uses StageUtils.dramaticError. By converting this to an OptionsException, a Stage can then catch the error an convert it to an OptionsException that a Stage can get at.
The supertype of all exit codes
An ExitCode indicative of failure.
An ExitCode indicative of failure. This must be non-zero and should not conflict with a reserved exit code.
Indicates that this class/object includes options (but does not add these as a registered class)
Holds a filename containing one or more annotations.Annotation to be read
Holds a filename containing one or more annotations.Annotation to be read
-faf/--annotation-file
Indicate an error related to a bad Annotation or it's command line option equivalent.
Indicate an error related to a bad Annotation or it's command line option equivalent. This exception is always caught and converted to an error message by a Stage. Do not use this for communicating generic exception information.
Type class defining a "view" of an AnnotationSeq
Type class defining a "view" of an AnnotationSeq
the type to which this viewer converts an AnnotationSeq to
An explicit output _annotation_ file to write to
An explicit output _annotation_ file to write to
-foaf/--output-annotation-file
A mathematical transformation of an AnnotationSeq.
A mathematical transformation of an AnnotationSeq.
A Phase forms one unit in the Chisel/FIRRTL Hardware Compiler Framework (HCF). The HCF is built from a sequence of Phases applied to an AnnotationSeq. Note that a Phase may consist of multiple phases internally.
Indicate a generic error in a Phase
A Phase that will ensure that some other Phases and their prerequisites are executed.
A Phase that will ensure that some other Phases and their prerequisites are executed.
This tries to determine a phase ordering such that an AnnotationSeq output is produced that has had all of the requested Phase target transforms run without having them be invalidated.
Indicates that a Phase is missing some mandatory information.
Indicates that a Phase is missing some mandatory information. This likely occurs either if a user ran something out of order or if the compiler did not run things in the correct order.
A trait indicating that no invalidations occur, i.e., all previous transforms are preserved
A trait indicating that no invalidations occur, i.e., all previous transforms are preserved
some TransformLike
Additional arguments
Additional arguments
A class that includes options that should be exposed as a group at the top level.
A class that includes options that should be exposed as a group at the top level.
To complete registration, include an entry in src/main/resources/META-INF/services/firrtl.options.RegisteredLibrary
A Transform that includes an option that should be exposed at the top level.
A Transform that includes an option that should be exposed at the top level.
To complete registration, include an entry in src/main/resources/META-INF/services/firrtl.options.RegisteredTransform
A utility for working with command line options
Contains information about a Shell command line option
A Stage represents one stage in the FIRRTL hardware compiler framework.
A Stage represents one stage in the FIRRTL hardware compiler framework. A Stage is, conceptually, a Phase that includes a command line interface.
The FIRRTL compiler is a stage as well as any frontend or backend that runs before/after FIRRTL. Concretely, Chisel is a Stage as is FIRRTL's Verilog emitter. Each stage performs a mathematical transformation on an AnnotationSeq where some input annotations are processed to produce different annotations. Command line options may be pulled in if available.
Indicates that a Stage or Phase has run into a situation where it cannot continue.
Provides a main method for a Stage
Options that every stage shares
Holds the name of the target directory
Holds the name of the target directory
-td/--target-dir
A polymorphic mathematical transform
A polymorphic mathematical transform
the transformed type
A TransformLike that internally translates the input type to some other type, transforms the internal type, and converts back to the original type.
A TransformLike that internally translates the input type to some other type, transforms the internal type, and converts back to the original type.
This is intended to be used to insert a TransformLike parameterized by type B
into a sequence of TransformLikes parameterized by type A
.
the type of the TransformLike
the internal type
An annotation that should not be serialized automatically WriteOutputAnnotations.
An annotation that should not be serialized automatically WriteOutputAnnotations. This usually means that this is an annotation that is used only internally to a Stage.
ExitCode indicating success
An exit code indicating a general, non-specific error
Utilities related to working with a Stage
A shim to manage multiple "views" of an AnnotationSeq
If this Annotation exists in an AnnotationSeq, then a WriteOutputAnnotations will include DeletedAnnotations when it writes to a file.
If this Annotation exists in an AnnotationSeq, then a WriteOutputAnnotations will include DeletedAnnotations when it writes to a file.