Packages

o

firrtl.stage.phases

DriverCompatibility

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]

    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]

    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]

    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]

    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

    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
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native() @HotSpotIntrinsicCandidate()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  8. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  9. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  10. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  11. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  12. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  13. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  14. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  15. def toString(): String
    Definition Classes
    AnyRef → Any
  16. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  17. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  18. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  19. object EmitOneFilePerModuleAnnotation extends NoTargetAnnotation with Product with Serializable

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

  20. object TopNameAnnotation extends Serializable

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] ) @Deprecated @deprecated
    Deprecated

    (Since version ) see corresponding Javadoc for more information.

  2. def firrtlResultView(annotations: AnnotationSeq): FirrtlExecutionResult

    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