Object

firrtl

CompilerUtils

Related Doc: package firrtl

Permalink

object CompilerUtils extends LazyLogging

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

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. final def asInstanceOf[T0]: T0

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

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

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

    Permalink
    Definition Classes
    AnyRef → Any
  8. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
    Annotations
    @HotSpotIntrinsicCandidate()
  9. def getLoweringTransforms(inputForm: CircuitForm, outputForm: CircuitForm): Seq[Transform]

    Permalink

    Generates a sequence of Transforms to lower a Firrtl circuit

    Generates a sequence of Transforms to lower a Firrtl circuit

    inputForm

    CircuitForm to lower from

    outputForm

    CircuitForm to lower to

    returns

    Sequence of transforms that will lower if outputForm is lower than inputForm

  10. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
    Annotations
    @HotSpotIntrinsicCandidate()
  11. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  12. val logger: Logger

    Permalink
    Definition Classes
    LazyLogging
  13. def mergeTransforms(lowering: Seq[Transform], custom: Seq[Transform]): Seq[Transform]

    Permalink

    Merge a Seq of lowering transforms with custom transforms

    Merge a Seq of lowering transforms with custom transforms

    Custom Transforms are inserted based on their Transform.inputForm and Transform.outputForm with any Emitters being scheduled last. Custom transforms are inserted in order at the last location in the Seq of transforms where previous.outputForm == customTransform.inputForm. If a customTransform outputs a higher form than input, getLoweringTransforms is used to relower the circuit.

    Example:
    1. // Let Transforms be represented by CircuitForm => CircuitForm
      val A = HighForm => MidForm
      val B = MidForm => LowForm
      val lowering = List(A, B) // Assume these transforms are used by getLoweringTransforms
      // Some custom transforms
      val C = LowForm => LowForm
      val D = MidForm => MidForm
      val E = LowForm => HighForm
      // All of the following comparisons are true
      mergeTransforms(lowering, List(C)) == List(A, B, C)
      mergeTransforms(lowering, List(D)) == List(A, D, B)
      mergeTransforms(lowering, List(E)) == List(A, B, E, A, B)
      mergeTransforms(lowering, List(C, E)) == List(A, B, C, E, A, B)
      mergeTransforms(lowering, List(E, C)) == List(A, B, E, A, B, C)
      // Notice that in the following, custom transform order is NOT preserved (see note)
      mergeTransforms(lowering, List(C, D)) == List(A, D, B, C)
    Note

    Order will be preserved for custom transforms so long as the inputForm of a latter transforms is equal to or lower than the outputForm of the previous transform.

  14. final def ne(arg0: AnyRef): Boolean

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate()
  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(arg0: Long, arg1: Int): Unit

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

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

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

Deprecated Value Members

  1. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @Deprecated @deprecated @throws( classOf[java.lang.Throwable] )
    Deprecated

    (Since version ) see corresponding Javadoc for more information.

Inherited from LazyLogging

Inherited from AnyRef

Inherited from Any

Ungrouped