Object

firrtl.stage.phases

DriverCompatibility

Related Doc: package phases

Permalink

object DriverCompatibility

Provides compatibility methods to replicate deprecated Driver semantics.

At a high level, the Driver tries extremely hard to figure out what the user meant and to enable them to not be explicit with command line options. As an example, the --top-name option is not used for any FIRRTL top module determination, but to find a FIRRTL file by that name and/or an annotation file by that name. This mode of file discovery is only used if no explicit FIRRTL file/source/circuit and/or annotation file is given. Going further, the --top-name argument is implicitly specified by the main of an input circuit if not explicit and can be used to derive an annotation file. Summarily, the Phases provided by this enable this type of resolution.

Only use these methods if you are intending to replicate old Driver semantics for a good reason. Otherwise, opt for more explicit specification by the user.

Source
DriverCompatibility.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. DriverCompatibility
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. class AddImplicitAnnotationFile extends Phase with PreservesAll[Phase]

    Permalink

    Add an implicit annotation file derived from the determined top name of the circuit if no InputAnnotationFileAnnotation is present.

    Add an implicit annotation file derived from the determined top name of the circuit if no InputAnnotationFileAnnotation is present.

    The implicit annotation file is determined through the following complicated semantics:

    The precedence for determining the topName is the following (first one wins):

    returns

    output annotations

  2. class AddImplicitFirrtlFile extends Phase with PreservesAll[Phase]

    Permalink

    Add a FirrtlFileAnnotation if no annotation that explictly defines a circuit exists.

    Add a FirrtlFileAnnotation if no annotation that explictly defines a circuit exists.

    This takes the option with the following precedence:

    In the case of (3) above, this AnnotationSeq is likely insufficient for FIRRTL to work with (no circuit was passed). However, instead of catching this here, we rely on Checks to validate the annotations.

  3. class AddImplicitEmitter extends Phase with PreservesAll[Phase]

    Permalink

    Adds an EmitAnnotation for each CompilerAnnotation.

    Adds an EmitAnnotation for each CompilerAnnotation.

    If an EmitOneFilePerModuleAnnotation exists, then this will add an EmitAllModulesAnnotation. Otherwise, this adds an EmitCircuitAnnotation. This replicates old behavior where specifying a compiler automatically meant that an emitter would also run.

    Annotations
    @deprecated
    Deprecated

    (Since version 1.2) AddImplicitEmitter should only be used to build Driver compatibility wrappers. Switch to Stage.

  4. class AddImplicitOutputFile extends Phase with PreservesAll[Phase]

    Permalink

    Adds an OutputFileAnnotation derived from a TopNameAnnotation if no OutputFileAnnotation already exists.

    Adds an OutputFileAnnotation derived from a TopNameAnnotation if no OutputFileAnnotation already exists. If no TopNameAnnotation exists, then no OutputFileAnnotation is added.

    Annotations
    @deprecated
    Deprecated

    (Since version 1.2) AddImplicitOutputFile should only be used to build Driver compatibility wrappers. Switch to Stage.

  5. case class TopNameAnnotation(topName: String) extends NoTargetAnnotation with Product with Serializable

    Permalink

    Holds the name of the top (main) module in an input circuit

    Holds the name of the top (main) module in an input circuit

    Annotations
    @deprecated
    Deprecated

    (Since version 1.2) "top-name" is deprecated as part of the Stage/Phase refactor. Use explicit input/output files.

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. object EmitOneFilePerModuleAnnotation extends NoTargetAnnotation with Product with Serializable

    Permalink

    Indicates that the implicit emitter, derived from a CompilerAnnotation should be an EmitAllModulesAnnotation as opposed to an EmitCircuitAnnotation.

  5. object TopNameAnnotation extends Serializable

    Permalink
  6. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  7. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  8. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  9. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  10. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  11. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  12. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  13. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  14. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  15. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  16. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  17. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  18. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  19. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  20. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Deprecated Value Members

  1. def firrtlResultView(annotations: AnnotationSeq): FirrtlExecutionResult

    Permalink

    Convert an AnnotationSeq to a deprecated FirrtlExecutionResult.

    Convert an AnnotationSeq to a deprecated FirrtlExecutionResult.

    annotations

    a sequence of Annotation

    Annotations
    @deprecated
    Deprecated

    (Since version 1.2) FirrtlExecutionResult is deprecated as part of the Stage/Phase refactor. Migrate to FirrtlStage.

Inherited from AnyRef

Inherited from Any

Ungrouped